Você está na página 1de 27

INGENIERIA DE SOFTWARE

Un enfoque practico
Roger S. Pressman

CAPITULO 2 Modelos del Proceso

PROCESO DEL SOFTWARE


Se define como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad.

NOTA:
No es lo mismo proceso de software que ingeniera de software. Un proceso define el enfoque adoptado mientras se hace ingeniera sobre el software.

UN MODELO GENERAL DE PROCESO

Flujo del proceso


Describe la manera en que estn organizadas las actividades estructurales y las acciones y tareas que ocurren dentro de cada una con respecto a la secuencia y el tiempo. Flujo de proceso lineal. Ejecuta cada una de las actividades estructurales en secuencia.

Flujo de proceso Iterativo. Repite una o ms actividades antes de pasar a la siguiente

Flujo de proceso evolutivo. Realiza las actividades en forma circular. A travs de las cinco actividades, cada circuito lleva a una versin ms completa del software.

Flujo de proceso paralelo. Ejecuta una o ms actividades en paralelo con otras.

Evaluacin y mejoras del proceso


La existencia de un proceso de software no es garanta de que el software se entregue a tiempo, que satisfaga las necesidades de los consumidores, o que tenga las caractersticas tcnicas que conducirn a caractersticas de calidad a largo plazo. Adems el proceso en si puede evaluarse para garantizar que cumple con ciertos criterios de proceso bsicos que se haya demostrado que son esenciales para el xito de la ingeniera de software. Algunos enfoques para la evaluacin y mejora de un proceso del software:

- Mtodo de evaluacin del estndar CMMI para el proceso de mejoras (SCAMPI)


- Evaluacin basada en CMM para la mejora del proceso interno (CBA IPI) - SPICE - ISO9001:2000 para software

MODELOS DEL PROCESO PRESCRIPTIVO

Fueron propuestos originalmente para poner orden en el caos del desarrollo de software. Se les llama as porque prescriben un conjunto de elementos del proceso: actividades estructurales, acciones de ingeniera de software, tareas, productos de trabajo, aseguramiento de la calidad y mecanismos de control del cambio para cada proyecto.

Modelo de la cascada
El modelo de cascada, a veces llamando ciclo de vida clsico, sugiere un enfoque sistemtico y secuencial para el desarrollo de software que comienza con la especificacin de los requerimientos por parte del cliente y avanza a travs de la planeacin, modelado, construccin y desarrollo, para concluir con el apoyo del software terminado.

Modelos de proceso incremental


El modelo incremental combina elementos de los flujos del proceso lineal y paralelo. Aplica secuencias lineales en forma escalonada a medida que avanza el calendario de actividades. Cada secuencia lineal produce incrementos de software susceptibles a entregarse de manera parecida a los incrementos producidos en un flujo de proceso evolutivo.
Se utiliza en situaciones en las que los requerimientos iniciales de software estn razonablemente bien definidos, pero el alcance general del esfuerzo de desarrollo imposibilita un proceso lineal. Adems, tal vez haya la necesidad imperiosa de dar rpidamente cierta funcionalidad limitada de software a los usuarios y aumentarla en las entregas posteriores.

- En cada incremento se entrega un producto que ya opera - Los primeros incrementos son versiones desnudas (bsicas) - Es til en particular cuando no se dispone de personal para la implementacin completa del proyecto en el plazo establecido por el negocio.

Modelos de proceso evolutivo


Los modelos evolutivos son iterativos. Se caracterizan por la manera en que permiten desarrollar versiones cada vez ms completas del software.

Se utiliza cuando los requerimientos del negocio y del producto cambian conforme avanza el desarrollo, lo que hace que no sea realista realizar un trayectoria rectilnea hacia el producto final.

Hacer prototipos. Se utiliza cuando se tienen un conjunto de objetivos generales para el software, pero no se han identificado los requerimientos detallados para las funciones y caractersticas.

El modelo espiral. Propuesto por Barry Boehm, el modelo espiral es un modelo evolutivo del proceso de software y se acopla con la naturaleza iterativa de hacer prototipos con los aspectos controlados y sistmicos del modelo de cascada.

Modelos concurrentes
En ocasiones llamado ingeniera concurrente, es un modelo de desarrollo de software que permite que un equipo de software represente elementos iterativos y concurrentes de cualquiera de los modelos de proceso descritos anteriormente.

MODELOS DE PROCESO ESPECIALIZADO

Tienen muchas caractersticas de uno o ms de los modelos tradicionales, sin embargo, estos modelos tienden a aplicarse cuando se elige un enfoque de ingeniera de software especializado o definido muy especficamente.

Desarrollo basado en componentes.


Se trata de un desarrollo basado en componentes comerciales de software generalmente desarrollados por vendedores que los ofrecen como productos y que brindan una funcionalidad bien definida y permite que se integren al software que se va a construir. Incorpora muchas de las caractersticas del modelo espiral. Es de naturaleza evolutiva y demanda un enfoque iterativo para la creacin de software. Construye aplicaciones a partir de fragmentos de software prefabricados.

El modelo de mtodos formales


Agrupa actividades que llevan a la especificacin matemtica del software de cmputo. Permiten especificar, desarrollar y verificar un sistema basado en computadora por medio del empleo de una notacin matemtica rigurosa. Aunque este modelo promete un software libre de defectos, no es muy seguido y tiene algunos inconvenientes: - Se consume mucho tiempo de desarrollo y es caro - Se requiere de mucha capacitacin ya que pocos desarrolladores tiene la formacin necesaria - Incluyen complejidad tcnica para el cliente

Desarrollo de software orientado a aspectos


Conocido tambin como programacin orientada a aspectos (POA), es un paradigma de ingeniera de software relativamente nuevo que proporciona un proceso y enfoque metodolgico para definir, especificar, disear y construir aspectos: mecanismos ms all de subrutinas y herencia para localizar la expresin de una preocupacin global.

EL PROCESO UNIFICADO

Es un intento por obtener los mejores rasgos y caractersticas de los modelos tradicionales del proceso de software, pero en forma que implemente muchos de los mejores principios de desarrollo gil de software.

Fases del proceso unificado


Fase de concepcin. Agrupa actividades tanto de comunicacin con el cliente como de planeacin. Fase de elaboracin. Incluye actividades de comunicacin y modelado del modelo general del proceso Fase de construccin. Es idntica a la actividad de construccin definida para el proceso general del software. Fase de transicin. Incluye las ltimas etapas de la actividad general de construccin y la primera parte de la actividad de despliegue general. Fase de produccin. Se vigila el uso que se le da ala software

Fases del proceso unificado

MODELOS DEL PROCESO PEROSONAL Y DEL EQUIPO

Se trata de la creacin de un modelo que cubra las necesidades ms estrechas de los individuos y las ms generales de la organizacin.

Proceso personal del software


Representa un enfoque disciplinado basado en la medicin, enfatiza la necesidad de detectar pronto los errores. Define cinco actividades estructurales:

- Planeacin
- Diseo de alto nivel - Revisin de diseo de alto nivel - Desarrollo - Post mortem

Proceso del equipo de software


El objetivo es construir un equipo autodirigido para el proyecto, que se organice para producir software de alta calidad. Tiene los siguientes objetivos:

- Formar grupos autodirigidos


- Mostrar a los gerentes como dirigir y motivar a sus equipos

- Acelerar la mayora del proceso del software


- Brindar a las organizaciones muy maduras una gua para la mejora - Facilitar la enseanza universitaria de aptitudes de equipo con grado industrial

GRACIAS

Você também pode gostar