Los Modelos Prescriptivos de Proceso definen un conjunto distinto de actividades, acciones, tareas, flujo de trabajo, fundamentos y productos de trabajo que se requieren para software de alta calidad.
Sesión 3: Modelos prescriptivos de proceso de software
1. Sesión III: Modelos Prescriptivos
de Proceso
Ing. Luis Alfredo Fernández Vizcarra
lfernandez@speedy.com.pe
lfernandez@coesi.com.pe
2. Vistazo rápido: Modelos Prescriptivos
¿Qué es?
•Un conjunto distinto de actividades,
acciones, tareas, fundamentos y
productos de trabajo que se
requieren para desarrollar software
de alta calidad.
•Proporcionan una guía útil para el
trabajo de la ingeniería del software.
¿Quién lo hace?
•Los ingenieros de software y sus
gerentes adaptan un modelo
prescriptivo de proceso a sus
necesidades y después lo siguen.
•La gente que ha solicitado el
software participa durante la
ejecución del modelo de software.
¿Por qué es importante?
•Proporciona estabilidad, control y
organización a una actividad que si
no controla puede volverse caótica.
¿Cuáles son los pasos?
•El proceso conduce a un equipo de
software a través de un conjunto de
actividades del marco de trabajo que
se organizan en un flujo de
proceso, el cual puede ser
lineal, incremental o evolutiva.
¿Cuál es el producto
obtenido?
•Desde el punto de vista de un
ingeniero de software: programas,
documentos y datos que se
producen como consecuencia de las
actividades y tareas que define el
proceso.
¿Cómo puedo estar seguro
de que lo he hecho
correctamente?
•Los mejores indicadores de la
eficacia del proceso que se utiliza
son la calidad, el tiempo de entrega y
la viabilidad a largo plazo del
producto que se construye.
3. Modelos Prescriptivos
Los Modelos Prescriptivos de Proceso definen un conjunto distinto de
actividades, acciones, tareas, flujo de trabajo, fundamentos y productos
de trabajo que se requieren para software de alta calidad.
MODELO EN CASCADA
CARACTERÍSTICAS DESVENTAJAS
También se le conoce como
Ciclo de Vida Clásico.
Enfoque sistemático
secuencial hacia el
desarrollo del software.
Es el paradigma más antiguo
para la ingeniería de
Software.
Es muy raro que los proyectos reales sigan
el flujo secuencial que propone el modelo.
Con frecuencia es difícil para el cliente
establecer todos los requisitos de manera
explícita.
El cliente debe tener paciencia.
La naturaleza lineal del modelo conduce a
“estados de bloqueo” en los cuales algunos
miembros del equipo del proyecto deben
esperar a otros para terminar tareas
independientes.
4. Modelo en Cascada
Comunicación
•Inicio del proyecto
•Recopilación de requisitos
Planeación
•Estimación
•Itinerario
•Seguimiento
Modelado
•Análisis
•Diseño
Construcción
•Código
•Prueba
Despliegue
•Entrega
•Soporte
•Retroalimentación
5. Modelos de Proceso Incrementales
MODELO INCREMENTAL
CARACTERÍSTICAS
Combina elementos
del modelo en
cascada aplicado en
forma iterativa.
Se enfoca en la
entrega de un
producto operacional
con cada incremento.
Entrega una serie de
lanzamientos llamados
incrementos que
proporcionan en forma
progresiva más
funcionalidad para los
clientes a medida que se
entrega cada uno de los
incrementos.
6. Modelo incremental
Tiempo de calendario de proyecto
Funcionalidadycaracterísticasdelsoftware
Comunicación
Planeación
Modelado (análisis, diseño)
Construcción (código, prueba)
Despliegue (entrega, retroalimentación)
Entrega del
primer incremento
Entrega del
segundo incremento
Entrega del
n-ésimo incremento
Incremento # 1
Incremento # 2
Incremento # n
7. Modelo DRA (Desarrollo Rápido de Aplicaciones)
•Es una adaptación a “alta velocidad” del modelo en
cascada en el que se logra el desarrollo rápido mediante
un enfoque de construcción basado en componentes.
•Si se entienden bien los requisitos y se limita el ámbito
del proyecto, el proceso DRA permite crear un sistema
completamente funcional en un periodo muy corto.
CARACTERÍSTICAS
•Necesita muchos Recursos Humanos
•Desarrolladores y los clientes deben involucrarse con
las actividades del desarrollo del sistema
•La construcción de componentes es complicada
•Si se convierte interfaces en componentes el DRA no
funcionará
•Es inapropiado con riesgos técnicos muy altos
DESVENTAJAS
8. Modelo DRA
Modelado
Modelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de
componentes
Generación de código
automático
Pruebas
Comunicación
Planeación
60 - 90 días
Modelado
Modelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de
componentes
Generación de código
automático
Pruebas
Modelado
Modelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de
componentes
Generación de código
automático
Pruebas
Despliegue
Integración
Entrega
Retroalimentación
Equipo #1
Equipo #2
Equipo #n
9. Modelos de Proceso Evolutivos
Los modelos evolutivos son iterativos, los caracteriza la forma en que
permiten que los ingenieros de software desarrollen versiones cada vez
completas del software.
Su propósito es desarrollar software de alta calidad de una manera
iterativa o incremental.
CONSTRUCCION DE PROTOTIPOS
CARACTERISTICAS DESVENTAJAS
Se puede utilizar como un modelo de
proceso independiente o como una
técnica susceptible de implementarse
dentro de otros modelos.
Ayuda al ingeniero de sistemas y al
cliente a entender de mejor manera
cual será el resultado de la
construcción cuando los requisitos
estén satisfechos.
El cliente no entiende lo que es
un prototipo y el sistema final
El desarrollador puede
adaptarse al lenguaje con el
que elaboró el prototipo
La calidad del software se
reduce.
10. Construcción de Prototipos
Plan rápido
Modelado
diseño
rápido
Construcción
del prototipo
Desarrollo, entreg
a y
retroalimentación
Comunicación
11. Modelo en Espiral
DESVENTAJAS
- Es difícil convencer a los clientes de
que el enfoque evolutivo es
controlable.
- Requiere una habilidad considerable
para evaluar el riesgo.
- Si un riesgo importante no se
descubre y administra, sin duda
surgirán problemas.
CARACTERÍSTICAS
- Conjuga la naturaleza iterativa de la
construcción de prototipos con los aspectos
controlados y sistemáticos del modelo
cascada.
- Proporciona el material para el desarrollo
rápido de versiones incrementales del
software.
- Se puede adaptar y aplicar a través del ciclo
de vida completo de una aplicación, desde el
desarrollo del concepto hasta el
mantenimiento.
- Es un enfoque realista para el desarrollo de
software y de sistemas a gran escala.
- Se considera el riesgo en cada revolución
- Se revisa los costos
- Se adapta a lo largo de la vida del software
13. Modelo Desarrollo Concurrente
CARACTERÍSTICAS
Se representa en forma
esquemática como una
serie de actividades del
marco de trabajo, acciones
y tareas de la ingeniería del
software y sus estados
asociados.
Es más apropiado para
proyectos donde están
implicados diferentes
equipos de ingeniería.
Todas las actividades
existen de forma
concurrente, pero se
encuentra en diferentes
estados.
Proporciona una visión
exacta del estado actual
del proyecto.
Los eventos generados
en un punto de la red
del proceso disparan
transiciones entre los
estados.
14. Modelo Desarrollo Concurrente
Ninguno
Bajo desarrollo
En espera de
cambios En
modificación
En revisión
En línea de
base
Realizado
Representa el estado
de una actividad o
tarea de la ingeniería
de software
Actividad de modelado
15. Modelos Especializados de Proceso
Se aplican cuando se ha elegido un enfoque de ingeniería del software definido
de una manera muy estrecha.
1.DESARROLLOBASADOEN
COMPONENTES
CARACTERÍSTICAS
- Incorpora muchas de las características del modelo espiral.
- Destaca la reutilización y ensambladura de componentes.
- Se pueden emplear cuando el software está en construcción.
- Proporcionan funcionalidad dirigida con interfaces bien definidas
que permiten su integración en el software.
PASOS
- Investigar productos basados en
componentes y evaluarlos
- Integración de componentes
- Diseñar arquitectura de software
- Integrar los componentes a la
arquitectura
- Pruebas
16. Modelos Especializados de Proceso
2. MODELO
DE MÉTODO
FORMALES
CARACTERÍSTICAS
Definen un conjunto de actividades basadas en
una especificación matemática
Se verifica mediante notación matemática
rigurosa.
Una variación de este modelo es el llamado
“Ingeniería del software de sala limpia”
La ambigüedad, el estado incompleto y la
inconsistencia se descubren y corrigen con
mayor facilidad.
DESVENTAJAS
• Es muy caro y consume mucho
tiempo
• Se requiere una capacitación
detallada al personal
• Dificulta la comunicación con los
clientes
17. Modelos Especializados de Proceso
CARACTERÍSTICAS
Conocido también como Programación Orientada a
Aspectos (POA).
Incluye los intereses generales que cubren la
arquitectura total del sistema.
Proporciona un proceso y enfoque metodológico
para definir, especificar, diseñar y construir aspectos
(mecanismos más allá de subrutinas).
18. El Proceso Unificado
CARACTERÍSTICAS
Es un ciclo de vida incremental e iterativo propuesto por los
creadores de UML (Unified Modeling Language).
Dirigido por los casos de uso
Centrado en la arquitectura
Iterativo e incremental
Distingue 6 fases:
inicio, elaboración, construcción, transición, producción.
19. Fase de Producción
Se realiza el monitoreo continuo y el soporte.
Fase de Transición
Transfiere el software del desarrollador al usuario final para realizar las pruebas beta y obtener la
aceptación.
Fase de Construcción
Refina y después traduce el modelo de diseño en componentes de software implementados.
Fase de elaboración
Abarca la comunicación con el cliente y las actividades de modelado con un enfoque en la creación de modelos
de análisis y diseño, con énfasis en las definiciones de clase y representaciones arquitectónicas.
Fase Inicio
Abarca la comunicación con el cliente y las actividades de planeación y destaca el desarrollo y el
refinamiento de casos de uso como un modelo primario.
Fases del Proceso Unificado
21. Productos de trabajo del proceso unificado
Fasedeconstrucción
Fasedeelaboración
Fasedetransición
Fasedeinicio
Documento de la
visión
Modelo inicial de
caso de uso
Glosario inicial del
proyecto
Caso inicial de
negocio
Evaluación inicial
del riesgo
Plan de
Proyecto, fases e
iteraciones
Modelo del
negocio si es
necesario
Uno o más
prototipos
Modelo de casos de uso
Requisitos
suplementarios, se
incluyen los no
funcionales
Modelo de análisis
Descripción de la
arquitectura del software
Prototipo arquitectónico
ejecutable
Modelo de diseño
preliminar
Lista revisada de riesgo
Plan de proyecto que
incluye:
• Plan de iteración
• Flujos de trabajo
adoptados
• Fundamentos
• Productos técnicos del
trabajo
• Manual preliminar del
usuario
Modelo del diseño
Componentes del
software
Incremento
integrado del
software
Plan y
procedimiento de
pruebas
Casos de prueba
Documentación del
soporte
Manuales del
usuario
Manuales de
instalación
Descripción del
incremento actual
Incremento
de software
integrado
Reportes de
las pruebas
beta
Retroaliment
ación
general del
usuario
22. Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de
Software, cap. 1
Pressman, R.S., Ingeniería del Software. Un enfoque práctico, cap. 1 y 2
Sommerville, I., Ingeniería de Software, cap. 1, 2 y 3
Referencias