Está en la página 1de 21

Modelos de Procesos para el Desarrollo de Software Orientado a Objetos

Jonas A. Montilva, Ph.D.


ULA - Facultad de Ingeniera Escuela de Ingeniera de Sistemas Departamento de Computacin
Mrida 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 reutilizacin de componentes

El estndar IEEE-1074 El modelo de procesos WATCH Conclusiones

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El ciclo de vida del Software


El software evoluciona a travs de un ciclo de actividades:

Development

Use

Retirement

Maintenance

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Modelos de procesos de software


Un modelo de procesos es una representacin 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 diseado para alcanzar un objetivo establecido


constraints resources

Process
control

results or products

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Modelos de procesos de software


Procesos bsicos del desarrollo de software:
l l l l l l

Anlisis y especificacin de requerimientos Diseo de software Implementacin Pruebas de software Entrega del software Mantenimiento del software

Un proceso de software puede ser definido o diseado como una jerarqua de procesos a diferentes niveles de abstraccin:
P P1 ... Pi.1 Pi ... ... Pi.m Pn Process Level Activity Level Task Level

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El papel de los modelos de procesos


Los modelos de procesos son la base fundamental para el diseo de un mtodo de desarrollo de software Representan la estructura del mtodo de desarrollo

Mtodo

Modelo(s) de Procesos

Tcnicas

Herramientas

Lenguaje de Modelado

El qu

El cmo

Con qu

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El papel de los modelos de procesos


Un modelo de procesos es un marco metodolgico para:
l

Reducir la complejidad del proceso de desarrollo y mantenimiento de software Guiar al grupo de desarrollo y/o mantenimiento
l

El modelo da visibilidad al proyecto

Ayudar al lder del proyecto a planificary controlar el proyecto Asegurar la produccin de software de alta calidad Mejorar el proceso de desarrollo de software en una organizacin

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Taxonoma de los modelos de procesos


El enfoque de ingeniera de sistemas fsicos
l l l

El modelo de cascada El modelo V El modelo Cleanroom Modelos basados en prototipos El modelo de espiral El modelo incremental El modelo de versiones El modelo de sincronizacin y estabilizacin El modelo de transformaciones El modelo de Booch El modelo unificado de Rational Los modelos basados en componentes reutilizables
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El enfoque evolutivo
l l l l l

El enfoque formal
l

El enfoque orientado a objetos


l l

El enfoque de reutilizacin de software


l

Los modelos y mtodos OO ms conocidos


Rational Unified Process (G. Booch, J. Rumbaugh, and I. Jacobson) OPEN: OO Process, Environment, and Notacin 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 Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El modelo unificado de Rational


Es un modelo de procesos OO desarrollado por Rational, Co. Un proyecto se desarrolla a travs de una serie de ciclos
l

Cada ciclo libera un producto al cliente Comienzo (Inception): l Definicin de la idea o visin del producto final, su alcance y su factibilidad Elaboracin: l Planificacin del proyecto, definicin de las caractersticas del sistema y de su arquitectura, asignacin de recursos Construccin: l Desarrollo del sistema Transicin: l Instalacin del sistema y su transicin al ambiente de operacin definitivo
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Un ciclo consta de cuatro fases gerenciales:


l

El modelo unificado de Rational

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El modelo de Bruegge and Dutoit


Es un modelo OO con fines acadmicos 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 Anlisis Diseo del sistema Diseo de objetos Implementacin Pruebas

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El modelo de Bruegge and Dutoit


Descubrimiento de Requerimientos
l

l l

Propsito: l Definir los objetivos del sistema, su contexto y sus requerimientos funcionales y no-funcionales Producto: l Modelo de Especificacin del Sistema Notacin usada: l Diagramas de Casos de Uso en UML Propsito: l Producir un modelo del sistema en trminos de sus objetos, atributos y relaciones Producto: l Modelo de Anlisis Notacin usada: l Diagramas de clases en UML
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Anlisis
l

l l

El modelo de Bruegge and Dutoit


Diseo del sistema
l

l l

Propsito: l Transformar el modelo de anlisis en un modelo que defina la arquitectura del sistema, sus estrategias de implementacin y la plataforma de operacin Producto: l Arquitectura del sistema y metas de diseo Notacin usada: l Diagramas de clase y despliegue en UML Propsito: l Refinar el diseo del sistema y convertirlo en un modelo implementable en la plataforma H/S seleccionada Producto: l Modelo Detallado de Objetos Notacin usada: l Diagramas de clases, actividades, secuencias, objetos y componentes en UML
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Diseo de objetos
l

l l

El modelo de Bruegge and Dutoit


Implementacin
l l

Propsito: l Traducir el modelo detallado a programas y documentos Producto: l Programas OO y documentacin Notacin usada: l Lenguaje de programacin OO Propsito: l Asegurar la calidad de aplicacin a travs de los procesos de verificacin y validacin Producto: l Una aplicacin verificada y validada Notacin usada: l Diagramas de clases, estado, casos de uso y secuencias en UML
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Pruebas
l

