U2-Procesos de Software y Ciclo de Vida
U2-Procesos de Software y Ciclo de Vida
U2-Procesos de Software y Ciclo de Vida
1.- Introducción
Proceso:
El proceso de software es una serie de pasos que involucran
actividades, restricciones y recursos que producen un resultado
esperado.
-1-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
-2-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Actividad 1: La encuesta
Identificar los usuarios responsables y crear un “campo de
actividad” inicial del sistema.
Identificar las deficiencias del ambiente actual del usuario.
Establecer metas y objetivos para el sistema nuevo.
Determinar si es factible la automatización del sistema.
Preparar el esquema de guía de la ejecución del proyecto.
Actividad 3: Diseño
El diseño debe asignar partes de la especificación (módulos,
procesos, subsistemas) creando una jerarquía apropiada de módulos
y programas soportada por una estructura de hardware.
Se transforma el modelo entidad-relación en un diseño de bases de
datos.
Se define el modelo de implementación del usuario.
Actividad 4: Implementación
-3-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Actividad 7: Procedimiento
El manual del usuario es el resultado final como documentación a
emplear por los operadores del sistema. Este manual puede tener
diferentes implementaciones y presentaciones para el usuario,
tendiéndose cada vez más a que el usuario disponga de una
interacción dinámica (en tiempo de ejecución) con el sistema de
modo de consultar todos los elementos de la documentación auxiliar
del sistema sobre la misma máquina.
Actividad 9: Instalación
El paso de incorporación final del sistema automatizado puede ser
gradual o sin transición. En ocasiones es conveniente mantener
actividades manuales paralelas.
Es muy importante tener definidos los conjuntos de tests que
permitirán abandonar la transición y declarar el sistema como
“instalado”.
-4-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Desarrollo incremental:
-5-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Desarrollo iterativo:
-6-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Codificación Codificación
Codificación
Modelo en espiral
Ha sido desarrollado para cubrir las mejores características tanto del ciclo
de vida clásico, como de la creación de prototipos, añadiendo al mismo
tiempo un nuevo elemento: el análisis de riesgo, que falta en esos
paradigmas.
-7-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Con cada vuelta alrededor de la espiral se construye una nueva versión del
software, cada vez más completa. Durante la primera vuelta se definen los
objetivos, alternativas y las restricciones, y se analizan e identifican los
riesgos. Si el análisis de riesgo indica que hay incertidumbre en los
requisitos, en la etapa del análisis de riesgo, se puede utilizar la creación de
prototipos en la parte de la ingeniería, dando así, asistencia al encargado
del desarrollo como al cliente.
Luego, el cliente evalúa el trabajo de la ingeniería y sugiere modificaciones.
De acuerdo a los comentarios del cliente, se produce la siguiente fase de
planificación y de análisis de riesgo. Cada vuelta alrededor de la espiral, la
culminación del análisis de riesgo resulta en la decisión de seguir, o no
seguir. Si los riesgos son demasiado grandes, se puede dar por terminado el
proyecto. En la mayoría de los casos se sigue avanzando alrededor de la
espiral, y el camino lleva a los desarrolladores hacia un modelo más
completo del sistema, y al final al propio sistema operacional.
Cada vuelta requiere ingeniería, que puede llevarse a cabo mediante el
enfoque del ciclo de vida clásico o de la creación de prototipos.
Este paradigma es el enfoque más realista del desarrollo de software y de
sistemas a gran escala. Utiliza un enfoque evolutivo, permitiendo al
desarrollador y al cliente entender y reaccionar a los riesgos en cada nivel
evolutivo, antes de que se conviertan en problemáticos. Puede ser difícil de
convencer a grandes clientes de que el enfoque evolutivo es controlable.
Requiere una considerable habilidad para la valoración del riesgo y cuenta
con esta habilidad para el éxito.
Prototipos:
-8-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Prototipo desechable:
El objetivo es obtener el conjunto de requerimientos y luego se combina con
otro paradigma para obtener el producto final.
Este enfoque de prototipos supone que el modelo simulará alguna o todas
las funciones que el usuario desea y que al concluirse el modelado los
programas se descartarán y reemplazarán con programas reales.
Es peligroso tentarse a adoptarlo como producto final
Si el prototipo se descarta y se reemplaza con el sistema real puede que no
quede documentación de los requerimientos del usuario
Prototipo evolutivo:
El objetivo es obtener el sistema a entregar.
Permite que todo el sistema o alguna de sus partes se construyan
rápidamente para comprender o aclarar aspectos y asegurar que el
desarrollador, el usuario y el cliente tengan una comprensión unificada
tanto de lo que se necesita como de lo que se propone como solución.
Proceso Unificado:
Es un marco de desarrollo de software que se caracteriza por estar dirigido
por casos de uso, centrado en la arquitectura y por ser iterativo e
incremental.
Características:
Iterativo e Incrementa:
El Proceso Unificado es un marco de desarrollo iterativo e incremental
compuesto de cuatro fases denominadas Inicio, Elaboración, Construcción y
Transición. Cada una de estas fases es a su vez dividida en una serie de
iteraciones (la de inicio sólo consta de varias iteraciones en proyectos
grandes). Estas iteraciones ofrecen como resultado un incremento del
producto desarrollado que añade o mejora las funcionalidades del sistema
en desarrollo.
-9-
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Centrado en la arquitectura:
El Proceso Unificado asume que no existe un modelo único que cubra todos
los aspectos del sistema. Por dicho motivo existen múltiples modelos y
vistas que definen la arquitectura de software de un sistema. La analogía
con la construcción es clara, cuando construyes un edificio existen diversos
planos que incluyen los distintos servicios del mismo: electricidad,
fontanería, etc.
- 10 -
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
- 11 -
INGENIERIA DE SOFTWARE
Apunte de la unidad 2: Procesos de software
Docente: Arellano Matías
Combinación de Paradigmas
En muchos casos los paradigmas pueden y deben considerarse de
forma que puedan utilizarse las ventajas de cada uno en un único
proyecto.
En todos los casos se comienza con la determinación de objetivos,
alternativas y restricciones, pasos que se llaman “recolección
preliminar de requisitos”. A partir de ese punto se puede tomar
cualquier camino
- 12 -