Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Telemática (GIT)
Grado en Ing. de Sistemas de Telecomunicación (GST)
Grado en Ing. de Sonido e Imagen (GSO)
CAPÍTULO 1: INTRODUCCIÓN A LA
INGENIERÍA DEL SOFTWARE
1
Contenidos.
1. Concepto de Software.
2. Ingeniería del Software.
3. Modelos de proceso del Software
Concepto de software.
Suelen incluir:
Ventajas:
1. Modelo de interés para proyectos con requisitos no
cambiantes.
2. Normalmente más idóneo para proyectos pequeños.
3. Proyecto organizado sin solapes en las fases.
4. Fases sencillas de gestionar.
Inconvenientes:
1. No-linealidad de los proyectos reales.
2. Requisitos iniciales incompletos.
3. Producto final sin retro-alimentación parcial del cliente.
4. Costes muy elevados para cambios de requisitos.
5. Bloqueos en la línea de trabajo por espera entre las
fases.
Modelos de proceso del software.
Modelo en Cascada.
Ventajas:
1. Modelo de interés para proyectos con requisitos no
cambiantes.
2. Normalmente más idóneo para proyectos pequeños.
3. Proyecto organizado sin solapes en las fases.
4. Fases sencillas de gestionar.
Inconvenientes:
1. Rigidez. Los proyectos reales no son lineales por requisitos
volátiles y errores.
2. Requisitos iniciales incompletos.
3. El producto sólo está disponible al final del proceso sin
retro-alimentación parcial del cliente.
4. Costes muy elevados para cambios de requisitos.
5. Bloqueos en la línea de trabajo por espera entre las fases.
Modelos de proceso del software.
Modelo en V.
Ventajas:
• Permiten que el cliente interaccione de forma temprana
con el resultado del proceso.
• Permite determinar rápidamente nuevo requisitos o
cambios en los mismos.
Inconvenientes:
• Elaboración de prototipos desechables para
comunicación con herramientas distintas de las
utilizadas para el desarrollo real: Coste.
• Cliente: Rechazo del que puede percibir el producto
“casi terminado”.
• Desarrollador: Adición de elementos a un prototipo
poco robusto por rapidez en detrimento de la calidad.
Modelos de proceso del software.
Modelo iterativo
Modelos de proceso del software.
Modelo iterativo
Ventajas
• Reutilización del SW
• Reducción del tiempo de desarrollo
• Reducción del coste de desarrollo
Modelos de proceso del software.
Métodos formales (Clean room SE)
Se caracterizan por:
• Emplear una especificación matemática formal para la
especificación, desarrollo y verificación.
• Suelen ser de interés en sistemas críticos (medicina,
aviación)
Ventajas
• Garantiza un SW libre de defectos.
Incovenientes
• Requieren mucho tiempo
• Personal con formación matemática.
• Dificulta la comunicación con el cliente.
Modelos de proceso del software.
Programación orientada a aspectos
Se caracteriza por:
• Definir, especificar y construir aspectos del SW que
impactan en varias partes del sistema: Seguridad, IU,
gestión de archivos, etc.
• Generan código de utilidad para múltiples situaciones:
patrones.
Ventajas
• Reutilización de código.
• Inversión a medio-largo plazo.
Incovenientes
• Cambios en las especificaciones pueden afectar a
varios aspectos y a todos sus “clientes”
Modelos de proceso del software.
El proceso unificado
(J. Rumbaugh, G. Booch, I. Jacobson)
Se caracteriza por:
• Ser iterativo e incremental: El proceso queda dividio en
sucesivas iteraciones. La diferencia entre cada dos
iteraciones es un incremento.
• Dirigido por casos de uso permiten capturar requisitos
y actuar de herramienta de comunicación con el
cliente.
• Centrado en una arquitectura de calidad, que
establece los componentes resultantes y como se
organizan.
• Se apoya en UML (Unifed Modeling Language) creado
por los mismos autores.
Modelos de proceso del software.
El proceso unificado
(J. Rumbaugh, G. Booch, I. Jacobson)
El ciclo de vida se divide en cuatro fases que terminan con sus
respectivos hitos (milestones):
• Inicio: Objetivos del proyecto.
• Elaboración: Diseño de la arquitectura del sistema.
• Construcción: Desarrollo y verificación.
• Transición: Entrega y validación.
En cada fase puede haber una o más iteraciones. En cada
iteración se realizan cinco flujos de trabajo:
• Requisitos.
• Análisis
• Diseño
• Implementación
• Pruebas
Modelos de proceso del software.
El proceso unificado