Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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