El Producto y el Proceso
(Cap. I y II , “Ing. del Software - Un Enfoque Práctico”, Roger S.
Pressman, 5ta Edición).
¿Qué es la Ingeniería del Software?
“(1) La aplicación de un enfoque sistemático,
disciplinado y cuantificable hacia el desarrollo,
operación y mantenimiento del Software; es decir
la aplicación de la Ingeniería al Software.
(2) El estudio de enfoques como (1).”[IEEE, 1993]
1
El Producto – Características del SW
•
•
•
•
•
Producto y vehículo.
Lógico, no físico.
Se desarrolla, no se fabrica.
No se desgasta, se deteriora.
Mayoría hecho a medida, tendencia a reusar.
– En los 60´s, subrutinas de cálculos numéricos.
– Actualidad, biliotecas de componentes (objetos).
2
El Producto – Aplicaciones del SW
Dificil establecer compartimientos netamente separados.
•
•
•
•
•
•
•
•
SW de Sistemas
SW de Tiempo Real
SW de Negocio o Gestión
SW de Ingeniería o Científico
SW Embebido o Empotrado
SW de PC
SW de IA
SW basado en la Web
3
El Producto - Mitos del Software
• Propagaron confusión e información errónea.
Del administrador del proyecto
Mitos del SW
Del usuario final o cliente
Del desarrollador
4
El Producto - Mitos del Software
Ejemplos
• “Si fallamos en la planificación, podemos añadir más
programadores y adelantar el tiempo perdido” (MA)
• “Los requisitos cambian continuamente, pero los cambios pueden
acomodarse fácilmente porque el SW es flexible” (MC)
• “Lo único que se entrega al terminar el proyecto es el programa
funcionando” (MD).
5
El Proceso
• ¿Qué es?
Marco de trabajo de tareas a realizar para desarrollar SW de
alta calidad.
• ¿Es sinónimo de Ingeniería del Software?
Define un enfoque para desarrollar SW en forma ingenieril,
pero la ISW comprende, además de un Proceso, Métodos y
Herramientas.
6
¿ Qué es la Ingeniería del Software?
• Pressman: Tecnología multicapa
Herramientas
Métodos
Proceso
Un enfoque de calidad
Capa fundamental
7
El Proceso – Visión Genérica
Ing. Sistemas
Definición
Planificación
(QUE)
Análisis de req.
Diseño
Desarrollo
(COMO)
G. de Código
Prueba
Mant. Correctivo
Soporte
Mant. Adaptativo
(CAMBIOS)
Mant. Perfectivo
Mant. Preventivo o Reingeniería
del Software
8
El Proceso
Modelo de Capacidad de Madurez (CMM)
•
•
•
•
•
Nivel 1: Inicial
Nivel 2: Repetible
Nivel 3: Definido
Nivel 4: Gestionado
Nivel 5: Optimizado
9
Modelo Lineal Secuencial
• Ciclo de vida clásico, modelo en cascada
• + antiguo, + usado
• Enfoque sistemático secuencial
Análisis
Diseño
Ing. de Sistemas
Codif.
Prueba
Mant.
10
Modelo Lineal Secuencial
•
Críticas:
–
–
–
•
Proyectos reales raras veces se ajustan.
Raras veces cliente expone todos los req. de entrada.
Producto operativo al final => Paciencia (cliente) alta.
Consejo:
Usar cuando todos los requerimientos han sido establecidos
claramente de entrada.
11
Modelo de Construcción de Prototipos
• No están claros los reqs. de entrada
• Iterativo. Hasta cuando se itera?
• Working prototype, desechar y empezar con desarrollo de sistema.
Escuchar al
cliente
Construir
prototipo
Validar
prototipo
12
Modelo de Construcción de Prototipos
• Críticas:
– Cliente cree que es el sistema.
– Peligro de familiarización con malas elecciones iniciales
(quick and dirty).
• Consejo:
– Usar cuando inicialmente no están claros los requerimientos.
– Definir claramente de entrada las reglas de juego con el
cliente.
– No ceder a presión del cliente.
13
Modelo DRA (Desarrollo Rápido de
Aplicaciones)
• Lineal secuencial con ciclo extremadamente corto.
• Candidatos: sistemas que se pueden modularizar
=> equipos de desarrollo paralelos.
• Basado en el uso de componentes y T4G.
14
Equipo # n
Modelo DRA
Modelo de
Negocio
Equipo # 2
Modelo de
Negocio
Equipo # 1
¿Qué información?
¿Quién la genera?
¿A dónde va?
Identificación de
Objetos y relaciones
Modelo de
Negocio
Modelo de
Datos
Modelo de
Proceso
Modelo de
Datos
Generación
de Aplic.
Modelo de
Proceso
Modelo de
Datos
Descripciones de procesos de
negocio para ABM de objetos de MD
T4G + Reusabilidad de
Componentes
Prueba de Comp. Nuevos e interfaces.
Prueba y
Entrega
Generación de
Aplic.
Modelo de
Proceso
Prueba y
Entrega
Generación de
Aplicación
Prueba y
Entrega
Tiempo
15
Modelo DRA
• Críticas:
– Proyectos grandes => gran nro. de personas.
– Alto compromiso en tiempo.
– No apto para todo tipo de sistema (ej. no modularizable,
baja reusabilidad de componentes).
– Desaconsejable cuando riesgos tecnológicos altos (ej.
Uso de nuevo lenguaje) o alta interoperatividad con
programas ya existentes.
16
Modelos Evolutivos
• Se adaptan más fácilmente a los cambios
introducidos a lo largo del desarrollo.
• Iterativos
• En cada iteración se obtienen versiones más
completas del SW.
• Modelos Evolutivos:
–
–
–
–
–
Modelo Incremental (*)
Modelo en Espiral (*)
Modelo de Desarrollo Basado en Componentes (*)
Modelo WINWIN
Modelo de Desarrollo Concurrente
17
Modelo Incremental
• Iteración de Lineal Secuencial.
• Cada iteración devuelve un “Incremento”
o versión operativa. (Ej. Editor de texto).
• Util cuando no se está seguro de cumplir
con plazos de tiempo o se tiene una fecha
imposible de cambiar.
18
Modelo Incremental
Ing. de Sistemas
Análisis
Inc1
Inc2
Análisis
Inc3
Diseño
Diseño
Análisis
Codif.
Codif.
Diseño
Prueba
Entrega 1er
Incremento
Entrega 2do
Incremento
Prueba
Codif.
Prueba
Entrega 3er
Incremento
Tiempo
19
Modelo en Espiral
20
Modelo en Espiral
• Util para proyectos grandes.
• Permite usar el prototipado en todas las etapas de la evolución
para reducir el riesgo.
• Mantiene el enfoque sistemático de los pasos sugeridos por el
lineal secuencial, pero lo incorpora dentro de un marco
iterativo más real.
• Críticas:
– Dificil de convencer a los clientes de que es controlable.
– Requiere mucha habilidad para el análisis de riesgos y de esta
habilidad depende su éxito.
– No ha sido utilizado tanto como el lineal secuencial o el de
prototipos.
21
Desarrollo Basado en Componentes
• Basado en modelo en Espiral (evolutivo e iterativo) +
Tecnologías de Objetos.
• Enfatiza la Reusabilidad.
Planificación
Ident. Comps. candidatos
Análisis de Riesgos
Comunicación
con el Cliente
Buscar Comps. en biblioteca

