ITERATION 1 - danaluz/DDS-TP GitHub Wiki

Contexto

El gobierno de la ciudad, con el objetivo descentralizar el acceso a la información y disminuir la congestión en centros de Gestión y Participación (CGPs), quiere llevar a cabo un proyecto ambicioso: contar con dispositivo táctiles en múltiples esquinas de la ciudad, conectados a internet, que permitan realizar trámites y obtener información. Tras contactarse con la Regional Buenos Aires, de la Universidad Tecnológica Nacional., y recibir la propuesta en la Cátedra de Diseño de Sistemas, luego de varias reuniones y discusiones sobre cómo abordar el proyecto, todas las partes están de acuerdo en encarar una primera etapa en la que estos dispositivos sólo visualizarán puntos de interés1, en algunas locaciones particulares. Si el proyecto tiene éxito2, en etapas posteriores se incluirán más dispositivos y más funcionalidades.

Dominio de alto nivel

Un punto de interés (POI, por sus siglas en inglés) es básicamente una posición en un mapa, que suele representarse mediante un ícono. De este conocemos su dirección, calle principal, entre qué calles se encuentra, número, y datos más específicos como el piso, departamento, unidad, el código postal, localidad, barrio, provincia, país, además de las coordenadas geográficas resultado del proceso de geocodificación: latitud y longitud. Algunos puntos de interés posibles son:

  • Paradas de colectivos
  • Centros de Gestión y Participación (CGP)
  • Sucursales de Bancos
  • Locales comerciales

1 https://es.wikipedia.org/wiki/Punto_de_inter%C3%A9s 2 Un proyecto de estas características podría fallar por diversos motivos humanos y técnicos, no relacionados al software en sí: roturas, robos, falta de conexión, problemas de energía, etc. Sin embargo, a fines del TP no serán considerados..

Requerimientos de alto nivel

Cada uno de estos dispositivos, más allá de sus particularidades físicas, es una computadora conectada a Internet. Los mismos serán provistos por otra empresa, “Touch.me”. Nuestra responsabilidad será, entonces, diseñar, construir, probar y desplegar el sistema software que se ejecutará en estas máquinas. El mismo cubrirá, al menos, las siguientes funcionalidades:

  • Buscar puntos de interés, según criterios de búsqueda establecidos por el usuario
  • Obtener información de un cierto punto
  • Visualizar el resultado de las consultas
  • Almacenar información de la consulta, con fines estadísticos. Este sistema no sólo será utilizado por transeúntes en la via pública, sino también por administradores del sistema, del Gobierno de la ciudad, que cargarán puntos desde distintos orígenes, y obtendrán estadísticas sobre las consultas.

Entregas

Entrega 0A - Análisis del Dominio

Para empezar, vamos a hacer un análisis preliminar del sistema: queremos identificar cas de uso y usuarios involucrados. Para ello, se solicita:

  1. Modelar los Casos de Uso(CU) del dominio.
  2. Modelar Diagramas de Secuencia y de Clases en UML para comunicar el Diseño los CU.
  3. Definir Atributos de calidad y Requerimientos No Funcionales en base al Conte del Sistema.

Entrega 0B - Prueba de Concepto - Tecnología

Para empezar a empaparse en la tecnología, vamos a realizar una pequeña prueba concepto de la misma: modelar los POIs. De los mismos nos interesa:

  • Su coordenada: latitud y longitud
  • Un nombre, dirección (calle y altura)
  • Si es una parada de colectivos, un CGP, etc Además, a un POI queremos conocer:
  • Si se encuentra a menos de X metros de otro POI3
  • Si es válido: no puede haber POIs sin geolocalizar ni a los que les falte nombre.

Se solicita:

    1. Crear un proyecto en la tecnología orientada a objetos seleccionada
  1. Utilizando un entorno de desarrollo integrado (IDE)
  2. Mantener los cambios en un sistema de control de versiones 3 Para este punto se puede realizar el cálculo a mano (http://www.movable type.co.uk/scripts/latlong.html) o mejor, buscar y utilizar alguna biblioteca que lo resuelva.