Sesión 3: Modelos prescriptivos de proceso de software

22
Sesión III: Modelos Prescriptivos de Proceso Ing. Luis Alfredo Fernández Vizcarra [email protected] [email protected]

description

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.

Transcript of Sesión 3: Modelos prescriptivos de proceso de software

Page 1: Sesión 3: Modelos prescriptivos de proceso de software

Sesión III: Modelos Prescriptivosde Proceso

Ing. Luis Alfredo Fernández [email protected]@coesi.com.pe

Page 2: Sesión 3: Modelos prescriptivos de proceso de software

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.

Page 3: Sesión 3: Modelos prescriptivos de proceso de software

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.

Page 4: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 5: Sesión 3: Modelos prescriptivos de proceso de software

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.

Page 6: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 7: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 8: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 9: Sesión 3: Modelos prescriptivos de proceso de software

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.

Page 10: Sesión 3: Modelos prescriptivos de proceso de software

Construcción de Prototipos

Plan rápido

Modelado diseño rápido

Construcción del prototipo

Desarrollo, entrega y

retroalimentación

Comunicación

Page 11: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 12: Sesión 3: Modelos prescriptivos de proceso de software

Modelo Espiral

Comunicación

Planeación

EstimaciónItinerarioAnálisis de riesgos

DespliegueEntregaRetroalimentación

ConstrucciónCódigoPrueba

ModeladoAnálisisDiseño

Inicio

Page 13: Sesión 3: Modelos prescriptivos de proceso de software

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.

Page 14: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 15: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 16: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 17: Sesión 3: Modelos prescriptivos de proceso de software

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).

Page 18: Sesión 3: Modelos prescriptivos de proceso de software

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.

Page 19: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 20: Sesión 3: Modelos prescriptivos de proceso de software

El Proceso Unificado

Planeación

Modelado

Construcción

Despliegue

Comunicación

Elaboración

Inicio

ConstrucciónTransición

Incremento del software

Lanzamiento

Producción

Page 21: Sesión 3: Modelos prescriptivos de proceso de software

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

Page 22: Sesión 3: Modelos prescriptivos de proceso de software

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