Ingeniería,
Construcción y
Entrega
Evaluación
del Cliente
Construir
Extraer
Colocar en biblioteca
Construir iteración
22
Modelo de Métodos Formales
•
•
•
•
•
Usan notación rigurosa.
Especificaciones sin ambigüedades.
Utiles para sistemas críticos.
Demostraciones formales de propiedades.
Dificulta validación con cliente => combinación
con otras técnicas semi-formales.
• Alto nivel de experticia en lógica y matemática.
23
Técnicas de Cuarta Generación (T4G)
•
•
•
Herramientas que facilitan la realización de
especificaciones a alto nivel -> código fuente.
Basadas en Lenguajes de 4ta Generación (L4G).
Ventajas: Reducción en tiempo de desarrollo.
Lenguaje de
Consulta a BD
Generador de
Pantallas
Planillas de
Cálculo
Generador de
Informes
Generador de
Código
Sistema de Administración de Base de Datos
Un entorno de desarrollo de software
basado en Técnicas de 4ta Generación
24
Técnicas de Cuarta Generación (T4G)
• Críticas:
– Código ineficiente.
– No mas fáciles de usar que L3G.
– Mantenimiento cuestionable.
• Consejo: Aunque se usen T4G se debe hacer análisis,
diseño y pruebas (sino mala calidad, mantenimiento
pobre, baja aceptación por el cliente).
25
Descargar

Cap1y2Pressman