Modelos basados en componentes


Incorporan la reutilizacin del software en el proceso de desarrollo de aplicaciones "Reutilizacin 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 l l l l

la especificacin, el anlisis , el diseo, la implementacin y las pruebas de una aplicacin o sistema de software
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

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 mdulo, una clase, un procedimiento, una funcin, un subsistema, una aplicacin) Una especificacin de requerimientos Un modelo o especificacin de diseo Un algoritmo Un patrn de diseo Una arquitectura de dominio Un esquema de base de datos Una especificacin de prueba La documentacin de un sistema Un plan

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - 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 especficas, l tienen interfaces claras, l tienen una documentacin 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 travs de su interfaz.

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Modelos basados en componentes


Dos modalidades de desarrollo:
l

Desarrollo de software para reutilizacin l Propsito: producir componentes de software reutilizable l Emplea el modelo de procesos de la Ingeniera de Dominios Desarrollo de software con reutilizacin
l

Propsito: desarrollar aplicaciones reutilizando componentes existentes Emplea el modelo de procesos de la Ingeniera de Aplicaciones

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Modelos basados en componentes


Ingeniera de Dominios
Anlisis del Dominio Diseo del Dominio Desarrollo de Componentes

Especificacin de requerimentos

modelos de anlisis

diseos genricos

componentes

Diseo de la Arquitectura

Especificacin De Componentes

Bsqueda de Componentes

Adapt / Des. Componentes

Integracin de Componentes

Ingeniera de Aplicaciones
ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

10

El estndar IEEE-1074
Un estndar para desarrollar modelos de procesos y mtodos de desarrollo de software Proporciona un marco metodolgico para el diseo de modelos y mtodos Emplea tres niveles jerrquicos:
l l l

Process Group Life Cycle Modeling Project Management

Processes Selection of a Life Cycle Model Project Initiation Project Monitoring and Control Software Quality Management Concept Exploration System Allocation Requirements Design Implementation Installation Operation & Support Maintenance Retirement Verification and Validation Software Configuration Management Documentation Development Training

Pre-development Development

Post-development

Grupos de procesos Procesos Actividades

Integral Process

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Development Processes
Concept Exploration Process System Allocation Process Requirements Process Design Process Implementation Process Installation Process Operation & Support Processes Maintenance Process Retirement Process

Management Processes

Integral Processes

Configuration Mgmt. Process Project Initiation Process

El estndar IEEE-1074

Documentation Developm. Process

Training Process Project Monitoring & Ctrl. Processes

Verification & Validation Processes S/W Quality Mgmt. Process

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

11

El Modelo de Procesos WATCH

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El Modelo de Procesos WATCH


Es un modelo de procesos orientado al desarrollo de proyectos de software de pequeo o mediano tamao Es la evolucin de la metodologa MEDSI [Montilva, 1985] Integra los mejores aspectos de los siguientes modelos y mtodos:
l l l l

MEDSI-OO El modelo espiral Desarrollo incremental y por versiones El mtodo OO de Bruegge y Dutoit

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

12

El Modelo de Procesos WATCH


El estndar IEEE 1074 fue utilizado para crear la estructura de procesos del modelo Emplea el UML como su lenguaje de modelado Metfora utilizada: el reloj (watch)

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

El Modelo de Procesos WATCH


Est estructurado en 4 grupos de procesos: l Ingeniera de Mtodos
l l l

Definicin del Proyecto Adaptacin y conversin del modelo de procesos en un mtodo Documentacin del mtodo de desarrollo

l l

Procesos Gerenciales Procesos de Desarrrollo Procesos de Post-desarrollo


l l l

Operacin y soporte Mantenimiento Retiro

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

13

El Modelo de Procesos WATCH


Procesos Gerenciales:
l l l l l l l

Procesos de Desarrollo
l

Iniciacin del proyecto Gerencia del Proyecto Gestin de la Calidad Gestin de la Configuracin Verificacin & Validacin Adiestramiento Documentacin

l l l l l

Anlisis del Dominio de Aplicacin Descubrimiento de Requerimientos Anlisis & Especificacin de Requerimientos Diseo del Sistema Diseo de Componentes Implementacin del Sistema Pruebas del Sistema Entrega del Sistema

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Procesos de Post-Desarr. Anlisis del Dominio

Entrega del Sistema

Descubrim. de Requerim.

El Modelo de Procesos WATCH

Pruebas del Sistema

Procesos Gerenciales

Anal. & Espec. de Requerim.

Implement. del Sistema

Diseo del Sistema

Diseo de Componentes

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

14

Procesos Gerenciales
Proceso
Gerencia del Proyecto

