Post on 01-Dec-2014
description
transcript
Sesión III: Modelos Prescriptivosde Proceso
Ing. Luis Alfredo Fernández Vizcarralfernandez@speedy.com.pelfernandez@coesi.com.pe
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 PrescriptivosLos 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 CASCADACARACTERÍ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.
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 IncrementalesMODELO 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
lidad
y c
ara
cte
ríst
ica
s d
el s
oftw
are
ComunicaciónPlaneaciónModelado (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 negocioModelado de los datosModelado del proceso
ConstrucciónReutilización de componentesGeneración de código automáticoPruebas
Comunicación
Planeación
60 - 90 días
ModeladoModelado del negocioModelado de los datosModelado del proceso
ConstrucciónReutilización de componentesGeneración de código automáticoPruebas
ModeladoModelado del negocioModelado de los datosModelado del proceso
ConstrucciónReutilización de componentesGeneración de código automáticoPruebas
DespliegueIntegraciónEntregaRetroalimentación
Equipo #1
Equipo #2
Equipo #n
Modelos de Proceso EvolutivosLos 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.
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
DespliegueEntregaRetroalimentación
ConstrucciónCódigoPrueba
ModeladoAná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 definido de una manera muy estrecha.
1. D
ESAR
ROLL
O B
ASAD
O E
N
COM
PON
ENTE
S
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ÍSTICASDefinen un conjunto de actividades basadas en una especificación matemáticaSe 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
Modelos Especializados de Proceso
3. DESARROLLO DEL SOFTWARE ORIENTADO A
ASPECTOS
CARACTERÍSTICASConocido 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).
El Proceso Unificado
CARA
CTER
ÍSTI
CAS
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ónSe 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ónRefina 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 Unificado
Planeación
Modelado
Construcción
Despliegue
Comunicación
Elaboración
Inicio
ConstrucciónTransición
Incremento del software
Lanzamiento
Producción
Productos de trabajo del proceso unificado
Fase
de
cons
truc
ción
Fase
de
elab
orac
ión
Fase
de
tran
sici
ón
Fase
de
inic
ioDocumento de la visiónModelo inicial de caso de usoGlosario inicial del proyectoCaso inicial de negocioEvaluación inicial del riesgoPlan de Proyecto, fases e iteracionesModelo del negocio si es necesarioUno o más prototipos
Modelo de casos de usoRequisitos suplementarios, se incluyen los no funcionalesModelo de análisisDescripción de la arquitectura del softwarePrototipo arquitectónico ejecutableModelo de diseño preliminarLista revisada de riesgoPlan 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ñoComponentes del softwareIncremento integrado del softwarePlan y procedimiento de pruebasCasos de pruebaDocumentación del soporteManuales del usuarioManuales de instalaciónDescripción del incremento actual
Incremento de software integradoReportes de las pruebas betaRetroalimentació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