Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde...

14
4/9/2012 1 Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad Nacional de Córdoba, FCEFyN Mgr. Martín Miceli v1.0.0, Apr-12 Modelos de Desarrollo Modelo de proceso en Cascada - Boehm, 1976 2 Respuesta a la masiva cantidad de proyectos excedidos en presupuesto y retrasados desde el 1960 a 1970 Foco en planeamiento y control Enfrenta la creciente complejidad rompiéndola en fases Asume que los requerimientos son conocidos al inicio del proyecto Cada etapa tiene un criterio de entrada, salida y validación

Transcript of Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde...

Page 1: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

1

Evolución de los procesos en el tiempo, desde Cascada hasta Espiral

Ingeniería en Computación, Ingeniería de Software

Universidad Nacional de Córdoba, FCEFyN

Mgr. Martín Miceli

v1.0.0, Apr-12

Modelos de Desarrollo

Modelo de proceso en Cascada - Boehm, 1976

2

Respuesta a la masiva cantidad de

proyectos excedidos en presupuesto y

retrasados desde el 1960 a 1970

Foco en planeamiento y control Enfrenta la creciente complejidad

rompiéndola en fases Asume que los requerimientos

son conocidos al inicio del proyecto

Cada etapa tiene un criterio de entrada, salida y validación

Page 2: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

2

Modelo de Desarrollo Iterativo [IDP] - Basili and Turner, 1975

3

Usado en el sistema operativo IBM's OS/2 2.0 con iteraciones anuales retroalimentadas por el

testing Beta en los clientes

Creado para satisfacer las necesidades más inmediatas de

los clientes. Para entrenarlos y generar aprendizaje en el equipo

de desarrollo

Modelo por Prototipo - para tirar Gomaa and Scott, 1981 - evolutivo Hough, 1993

4

Usado cuando los requerimientos no son conocidos o están muy

indefinidos

Un prototipo es una implementación parcial del producto expresada

ya sea lógicamente o fisicamente con todas sus

interfaces presentes

Page 3: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

3

Ejercicio Grupal (10 min)

• Identifique +1 debilidad y fortaleza de cada modelo

– Cascada

– Prototipado

– Iterativo

[g] Debilidades y fortalezas de los modelos de desarrollo

5

Modelo en Espiral - Boehm 1988

6

TRW Software Productivity System (TRW-SPS)

Es un refinamiento del desarrollo en cascada aplicado a grandes proyectos de software del gobierno.

Reemplaza el protagonismo de la documentación por el análisis de riesgos y el prototipado temprano. Prototipos satisfactorios originan el desarrollo, el resto se tira. Cada iteración termina con una revisión

Empieza aquí

Los costos aumentan con cada iteración

Page 4: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

4

Ejercicio Individual (8 min) • Identifique al menos 3 características que tenga en común el

modelo de desarrollo en espiral con el resto de los modelos (al menos 1 por modelo)

[i] La relación entre los modelos de desarrollo

7

Un ejemplo real para tener una perspectiva completa (Oct. 2007)…

Modelo en “V” y la aplicación de prácticas de

ingeniería y el uso de herramientas para asegurar la calidad

8

Page 5: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

5

La ingeniería de SW el aseguramiento de la calidad en imagenes

Toma y Análisis de Requerimientos

Diseño y Codificación

Prueba de Aceptación

Instalación

Plan y Construcción

de Prueba

Administración y Control de Proyectos

Administración de Configuraciones

Monitoreo y Control de Métricas

Toma de Requerimientos UML2 Casos de Uso

Page 6: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

6

Análisis de Requerimientos UML2 Diagramas de Secuencia

Arquitectura y Diseño UML2 Diagramas de Funciones

Relcomm Manager

Object 1

Object 2

Object 3

Object 4

Object 5

Object 6

Managed Object List

SA

NM

(synchronizing)

Getnext

Getnext response

inform

inform ack

1

2

3

5

6

7

8

10

11

49

MMRMMR Manager

MMR Trap Handler

MMR MIB

Registration

MMR Managers InterfaceNotification

Adaptor

Network Manager

Persistent Storage

Boxes

Page 7: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

7

Análisis de Código Dinámico: Nessus Estático: Klocwork

Verificación de Unidad e Integración J-Unit, CppUnit, Pert Scripts

Page 8: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

8

Trazabilidad y reportes de compilación Requirements Phase Analysis Phase Design Phase Code Phase Unit Test Phase Integration Test Phase Validation Test Phase

CA_MA_001 NET_SNMP_AN ICD_3.1.1 CCMPD00295103 CA_ENGINEID_001 CA_CONF_001 CCMPD00302954

CA_MA_002 NO_ANALYSIS ICD_3.1.2.1 CCMPD00295104 CA_Group_Lost_001 CA_CONF_002 CCMPD00302958