Actividades
Planificacin del proyecto Organizacin del grupo de desarrollo Direccin del grupo de desarrollo Administracin del personal del grupo Control del proyecto Planificacin de la calidad del S/W Aseguramiento de la calidad del S/W Planificacin de la gestion de configuracin Control de la configuracin Planificacin de la V & V Revisiones de Productos Pruebas de Software Planificacin del Adiestramiento Adiestramiento del grupo de desarrollo Produccin del material de adiestramiento Planificacin de la Documentacin Elaboracin de la Documentacin Entrega de la Documentacin

Gestin de la Calidad del S/W Gestin de la Configuraci n

Verificaci n & Validaci n

Adiestramiento

Documentaci n

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Las Fases de Proceso de Desarrollo


Anlisis del Dominio

Entrega del Sistema

Descubrim, de Requerim.

Pruebas del Sistema

Anl. & Espec. de Requerim.

Implement. del Sistema Diseo de Componentes

Diseno del Sistema

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

15

Fase 1: Anlisis del Dominio de Aplicacin


Objetivo :
l

Que el grupo de desarrollo adquiera un conocimiento adecuado del dominio de aplicacin (el contexto del sistema) Modelo del Dominio de Aplicacin
Modelar los procesos del dominio

Producto:
l

Definir el dominio de la aplicacin

Identificar los actores del dominio

Documentar el modelo del dominio

Validar el modelo del dominio

Modelar los objetos del dominio

Act. tcnica Act. gerencial

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Fase 2: Descubrimiento de Requerimientos


Objetivo :
l

Descubrir y definir informalmente los requerimientos de los usuarios del sistema Documento de Definicin de Requerimientos (DDR) Prototipo de la interfaz Usuario/Sistema (U/S)
Descubrir Requerim. Funcionales Elaborar un prototipo de la interfaz U/S Descubrir Requerim. No-funcionales Elaborar el documento DDR Validar el DDR

Productos:
l l

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

16

Fase 3: Especificacin de Requerimientos


Objetivo :
l

Expresar los requerimientos de los usuarios de una manera formal o tcnica que pueda ser entendida, sin ambiguedad, por los diseadores del sistema Documento de Especificacin de Requerimientos (DER)

Producto:
l

Refinar el Modelo Funcional

Derivar el Modelo de Objetos Consolidar los modelos Derivar el Modelo Dinmico Elaborar el DER Validar el DER

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Fase 4: Diseo del Sistema


Objetivo :
l

Traducir los requerimientos del usuario en una solucin de software: l una especificacin del diseo del sistema Documento del Diseo del Sistema (DDS)
Disear la interfaz U/S

Producto:
l

Disear la arquitectura del sistema

Disear la base de datos

Elaborar el DDS

Validar el DDS

Disear la documentacin del sistema

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

17

Fase 5: Diseo de Componentes


Objetivo :
l

Especificar en detalle el diseo de cada componente y conector de la arquitectura del sistema Documento de Diseo de Componentes (DDC)

Producto:
l

Especificar los servicios de c/componente

Seleccionar y buscar compon. reutilizables

Adaptar los componentes reutilizables Elaborar el DDC Disear los componentes no reutilizables Validar el DDC

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Fase 6: Implementacin del Sistema


Objetivo :
l l

Traducir las especificaciones de diseo en un producto de software Verificar que los programas implementan el diseo y asegurar su calidad Un sistema parcialmente probado Documentacin del sistema
Planificar las pruebas Probar los componentes Codificar los componentes Validar el sistema Producir la documentacin Probar la integracin de componentes

Productos:
l l

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - 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 Un sistema validado que est listo para ser instalado

Producto:
l

Planificar las pruebas

Realizar pruebas funcionales

Realizar las pruebas no-funcionales

Realizar la prueba de aceptacin

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Fase 8: Entrega del Sistema


Objetivo :
l

Transferir el sistema de su ambiente de desarrollo a su ambiente de operacin Un sistema instalado y en operacin

Producto:
l

Planificar las pruebas Realizar las pruebas de instalacin Instalar el sistema Entregar el sistema al cliente Adiestrar a los usuarios

Adiestrar a l personal de soporte

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

19

Conclusiones
Principales caractersticas del modelo WATCH:
l l l

Es simple Es completo Es adaptable

Su estructura permite al grupo de desarrollo adaptar el modelo a las caractersticas particulares del proyecto Puede ser utilizado como un marco referencial para mejorar los procesos de desarrollo de software en organizaciones pequeas y medianas Ha sido utilizado en el desarrollo de proyectos acadmicos en los departamentos de computacin de
l l

La Universidad del Sur de Florida (Tampa, USA) La Universidad de Los Andes


ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

Fin de la conferencia

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

20

(Persistencia, S. Dal )

ULA - Fac. de Ingeniera - Esc. de Sistemas - Dpto. de Computacin - J. Montilva

21

También podría gustarte