Está en la página 1de 4

Alejandra M. Rodríguez Fernández (alerodriguez@a-coruna.uned.

es)
C.A A Coruña

INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE


TEMA 2: El ciclo de vida del software
El ciclo de vida es algo propio de los seres vivos (nacer, crecer, reproducirse, morir) que implica una evolución
temporal
- Perspectiva artesanal: el ciclo de vida no es tal sino un hecho aislado en el que el bien se realiza por encargo y se entrega
al finalizar su elaboración
- Perspectiva de la producción industrial: fases de ingeniería, producción y comercialización
- Perspectiva de la ingeniería: etapas de diseño preliminar, diseño básico, diseño ejecutivo y diseño final (más acciones de
diseño realizadas en periodo de explotación, mantenimiento o mejora)
- Perspectiva de un producto en el mercado: introducción en el mercado, crecimiento, madurez y declive (actividades
propias del marketing)
El software cuando se está diseñando debería tratarse como un producto de ingeniería, cuando se está produciendo como
cualquier otro producto industrial y cuando se está comercializando deberían seguirse las pautas habituales
El término ciclo de vida del software suele hacer referencia a la parte de ingeniería, englobando el proceso de
desarrollo y el mantenimiento

Fases del ciclo de vida del software


Cada fase lleva asociadas una serie de tareas o actividades que deben realizarse y en ella se generan documentos donde se
presenta el trabajo y que sirven para que todas las partes implicadas (clientes, diseñadores, etc.) validen sus compromisos.
Los documentos generados en cada fase sirven de entrada y alimentan las fases siguientes

1. Análisis
- Actividades: se lleva a cabo una especificación programación, bases de datos, sistemas de
precisa del sistema. Se recogen y estudian información, etc. En esta fase también se construyen
detalladamente las necesidades de los usuarios del los elementos necesarios para comprobar que el
futuro sistema software pues deben ser satisfechas sistema construido funciona correctamente
durante su funcionamiento (requisitos) - Documentación: código fuente que contiene todos
- Documentación: SRD (Software Requirements los programas en el lenguaje seleccionado y
Document) o documento de requisitos del software. debidamente documentados
Es una especificación precisa y completa de lo que el 4. Integración
sistema debe hacer sin entrar en detalles internos
- Actividades: se unen los elementos construidos en
2. Diseño la fase anterior para dar forma al sistema completo.
- Actividades: se elabora un esquema donde se Deben realizarse aquí pruebas exhaustivas para
incluyen los elementos necesarios para que el sistema garantizar que el conjunto construido funcionará
funcione según las especificaciones del análisis. Un adecuadamente durante la fase de explotación1
diseño adecuado permite optimizar los recursos de - Documentación: sistema software completo en
producción forma de ejecutable, junto a la documentación
- Documentación: SDD (Software Design Document). Es sobre el proceso de integración y las pruebas
una descripción de la estructura global del sistema realizadas
especificando los elementos que lo componen, lo 5. Mantenimiento
que hace cada uno y cómo se combinan entre ellos.
Suele ser de carácter gráfico - Actividades: se realizan los cambios para corregir
errores no detectados o para introducir mejoras
3. Codificación - Documentación: documentos de cambios donde
- Actividades: se construyen por separado cada uno queda constancia de los problemas detectados (o
de los elementos definidos en el diseño utilizando las nuevas necesidades), la solución adoptada y las
herramientas adecuadas como lenguajes de acciones realizadas en cada modificación

1 Periodo de funcionamiento del sistema. No forma parte como tal del


ciclo de vida del software
Alejandra M. Rodríguez Fernández (alerodriguez@a-coruna.uned.es)
C.A A Coruña

Tipos de ciclo de vida del software - Validación: comprobación de que un


elemento en particular satisface las
Ciclo de vida en cascada necesidades del usuario identificadas en el
análisis (nivel de sistema)
- Secuenciación de las fases del ciclo de vida del - El modelo se puede ampliar y detallar dependiendo
software, donde cada fase debe completarse antes de de la complejidad del sistema
abordar la siguiente
- Cada fase se separa claramente de la siguiente por lo
que puede realizarse de forma independiente
- Los documentos generados en cada fase son los
elementos de unión entre ellas, puesto que cada fase
basa su trabajo en los resultados de la anterior
- Se establecen procesos de revisión rigurosa y
formal al completar cada fase para detectar
rápidamente los errores y evitar que se propaguen. Las
revisiones se realizan sobre la documentación
generada en cada fase siguiendo generalmente una
lista de comprobaciones preestablecida Prototipos
- El modelo se puede ampliar y detallar dependiendo Un prototipo es un sistema auxiliar que permite probar
de la complejidad del sistema experimentalmente soluciones parciales a las
necesidades del usuario o requisitos del sistema
- Los modelos clásicos son muy lineales y no
contemplan de manera organizada las vueltas atrás
(revisiones para evitar los retrocesos)
- Para reducir el costo del desarrollo del prototipo se
puede limitar sus funciones, su capacidad (con menos
datos), su eficiencia (más lento), reducir la parte de
desarrollo o evitar restricciones hardware