CA_MA_003 SRS_3.1.1 ICD_3.1.2.10 CCMPD00295105 CA_Logs_Imp_001 CA_CONF_003 CCMPD00302959

CA_MA_004 SRS_3.1.10 ICD_3.1.2.11 CCMPD00295106 CA_Logs_Imp_002 CA_CONF_004 CCMPD00306579

CA_MA_005 SRS_3.1.11 ICD_3.1.2.12 CCMPD00295107 CA_Logs_Imp_003 CA_CONF_005 CCMPD00306580

CA_MA_006 SRS_3.1.12 ICD_3.1.2.13 CCMPD00295108 CA_Logs_Imp_004 CA_CONF_006 CCMPD00409183

CA_MA_007 SRS_3.1.13 ICD_3.1.2.2 CCMPD00295109 CA_Logs_Imp_005 CA_CONF_007 CCMPD00436467

CA_MA_008 SRS_3.1.14 ICD_3.1.2.3 CCMPD00295110 CA_Logs_Imp_006 CA_CONF_008 SNMP_TC_ATR_3.6.10

CA_MA_009 SRS_3.1.15 ICD_3.1.2.4 CCMPD00295111 CA_Logs_Imp_007 CA_CONF_009 SNMP_TC_ATR_3.6.15

CA_MA_010 SRS_3.1.16.4.1 ICD_3.1.2.5 CCMPD00295228 CA_Logs_Imp_008 CA_CONF_010 SNMP_TC_ATR_3.6.16

CA_MA_011 SRS_3.1.16.4.2 ICD_3.1.2.6 CCMPD00295230 CA_MemLeak_001 CA_CONF_011 SNMP_TC_ATR_3.6.2

CA_MA_012 SRS_3.1.16.4.3 ICD_3.1.2.7 CCMPD00301956 CA_MMR_Manager_001 CA_ENC_001 SNMP_TC_ATR_3.6.4

CA_MA_013 SRS_3.1.16.4.4 ICD_3.1.2.8 CCMPD00302013 CA_MMR_Manager_002 CA_ENC_002 SNMP_TC_ATR_3.6.5

CA_MA_014 SRS_3.1.16.4.5 ICD_3.1.2.9 CCMPD00302068 CA_OpenSSL_001 CA_ENC_003 SNMP_TC_ATR_3.6.8

CA_MA_015 SRS_3.1.16.4.6 ICD_3.1.3.1 CCMPD00302252 CA_OpenSSL_002 CA_ENC_004 SNMP_TC_ATR_3.6.9

Verificación y Validación [1/2] Planeamiento y diseño

Page 9: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

9

Verificación y Validación [2/2]

Codificación, ejecución y reportes

Monitoreo & Control [1/2] Schedule & Camino Crítico

Page 10: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

10

Monitoreo & Control [2/2] Calidad

Heap Size (Kbytes)

HS

165.956

170.956

175.956

180.956

185.956

CO

MM

ON

_A

GE

NT

_

A1.0

_R

EL-0

4

CO

MM

ON

_A

GE

NT

_

A1.0

_B

LD

-05I0

2

CO

MM

ON

_A

GE

NT

_

A1.0

_R

EL-0

5

CO

MM

ON

_A

GE

NT

_

A1.0

_B

LD

-06I0

2

CO

MM

ON

_A

GE

NT

_

A1.0

_R

EL-0

6

CO

MM

ON

_A

GE

NT

_

A1.0

_B

LD

-08I0

1

CO

MM

ON

_A

GE

NT

_

A1.0

_B

LD

-08I0

3

Label

Heap

Siz

e (

Kb

yte

s)

HS

Heap Size (Kbytes)

HS

UCL

LCL

Mean

Practicas Avanzadas [1/2] Confiabilidad del Software, predicción de Defectos

SNMP Turnover 1 Test Execution: Accum. PRs

0

20

40

60

80

100

120

140

160

180

0 20 40 60 80 100 120 140 160 180

Interval Count

Accum. PRs Fit Accum. PRs Lower Band Upper Band

Ac

cu

m. P

Rs

SNMP Turnover 1 Test Execution PRs per Interval

Pct

Fo

un

d G

oal:

99%

Tu

rno

ver

1

0

5

10

15

20

25

7-A

ug-0

6

8-A

ug-0

6

9-A

ug-0

6

10-A

ug-0

6

11-A

ug-0

6

12-A

ug-0

6

13-A

ug-0

6

14-A

ug-0

6

15-A

ug-0

6

16-A

ug-0

6

17-A

ug-0

6

18-A

ug-0

6

19-A

ug-0

6

20-A

ug-0

6

21-A

ug-0

6

22-A

ug-0

6

23-A

ug-0

6

24-A

ug-0

6

25-A

ug-0

6

26-A

ug-0

6

27-A

ug-0

6

28-A

