Metodologías de Análisis
Clase 1 – 21/8/2007
Christian Sifaqui
Repaso
Objetivo de la Ingeniería de Software
Repaso
Objetivo de la Ingeniería de Software
- producir software de calidad
Repaso
Objetivo de la Ingeniería de Software
- producir software de calidad
- en el tiempo comprometido
Repaso
Objetivo de la Ingeniería de Software
- producir software de calidad
- en el tiempo comprometido
- dentro del presupuesto
Repaso
Objetivo de la Ingeniería de Software
- producir software de calidad
- en el tiempo comprometido
- dentro del presupuesto
- que satisfaga los requerimientos
Repaso
Finalizadostarde, máscaros, y/o
incompletos53%
Exitosos29%
Cancelados 18%
Según [Johnson et al. 2001]
www.softwaremag.com/archive/2001feb/CollaborativeMgt.html
Repaso
• Un 78% de la empresas de IT han estado involucradas en disputas que finalizan en litigios
• En el 67%, la funcionalidad o rendimiento de los productos de software no coinciden con lo solicitado
• El 56%, la fecha prometida se prorroga• El 45%, los defectos son tan severos que el producto es
inutilizable
www.cutter.com/research/2002/edge020409.html
Repaso
• Ciencia de la computación investiga variadas formas de producir software
• Ingeniería de software se interesa en las formas de producir software que sean económicas
Problema:
Se descubre una técnica de codificación CT2 que produce código en 9/10 del tiempo de CT1 (y a 9/10 del costo)
¿Aplicarla?
Repaso
• Ciencia de la computación investiga variadas formas de producir software
• Ingeniería de software se interesa en las formas de producir software que sean económicas
Problema:
Se descubre una técnica de codificación CT2 que produce código en 9/10 del tiempo de CT1 (y a 9/10 del costo)
¿Aplicarla?
Aprendizaje
Mantención
Sólo afecta codificación
Repaso
Ciclo de vida: período de tiempo que empieza con la exploración de conceptos y finaliza con el retiro del software
Hasta 1970: Cascada
Fase 1 Requerimientos
Fase 2 Análisis (especificaciones)
Fase 3 Diseño
Fase 4 Implementación
Fase 5 Mantención post-entrega
Fase 6 Retiro
Repaso
Modelo cascada:
Fase de requerimientos: se explora y refina el concepto y los requerimientos del cliente se obtienen
Repaso
Modelo cascada:
Fase de requerimientos: se explora y refina el concepto y los requerimientos del cliente se obtienen
Fase de análisis (especificación): los requerimientos se analizan y presentan en la forma de un documento de especificación. Al final de esta fase se bosqueja el Plan de Administración de Proyectos de Software (IEEE 1058-1998 SPMP)
Repaso
Modelo cascada:
Fase de requerimientos: se explora y refina el concepto y los requerimientos del cliente se obtienen
Fase de análisis (especificación): los requerimientos se analizan y presentan en la forma de un documento de especificación. Al final de esta fase se bosqueja el Plan de Administración de Proyectos de Software (IEEE 1058-1998 SPMP)
Fase de diseño: se desarrolla un diseño arquitectónico, donde el producto como un todo se separa en componentes (módulos); se diseña cada módulo en la etapa de diseño detallado
Repaso
Modelo cascada:
Fase de implementación: codificación y testing unitario; luego integración y testing; luego test de aceptación y finalmente instalación y aceptación
Repaso
Modelo cascada:
Fase de implementación: codificación y testing unitario; luego integración y testing; luego test de aceptación y finalmente instalación y aceptación
Fase de mantención post-entrega: todos los cambios que el producto requiere. Mantención perfectiva y mantención adaptiva.
Repaso
Modelo cascada:
Fase de implementación: codificación y testing unitario; luego integración y testing; luego test de aceptación y finalmente instalación y aceptación
Fase de mantención post-entrega: todos los cambios que el producto requiere. Mantención perfectiva y mantención adaptiva.
Fase de retiro: se elimina el producto
Repaso
Mantención:
definición temporal: cambios al software después de haber entregado al cliente, modelo desarrollo-luego-mantención (mantención post-entrega) IEEE 610.12 de 1990
Repaso
Mantención:
definición temporal: cambios al software después de haber entregado al cliente, modelo desarrollo-luego-mantención (mantención post-entrega) IEEE 610.12 de 1990
No es real.
Repaso
Mantención:
definición temporal: cambios al software después de haber entregado al cliente, modelo desarrollo-luego-mantención (mantención post-entrega) IEEE 610.12 de 1990
No es real.
definición operacional: cambios al software para corregir fallas o hay cambios en los requerimientos (independiente de si ocurren antes o después de la entrega) ISO/IEC 12207 de 1995
Repaso
Mantención:
costos promedio entre desarrollo y mantención post-entrega
entre 1976 y 1981 entre 1992 y 1998
desarrollo33%
desarrollo25%
mantención post-entrega
75%
mantención post-entrega
67%
Repaso
Mantención:
datos de proyectos entre 1974 y 1980
200
30
431
mantenciónpost-entrega
implementaciónrequerimientos análisis (especificación)
diseño
Co
sto
re
lati
vo a
pro
xim
ado
pa
ra
det
ecta
r y
corr
egir
un
a fa
lla
Repaso
Términos:
Cliente: persona que quiere construir un producto
Desarrolladores: miembros del equipo responsable pata construir el producto
Usuario: persona(s) que usará(n) el software. A veces cliente y usuario son la misma persona
Software: código, documentación legal, de diseño, manuales
Action Workflow
Client Supplier
Could you do this?
Yes, I’ll do it
It’s doneOK, thank you
Action Workflow
Client Supplier
1.- Clientask for an action(request phase)
Could you do this?
Yes, I’ll do it
It’s doneOK, thank you
2.- Supplieragrees to do it (commitment phase)
3.- Supplierfulfills the work and reports to be done (performance phase)
4.- Clientaccepts report and declares satisfaction(evaluation phase)
Action Workflow
Client Supplier
1.- Clientask for an action(request phase)
Could you do this?
Yes, I’ll do it
It’s doneOK, thank you
Conditions of satisfaction
2.- Supplieragrees to do it (commitment phase)
3.- Supplierfulfills the work and reports to be done (performance phase)
4.- Clientaccepts report and declares satisfaction(evaluation phase)