Sesión III: Modelos Prescriptivosde Proceso
Ing. Luis Alfredo Fernández Vizcarra
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.
Modelos Prescriptivos
Los Modelos Prescriptivos de Proceso definen un conjunto distinto deactividades, acciones, tareas, flujo de trabajo, fundamentos y productosde trabajo que se requieren para software de alta calidad.
MODELO EN CASCADA
CARACTERÍSTICAS DESVENTAJAS
También se le conoce comoCiclo de Vida Clásico.
Enfoque sistemáticosecuencial hacia eldesarrollo del software.
Es el paradigma más antiguopara la ingeniería deSoftware.
Es muy raro que los proyectos reales siganel flujo secuencial que propone el modelo.
Con frecuencia es difícil para el clienteestablecer todos los requisitos de maneraexplícita.
El cliente debe tener paciencia. La naturaleza lineal del modelo conduce a
“estados de bloqueo” en los cuales algunosmiembros del equipo del proyecto debenesperar a otros para terminar tareasindependientes.
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
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.
Modelo incremental
Tiempo de calendario de proyecto
Fu
ncio
na
lida
d y
ca
racte
rística
s d
el so
ftw
are
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
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
Modelo DRA
ModeladoModelado 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
ModeladoModelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de componentes
Generación de código automático
Pruebas
ModeladoModelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de componentes
Generación de código automático
Pruebas
DespliegueIntegraciónEntregaRetroalimentación
Equipo #1
Equipo #2
Equipo #n
Modelos de Proceso EvolutivosLos modelos evolutivos son iterativos, los caracteriza la forma en quepermiten que los ingenieros de software desarrollen versiones cada vezcompletas del software.Su propósito es desarrollar software de alta calidad de una maneraiterativa 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 maneracual será el resultado de laconstrucción cuando los requisitosestén satisfechos.
El cliente no entiende lo que esun prototipo y el sistema final
El desarrollador puedeadaptarse al lenguaje con elque elaboró el prototipo
La calidad del software sereduce.
Construcción de Prototipos
Plan rápido
Modelado diseño rápido
Construcción del prototipo
Desarrollo, entrega y
retroalimentación
Comunicación
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
Modelo Espiral
Comunicación
Planeación
EstimaciónItinerarioAnálisis de riesgos
Despliegue
EntregaRetroalimentación
Construcción
CódigoPrueba
Modelado
AnálisisDiseño
Inicio
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.
Modelo Desarrollo Concurrente
Ninguno
Bajo desarrollo
En espera de cambios En
modificación
En revisiónEn línea de
base
Realizado
Representa el estado de una actividad o
tarea de la ingeniería de software
Actividad de modelado
Modelos Especializados de ProcesoSe aplican cuando se ha elegido un enfoque de ingeniería del software definidode una manera muy estrecha.
1. D
ESA
RR
OLL
O B
ASA
DO
EN
C
OM
PO
NEN
TES
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
Modelos Especializados de Proceso
2. MODELO DE MÉTODO FORMALES
CARACTERÍSTICAS
Definen un conjunto de actividades basadas enuna especificación matemática
Se verifica mediante notación matemáticarigurosa.
Una variación de este modelo es el llamado“Ingeniería del software de sala limpia”
La ambigüedad, el estado incompleto y lainconsistencia se descubren y corrigen conmayor facilidad.
DESVENTAJAS
• Es muy caro y consume muchotiempo
• Se requiere una capacitacióndetallada al personal
• Dificulta la comunicación con losclientes
Modelos Especializados de Proceso
CARACTERÍSTICAS
Conocido también como Programación Orientada aAspectos (POA).
Incluye los intereses generales que cubren laarquitectura total del sistema.
Proporciona un proceso y enfoque metodológicopara definir, especificar, diseñar y construir aspectos(mecanismos más allá de subrutinas).
El Proceso Unificado
CA
RA
CTE
RÍS
TIC
AS
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.
Fase de Producción
Se realiza el monitoreo continuo y el soporte.
Fase de TransiciónTransfiere 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ónAbarca 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 InicioAbarca 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
El Proceso UnificadoElaboración
Inicio
ConstrucciónTransición
Incremento del software
Lanzamiento
Producción
Productos de trabajo del proceso unificado
Fase
de
co
nst
rucc
ión
Fase
de
ela
bo
raci
ón
Fase
de
tra
nsi
ció
n
Fase
de
inic
ioDocumento 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
Retroalimentación general del usuario
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