1. 24/08/2014
Universidad Nacional de Jujuy
Facultad de Ingeniería
Carrera: APU 2008 – San Salvadorde Jujuy
Ing. Nélida R. Cáceres
Profesor Adjunto Ordinario - Cátedra: Análisis y Diseño de Sistemas I - 2014
El Proceso
Es una serie de pasos que involucran actividades,
restricciones y recursos que producen una
determinada salida esperada. El proceso involucra
un conjunto de herramientas y técnicas (Pleeger,
2002).
Cuando se construye un producto o sistema es
importante seguir una serie de pasos predecibles
(una especie de mapa) que ayude a crear un
resultado de alta calidad y a tiempo. Este mapa se
denomina Proceso de Software (Pressman, 2006).
1
2. 24/08/2014
El Proceso
Cuando el proceso implica la construcción de algún
producto se suele denominar al proceso “Ciclo de
Vida”.
Entonces el proceso de desarrollo de software se
denomina ciclo de vida del software, ya que
describe la vida de un producto de software desde
su concepción hasta su implementación, entrega,
utilización y mantenimiento.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
Importancia del Proceso
•Imponen consistencia y estructura sobre un
conjunto de actividades.
•Un proceso de desarrollo de software debe
describirse de manera flexible que permita que las
personas diseñen y construyan software utilizando
herramientas y técnicas preferidas.
•Un proceso en más que un procedimiento, es un
conjunto de procedimientos organizados para
construir productos que satisfagan las metas y
estándares.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
2
3. 24/08/2014
Importancia del Proceso
•Ofrece estabilidad, control y organización a una
actividad que puede volverse caótica si no se
controla.
•Los pasos que se realicen van a depender del
software que se está construyendo. Por ejemplo un
proceso puede ser apropiado para un sistema de
aeronáutica pero quizás no es el adecuado para la
creación de un sitio web.
Fuente: Ingeniería del Software.– Pressman
Características del Proceso
•El proceso establece todas las actividades
principales que se realizarán.
•Utiliza recursos, posee restricciones (calendario) y
genera productos intermedios y finales.
•Puede estar compuesto por subprocesos que se
encadenan de alguna forma y cada subprocesos
puede tener su propio modelo de proceso.
•Cada actividad del proceso tiene criterios de
entrada y salida, que permita conocer cuando inicia
y finaliza una actividad.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
3
4. 24/08/2014
Características del Proceso
•Todas las actividades del proceso se realizan
siguiendo una secuencia.
•Todos los procesos tienen un conjunto de
principios orientadores que explican la meta de
cada actividad.
•Una actividad, un recurso o un producto pueden
tener restricciones y controles. Por ejemplo, una
actividad puede tener un tiempo límite de ejecución
y cierta cantidad de recursos asignados.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
Actividades del Proceso
•Análisis y definición de los requerimientos.
•Diseño del sistema.
•Diseño de programas.
•Escritura de los programas (implementación de
programas).
•Prueba unitaria, de integración y del sistema.
•Entrega del sistema.
•Mantenimiento.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
4
5. 24/08/2014
Modelo de Proceso
Un modelo de proceso del software es una
representación abstracta de un proceso de
software. Cada modelo de proceso representa un
proceso desde una perspectiva particular, y así
proporciona solo información parcial sobre ese
proceso.
Estos modelos no son descripciones definitivas
sino son abstracciones de los procesos que se
pueden utilizar para explicar distintos enfoques
para el desarrollo de software.
Fuente: Ingeniería del Software – Sommerville
Modelo de Proceso
Algunos modelos son prescripciones respecto de la
forma que debe avanzar el desarrollo de software, y
otras son descripciones de la forma en la cual el
desarrollo de software se hace en la realidad.
Los modelos prescriptivos intentan mejorar la
calidad del sistema, hacen que los proyectos sean
más manejables, que las fechas de entrega y los
costos sean más predecibles y guían al equipo de
desarrollo de software mientras realizan todo lo
relacionado a la construcción del sistema.
(Pressman, 2006)
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
5
6. 24/08/2014
Razones para el modelado de un
Proceso
•La creación de un modelo de proceso ayuda al
equipo de desarrollo a
inconsistencias, redundancias y
encontrar las
omisiones en el
proceso y en las partes que lo constituyen. A
medida que estos problemas se descubren y se
corrigen, el proceso se vuelve más efectivo y
concentrado en la construcción del producto final.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
Razones para el modelado de un
Proceso
•El modelo debe reflejar las metas de desarrollo:
construcción de software de alta calidad, detección
temprana de los defectos en
cumplimiento del cronograma
el desarrollo,
de entrega,
considerar las restricciones de presupuesto, etc.
•Todo proceso debe ser adaptado a la situación
para la cual será utilizado.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
6
7. 24/08/2014
Razones para el modelado de
un Proceso
•Todo modelo de proceso de desarrollo de software
incluye los requerimientos del sistema como
entrada y un producto entregado a la salida.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
•Préstamos de libros
•Devolución de libros
•ABM socios
•ABM libros
•….
Modelo de proceso
Sistema
Gestión de
Biblioteca
Modelos de Proceso
•Modelo Cascada
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
7
8. 24/08/2014
Modelo Cascada
Ventajas
• Es simple y fácil de explicar.
• Detalla los productos intermedios que son necesarios
a fin de poder comenzar la siguiente etapa de
desarrollo.
• Los usuarios lo pueden comprender fácilmente.
Desventajas
• Una etapa de desarrollo debe completarse antes de
dar comienzo a la siguiente.
• En la vida real, rara vez sigue una secuencia lineal,
esto crea una mala implementación del modelo, lo
cual puede llevar el proyecto al fracaso.
• El proceso de creación de software tarda mucho
tiempo, y cuando recién está completo se utiliza.
Modelos de Proceso
Modelo de cascada con prototipado
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
8
9. 24/08/2014
Modelos de Cascada con
prototipado
Ventajas
• En la fase del análisis permite a los desarrolladores a
implementar una pequeña cantidad de
requerimientos claves para asegurar que sean
consistentes, si no ocurre esto entonces se debe
realizar revisiones en la etapa de requerimientos.
• En la fase del diseño ayuda a evaluar las estrategias
de diseño alternativas y decidir cual es la mejor para
un proyecto en particular.
Desventajas
• Requiere participación activa del usuario para
evaluar el prototipo.
• El usuario quiere solucionar con el prototipo su
problema en particular.
Modelos de Proceso
Modelo V
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
Validación: asegura que el sistema
ha implementadotodos los
requerimientos.Asegura al
desarrollador que está
construyendoel proyecto
correcto.
Verificación: asegura que cada
requerimientofunciona
correctamente.Comprueba la
calidad de la implementación.
9
10. 24/08/2014
Modelo V
Ventajas
• Hace más explícita la parte de la iteración y permite
rehacer las tareas que están ocultas en el modelo
cascada.
• Centrada en la actividad y exactitud, a diferencia del
modelo cascada que enfatiza los documentos y los
artefactos producidos.
Desventajas
• Insume mucho tiempo en su desarrollo.
Modelos de Proceso
Modelo prototipado
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
10
11. 24/08/2014
Modelo Prototipado
Ventajas
• Este ciclo de vida involucra al cliente.
• Es útil cuando el cliente conoce los objetivos
generales para el software, pero no identifica los
requisitos detallados de entrada, proceso y salida.
• Ayuda al desarrollador de software y al cliente a
entender cual será el resultado de la construcción
cuando los requisitos estén satisfechos.
Desventajas
• El cliente conoce el prototipo y puede decepcionarse
al indicarle que el sistema aún no ha sido construido.
• El desarrollador puede caer en la tentación de
aumentar el prototipo para construir el sistema final.
Modelos de Proceso
Modelo de Especificación operacional
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
11
12. 24/08/2014
Modelos de Proceso
Ventajas
• Los clientes y desarrolladores pueden examinar los
requerimientos en una etapa temprana.
• Los requerimientos del sistema son evaluados y
ejecutados de forma tal que muestran el
comportamiento del sistema.
Desventajas
• Las que presenta en modelo prototipado, ya que es
muy similar a éste.
Modelos de Proceso
Modelo de Transformación
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
12
13. 24/08/2014
Modelo de Transformación
Ventajas
• Intenta reducir el error por medio de la eliminación de
varios de los pasos del desarrollo.
• El proceso de transformación aplica una serie de
transformaciones para convertir la especificación en
un sistema listo para implementar.
Desventajas
•Un impedimento para su utilización es la necesidad de
una especificación formal para que las
transformaciones puedan operar sobre ella de manera
precisa.
Modelos de Proceso
Modelo Incremental e iterativo (desarrollo por fases)
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
13
14. 24/08/2014
Modelo Incremental e Iterativo
Ventajas
• El entrenamiento puede comenzar sobre una versión
temprana, aunque se hayan omitido funcionalidades.
• Las versiones frecuentes permiten que los
desarrolladores solucionen problemas de forma rápida a
medida que son informados desde el sistema operacional
de dicho problema.
• El equipo de desarrollo puede centrarse en distintas áreas
de especialización con las diferentes versiones. Por
ejemplo cambiar la interfaz o mejorar el rendimiento del
sistema.
Desventajas
• En el iterativo se debe tener cuidado con el versionado de
los incrementos.
• No es recomendable para sistemas de tiempo real.
Modelos de Proceso
Modelo Espiral
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
14
15. 24/08/2014
Modelo Espiral
Ventajas
• El análisis de riesgo se realiza de forma explícita y
clara, por lo que reduce el riesgo del proyecto.
• Incorpora objetivos de calidad.
• Integra el desarrollo con el mantenimiento.
• Es posible tener en cuenta mejoras y nuevos
requerimientos sin romper con la metodología, ya
que este ciclo de vida no es ´rígido ni estático.
Desventajas
• Genera mucho tiempo en el desarrollo del sistema.
• Modelo costoso.
• Requiere experiencia en la identificación de riesgos.
Modelos de Proceso
Modelo de reutilización de proceso
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
15
16. 24/08/2014
Modelo de reutilización de
proceso
Ventajas
• Se cuenta con componentes certificados para
construir el software.
Desventajas
• Genera mucho tiempo en el desarrollo del sistema.
• Modelo costoso.
• Requiere experiencia en la identificación de riesgos.
• Cuando el sistema falla se pierde tiempo y coste
dentro de la empresa.
• Exige una cierta habilidad en los analistas.
Ejemplo del modelo de
reutilización de proceso
• El software de Ariane-4 realiza el control de un
cohete.
• El software de Ariane-5 reutilizaba el software de
Ariane-4.
• La reutilización estaba pensada para reducir riesgos,
aumentar la productividad e incrementar la calidad.
• El nuevo software de Ariane-5 debía incluir tareas de
verificación de la calidad de los componentes
reutilizables.
• ¿Por qué falló?
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
16
17. 24/08/2014
Ejemplo del modelo de
reutilización de proceso
•El sistema de referencia inercial de Ariane-5 es
esencialmente común a un sistema que actualmente
está volando en Ariane-4. La parte de este software que
causó la interrupción en los computadores del sistema
inercial se usa antes del lanzamiento para alinear el
sistema de referencia inercial y, en Ariane-4, también
para habilitar un rápido realineamiento del sistema en
caso de una suspensión tardía de la cuenta atrás. Esta
función de realineamiento, que no sirve para nada en el
Ariane-5, fue aún así retenida por razones de
comunalidad y permitida, como en Ariane-4, su
operación durante aproximadamente 40 segundos
después del despegue.
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
Ejemplo del modelo de
reutilización de proceso
•Durante el diseño del software del sistema de
referencia inercial usado para Ariane-4 y Ariane-5, se
tomó la decisión de que no era necesario proteger la
computadora del sistema inercial de perder su
operatividad por un valor excesivo de la variable
relacionada con la velocidad horizontal, una protección
particular podía asumir cuando el software de
alineamiento operara tras el despegue.
•Artículo completo: http://www.upv.es/satelite/trabajos/pract_9/kike/paginas/accid.htm
•Video : https://www.youtube.com/watch?v=kYUrqdUyEpI
Fuente: Ingeniería del Software. Teoría y Práctica– Pleeger
de que
software
decisión,
habían sido provistas otras variables del
de alineamiento. Cuando se tomó esta
no fueron analizados o plenamente
variable encomprendidos los valores que esta
17
18. 24/08/2014
Bibliografía
•Ingeniería del Software. Teoría y Práctica, Pleeger Shari, 1º edición,
2002
•Ingeniería del Software, Pressman Roger, 6º edición, 2006
•Ingeniería del Software, Sommerville Ian, 7º edición, 2005
18