Modelos de Procesos para el Desarrollo de Software Orientado a Objetos Jonas A. Montilva, Ph.D. ULA - Facultad de Ingeniería Escuela de Ingeniería de Sistemas Departamento de Computación Mérida – Venezuela Maracaibo, Noviembre 2000 Contenidos Ciclos de vida del sofware y los modelos de procesos El papel de los modelos de procesos en el desarrollo de software Modelos de procesos orientados a objetos l l l El modelo unificado de Rational El modelo de Bruegge y Dutoit El modelo basado en la reutilización de componentes El estándar IEEE-1074 El modelo de procesos WATCH Conclusiones ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 1 El ciclo de vida del Software El software evoluciona a través de un ciclo de actividades: Development Use Retirement Maintenance ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Modelos de procesos de software Un modelo de procesos es una representación del ciclo de vida del software Describe los procesos requeridos para desarrollar y/o mantener software l sigue un enfoque o paradigma determinado Un proceso es un conjunto estructurado de actividades diseñado para alcanzar un objetivo establecido constraints resources Process results or products control ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 2 Modelos de procesos de software Procesos básicos del desarrollo de software: l Análisis y especificación de requerimientos Diseño de software Implementación Pruebas de software Entrega del software l Mantenimiento del software l l l l Un proceso de software puede ser definido o diseñado como una jerarquía de procesos a diferentes niveles de abstracción: Process Level P P1 ... Pi ... Pi.1 ... Pi.m Pn Activity Level Task Level ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva El papel de los modelos de procesos Los modelos de procesos son la base fundamental para el diseño de un método de desarrollo de software Representan la estructura del método de desarrollo Método Modelo(s) de Procesos El qué Técnicas El cómo Herramientas Lenguaje de Modelado Con qué ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 3 El papel de los modelos de procesos Un modelo de procesos es un marco metodológico para: l Reducir la complejidad del proceso de desarrollo y mantenimiento de software l Guiar al grupo de desarrollo y/o mantenimiento l El modelo da visibilidad al proyecto l Ayudar al líder del proyecto a planificary controlar el proyecto l Asegurar la producción de software de alta calidad l Mejorar el proceso de desarrollo de software en una organización ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Taxonomía de los modelos de procesos El enfoque de ingeniería de sistemas físicos l l l El modelo de cascada El modelo V El modelo “Cleanroom” El enfoque evolutivo l l l l l Modelos basados en prototipos El modelo de espiral El modelo incremental El modelo de versiones El modelo de sincronización y estabilización El enfoque formal l El modelo de transformaciones El enfoque orientado a objetos l l El modelo de Booch El modelo unificado de Rational El enfoque de reutilización de software l Los modelos basados en componentes reutilizables ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 4 Los modelos y métodos OO más conocidos Rational Unified Process (G. Booch, J. Rumbaugh, and I. Jacobson) OPEN: OO Process, Environment, and Notación usada (B, Henderson-Hellers) OSM: OO System Modeling ( R. Jackson, et al) SOMA: Semantic Object Modeling Approach (I,. Graham) RDD: Responsibility-Driven Design (R. Wirfs-Brock) CCR Cards: Class-Responsibility-Collaboration (N. Wilkinson) Fusion (D. Coleman, et al) OOAD: OO Analysis and Design (J. Martin and Odell) OOA/OOD (P. Coad and E. Yourdon) OMT: Object Modeling Technique (J. Rumbaugh, et al) Object Lifecycles (Shlaer and Mellor) OOSE: OO Software Engineering (I. Jacobson, et al) The Booch Method (G. Booch) ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva El modelo unificado de Rational Es un modelo de procesos OO desarrollado por Rational, Co. Un proyecto se desarrolla a través de una serie de ciclos l Cada ciclo libera un producto al cliente Un ciclo consta de cuatro fases gerenciales: l l l l Comienzo (Inception): l Definición de la idea o visión del producto final, su alcance y su factibilidad Elaboración: l Planificación del proyecto, definición de las características del sistema y de su arquitectura, asignación de recursos Construcción: l Desarrollo del sistema Transición: l Instalación del sistema y su transición al ambiente de operación definitivo ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 5 El modelo unificado de Rational ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva El modelo de Bruegge and Dutoit Es un modelo OO con fines académicos descrito en: l B. Brugge and A. Dutoit. Object –Oriented Software Engineering. Prentice-Hall, 2000. Utiliza el lenguaje de modelado unificado (Unified Modeling Language - UML) Procesos principales del modelo: l l l l l l Descubrimiento de Requerimientos Análisis Diseño del sistema Diseño de objetos Implementación Pruebas ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 6 El modelo de Bruegge and Dutoit Descubrimiento de Requerimientos l l l Propósito: l Definir los objetivos del sistema, su contexto y sus requerimientos funcionales y no-funcionales Producto: l Modelo de Especificación del Sistema Notación usada: l Diagramas de Casos de Uso en UML Análisis l l l Propósito: l Producir un modelo del sistema en términos de sus objetos, atributos y relaciones Producto: l Modelo de Análisis Notación usada: l Diagramas de clases en UML ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva El modelo de Bruegge and Dutoit Diseño del sistema l l l Propósito: l Transformar el modelo de análisis en un modelo que defina la arquitectura del sistema, sus estrategias de implementación y la plataforma de operación Producto: l Arquitectura del sistema y metas de diseño Notación usada: l Diagramas de clase y despliegue en UML Diseño de objetos l l l Propósito: l Refinar el diseño del sistema y convertirlo en un modelo implementable en la plataforma H/S seleccionada Producto: l Modelo Detallado de Objetos Notación usada: l Diagramas de clases, actividades, secuencias, objetos y componentes en UML ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 7 El modelo de Bruegge and Dutoit Implementación l l l Propósito: l Traducir el modelo detallado a programas y documentos Producto: l Programas OO y documentación Notación usada: l Lenguaje de programación OO Pruebas l l l Propósito: l Asegurar la calidad de aplicación a través de los procesos de verificación y validación Producto: l Una aplicación verificada y validada Notación usada: l Diagramas de clases, estado, casos de uso y secuencias en UML ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Modelos basados en componentes Incorporan la reutilización del software en el proceso de desarrollo de aplicaciones "Reutilización de software es el proceso de crear sistemas de software a partir de [activos de] software existentes, en lugar de desarrollarlo desde el comienzo" (Sametinger, 1997) Implican el reuso de activos de software en: l la especificación, l el análisis , el diseño, la implementación y las pruebas de una aplicación o sistema de software l l l ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 8 Modelos basados en componentes Un activo de software reutilizable puede ser: l l l l l l l l l l Un componente de software (p.ej., un módulo, una clase, un procedimiento, una función, un subsistema, una aplicación) Una especificación de requerimientos Un modelo o especificación de diseño Un algoritmo Un patrón de diseño Una arquitectura de dominio Un esquema de base de datos Una especificación de prueba La documentación de un sistema Un plan ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Modelos basados en componentes ¿Qué es un componente de software reutililizable (CSR)? l Son artefactos de software auto-contenidos y claramente identificables que: l describen y/o ejecutan funciones específicas, l tienen interfaces claras, l tienen una documentación apropiada y l tienen un status de reuso definido. [Sametinger, 1997] Un CSR se integra con relativa facilidad a un sistema de software en desarrollo a través de su interfaz. ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 9 Modelos basados en componentes Dos modalidades de desarrollo: l Desarrollo de software para reutilización l Propósito: producir componentes de software reutilizable l Emplea el modelo de procesos de la Ingeniería de Dominios l Desarrollo de software con reutilización l l Propósito: desarrollar aplicaciones reutilizando componentes existentes Emplea el modelo de procesos de la Ingeniería de Aplicaciones ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Modelos basados en componentes Ingeniería de Dominios Diseño del Dominio Análisis del Dominio modelos de análisis Especificación de requerimentos Diseño de la Arquitectura Desarrollo de Componentes diseños genéricos Especificación De Componentes Búsqueda de Componentes componentes Adapt / Des. Componentes Integración de Componentes Ingeniería de Aplicaciones ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 10 El estándar IEEE-1074 Un estándar para desarrollar modelos de procesos y métodos de desarrollo de software Process Group Processes Life Cycle Modeling Selection of a Life Cycle Model Project Management Project Initiation Project Monitoring and Control Software Quality Management Proporciona un marco metodológico para el diseño de modelos y métodos Pre-development Concept Exploration System Allocation Development Requirements Design Implementation Emplea tres niveles jerárquicos: Post-development Installation Operation & Support Maintenance Retirement Integral Process Verification and Validation Software Configuration Management Documentation Development Training l l l Grupos de procesos Procesos Actividades ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Development Processes Management Processes Integral Processes Concept Exploration Process Configuration Mgmt. Process System Allocation Process El estándar IEEE-1074 Requirements Process Project Initiation Process Design Process Implementation Process Training Process Project Monitoring & Ctrl. Processes Installation Process Operation & Support Processes Documentation Developm. Process Verification & Validation Processes S/W Quality Mgmt. Process Maintenance Process Retirement Process ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 11 El Modelo de Procesos WATCH ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva El Modelo de Procesos WATCH Es un modelo de procesos orientado al desarrollo de proyectos de software de pequeño o mediano tamaño Es la evolución de la metodología MEDSI [Montilva, 1985] Integra los mejores aspectos de los siguientes modelos y métodos: l MEDSI-OO El modelo espiral Desarrollo incremental y por versiones l El método OO de Bruegge y Dutoit l l ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 12 El Modelo de Procesos WATCH El estándar IEEE 1074 fue utilizado para crear la estructura de procesos del modelo Emplea el UML como su lenguaje de modelado Metáfora utilizada: el reloj (watch) ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva El Modelo de Procesos WATCH Está estructurado en 4 grupos de procesos: l Ingeniería de Métodos l l l Definición del Proyecto Adaptación y conversión del modelo de procesos en un método Documentación del método de desarrollo l Procesos Gerenciales Procesos de Desarrrollo l Procesos de Post-desarrollo l l l l Operación y soporte Mantenimiento Retiro ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 13 El Modelo de Procesos WATCH Procesos Gerenciales: Procesos de Desarrollo l Iniciación del proyecto Gerencia del Proyecto Gestión de la Calidad Gestión de la Configuración Verificación & Validación Adiestramiento l Documentación l l l l l l l l l l l l l Análisis del Dominio de Aplicación Descubrimiento de Requerimientos Análisis & Especificación de Requerimientos Diseño del Sistema Diseño de Componentes Implementación del Sistema Pruebas del Sistema Entrega del Sistema ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Procesos de Post-Desarr. El Modelo de Procesos WATCH Análisis del Dominio Entrega del Sistema Pruebas del Sistema Descubrim. de Requerim. Procesos Gerenciales Implement. del Sistema Anal. & Espec. de Requerim. Diseño del Sistema Diseño de Componentes ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 14 Procesos Gerenciales Proceso Actividades Gerencia del Proyecto Planificación del proyecto Organización del grupo de desarrollo Dirección del grupo de desarrollo Administración del personal del grupo Control del proyecto Gestión de la Calidad del S/W Planificación de la calidad del S/W Aseguramiento de la calidad del S/W Gestión de la Configuraci ón Planificación de la gestion de configuración Control de la configuración Verificaci ón & Validaci ón Planificación de la V & V Revisiones de Productos Pruebas de Software Adiestramiento Planificación del Adiestramiento Adiestramiento del grupo de desarrollo Producción del material de adiestramiento Documentaci ón Planificación de la Documentación Elaboración de la Documentación Entrega de la Documentación ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Las Fases de Proceso de Desarrollo Análisis del Dominio Entrega del Sistema Descubrim, de Requerim. Pruebas del Sistema Anál. & Espec. de Requerim. Implement. del Sistema Diseno del Sistema Diseño de Componentes ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 15 Fase 1: Análisis del Dominio de Aplicación Objetivo : l Que el grupo de desarrollo adquiera un conocimiento adecuado del dominio de aplicación (el contexto del sistema) Producto: l Modelo del Dominio de Aplicación Modelar los procesos del dominio Definir el dominio de la aplicación Identificar los actores del dominio Documentar el modelo del dominio Validar el modelo del dominio Modelar los objetos del dominio Act. técnica ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Act. gerencial Fase 2: Descubrimiento de Requerimientos Objetivo : l Descubrir y definir informalmente los requerimientos de los usuarios del sistema Productos: l l Documento de Definición de Requerimientos (DDR) Prototipo de la interfaz Usuario/Sistema (U/S) Descubrir Requerim. Funcionales Elaborar un prototipo de la interfaz U/S Elaborar el documento DDR Validar el DDR Descubrir Requerim. No-funcionales ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 16 Fase 3: Especificación de Requerimientos Objetivo : l Expresar los requerimientos de los usuarios de una manera formal o técnica que pueda ser entendida, sin ambiguedad, por los diseñadores del sistema Producto: l Documento de Especificación de Requerimientos (DER) Derivar el Modelo de Objetos Refinar el Modelo Funcional Consolidar los modelos Elaborar el DER Validar el DER Derivar el Modelo Dinámico ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Fase 4: Diseño del Sistema Objetivo : l Traducir los requerimientos del usuario en una solución de software: l una especificación del diseño del sistema Producto: l Documento del Diseño del Sistema (DDS) Diseñar la interfaz U/S Diseñar la arquitectura del sistema Diseñar la base de datos Elaborar el DDS Validar el DDS Diseñar la documentación del sistema ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 17 Fase 5: Diseño de Componentes Objetivo : l Especificar en detalle el diseño de cada componente y conector de la arquitectura del sistema Producto: l Documento de Diseño de Componentes (DDC) Seleccionar y buscar compon. reutilizables Especificar los servicios de c/componente Adaptar los componentes reutilizables Elaborar el DDC Validar el DDC Diseñar los componentes no reutilizables ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Fase 6: Implementación del Sistema Objetivo : l l Traducir las especificaciones de diseño en un producto de software Verificar que los programas implementan el diseño y asegurar su calidad Productos: l l Un sistema parcialmente probado Documentación del sistema Planificar las pruebas Probar los componentes Probar la integración de componentes Codificar los componentes Validar el sistema Producir la documentación ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 18 Fase 7: Pruebas del Sistema Objetivo : l Asegurar que el sistema hace lo que el cliente y los usuarios quieren que haga Producto: l Un sistema validado que está listo para ser instalado Planificar las pruebas Realizar pruebas funcionales Realizar las pruebas no-funcionales Realizar la prueba de aceptación ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Fase 8: Entrega del Sistema Objetivo : l Transferir el sistema de su ambiente de desarrollo a su ambiente de operación Producto: l Un sistema instalado y en operación Planificar las pruebas Realizar las pruebas de instalación Instalar el sistema Adiestrar a l personal de soporte Entregar el sistema al cliente Adiestrar a los usuarios ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 19 Conclusiones Principales características del modelo WATCH: l l l Es simple Es completo Es adaptable Su estructura permite al grupo de desarrollo adaptar el modelo a las características particulares del proyecto Puede ser utilizado como un marco referencial para mejorar los procesos de desarrollo de software en organizaciones pequeñas y medianas Ha sido utilizado en el desarrollo de proyectos académicos en los departamentos de computación de l l La Universidad del Sur de Florida (Tampa, USA) La Universidad de Los Andes ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva Fin de la conferencia ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 20 (Persistencia, S. Dal í) ULA - Fac. de Ingeniería - Esc. de Sistemas - Dpto. de Computación - J. Montilva 21