Prototipos rápidos (maquetas o de usar y tirar)


Ciclo de vida en V - Prototipos cuya finalidad es solamente adquirir
experiencia, no se pretende aprovecharlos
- Secuenciación, pero dando importancia a la visión
- Se suelen utilizar durante las fases de análisis y/o
jerarquizada de las distintas partes del sistema a
diseño para probar alternativas
medida que se avanza
- Una vez utilizado el prototipo el sistema se codifica
- Es un diagrama bidimensional donde el eje
partiendo de cero
horizontal representa el avance en el desarrollo y el
- Lo más importante de este tipo de prototipos es que
eje vertical el nivel de detalle de cada fase
se desarrollan en poco tiempo
- El sistema se va descomponiendo en elementos
cada vez más sencillos hasta llegar a las sentencias del
lenguaje, y a partir de ahí se va construyendo
integrando poco a poco los distintos elementos
- En las actividades de un nivel se trabaja sobre una
unidad de nivel de detalle superior que se organiza
en varias unidades del nivel inferior (Ej. en el diseño
se trabaja con un sistema que se organiza en módulos;
en la codificación se trabaja con un módulo que se
organiza en sentencias, etc.)
- Es fundamental realizar comprobaciones en las
distintas fases:
- Verificación: comprobación de que una parte
del sistema cumple con sus especificaciones
(nivel de módulo)
Alejandra M. Rodríguez Fernández (alerodriguez@a-coruna.uned.es)
C.A A Coruña
ventajosas y tomando medidas para evitar los
Prototipos evolutivos inconvenientes previstos
 Ingeniería: son las de los modelos clásicos,
- Prototipos que son una realización parcial del
es decir, análisis, diseño, codificación, etc., de
sistema y cuya finalidad es aprovechar al máximo el
forma que en cada ciclo se obtenga una
código, por lo que se desarrollan en el mismo soporte
versión más completa del sistema
que el sistema final
- Se van construyendo versiones sucesivas del  Evaluación: en estas actividades de analizan
prototipo cada vez más completas hasta llegar al los resultados de la fase anterior de
sistema deseado, al mismo tiempo que se obtiene los ingeniería, utilizándose el resultado de la
documentos de las distintas fases evaluación como información de entrada
- El desarrollo de prototipos evolutivos da lugar a un para las actividades de planificación del ciclo
tipo de ciclo de vida que sería como un bucle siguiente
iterativo del modelo en cascada, donde en cada
iteración se acomete solamente una parte del
desarrollo

El modelo en espiral Programación extrema (XP)

Este modelo es un refinamiento del modelo evolutivo Es una metodología de las llamadas de desarrollo ágil,
general que buscan ser una alternativa viable para cumplir las
expectativas de los clientes en cuanto a calidad, tiempo
- Introduce la actividad de análisis de riesgo para de entrega y precio
guiar la evolución del proceso de desarrollo del
software - Su objetivo principal es ser capaz de responder de
- El ciclo de iteración del modelo evolutivo se convierte una forma rápida y de calidad a las exigencias de
en una espiral mediante la incorporación como los clientes (satisfacción de los mismos)
dimensión radial de una indicación del esfuerzo - Da por sentado que los requisitos del cliente
total realizado hasta cada momento (valor siempre cambian a lo largo del proceso y que es necesario
creciente) adaptarse a ellos de una forma ágil
- Las actividades se representan sobre unos ejes - Es un proceso ligero, de bajo riesgo, flexible,
cartesianos en cada cuadrante y se suceden a lo predecible, científico y “divertido” de desarrollar
largo de cada ciclo de la espiral. En cada ciclo se software.
realiza una parte del desarrollo total siguiendo la - Propone ciclos del proceso de software cortos y
secuencia de estas cuatro clases de actividades: rápidos, realizando pruebas de unidad. Se van
 Planificación: sirven para establecer el creando pequeñas versiones o prototipos que se
prueban antes de continuar
contexto de desarrollo y decidir qué parte se
abordará en ese ciclo concreto de la espiral - Se replanifica, rediseña y recodifica en cada nueva
versión, en un proceso iterativo hasta llegar a cumplir
 Análisis de riesgo: consisten en evaluar
todos los requisitos del cliente
distintas alternativas para realizar la parte del
- El equipo de desarrollo en esta metodología debe
desarrollo seleccionada durante la
basarse en cuatro valores fundamentales:
planificación, seleccionando la más
 Sencillez: desarrollar exclusivamente lo
solicitado por el cliente y de forma sencilla
Alejandra M. Rodríguez Fernández (alerodriguez@a-coruna.uned.es)
C.A A Coruña

 Comunicación: trabajo en equipo y con el


cliente
 Retroalimentación: con el cliente y con el
propio sistema
 Valentía: necesaria para afrontar la
recodificación continua a medida que
cambian los requisitos

También podría gustarte