- Universidad de Los Andes

Anuncio
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
Descargar