Centro de Control y Comando Móvil – PUA (C3M)
Proyecto de grado
Silvana Carolina Pedraza Sierra Diciembre de 2012
En las misiones de lanzamientos de cohetes del Proyecto Uniandino Aeroespacial (PUA) de la facultad de ingeniería, se evidencia la necesidad de una herramienta que permita hacer el seguimiento del estado de las misiones en la plataforma de lanzamiento y el registro de lo que sucede a medida que se ejecutan las tareas para culminar la misión. Centro de Control y Comando Móvil - PUA (C3M) es una aplicación desarrollada en Android cuyo objetivo es proveer de información pertinente a los directores y líderes de las misiones en el lugar de lanzamiento para facilitar y agilizar la toma de decisiones en momentos críticos de la misión. También tiene como objetivo registrar la manera como se llevan a cabo las tareas con el fin de poder mejorar la planeación de las misiones en el futuro. Mediante la aplicación el usuario es capaz de ver los detalles de las misiones y las tareas que deben desarrollarse así como el estado general de ésta, y registrar el curso de las tareas a medida que éstas se van ejecutando. Además, la aplicación le permite al usuario tener un panorama general de lo que ocurre en la plataforma de lanzamiento ya que puede visualizar lo que las cámaras instaladas en el lugar transmiten en el momento.
1
Centro de Control y Comando Móvil – PUA (C3M)
Proyecto de grado
Universidad de los Andes Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación 2012-2 Autor: Silvana Carolina Pedraza Sierra Asesor: Darío Correal
2
Índice general
Índice general ................................................................................................................................................ 2
Índice de ilustraciones .................................................................................................................................. 3
Índice de tablas ............................................................................................................................................. 4
Resumen ....................................................................................................................................................... 5
1. Introducción .............................................................................................................................................. 5
1.1 Motivación .......................................................................................................................................... 5
1.2 Contexto e identificación del problema .............................................................................................. 6
1.3 Definiciones ......................................................................................................................................... 6
1.4 Estructura del documento .................................................................................................................. 7
2. Objetivos ................................................................................................................................................... 7
2.1 Objetivos generales............................................................................................................................. 7
2.2 Objetivos específicos........................................................................................................................... 8
3. Estado del arte .......................................................................................................................................... 8
4. Especificaciones ...................................................................................................................................... 11
4.1 Usuarios principales .......................................................................................................................... 11
4.2 Casos de uso ...................................................................................................................................... 12
4.3 Requerimientos funcionales ............................................................................................................. 13
4.4 Requerimientos no funcionales ........................................................................................................ 21
4.5 Restricciones ..................................................................................................................................... 24
5. Diseño de solución .................................................................................................................................. 25
5.1 Vista de despliegue ........................................................................................................................... 25
5.2 Vista funcional ................................................................................................................................... 25
5.3 Vista de información ......................................................................................................................... 26
6. Implementación ...................................................................................................................................... 30
6.1 Descripción de la implementación .................................................................................................... 30
6.2 Resultados ......................................................................................................................................... 31
7. Conclusiones ........................................................................................................................................... 37
7.1 Productos .......................................................................................................................................... 37
7.2 Problemas y soluciones ..................................................................................................................... 38
7.3 Trabajo futuro ................................................................................................................................... 39
8. Referencias .............................................................................................................................................. 40
Anexos ......................................................................................................................................................... 41
3
Índice de ilustraciones
Ilustración 1 – Jira, progreso ....................................................................................................................... 10
Ilustración 2 – Jira, tareas ........................................................................................................................... 11
Ilustración 3 - Casos de uso ......................................................................................................................... 12
Ilustración 4 - Prueba de confiabilidad ....................................................................................................... 23
Ilustración 5 - Modelo de despliegue.......................................................................................................... 25
Ilustración 6 - Modelo de componentes ..................................................................................................... 25
Ilustración 7 - Esquema de la base de datos ............................................................................................... 26
Ilustración 8 - C3M, menú principal ............................................................................................................ 31
Ilustración 9 - C3M, listado de misiones ..................................................................................................... 32
Ilustración 10 - C3M, listado de fases ......................................................................................................... 32
Ilustración 11 - C3M, listado de etapas....................................................................................................... 33
Ilustración 12 - C3M, listado de tareas ....................................................................................................... 33
Ilustración 13 - C3M, listado de tareas depuradas ..................................................................................... 34
Ilustración 14 - C3M, selección de una misión para ver su progreso ......................................................... 34
Ilustración 15 - C3M, progreso general de una misión ............................................................................... 35
Ilustración 16 - C3M, selección de una cámara para ver su imagen........................................................... 35
Ilustración 17 - C3M, imagen de una cámara ............................................................................................. 36
Ilustración 18 - C3M, configuración de las cámaras ................................................................................... 36
Ilustración 19 - C3M, sincronización con la base de datos ......................................................................... 37
Ilustración 20 - Prueba con Foscam Viewer Lite ......................................................................................... 38
Ilustración 21 - Prueba con Foscam Monitor Demo ................................................................................... 39
4
Índice de tablas Tabla 1 - Definiciones .................................................................................................................................... 6
Tabla 2 - Requerimiento funcional 1 ........................................................................................................... 13
Tabla 3 - Requerimiento funcional 2 ........................................................................................................... 14
Tabla 4 - Requerimiento funcional 3 ........................................................................................................... 15
Tabla 5 - Requerimiento funcional 4 ........................................................................................................... 16
Tabla 6 - Requerimiento funcional 5 ........................................................................................................... 17
Tabla 7 - Requerimiento funcional 6 ........................................................................................................... 18
Tabla 8 - Requerimiento funcional 7 ........................................................................................................... 19
Tabla 9 - Requerimiento funcional 8 ........................................................................................................... 20
Tabla 10 - Motivador de negocio 1 ............................................................................................................. 21
Tabla 11 - Escenario de calidad 1 ................................................................................................................ 22
Tabla 12 - Escenario de calidad 2 ................................................................................................................ 22
Tabla 13 - Escenario de calidad 3 ................................................................................................................ 24
Tabla 14 – Entidad 1 - Misiones .................................................................................................................. 27
Tabla 15 - Entidad 2 - Fases......................................................................................................................... 27
Tabla 16 - Entidad 3 - Etapas ....................................................................................................................... 28
Tabla 17 - Entidad 4 - Tareas ....................................................................................................................... 28
Tabla 18 - Entidad 5 - Grupos ...................................................................................................................... 29
Tabla 19 - Entidad 6 - Roles ......................................................................................................................... 29
Tabla 20 - Entidad 7 - Miembros ................................................................................................................. 29
Tabla 21 - Relación 1 - Grupos por misión .................................................................................................. 29
Tabla 22 - Relación 2 - Roles por miembro ................................................................................................. 29
5
Resumen
Como parte de los proyectos de grado de los estudiantes de ingeniería, se inició el Proyecto Uniandino
Aeroespacial (PUA) de lanzamientos de cohetes en donde los departamentos de ingeniería mecánica,
electrónica y de sistemas trabajan en conjunto para desarrollar los proyectos. Un punto importante en
la ejecución de los proyectos es la planeación y el seguimiento de su progreso especialmente en los
momentos previos a los lanzamientos en la plataforma. El Centro de Control y Comando Móvil (C3M) es
una herramienta que permita seguir el progreso de las misiones que se están ejecutando en el lugar de
lanzamiento. Por medio de la aplicación se puede registrar qué tareas se han realizado, verificar cuáles
faltan y quiénes son los responsables para su ejecución.
Con el uso de la aplicación los directores y líderes de las misiones podrán tener más claridad en el orden
en que deben hacerse las tareas y las responsabilidades de los miembros del equipo. También podrán
registrar cómo se realizaron las tareas realmente para poder comparar los datos y planear mejor las
misiones en el futuro. Además tienen la posibilidad de ver la imagen que transmiten las cámaras
instaladas en la plataforma de lanzamiento para poder tener un panorama visual de lo que ocurre en el
lugar.
1. Introducción
1.1 Motivación Actualmente en la facultad de ingeniería se llevan a cabo lanzamientos de cohetes como parte de los
proyectos de grado de los estudiantes. Gracias a esto surgió el Proyecto Uniandino Aeroespacial (PUA),
donde los departamentos de ingeniería mecánica, electrónica y de sistemas trabajan conjuntamente en
el desarrollo de los proyectos.
En el departamento de ingeniería de sistemas hay grupos en los que se tiene como objetivo desarrollar
software y proveer infraestructura para manejar, recolectar y procesar la información que surge de
estos proyectos. Por un lado está la información relacionada a la planeación del desarrollo del proyecto
como tareas y responsables de éstas ya sea en el lugar de lanzamiento o fuera. Por el otro, está la
información telemétrica producto del lanzamiento del cohete como la velocidad, aceleración, altura y
presión de éste, y los videos de las cámaras que documentan lo que sucede en la plataforma de
lanzamiento.
Actualmente no se cuenta con una herramienta que permita documentar la planeación de las tareas que
se deben realizar para llevar a cabo la misión ni tampoco una que permita tener esta información de
manera portable en el lugar de lanzamiento. A partir de esto surge la idea del proyecto Sistema
Administrador de Misiones Aeroespaciales - PUA (SAMA) que tiene como objetivo ofrecer una plantilla
para documentar los procesos que se deben llevar a cabo en la misión. Y también surge el proyecto
6
Centro de Control y Comando Móvil (C3M) que tiene como objetivo desplegar la información
recolectada por SAMA en un ambiente móvil.
1.2 Contexto e identificación del problema
Como se explicó anteriormente, en los proyectos de grado de lanzamientos de cohetes del
departamento de mecánica, hace falta una herramienta que permita a los directores y líderes de las
misiones documentar los procedimientos necesarios para llevar a cabo y finalizar con éxito el proyecto.
También es necesario poder registrar qué tareas se han hecho, cuales faltan por hacer y quienes son las
personas responsables de cada tarea con el fin de poder hacerle seguimiento.
Estos proyectos o misiones se descomponen en varias fases en las que se desarrollan diferentes tareas.
Por ejemplo, existen las fases de: construcción, pruebas y lanzamiento. Una de estas fases críticas es la
de lanzamiento que se lleva a cabo en la plataforma de lanzamiento. Dado que el tiempo es limitado en
la fase de lanzamiento, es importante que haya claridad en el orden y responsabilidad de las tareas para
no perder tiempo. También es de anotar que como participan varias personas de diferentes
departamentos es importante tener información centralizada que facilite la toma de decisiones al
director o líder de la misión.
Como en la plataforma de lanzamiento hay recursos limitados en equipos, la movilidad es un aspecto
importante en esta fase, por eso es preciso desarrollar una aplicación que se pueda ejecutar en un
dispositivo móvil en donde se pueda ver las tareas que deben llevarse a cabo. Esto con el fin de poder
tener información centralizada y claridad en la ejecución de las tareas. También es importante poder
registrar cómo las tareas fueron ejecutadas realmente para poder contrastar con lo que se había
planeado y poder obtener retroalimentación sobre el progreso del proyecto y mejorar la planeación en
proyectos futuros.
1.3 Definiciones
A continuación se presentan palabras y acrónimos usados a lo largo del documento y su significado en el
contexto del proyecto.
Tabla 1 - Definiciones
PUA Proyecto Uniandino Aeroespacial
C3 Centro de Control y Comando
C3M Centro de Control y Comando Móvil
SAMA Sistema Administrador de Misiones Aeroespaciales - PUA
Misión Todo lo que comprende un proyecto de un lanzamiento de un cohete
7
Fase Un objetivo intermedio de una misión que marca un punto importante en la
terminación del desarrollo de una misión. Está compuesta por objetivos más
específicos y granulares que son etapas. Por ejemplo fases para cualquier misión:
Construcción del cohete, Pruebas de lanzamiento, Lanzamiento
Etapa Un objetivo intermedio de una fase que marca un punto importante en la terminación
del desarrollo de una fase. Está compuesto por los elementos más granulares de una
misión que son tareas. Por ejemplo para la fase de lanzamiento: Enclavamiento,
Instalación de sistemas
Tarea El elemento más granular del procedimiento global de desarrollo del proyecto
Lanzamiento Fase de una misión en la que se hace el lanzamiento del cohete en la plataforma de
lanzamiento.
Estado Situación en la que se encuentra una tarea, etapa, fase o misión. Por ejemplo: en
progreso, terminada, cancelada o sin comenzar.
1.4 Estructura del documento
El presente documento se compone de seis secciones. La primera de ellas es una descripción de los
objetivos del proyecto y de la aplicación a implementar. Más adelante se describe el estado del arte el
cual fue un punto de partida para el desarrollo de la propuesta. Después se encuentra las
especificaciones que fueron la base para la materialización del proyecto. Las dos secciones posteriores
documentan el proceso de diseño e implementación de la aplicación y por último se presenta las
conclusiones de todo el proceso.
2. Objetivos
2.1 Objetivos generales Teniendo en cuenta el contexto y los problemas identificados, se plantea entonces la necesidad de una
herramienta que le ofrezca al usuario la posibilidad de:
1. Sincronizar con la base de datos de SAMA, la cual contiene toda la información sobre la
planeación de las misiones.
2. Tener un panorama global del estado de una misión para facilitar la toma de decisiones
3. Hacer seguimiento al estado de las tareas y ver los detalles de éstas para reducir el tiempo de la
ejecución de la mismas
4. Registrar información sobre el desarrollo de tareas para comparar y poder hacer mejor
planificación en misiones futuras
5. Ver el video que transmiten las cámaras en la plataforma de lanzamiento para poder tener idea
de lo que ocurre en el lugar dese diferentes puntos de vista
8
6. Hacer lo anterior en un ambiente móvil para ofrecer accesibilidad y flexibilidad al usuario
Teniendo los objetivos anteriores se decide llevar a cabo las siguientes actividades:
1. Entender el contexto en que se realizan los lanzamientos, e identificar aspectos importantes a
tener en cuenta durante esta fase de las misiones.
2. Proponer una solución móvil para la organización y coordinación de los lanzamientos de
cohetes. Esto con el fin de dar un panorama global del estado de las misiones para que los
encargados puedan tomar mejores decisiones.
3. Utilizar tecnologías y dispositivos móviles que apoyen la organización y coordinación de las
personas involucradas en la plataforma de lanzamiento de cohetes.
4. Investigar e implementar tecnologías de transmisión de video en dispositivos móviles, en este
caso con sistema operativo Android.
2.2 Objetivos específicos Diseñar una aplicación móvil que facilite y documente la manera como se llevan a cabo las
tareas en la fase de lanzamiento. Para lo anterior debe desarrollarse los siguientes productos:
o Punto de vista de información: modelo de datos
o Punto de vista funcional: modelo de componentes
o Punto de vista de despliegue: modelo de despliegue
Desarrollar una aplicación móvil en Android con las siguientes funcionalidades:
o Sincronizar la aplicación con la base de datos de SAMA por medio de web services
o Exportar los datos recolectados a un archivo
o Visualizar las misiones
o Visualizar las etapas de una misión
o Visualizar las tareas de una etapa
o Cambiar los estados de las tareas (sin comenzar, en progreso, terminada y cancelada)
o Visualizar los detalles de una tarea (duración de la tarea, fechas de inicio y fin, rol, grupo
y miembro responsables de la tarea)
o Visualizar el progreso general de una misión (número y porcentaje de tareas
terminadas) y el resumen general del estado de una misión.
o Reproducir los videos que transmiten las cámaras IP en el lugar de lanzamiento
3. Estado del arte
Literatura Kim (2009) dice sobre las buenas prácticas en desarrollo aeroespacial en la sección sobre administración
de proyectos (pg. 328), la importancia de la planeación en el éxito de una misión y la identificación de
roles y responsables poniendo como ejemplo requerimientos procedimentales de la NASA. Además
explica la importancia de la división de la misión en elementos más pequeños y manejables para hacer
más fácil el seguimiento del progreso de las misiones. En particular se menciona la pertinencia de
9
descomponer las misiones en fases y éstas en otros elementos más pequeños si las fases son muy
grandes. Así, se puede programar revisiones sabiendo qué fases se han completado y quiénes las
realizaron para aumentar la productividad. Lo anterior es un buen punto departida para identificar los
requerimientos de una aplicación con el objetivo de ayudar en el proceso de planeación y seguimiento.
Proyectos relacionados
C3 El Centro de Control y Comando – PUA (C3), se inició en el año 2011 con el fin de diseñar e implementar
un sistema capaz de monitorear las misiones de PUA en tiempo real. Además, tiene como objetivo
diseñar el modelo de la infraestructura para soportar el funcionamiento de los sistemas en la plataforma
de lanzamiento. Hasta el momento, tiene la capacidad de recolectar la información del cohete y
presentarla gráficamente en el momento. Además se cuenta con la infraestructura necesaria para poder
transmitir los datos y monitorear el cohete y el lugar de lanzamiento. Se cuenta con equipos como
antenas, servidores, enrutadores y cámaras. Sin embargo, C3 está enfocado en el manejo de la
información producto del lanzamiento más no de la planeación de las misiones. Por esta razón surge el
proyecto SAMA.
SAMA El Sistema Administrador de Misiones Aeroespaciales – PUA (SAMA) se inició al mismo tiempo que el
C3M gracias a la necesidad de una herramienta que facilite el proceso de planeación de las misiones. El
objetivo de este proyecto es registrar las tareas y el procedimiento que se debe llevar a cabo durante las
diferentes fases de la misión para su fácil monitoreo. Aunque cada misión tiene protocolos diferentes en
cada fase, hay algunos elementos de la planeación que son transversales a todas las misiones. Así SAMA
debe ofrece una plantilla general para facilitar el proceso de planeación que se debe ir perfeccionando
con cada misión que se lleva a cabo.
Herramientas en el mercado
Jira Jira es una herramienta diseñada para la gestión de proyectos en equipo. Permite guardar y organizar
tareas, asignar responsables, tener una visión general sobre el estado de un proyecto y seguir el control
del trabajo del equipo y sus miembros. Su precio varía con el número de usuarios o de miembros de los
proyectos. Existe una aplicación móvil que permite dar feedback y reportar incidentes desde un
dispositivo móvil. También permite ver detalles y reportes sobre las tareas. Es fácil de usar y
personalizar para satisfacer las necesidades del equipo de trabajo ya que permite definir los tipos de
tareas, campos y workflows.
10
En la siguiente imagen se puede ver un ejemplo de un reporte sobre el estado general de un proyecto.
En la barra superior se representa con el color rojo las tareas por hacer, con amarillo las que están en
progreso y en verde las que están hechas.
Ilustración 1 – Jira, progreso
Imagen tomada de: https://pua.uniandes.edu.co/jira/
11
En la siguiente imagen se ve como se representan las tareas en tarjetas, qué información hay en cada
una, y cómo se manejan. Se puede ver la descripción de las tareas, el responsable y la prioridad entre
otras cosas. Para cambiar el estado de la tarea, ésta se arrastra a la columna a la que pertenece (por
hacer, en progreso, hecha).
Ilustración 2 – Jira, tareas
Imagen tomada de: https://pua.uniandes.edu.co/jira/
4. Especificaciones
4.1 Usuarios principales La aplicación fue diseñada teniendo en cuenta especialmente a los directores y líderes de las misiones.
En la plataforma de lanzamiento es importante para ellos contar con la información necesaria para
organizar a las personas en sus tareas así que la aplicación está hecha principalmente para las personas
que cumplen estos roles.
12
4.2 Casos de uso
Teniendo en cuenta los objetivos de la aplicación se muestra a continuación una visión general por
medio de un diagrama de casos de uso:
Ilustración 3 - Casos de uso
13
4.3 Requerimientos funcionales
Tabla 2 - Requerimiento funcional 1
Identificador RF-1
Nombre caso de uso Sincronizar base de datos con SAMA
Actor(es) Usuario
Indispensable/deseable Indispensable
Prioridad Alta
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario hace clic en el botón de sincronizar la base de datos con
SAMA. La aplicación pide confirmación y ejecuta la acción. Se
muestra un mensaje con el resultado
Entradas N/A
Resultados La base de datos es sincronizada con SAMA por medio de web
services y se muestra un mensaje con el resultado
Curso básico de eventos 1. El usuario hace clic en el menú Sincronizar
2. El usuario hace clic en el botón Sincronizar con SAMA
3. La aplicación pide confirmación
4. La base de datos es sincronizada
5. La aplicación muestra el resultado de la acción en un
mensaje
Caminos alternativos N/A
14
Caminos de excepción ● El dispositivo móvil no tiene conexión a internet o se
produce un error al requerir los web services. La aplicación
informa el error
Punto de extensión N/A
Pre-condiciones N/A
Post-condiciones N/A
Tabla 3 - Requerimiento funcional 2
Identificador RF-2
Nombre caso de uso Exportar base de datos a un archivo
Actor(es) Usuario
Indispensable/deseable Deseable
Prioridad Media
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario hace clic en el botón de Exportar a archivo. La aplicación
ejecuta la acción. Se muestra un mensaje con el resultado
Entradas N/A
Resultados Se muestra un mensaje con el resultado de la acción.
Curso básico de eventos 1. El usuario hace clic en el menú Sincronizar
2. El usuario hace clic en el botón Exportar a archivo
3. El archivo es generado
4. La aplicación muestra el resultado de la acción en un
mensaje
15
Caminos alternativos N/A
Caminos de excepción ● Se produce un error al crear el archivo. La aplicación informa
el error
Punto de extensión N/A
Pre-condiciones N/A
Post-condiciones N/A
Tabla 4 - Requerimiento funcional 3
Identificador RF-3
Nombre caso de uso Visualizar misiones, fases, etapas y tareas
Actor(es) Usuario
Indispensable/deseable Indispensable
Prioridad Alta
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen La aplicación despliega las misiones, fases, etapas y tareas en una
lista
Entradas N/A
Resultados Se despliegan las misiones, fases, etapas o tareas y su información
en una lista
Curso básico de eventos 1. El usuario hace clic sobre un ítem (misión, fase o etapa) para
ver la lista de elementos que lo componen (fases, etapas o
tareas)
2. La aplicación despliega la lista de elementos que componen
16
al ítem seleccionado
Caminos alternativos N/A
Caminos de excepción N/A
Punto de extensión N/A
Pre-condiciones ● El ítem en el que se hace clic debe existir
Post-condiciones N/A
Tabla 5 - Requerimiento funcional 4
Identificador RF-4
Nombre caso de uso Ver detalles de una tarea
Actor(es) Usuario
Indispensable/deseable Indispensable
Prioridad Alta
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario hace clic en una tarea para ver información detallada de
ésta. La aplicación despliega un dialogo con la información de la
tarea
Entradas N/A
Resultados Se despliega el dialogo con la información de la tarea
Curso básico de eventos 1. El usuario hace clic sobre la tarea
2. Se muestra el dialogo con la información
Caminos alternativos N/A
17
Caminos de excepción N/A
Punto de extensión N/A
Pre-condiciones ● La tarea debe existir
Post-condiciones N/A
Tabla 6 - Requerimiento funcional 5
Identificador RF-5
Nombre caso de uso Cambiar la fecha de lanzamiento de una misión
Actor(es) Usuario
Indispensable/deseable Deseable
Prioridad Media
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario hace clic en la misión a la cual desea cambiarle la fecha de
lanzamiento, ingresa la fecha estimada de lanzamiento y el cambio
es guardado en la base de datos
Entradas ● La fecha estimada de lanzamiento
Resultados Se muestra la nueva fecha de lanzamiento de la misión en la lista de
misiones
Curso básico de eventos 1. El usuario hace clic en la fecha de la misión a la cual desea
cambiarle la fecha de lanzamiento
2. El usuario ingresa la fecha de lanzamiento
3. El usuario ingresa la hora de lanzamiento
4. Se cambia la fecha de lanzamiento
18
Caminos alternativos El usuario puede cancelar la acción
Caminos de excepción N/A
Punto de extensión N/A
Pre-condiciones ● La misión debe existir
Post-condiciones ● La fecha de lanzamiento es actualizada en la base de datos
Tabla 7 - Requerimiento funcional 6
Identificador RF-6
Nombre caso de uso Cambiar el estado de una o varias tarea
Actor(es) Usuario
Indispensable/deseable Indispensable
Prioridad Alta
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario selecciona una o varias tareas y cambia su estado
Entradas ● El nuevo estado de la/s tarea/s
Resultados Se muestra el cambio en el estado de la/s tarea/s
Curso básico de eventos 1. El usuario selecciona una o varias tareas
2. El usuario hace clic en el estado que tomara la tarea/s
3. El cambio se ve reflejado en la lista de tareas
Caminos alternativos N/A
Caminos de excepción ● El nuevo estado no es permitido para esa tarea/s (por
ejemplo: cancelar una tarea terminada)
19
Punto de extensión N/A
Pre-condiciones ● La/s tarea/s debe/n existir
Post-condiciones ● La base de datos es actualizada con los cambios
Tabla 8 - Requerimiento funcional 7
Identificador RF-7
Nombre caso de uso Ver el progreso general de una misión
Actor(es) Usuario
Indispensable/deseable Indispensable
Prioridad Alta
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/201
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario hace clic en el botón Ver progreso de la misión y se
despliega un diálogo con la información
Entradas N/A
Resultados Se muestra la información en un diálogo
Curso básico de eventos 1. El usuario hace clic en el menú
2. El usuario hace clic en la opción Ver progreso
3. El diálogo con la información se despliega
Caminos alternativos N/A
Caminos de excepción N/A
Punto de extensión N/A
Pre-condiciones ● La misión debe existir
20
Post-condiciones N/A
Tabla 9 - Requerimiento funcional 8
Identificador RF-8
Nombre caso de uso Ver el video de una cámara
Actor(es) Usuario
Indispensable/deseable Deseable
Prioridad Alta
Visibilidad Visible
Autor Silvana Pedraza
Fecha elaboración 18/11/2012
Revisión N/A
Última fecha de revisión N/A
Resumen El usuario hace clic en el menú Ver cámaras y escoge una. El video
se reproduce
Entradas N/A
Resultados Se reproduce el video de la cámara
Curso básico de eventos 1. El usuario hace clic en el Menú Ver cámaras
2. El usuario selecciona una cámara de una lista
3. El video se reproduce
Caminos alternativos N/A
Caminos de excepción El dispositivo móvil no tiene conexión a Interent o se produce un
error al recuperar la imagen de la cámara. La dirección IP es
incorrecta o las cámaras no están en funcionamiento
Punto de extensión N/A
Pre-condiciones N/A
21
Post-condiciones N/A
4.4 Requerimientos no funcionales
Motivadores de negocio
Tabla 10 - Motivador de negocio 1
Nombre del Motivador de Negocio Descripción del Motivador de Negocio
Facilitar el control del desarrollo de las tareas en la
plataforma de lanzamiento
Se desea facilitar y agilizar el desarrollo de las
tareas en la plataforma de lanzamiento de las
tareas con mejor claridad sobre el estado de la
misión
Estrategias a Seguir
La aplicación se usa el 100 % de las veces para el desarrollo de las tareas.
Rangos Cota Mínima Cota Máxima
Ninguno 0% 0%
Bajo 1% 25%
Moderado 26% 50%
Fuerte 51% 75%
Muy Fuerte 76% 100%
Asociación del Motivador con el
Negocio
Definido
Por:
Arquitecto de software
Ejecutado
Por:
Usuario final
22
Escenarios de calidad
Tabla 11 - Escenario de calidad 1
Escenario de
Calidad #
ES-1 Stakeholder:
Arquitecto de
software
Prioridad:
Alta
Atributo de
Calidad
Confiabilidad
Justificación Se desea que la aplicación tenga un mínimo de tareas en la que ésta responde
en un tiempo aceptable (mil tareas)
Fuente Usuario
Estímulo Se pide a la aplicación mostrar el progreso general de una misión con mil tareas
Artefacto Dispositivo móvil
Ambiente Normal
Respuesta La aplicación muestra el progreso general de la misión
Medida de la
Respuesta
La aplicación responde en menos de cinco segundos
Tabla 12 - Escenario de calidad 2
Escenario de
Calidad #
ES-2 Stakeholder:
Arquitecto de
software
Prioridad:
Alta
Atributo de
Calidad
Confiabilidad
Justificación Se desea que la aplicación tenga un mínimo de tareas en la que ésta responde
en un tiempo aceptable (mil tareas)
Fuente Usuario
Estímulo Se sincroniza la aplicación con una misión con mil tareas
Artefacto Dispositivo móvil
23
Ambiente Normal
Respuesta La aplicación se sincroniza exitosamente
Medida de la
Respuesta
La aplicación se sincroniza en menos de cinco minuto
Para los anteriores escenarios se creó una misión con mil tareas y se observó el comportamiento de la
aplicación. La sincronización se hizo en menos de un minuto y el progreso general de la misión se mostró
en menos de tres segundos. Cabe anotar que la sincronización se hizo con datos mock y no hubo
conexiones por medio de servicios web lo cual puede tomar un tiempo mayor considerable.
Dispositivo usado: Asus Transformer Pad TF300T
Procesador: NVIDIA Tegra 3 Quad-Core (4 x 1.6 GHz)
Memoria: 1GB
Disco: 16GB
Sistema operativo: Android 4.0.3
Ilustración 4 - Prueba de confiabilidad
24
Tabla 13 - Escenario de calidad 3
Escenario de
Calidad #
ES-3 Stakeholder:
Arquitecto de
software
Prioridad:
Alta
Atributo de
Calidad
Usabilidad
Justificación Se desea que la aplicación sea intuitiva y fácil de aprender a usar
Fuente Usuario
Estímulo Manejo de la aplicación para una función específica
Artefacto Dispositivo móvil
Ambiente Normal
Respuesta El usuario logra usar la aplicación para la función específica
Medida de la
Respuesta
Al usuario no se le dificulta usar la aplicación y las funcionalidades son claras
para él. No le toma más de 10 segundos aprender una funcionalidad de la
aplicación
4.5 Restricciones
● Tiempo: 4 meses (correspondientes al periodo 2012-2 con intensidad de 9 horas semanales)
● Especificaciones dispositivo móvil:
o Sistema operativo: Android 4.0 o superior
o Pantalla: 10”
o Procesador: Mínimo un núcleo de 866 MHZ
o Memoria RAM: Mínimo 512 MB
o Disco duro disponible: Mínimo 20 MB
o Plan de datos o conexión Wi-Fi con un bandwidth mínimo de 512 kbps
Nota importante: La aplicación no soporta dispositivos con un tamaño de
pantalla menor a 10” o si no la interfaz gráfica no se mostrará correctamente.
25
5. Diseño de solución
5.1 Vista de despliegue
En el siguiente modelo se observa la plataforma de ejecución del sistema. Es una arquitectura sencilla
donde C3M se conecta con las cámaras para recuperar el video que transmiten y SAMA actúa como
proveedor de servicios para C3M.
Ilustración 5 - Modelo de despliegue
5.2 Vista funcional
En el siguiente modelo se observa la composición de la aplicación en capas.
Ilustración 6 - Modelo de componentes
26
Este modelo cuenta con cuatro componentes generales:
● Interfaz Gráfica: Encargado de la interacción con el usuario y visualización de todos los
elementos gráficos.
● Persistencia: Encargado de persistir la información.
● Negocio: Contiene todas las entidades de negocio.
● Comunicación: Encargado de solicitar los servicios web de SAMA.
5.3 Vista de información
A continuación se presenta el esquema de la base de datos usada en la aplicación que difiere en algunos
aspectos del modelo de SAMA ya que no es necesario tener toda la información que se encuentra en su
base de datos. (El modelo de datos de SAMA se puede ver en Anexos).
Ilustración 7 - Esquema de la base de datos
27
Dado que la base de datos usada es una copia de la base de datos de SAMA y éstas pueden interactuar
en el futuro, se diseñó el esquema con un nivel de normalización alto para evitar redundancias que
pueden generar inconsistencias. Cabe anotar que los recursos en ambiente móviles son limitados y es
importante balancear el uso de memoria y procesador en las operaciones, aunque el manejo de
información en este caso no es en cantidades que puedan afectar el desempeño de la aplicación tanto
como la parte gráfica.
Las consultas y los cambios a la base de datos se producirán en niveles similares durante la fase de
lanzamiento por lo que se debe favorecer tanto la rapidez de las operaciones de consultas como de
cambios. Cabe anotar que para cumplir con los requerimientos de la aplicación no es necesario hacer
muchas sentencias costosas como joins.
A continuación se presenta la explicación del contenido de cada tabla de la base de datos.
Tablas regulares
Tabla 14 – Entidad 1 - Misiones
Id El identificador de la misión
Nombre El nombre de la misión
Descripción La descripción general de la misión
Fecha estimada lanzamiento La fecha estimada de lanzamiento
Fecha real lanzamiento La fecha real de lanzamiento
Estado El estado de la misión (sin comenzar, en progreso, terminada,
cancelada)
Tabla 15 - Entidad 2 - Fases
Id El identificador de una fase de una misión
Nombre El nombre de la fase
Descripción La descripción general de la fase
Orden El orden en el que va la fase respecto al resto de fases (varias fases
pueden tener el mismo orden pues se pueden ejecutar en paralelo)
Estado El estado de la fase (sin comenzar, en progreso, terminada, cancelada)
28
Id misión (foreign key) Identificador de la misión a la que pertenece la fase
Tabla 16 - Entidad 3 - Etapas
Id El identificador de una etapa de una misión
Nombre El nombre de la etapa
Descripción La descripción general de la etapa
Orden El orden en el que va la etapa respecto al resto de etapas (varias etapas
pueden tener el mismo orden pues se pueden ejecutar en paralelo)
Estado El estado de la etapa (sin comenzar, en progreso, terminada, cancelada)
Id fase (foreign key) Identificador de la fase a la que pertenece la etapa
Tabla 17 - Entidad 4 - Tareas
Id El identificador de una tarea de una etapa
Nombre El nombre de la tarea
Descripción La descripción general de la tarea
Categoría Categoría a la que pertenece la tarea (redes, microelectrónica )
Orden El orden en el que va la tarea respecto al resto de tarea (varias tarea
pueden tener el mismo orden pues se pueden ejecutar en paralelo)
Duración estimada Duración estimada de la tarea en minutos
Duración real Duración real de la tarea en minutos
Estado El estado de la tarea (sin comenzar, en progreso, terminada, cancelada)
Fecha inicio Fecha en la que se inició la tarea
Fecha fin Fecha en la que finalizó la tarea
Id etapa (foreign key) Identificador de la etapa a la que pertenece la tarea
Id rol (foreign key) Rol asociado a la tarea responsable de ejecutarla
29
Tabla 18 - Entidad 5 - Grupos
Id El identificador de un grupo de trabajo
Nombre El nombre del grupo de trabajo
Departamento Departamento al que pertenece el grupo (ISIS, IMEC, IELE)
Tabla 19 - Entidad 6 - Roles
Id El identificador de un rol en un grupo
Nombre El nombre del rol
Descripción La descripción general del rol dentro el grupo
Id grupo (foreign key) Identificador del grupo al que pertenece el rol
Tabla 20 - Entidad 7 - Miembros
Id El identificador de un miembro del proyecto PUA
Nombre El nombre de la persona
Apellido El apellido de la persona
Login uniandes Usuario de correo uniandes
Tablas de asociación Tabla 21 - Relación 1 - Grupos por misión
Relaciona los grupos que participan en las diferentes misiones (un grupo puede estar involucrado en más de una misión)
Id El identificador de la relación entre un grupo y una misión
Id misión (foreign key) El identificador de la misión
Id grupo (foreign key) El identificador del grupo
Tabla 22 - Relación 2 - Roles por miembro
Relaciona los roles que tiene un miembro (un miembro puede tener más de un rol)
30
Id El identificador de la relación entre un miembro y un rol
Id miembro (foreign key) El identificador de la persona
Id rol (foreign key) El identificador del rol
6. Implementación
6.1 Descripción de la implementación
La implementación se llevó a cabo en un proceso incremental por etapas partiendo de lo más básico
hasta completar las funcionalidades de la aplicación.
- Prueba entorno de desarrollo: En principio se probó el nuevo entorno de desarrollo dado que se
empezó a diseñar e implementar la aplicación sin ninguna base. Se comenzó desarrollando prototipos
basados en los tutoriales publicados en la p[agina de desarrolladores de Android (ver referencias) que
probaban las funcionalidades básicas de Android que se usarían en la aplicación.
- Desarrollo de las funcionalidades básicas: En esta etapa se implementaron las interfaces gráficas
donde se desplegaría las misiones, fases, etapas y tareas y donde se interactuaría con éstas. Además se
desarrolló algunas funcionalidades extra como el despliegue del estado general de una misión. Aquí se
usaban datos mock para probar el correcto funcionamiento. Como base se tomaron los protocolos
definidos en documentos de misiones anteriores como la de Urrego y Victoria. (Ver referencias).
- Desarrollo de base de datos: En esta etapa se implementó la base de datos con la librería que provee
Android, SQLite. El objetivo de esta etapa fue persistir los datos localmente similar a como persiste en la
base de datos de SAMA para la futura comunicación que se implementaría por medio de web services.
- Desarrollo de menús y extensiones: En esta etapa se desarrolló los elementos gráficos y la lógica para
que la interacción con el usuario fuera más intuitiva y las funcionalidades fueran claras. Por ejemplo, el
uso de iconos sugestivos a las acciones a las que se refieren, fácil navegación y botones en lugares fáciles
de acceder.
- Desarrollo de reproducción de video: En esta etapa se implementaron los hilos en los que se
reproduce el video captado por las cámaras IP en la plataforma de lanzamiento.
- Comunicación: En esta etapa se desarrollaron los métodos encargados de consumir los servicios la
base de datos de SAMA para poblar la base de datos.
31
- Pruebas: Se llevaron a cabo pruebas con usuarios para verificar la usabilidad de la aplicación y el
correcto funcionamiento de ésta.
6.2 Resultados
Las siguientes imágenes son el resultado de la aplicación desarrollada y algunas de sus funcionalidades
más importantes. Las imágenes son tomadas de un emulador de una tableta de 10” con sistema
operativo Android 4.1
Ilustración 8 - C3M, menú principal
32
Ilustración 9 - C3M, listado de misiones
Ilustración 10 - C3M, listado de fases
33
Ilustración 11 - C3M, listado de etapas
Ilustración 12 - C3M, listado de tareas
34
Ilustración 13 - C3M, listado de tareas depuradas
Ilustración 14 - C3M, selección de una misión para ver su progreso
35
Ilustración 15 - C3M, progreso general de una misión
Ilustración 16 - C3M, selección de una cámara para ver su imagen
36
Ilustración 17 - C3M, imagen de una cámara
Ilustración 18 - C3M, configuración de las cámaras
37
Ilustración 19 - C3M, sincronización con la base de datos
Herramientas empleadas:
Eclipse 4.1.0
Android API 16
SQLite 2.0 v1
7. Conclusiones
Como se evidencia en la sección anterior en las imágenes producto de la implementación de la
aplicación, se puede concluir que los objetivos propuestos en un principio fueron logrados. La aplicación
permite visualizar el estado de las misiones y los detalles de los elementos que las componen, permite
identificar las tareas a ejecutar y sus responsables. Además permite ver lo que las cámaras transmiten
en el lugar de lanzamiento en el momento.
7.1 Productos
Los productos fueron por un lado la aplicación funcional que cumple con los siguientes requerimientos:
● Visualizar misiones, fases, etapas y tareas
● Visualizar detalles de las tareas
● Visualizar el estado general de una misión
● Visualizar el video de las cámaras IP dispuestas para grabar el lugar de lanzamiento
38
● Registrar la ejecución de las tareas
Y por otro lado, se diseñó y documentó:
● Casos de uso
● Requerimientos funcionales
● Motivadores de negocio y escenarios de calidad
● Modelo de despliegue
● Modelo funcional
● Modelo de información
7.2 Problemas y soluciones
En la implementación de la aplicación a pesar de que no se encontró casi ningún problema, el único que
aún subsiste está en proceso de solución. Dado a que en ambientes móviles los recursos son limitados,
los sistemas operativos imponen restricciones que limitan las posibilidades de los desarrolladores. Como
no se encontró ninguna librería para Android que ofreciera la posibilidad de reproducir el video de las
cámaras Foscam con las que se cuenta en el lugar de lanzamiento, se intentó mostrar un snapshot
disponible en la red y refrescar la imagen cada cierto tiempo. Se intentó usar hilos y tareas asíncronas
para esto sin ningún éxito.
Como solución se puede instalar aplicaciones en el dispositivo móvil que permiten manejar y ver el
video de las cámaras IP. Existen aplicaciones gratuitas muy bien calificadas como Foscam Viewer Lite.
(Ver referencias).
Se hicieron pruebas con tres cámaras y los resultados fueron satisfactorios. A continuación se ve el
funcionamiento de la aplicación probada Foscam Viewer Lite.
Ilustración 20 - Prueba con Foscam Viewer Lite
También se hicieron pruebas con el demo de otra aplicación, Foscam Monitor, que no es gratuita y
tiene un valor de 2.61 dólares. Con el demo sólo se pudo probar una cámara pero tiene las mismas
39
funcionalidades que Foscam Viewer Lite, además permite controlar la dirección en las que enfocan las
cámaras y no se tienen los avisos de propagandas.
Se hizo la prueba con una cámara y los resultados fueron los siguientes:
Ilustración 21 - Prueba con Foscam Monitor Demo
7.3 Trabajo futuro
En el diseño e implementación del proyecto se pudo identificar algunas funcionalidades que serían
interesantes como propuesta para desarrollar en el futuro y mejorar la aplicación.
En primera instancia está la parte de sincronización con SAMA. Dado a que esta aplicación todavía no
está terminada es importante que en el futuro cuando se haya desarrollado la base, se desarrolle la
parte de C3M que se sincroniza con la base de datos de SAMA. Para esto, SAMA debe exponer servicios
web con la información de las misiones para que C3M pueda consumir estos servicios y poblar su base
de datos.
Po otro lado está la autenticación. Por el momento no se cuenta con un sistema de autenticación de
usuarios, lo cual por razones de seguridad es importante que exista.
Además, dado que uno de los objetivos principales de la aplicación es obtener información para la
retroalimentación de las misiones, sería pertinente que se pudieran generar reportes que contrastaran
los datos sobre lo planeado con los datos recolectados sobre la realidad para hacer análisis posteriores.
Para esto sería necesario poder sincronizar la base de datos de SAMA con los datos recolectados por
C3M. Así, sería necesario que SAMA ofreciera servicios web que no solo provean información sino que
permitan modificar la base de datos para actualizar los datos reales y por su lado C3M consuma estos
servicios web para cargar la información a la base de datos.
40
También sería útil para los usuarios de la aplicación poder tener retroalimentación sobre lo planeado y
el estado de la misión en el momento del lanzamiento y no solo después de todo el proceso en el
momento de análisis. Estos reportes también sería muy útil poder generarlos en la aplicación teniendo
en cuenta las restricciones de los dispositivos móviles.
Por último, se podría considerar la posibilidad de permitirle al usuario modificar la información de las
misiones a medida que se van ejecutando. Por ejemplo, editar, eliminar o agregar tareas, agregar
nuevos roles y miembros y relacionarlos a tareas.
8. Referencias
[1] Fowler, Kim. (2009). Mission-Critical and Safety-Critical Systems Handbook. Chapter 5: Best
Practices in Spacecraft Development. Oxford: Newnes
[2] Urrego Peña, José Alejandro. (2012). Investigación en cohetería experimental. Estudio de
factibilidad de la primera misión colombiana de cohetería experimental con propulsión líquida y
alcance estratosférico. Proyecto PUA, misión SENECA II. Bogotá: Universidad de los Andes
[3] Victoria Poveda, Oscar Sebastián. (2012). Misión SENECA III: Lanzamiento de un cohete balístico
multietapa con combustible tipo candy. Bogotá: Universidad de los Andes
[4] Macias Lamprea, Bernanrdo Jose; Feijoo García, Pedro Gullermo; Arteaga Martin, Santiago
Felipe. (2012). Sistema de Comando y Control de Misiones Aeroespaciales PUA-C3. Bogotá:
Universidadde los Andes
[5] Anónimo. (s.f.). Jira. Recuperado el 21 de noviembrede 2012, de
http://www.atlassian.com/es/software/jira/overview
[6] Anónimo. (s.f.). Jira Mobile Connect. Recuperado el 21 de noviembre de 2011,
http://www.atlassian.com/es/software/jiramobileconnect/overview
[7] Anónimo. (s.f.). Android Developers. Recuperado el 21 de noviembre de 2012, de
http://developer.android.com/index.html
[8] Google Play. Foscam Viewer Lite. Recuperado el 28 de noviembre de 2012, de
https://play.google.com/store/apps/details?id=com.slsoftlogic.foscamviewer&hl=en
[9] Google Play. Foscam Monitor. Recuperado el 28 de noviembre de 2012, de
https://play.google.com/store/apps/details?id=com.amstapps.xfoscamviewer
41
Anexos Anexo 1 - Esquema de la base de datos de SAMA