ug-0

6

29-A

ug-0

6

30-A

ug-0

6

31-A

ug-0

6

1-S

ep-0

6

2-S

ep-0

6

Interval Date

Reco

rds p

er

Inte

rval

Fit PRs Arrivals Measured PRs Goals/Milestones

Page 11: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

11

Continuous IntegrationContinuous Integration

mainline

R1 maint

subproject

R1.0

R2.0

R1.1

R1.2

Developer

Privatebranch

Developer

Developer

mainline

R1 maint

subproject

R1.0R1.0

R2.0R2.0

R1.1R1.1

R1.2R1.2

DeveloperDeveloper

PrivatebranchPrivatebranch

DeveloperDeveloper

DeveloperDeveloper

Agile Branchingmainline

R1 maint

subproject

R1.0

R2.0

R1.1

R1.2

Developer

Privatebranch

Developer

Developer

mainline

R1 maint

subproject

R1.0R1.0

R2.0R2.0

R1.1R1.1

R1.2R1.2

DeveloperDeveloper

PrivatebranchPrivatebranch

DeveloperDeveloper

DeveloperDeveloper

Agile Branching

CruiseControl

ClearCase

Integration branch

Developer

integrator pull

Developer push

Docking branch

Integrator

private branch

private branch

Developer

rebase

Integration branch

Developer

integrator pull

Developer push

Docking branch

Integrator

private branch

private branch

Developer

rebase

Promotion branchesIntegration branch

Developer

integrator pull

Developer push

Docking branch

Integrator

private branch

private branch

Developer

rebase

Integration branch

Developer

integrator pull

Developer push

Docking branch

Integrator

private branch

private branch

Developer

rebase

Promotion branches

IntegrationCoding Testing ReleaseIntegrationCoding Testing Release

Traditional IntegrationIntegrationCoding Testing ReleaseIntegrationCoding Testing Release

Traditional Integration

Practicas Avanzadas [2/2]

Integración continua con Cruise Control

Ejercicio grupal (15 min) • ¿En qué situaciones usaría cada modelo? Explique porqué

fundamentando su respuesta. 1. Proyecto militar en USA para construir un sistema de administración

de bajas en combate que requiere un estricto esquema de revisión y aprobaciones, catalogación de conflictos, historial de desempeño de cada soldado y debería poder implementarse en para todos los conflictos bélicos internos y externos del país desde el año 2000 en adelante. Entre otras cosas se espera que este sistema envía notificadores a los familiares de las víctimas y que provea información de administración con soporte estadístico. Este sistema necesita ser desarrollado en conjunto por Ing. De SW pertenecientes a 9 agencias gubernamentales.

[g] Hay un Modelo de Desarrollo para cada situación…

22

Page 12: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

12

2. Sistema de procesamiento de imágenes del entorno para poder medir patrones de tráfico por satélite para diagnosticar embotellamientos. Este sistema debería poder ampliarse para retroalimentar carteles en las rutas que redirijan el tráfico. También debería distinguir entre distintos tipos de vehículos para indicar desviaciones alternativas de vehículos pesados. Dicho sistema debería poder soportar el agregado de un módulo de recolección estadística de tráfico y de envío de mensajes de alerta a bomberos y clínicas ante algún problema potencial o real.

3. Se necesita desarrollar un nuevo sistema experimental de enseñanza virtual para el dictado de clases e interacción de los alumnos lo mas similar posible a un aula real. Si bien el sistema no está totalmente conceptualizado y se espera se descubran muchas funcionalidades apenas se va usando las versiones iniciales en aulas pilotos. Se espera que este sistema maneje tecnologías de trabajo concurrente en logares remotos (ej. Cloud Computing) y permita hacer lluvia de ideas y contribuciones similar a tiempo real por todos los alumnos de la clase.

[g] Hay un Modelo de Desarrollo para cada situación…

23

Una vista general de los casos de estudio del Sommerville

24

Page 13: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

13

Ejercicio Individual (10 min) • ¿Que proceso de desarrollo utilizaría para los casos de

estudio incluidos en el Sommerville? Explique porqué fundamentando su respuesta.

1. La Bomba de inyección automática de Insulina

2. La estación del clima para zonas salvajes

3. El Sistema de administración para enfermos con problemas mentales

[i] Hay un Modelo de Desarrollo para cada caso de estudio.

25

¿Preguntas?

26

Page 14: Modelos de Desarrollo - ayudasingenieria.com · Evolución de los procesos en el tiempo, desde Cascada hasta Espiral Ingeniería en Computación, Ingeniería de Software Universidad

4/9/2012

14

Historia de Versiones

Versión Comentarios Fecha Autor

1.0.0 Resumen y extracción de los modelos para Ingeniería de SW basado en la clase de Gestión de la Calidad de SW

22-Mar-2012 Martín Miceli

27