Capítulo 8 – Ingeniería Software 8.1 – Introducción Capítulo 8

Transcripción

Capítulo 8 – Ingeniería Software 8.1 – Introducción Capítulo 8
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
8.1 – Introducción
8.2 – Ciclo de Vida del Software
El concepto de ingeniería de software surgió debido a que había demasiados
proyectos de software que experimentaban fallos, los cuales se atribuían al
rápido aumento en la escala y complejidad del software en cuestión.
Se reconoció que era necesario un planteamiento más sistemático en el
desarrollo de software, que debía basarse en principios de ingeniería ya
establecidos.
La idea principal es controlar todas las actividades técnicas y de gestión
necesarias para crear un producto de software que cumpla eficientemente con
las necesidades del cliente ajustándose a unos límites de tiempo, costos y
calidad.
Desarrollado por
Ricardo Soto De Giorgis
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería
Informática
INF 140 – Informática I
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
Desde el planteamiento de un problema hasta que se tiene el correspondiente
programa en funcionamiento que lo soluciona, se sigue una serie de etapas
que en conjunto se denomina ciclo de vida del software.
Especificación de Requerimientos
• Planteamiento del problema a solucionar
• Captura de los requisitos
Análisis
• Estudio en detalle del problema
• Análisis de la solución a implementar
Diseño
• Diseño de la solución
• Construcción de diagramas de flujo, diccionario de datos y otros
documentos de apoyo.
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
INF 140 – Informática I
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
8.2 – Ciclo de Vida del Software
8.3 – Paradigmas para el proceso de desarrollo de Sw
Implementación
• Construcción de la aplicación (programación, compilación, manuales)
Pruebas
• Instalación de la aplicación en la plataforma final.
• Corrección de errores.
• Ultimos afinamientos.
Probablemente, no es posible contar con un sólo proceso para el desarrollo de
software. Por otra parte, distintos factores relacionados con el desarrollo de
software conducen a diferentes tipos de procesos.
Entre estos factores se incluye el tipo de software que se está desarrollando
(tiempo real, sistema de información, producto para computador de escritorio),
la escala (un solo desarrollador, un pequeño equipo, un equipo de más de cien
personas), y así sucesivamente
Mantención
• Corrección de errores detectados tardíamente.
• Mejoras
• Agregar nuevas funcionalidades
Mientras más temprano se comete un error y más tarde se descubre más
caro resulta.
Es conveniente apoyar cada una de las etapas con documentos, diagramas
y herramientas.
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
INF 140 – Informática I
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
INF 140 – Informática I
Escuela de Ingeniería Informática
8.3.2 – Modelo de desarrollo Incremental
Es un modelo cuyas etapas consisten en expandir incrementos de un producto
de software operacional, en el cual la dirección de la evolución es determinada
por la experiencia operacional.
Requerimientos
del Sistema
Especificación de
Requerimientos
de Software
Los incrementos son mucho más útiles y fáciles de probar que los productos de
nivel intermedio de un esquema top-down como el anterior, y pueden ser
entregados al cliente a medida que son desarrollados mediante entregas
incrementales.
Diseño del
Software
Implementación
del Software
La entrega incremental, eso si, no es una exigencia del modelo, pero le agrega
valor al permitir que se incorporen tempranamente la visión y experiencia del
usuario en un producto refinado. Puede consistir en unidades funcionales
autocontenidas de software que realizan algún objetivo útil para el cliente, y/o
material de apoyo, como las especificaciones de requerimientos y de diseño,
planes y casos de prueba, manuales y material de capacitación.
Integración del
Software
Pruebas Formales
Operación
y Mantención
Escuela de Ingeniería
Informática
Escuela de Ingeniería
Informática
Capítulo 8 – Ingeniería Software
8.3.1 – Modelo Cascada
Desarrollado por
Ricardo Soto De Giorgis
Desarrollado por
Ricardo Soto De Giorgis
INF 140 – Informática I
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
INF 140 – Informática I
1
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
8.3.3 – Paradigma de construcción de prototipos
8.3.3 – Paradigma de construcción de prototipos
Recolección y
Análisis
de Requerimientos
Un prototipo corresponde a una implementación parcial de un sistema, que se
construye con el objetivo de aprender más acerca de un problema o de su
solución.
Diseño
Rápido
La construcción de prototipos ha sido una práctica estándar en muchas
industrias de producción y de ingeniería, como por ejemplo en las fábricas de
automóviles y aviones. Su principal ventaja es que no acarrea ningún tipo
riesgo, que en el caso de la industria del software si lo puede ser al construirse
un producto que satisface un conjunto de requerimientos inadecuado. Así, la
construcción de prototipos permite conocer más sobre los verdaderos
requerimientos y acerca de diseños alternativos que los podrían satisfacer.
Construcción
del prototipo
Refinamiento del
prototipo y diseño
Evaluación del
Prototipo
por parte del Cliente
Cliente
Satisfecho
En general, se pueden encontrar dos tipos principales de prototipos:
desechables y evolutivos.
Desarrollo a
escala
Completa
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
INF 140 – Informática I
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
INF 140 – Informática I
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
8.3.3 – Paradigma de construcción de prototipos – Prototipos Desechables
8.3.3 – Paradigma de construcción de prototipos – Prototipos Evolutivos
Esta clase de prototipos se construyen lo más rápido posible, implementándose
únicamente aquellos requerimientos que estén pobremente comprendidos. No
tiene sentido considerar la implementación de los requerimientos totalmente
entendidos, pues esto acarrea ningún tipo de conocimiento adicional y sí una
pérdida de tiempo y recursos.
Estos prototipos se construyen siguiendo un proceso de calidad, incluyendo
especificación de requerimientos, documentación de diseño y pruebas
rigurosas, e implementan únicamente requerimientos confirmados; de esta
forma se evita el implementar aquellos requerimientos débilmente entendidos,
cuando se sabe que después del prototipo se van a conocer mejor.
Los prototipos desechables se usan experimentalmente, para estudiar cuáles
requerimientos son reales y cuáles no, desechándose una vez que se ha
obtenido la información deseada. Entonces, se escribe la especificación de
requerimientos del software, incorporando lo que se aprendió, y se construye
el sistema real basado en esa especificación.
Los prototipos evolutivos también se usan experimentalmente, pero para
determinar cuáles requerimientos existen y de los cuales no se había
pensado en un comienzo. Entonces, este nuevo conocimiento debe ser
usado para modificar la especificación de los requerimientos ya conocidos, y
el sistema debe ser rediseñado, (probablemente) re-implementado en
algunas partes y vuelto a probar. Bajo este enfoque, el proceso completo se
puede repetir varias veces.
Funcionan muy bien en forma aislada, para verificar partes relativamente
pequeñas de problemas complejos.
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
INF 140 – Informática I
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 8 – Ingeniería Software
Desarrollado por
Ricardo Soto De Giorgis
Análisis de Riesgo
Recolección de
requisitos y
planificación del
proyecto iniciales
Análisis de Riesgo
basado en los requisitos
iniciales
Análisis de Riesgo
basado en la reacción
del cliente
Se utilizan herramientas que facilitan el
desarrollo de Sw.
Estrategia de
diseño
Implementación
en L4G
Prueba
Prototipo inicial de SW
Evaluación del
cliente
Ingeniería
Sistema de Ingeniería
INF 140 – Informática I
Generalmente generan el código fuente en
forma automática. También pueden facilitar
las consultas a las Bases de datos,
generación de informes, manipulación de
datos, definición de interfaces gráficas…
Los defensores de esta técnica aducen
reducciones de tiempo drásticas en el
desarrollo de Sw.
Los
detractores
aducen
que
las
herramientas actuales no son más fáciles
de ocupar que los lenguajes de
programación, que el código fuente
producido es “ineficiente” y que el
mantenimiento es cuestionable.
Prototipo del siguiente
nivel
Escuela de Ingeniería
Informática
Escuela de Ingeniería Informática
8.3.5 – Técnicas de cuarta generación (T4G)
Decisión de
seguir o no
Evaluación del Cliente
INF 140 – Informática I
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Recolección de
requisitos
Planificación
basada en los
comentarios
del cliente
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
Capítulo 8 – Ingeniería Software
8.3.4 – Modelo espiral
Planificación
Los prototipos evolutivos funcionan bien cuando la mayoría de las funciones
críticas están bien entendidas.
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
INF 140 – Informática I
2

Documentos relacionados