Iacullad de Ingenieia Lleclinica y Teleconunicaciones Depailanenlo de Ingenieia Telenlica Apuntes sobre el Proceso Unificado para el Desarrollo de Programas Alvaro Rendon Gallon Iopayn, nayo de 2OOO Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica i Tabla de Contenido Pg. 1. Actividades y productos de los componentes de ingeniera.................1 1.1 Captura de Requerimientos ...............................................................................1 1.2 Anlisis.................................................................................................................3 1.3 Diseo...................................................................................................................5 2. Documentacin de los Programas..........................................................7 2.1 Introduccin ........................................................................................................7 2.2 Anlisis de Requerimientos del Software .........................................................8 2.3 Anlisis del Software ..........................................................................................9 2.4 Diseo del Software ............................................................................................9 2.5 Implementacin del Software ..........................................................................10 2.6 Pruebas del Software ........................................................................................10 3. Referencias ............................................................................................ 12 ApuntesUP.doc V1.0 Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 1 1. Actividades y productos de los componentes de ingeniera 1.1 Captura de Requerimientos Las actividades realizadas, junto con los productos obtenidos en cada una son: Anlisis del dominio - Modelo del Dominio. El Modelo del Dominio identiIica los elementos Iundamentales del problema y las relaciones que se encuentran entre ellos. Se representa como un diagrama de clases con nombres y atributos para estas, mas sus relaciones de asociacion (incluyendo cardinalidad) y herencia. La Eigura 1 muestra a manera de ejemplo un Modelo del Dominio para una llamada teleIonica basica. - Glosario (Diccionario de datos) Figura 1. Modelo del dominio de una llamada telefnica bsica Construccin del rbol de funciones Se identiIican la Iunciones del sistema, estableciendo una jerarquia donde las Iunciones mas generales agrupan a las mas especiIicas. La Eigura 2 muestra un Iragmento del arbol de Iunciones para el sistema de gestion de la biblioteca. Encontrar Actores y Casos de Uso - Bosquejo del Modelo de Casos de Uso A-B: Llamada Marcado#6211234 Estado : contestada A. Abonado Nombre : Pedro Perez Estado : B: Abonado Nombre : Juan Pardo Estado : AF: Facilidad Telefono#2345678 Estado : A-B: Conexion Estado : conectad BF: Facilidad Telefono#6211234 Estado : Llamante Llamado Controlador Terminal1 Terminal2 Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 2 Figura 2. rbol de funciones (fragmento) Priorizar Casos de Uso Se determina cuales casos de uso deben ser desarrollados (e.g. analizados, diseados, implementados, etc.) en las primeras iteraciones, y cuales en las iteraciones posteriores. Este resultado es usado como un insumo en la actividad de elaboracion del plan de desarrollo del soItware. Detallar Casos de Uso - Descripcion de los casos de uso Casos de uso de alto nivel Para los mas criticos se utiliza la descripcion extendida. Construir Prototipos de las Interfaces de Usuario - Maquetas de las interIaces de usuario Estructurar el Modelo de Casos de Uso - Modelo de Casos de Uso Analizar Riesgos y Definir Plan del Software - IdentiIicar los riesgos que pueden aIectar el desarrollo del proyecto y establecer las estrategias y acciones que conducen a eliminarlos o reducirlos. - Teniendo en cuenta los resultados del analisis de riesgos, establecer la estrategia de desarrollo del proyecto, a saber, las iteraciones a traves de las cuales va a evolucionar el producto, indicando para cada prototipo cuales Casos de Uso se van a incluir en su realizacion. 1. Atencion al Lector 1.1 Consultar titulos 1.2 Reservar libros 2. Eunciones del Monitor 2.1 Reservar libros 2.1.1 Hacer reserva 2.1.2 Borrar reserva 2.2 Prestar libros 3. Eunciones del Director 3.1 Gestion de titulos 3.1.1 Adquirir titulo 3.1.2 Catalogar titulo 3.1.3 Retirar titulo 3.2 Gestion de monitores 3.3 Estadisticas Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 3 - Establecer los recursos requeridos en las diIerentes etapas del desarrollo del proyecto y elaborar el presupuesto. - Estimar los tiempos de desarrollo requeridos y elaborar el cronograma de actividades. Productos Finales Los productos Iinales obtenidos son: - EspeciIicacion de requerimientos. Descripcion narrativa del sistema. Propositos del sistema. Eunciones del sistema. Atributos y restricciones. - Modelo del Dominio. - Glosario. - Arbol de Iunciones. - Modelo de Casos de Uso. Descripcion de los casos de uso. Maquetas de las interIaces de usuario. - Analisis de riesgos y plan de desarrollo del soItware. Riesgos y estrategias de manejo. Estrategia de desarrollo: Relacion de prototipos y casos de uso. Cronograma. Presupuesto. 1.2 Anlisis Las actividades realizadas, junto con los productos obtenidos en cada una son: Anlisis de la Arquitectura - Bosquejo de los paquetes - Bosquejo de las clases de analisis - Descripcion de la arquitectura (vista del Modelo de Analisis). Esta es la primera actividad en la obtencion de la Vista Logica del sistema, que como se vera en las actividades subsiguientes, es un proceso iterativo guiado por escenarios, los cuales estan representados por los Casos de Uso. En la identiIicacion de las clases de analisis se utilizan las siguientes categorias de clases: Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 4 - Entidad (Entitv): Modelado de inIormacion - InterIaz (Boundarv): Modela las comunicaciones con el exterior - Control (Control): Modela el comportamiento - Excepcion (Exception): Gestiona excepciones Clases de Entidad - ReIlejan el mundo real o se crean para tareas internas - No dependen del entorno del sistema - Pueden ser independientes de la aplicacion - Se obtienen examinando las responsabilidades del sistema en los casos de uso Clases de InterIaz - Proveen la interIaz con el usuario o con otros sistemas - Dependen del entorno del sistema - Se obtienen examinando las relaciones actor-escenario en los casos de uso - Se reIinan durante el diseo para considerar los protocolos de comunicacion Clases de Control - Coordinan los eventos necesarios para implementar el comportamiento especiIicado en el caso de uso - Son dependientes de la aplicacion - Al comienzo, existe una clase de control para cada par actor-caso de uso La vista arquitectural del Modelo de Analisis describe los elementos del modelo que son signiIicativos para la arquitectura del sistema: paquetes, clases claves y casos de uso que realizan Iuncionalidades criticas e importantes. Anlisis de los Casos de Uso - Realizacion de los Casos de Uso para Analisis Descripcion de casos de uso abstractos Realizacion de casos de uso con Diagramas de Interaccion (Colaboracion o Secuencia). - Bosquejo de las clases de analisis Anlisis de Clases - Clases de analisis Responsabilidad de las clases Atributos Relaciones Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 5 Diagramas de estados. Comportamiento de aquellos objetos del Modelo de Analisis que deben ser modelados con estados. Las relaciones entre clases resultan de examinar los escenarios (Diagrama de Secuencia). Los mensajes entre objetos indican relaciones entre sus respectivas clases. Anlisis de Paquetes - Diagrama de paquetes Clases que contienen Dependencias Productos Finales Los productos Iinales obtenidos son: - Descripcion de casos de uso abstractos - Diagrama de Paquetes - Clases de analisis - Realizacion de los Casos de Uso para Analisis (Diagramas de interaccion) - Manual de usuario (primera version) 1.3 Diseo Las actividades realizadas, junto con los productos obtenidos en cada una son: Diseo de la Arquitectura - Modelo de Implantacion. - Bosquejo de los subsistemas. Se parte de los paquetes identiIicados en la Iase de Analisis. - Bosquejo de las interIaces. - Bosquejo de las clases de diseo. - Descripcion de la arquitectura (vista del Modelo de Diseo). Describe los elementos del Modelo de Diseo que son signiIicativos para la arquitectura: Subsistemas, sus interIaces y sus dependencias. Clases de diseo signiIicativas para la arquitectura. Realizaciones de casos de uso para Iuncionalidades importantes o criticas del sistema. Diseo de Casos de Uso - Realizacion de los casos de uso para Diseo. Descripcion de casos de uso reales Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 6 Realizacion de casos de uso con Diagramas de Secuencia. - Bosquejo de las clases de diseo. - Bosquejo de los subsistemas. - Bosquejo de las interIaces. Diseo de Clases - Clases de Diseo. Operaciones y metodos (algoritmos). Atributos. Relaciones. Diagramas de estados. Las operaciones se identiIican examinando los mensajes en el Diagrama de Secuencias. Cada mensaje implica una operacion en la clase receptora. Los atributos se encuentran en el planteamiento del problema, los requerimientos y los casos de uso. Diseo de Subsistemas - Subsistemas. - InterIaces oIrecidas por los Subsistemas. Productos Finales Los productos Iinales obtenidos son: - Descripcion de casos de uso reales. - Subsistemas e interIaces. - Clases de Diseo. - Realizacion de los Casos de Uso para Diseo (Diagramas de interaccion). - Modelo de Implantacion. - Descripcion de la arquitectura (vista del Modelo de Diseo). - Manual de usuario (segunda version) Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 7 2. Documentacin de los Programas 2.1 Introduccin El desarrollo de programas se encuentra normalmente enmarcado dentro de proyectos que tienen como objetivo la obtencion de un producto industrial que involucra una amplia gama de tecnologias, y se inter-relaciona con diversos tipos de usuarios que deben seguir generalmente procedimientos bien establecidos. La complejidad de los productos exige un minucioso registro de todos los aspectos que han sido considerados en su desarrollo, lo mismo que una deIinicion clara y precisa de la manera como debe ser Iabricado, instalado, operado y mantenido. Es evidente que del cumplimiento de estas exigencias, a traves de una documentacion de calidad, depende en gran medida el exito de los proyectos. DesaIortunadamente no son muchos los productos que se documentan adecuadamente, diIicultando enormemente su mantenimiento, privando a sus realizadores de las posibilidades de las distintas Iormas de reutilizacion, e incluso poniendo en grave riesgo la misma propiedad de las empresas sobre los desarrollos al no contar con la inIormacion para reproducirlos. Se podria decir que, mas que en el equipo o el codigo que se entrega al cliente, es en la documentacion donde reside el Iruto del trabajo realizado. Haciendo una analogia con el mundo de la orientacion a objetos, la documentacion constituye la Clase mientras que los sistemas entregados a los clientes son las instancias de esa Clase. El conjunto de documentos que deben resultar del proceso de desarrollo de un producto es bastante amplio, e incluye la descripcion general del sistema, los manuales de produccion, instalacion, operacion y mantenimiento, los documentos de desarrollo de los programas, y seguramente otros de caracter administrativo. En el presente capitulo se oIrece una guia general para la elaboracion de los documentos de desarrollo de los programas, los cuales describen los diIerentes niveles de abstraccion del soItware integrado en el producto, obtenidos a lo largo de su ciclo de vida. Ellos son: Analisis de Requerimientos del SoItware. Analisis del SoItware. Diseo del SoItware. Implementacion del SoItware. Pruebas del SoItware. A continuacion se describe cada uno de estos documentos, haciendo reIerencia a los diagramas UML |1|, que es la notacion seleccionada para representar los modelos del soItware, y tomando como base los procesos de desarrollo de soItware descritos en |2| y |3|. Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 8 2.2 Anlisis de Requerimientos del Software En este documento se consignan las demandas del cliente con relacion al soItware del sistema: sus objetivos, las Iunciones que espera de el, los actores que intervienen, las secuencias de operacion, los Iormatos de entrada de inIormacion y entrega de resultados, y los atributos y restricciones Iuncionales y no Iuncionales (tiempo, espacio, peso, etc.). Consta de los siguientes elementos: EspeciIicacion de requerimientos. Declaracion de los requerimientos realizada por el cliente, que incluye tanto las demandas que ha planteado directamente, como las obtenidas a traves de entrevistas y de analisis conjunto. Contiene: - Descripcion narrativa acompaada por material graIico ilustrativo. - DeIinicion de los propositos del sistema. - IdentiIicacion de las Iunciones mediante la construccion del arbol de Iunciones. Estas son etiquetadas para reIerencias posteriores. - IdentiIicacion de atributos y restricciones. - Maquetas de los Iormatos de entrada y salida. Modelo del Dominio. Diagrama de clases (nombres y atributos) que identiIica los elementos Iundamentales del problema y las relaciones entre ellos. Al igual que el diccionario de datos, contribuye a establecer un vocabulario comun entre los participantes en el proyecto. Diccionario de datos. Glosario inicial de los terminos utilizados. Para toda inIormacion que maneja el sistema debe indicarse su signiIicado, origen y Iormato. Casos de Uso de alto nivel. Contiene el Diagrama de Casos de Uso donde se identiIican los actores y los casos de uso del sistema, mas una descripcion breve, usando dos o tres Irases, de las interacciones de los actores con el sistema. Los casos de uso se ordenan por prioridad, para deIinir el orden de su implementacion, y los mas criticos pueden describirse de manera extendida. Analisis de riesgos. IdentiIicacion, evaluacion inicial (probabilidad de ocurrencia y manera de controlarlos) y priorizacion de los riesgos que aIronta el desarrollo del producto. Plan del soItware. Describe los recursos, las actividades, el cronograma y el presupuesto necesario para desarrollar el soItware. En la programacion de actividades se asignan los casos de uso a los sucesivos ciclos de desarrollo. ReIerencias bibliograIicas. Listado de los documentos, que pueden ser del cliente, de la empresa o de terceros, que han servido de base para realizar el analisis de requerimientos. Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 9 2.3 Anlisis del Software Este documento describe el Modelo de Analisis (tambien llamado Modelo Euncional) del SoItware, es decir, el que representa el comportamiento del sistema con base en los conceptos del dominio del problema, sin entrar aun en los detalles de la solucion. Contiene: Casos de Uso abstractos. Son casos de uso extendidos pero que no entran en detalles de diseo o decisiones de implementacion. Se complementan con las maquetas de las interIaces de usuario. Diagrama de Paquetes de Analisis. Descripcion de los paquetes creados para organizar los elementos del Modelo de Analisis. Diagrama de Clases de Analisis. Describe la clases de analisis, identiIicando sus responsabilidades, atributos, relaciones y requerimientos especiales. Diagramas de Interaccion del Sistema. Describe el comportamiento del sistema, a traves de la realizacion de los casos de uso, en terminos de las interacciones entre las clases de analisis. Diagramas de Estados. Describen el comportamiento de aquellos objetos del Modelo de Analisis que deben ser modelados con estados. Primera version del Manual de Usuario. 2.4 Diseo del Software Describe el Modelo de Diseo del SoItware, que representa los componentes con los cuales se construye el soItware, mas las interacciones entre ellos y su comportamiento. Contiene: Casos de Uso reales. Descripcion de las interacciones reales que ocurren entre el sistema y sus usuarios, incluyendo detalles de diseo y decisiones de implementacion, como por ejemplo, las interIaces graIicas de usuario utilizadas. Diagrama de Paquetes de Diseo. Descripcion de los subsistemas creados para estructurar los elementos del Modelo de Diseo, y sus interIaces. Diagramas de Clases de Diseo. Describen las clases de diseo del sistema. Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 10 Diagramas de interaccion. Describe el comportamiento del sistema, a traves de la realizacion de los casos de uso, en terminos de las interacciones entre las clases de diseo. Utiliza Diagramas de Secuencias y Diagramas de Colaboracion. Diagramas de Estados. Describen el comportamiento de aquellos objetos del sistema que deben ser modelados con estados. Diagramas de Implantacion 1 . Describe la arquitectura del sistema en tiempo de ejecucion: que hardware se requiere para correr el sistema (procesadores y dispositivos de soporte), que tipo de conexiones se utilizan, y donde se ejecutan los diIerentes componentes. Descripcion de la arquitectura (vista del Modelo de Diseo). Segunda version del Manual de Usuario. 2.5 Implementacin del Software Describe el codigo producido, los archivos generados (Iuentes, intermedios, ejecutables) y adquiridos (e.g. bibliotecas de Iunciones), y las herramientas y procedimientos requeridos para obtener, instalar y poner en Iuncionamiento los ejecutables del sistema. Contiene: Descripcion de las clases. - Proposito de la clase. - Atributos: Descripcion. - Metodos: Descripcion; entradas; salidas; y metodos, atributos, Iunciones y variables utilizadas. - Clases agregadas. Diagrama de Componentes. Describe los archivos que integran el sistema y las relaciones de dependencia que existen entre ellos. Entorno de produccion. Describe las herramientas y procedimientos utilizados para generar los diIerentes archivos del sistema y poner el sistema en Iuncionamiento. 2.6 Pruebas del Software Contiene la inIormacion sobre las pruebas realizadas durante el desarrollo del sistema, a saber: 1 Deployment. Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 11 Pruebas de unidad. Pruebas de integracion. Pruebas de sistema. Pruebas de aceptacion. Otras (e.g. Pruebas de conIormidad con estandares requeridos). La inIormacion suministrada cubre todo el ciclo de vida de las pruebas: Planeacion, Diseo, Implementacion, Ejecucion y Evaluacion. Apuntes sobre el Proceso Unificado para el Desarrollo de Programas FIET - Departamento de Ingenieria Telematica 12 3. Referencias |1| H.-E. Eriksson and M. Penker. "UML Toolkit". John Wiley and Sons. 1998. |2| T. Quantrani. "Visual Modeling with Rational Rose and UML". Addison-Wesley. 1998. |3| I. Jacobson, G. Booch, and J. Rumbaugh. "The UniIied SoItware Development Process". Addison-Wesley. 1999. |4| C. Larman. "Applying UML and Patterns. An Introduction to Object-Oriented Analysis and Design". Prentice-Hall. 1998.