B03-T01 Ciclo de vida Flashcards
(27 cards)
Definición de ingeniería de software
El establecimiento y uso de principios de ingeniería
orientados a obtener, de manera económica, software que
sea fiable y funcione eficientemente sobre
máquinas reales
Épocas o etapas en relación con la ingeniería del software y características esenciales de cada una.
1 época (50 a 60 - 65): trabajo por lotes, software a medida, sin planificación
2 época (60-65 – 75): trabajo interactivo en tiempo real, producción comercial de software, comienzo de la crisis del softwae
3 época (75 - 85-90): orientación a sistemas distribuidos, redes de área local, primeros ordenadores personales
4 época (apartir 90): Siste,asexpertos e inteligencia artificial, tecnologías orientadas a objetos, técnicas de 4 generación, tecnología CASE, se agudiza la crisis del software
¿Cuáles son los síntomas de la crisis del software?
Expectativas defraudadas, software poco fiable, incertidumbre en el coste, incumplimiento de plazos, porca portabilidad, mantenimiento costoso, falta de eficiencia
¿Cuáles son los principales problemas de la crisis del software?
Planificación y estimación, productividad vs. demanda, productividad -> calidad
Causas principales de la crisis
Falta de metodología y la expansión sin control
¿En qué se enfocaron para resolver el problema?
Planificación
y estimación de costes
del software, baja productivdad
frente a la alta demanda calidad del producto software
Elementos clave de la infeniería del software
Métodos (manera de construir el software):
* Planificación y estimación del proyecto
* Análisis de requerimientos
* Diseño (estructura de datos, arquitectura, procedimiento)
* Condificación, pruebas y mantenimiento
Herramientas (soporte automático o semiautomático):
CASE: integración de herramientas para el desarrollo del software
Procedimientos, protocolos: nexo de unión entra las herramientas y los métodos
Principios ingeniería software
- Calidad
- Buena gestión más importante que buena tecnología
- Personas y tiempo no son intercambiables
- Seleccionar el modelo de ciclo de vida adecuado
- Determinar el problema antes de los requisitos
- Evaluar alternativas de diseño
- Selección de técnicas y formalismos adecuados para cada fase
- Las técnicas son anteriores a las herramientas
¿Cuáles son los aspectos en los que hay que fijarse para selecionar el ciclo de vida adecuado, o la metodología correcta?
- Cultura de la organización
- Disponibilidad para correr riesgos
- Dominio de la aplicación
- Volatibilidad de requisitos
¿Cuáles son las tres fases genéricas de la ingeniería de software?
Definición. ¿Qué hacer?
Desarrollo ¿cómo hacerlo?
Mantenimiento ¿qué hay que cambiar?
Etapas generales en la definición o descubrimiento de requerimientos
- Análisis global del sistema: define el papel de cada elemento del sistema informático
- Planificación del proyecto software:Asignación de recursos, estimación de costes, definición de tareas y planificación del trabajo
- Análisis del requerimiento software: Definir todo lo posible el dominio de la información y la función que ha de cumplir el software
Etapas en el desarrollo de software (¿cómo hacerlo?)
- Diseño de software: trasladar los requerimientos a un diseñosoftware
- Codificación
- Pruebas
Cuáles son las 4 clases de mantenimiento definidad por Métrica 3 (MSI)
- Mantenimiento correctivo: corrección de errores
- Mantenimiento evolutivo
- Mantenimiento adaptativo: relacionados con los cambiosde infraestructura
- Mantenimiento perfectivo: mejora de la calidad del sistema
Definición de ciclo de vida
Conjunto de etapas por las que atraviesa el sistema desde su concepción hasta su retirada de servicio, pasando por el desarrollo y la explotación
¿Cuáles son los objetivos básicos del ciclo de vida?
- Definición de actividades
- Establecer criterios de transición
- Proporcional puntos de control
- Asegurar la consistencia
Modelos de ciclo de vida tradicionales
- Modelo code and fix
- Clásico o en cascada (1970)
- Refinamiento sucesivo o mejora iterativa
- Estándares militares e industriales
- Modelos basados en la utilización de prototipos
Modelos de ciclo de vida alternativos
- Modelos orientados al desarrollo de software -> Modelo de ensamblaje de componentes reutilizables
- Modelos orientados al proceso de producción de software -> Modelos cuarta generación, Modelo en espiral (Böehm, 1986)
Modelo code and fix
- Previo a 1970
- Consistía en escribir el código del programa y luego en corregir los fallos
- Se caracteriza por la falta de estructuración de código
Benefición del modelo en cascada
- Etapas organizadas en un modo lógico
- Cada etapa incluye un proceso de revisión y aceptación del producto
- El ciclo es iterativo en tanto que los problemas encontrados en la primera fase afectan a las decisiones que se tomen en las fases superiores
Limitaciones del modelo en cascada
- Solo se puede validar cuando esta terminado
- En algunos proyectos la ordenación de etapas resulta inviable
- Asume que los requisitos del sistema quedan congelados (para nuevos sistemas es poco realista)
Etapas del modelo en cascada
- Planificación (scope, recursos necesarios, tareas a realizar, costes, limitaciones,,)
- Establecimiento de requisitos
- Diseño (interfaces de usuario, estructura del sistema, decisiones sobre implantación posterior)
- Codificación
- Pruebas de integración
- Implantación y validación
- Mantenimiento
Tipos de modelos que utilizan prototipos
- Clásico
- Maqueta (entrada y salida estáticas)
- Prototipo evolutivo
- Modelo de desarrollo integral
Explica en qué consiste el modelo de prototipo evolutivo
- Son prototipos que se evolucionarán, implementación parcial del sistema
- Llegará un momento en que será necesario refactorizarlo por completo
- Uno de estos modelos es el Modelo de RAD (Rapid Application Development)
Componentes modelo de RAD
(Rapid Application Development)
- Personas
- Herramientas
- Metodología
- Gestión