Sie sind auf Seite 1von 8

Ingeniera del Software

Proceso y Modelo de Procesos

Ingeniera del Software

Qu es un proceso de SW?

Es un conjunto
estructurado de
actividades que tienen
como resultado la
produccin de un
producto de software

Modelo de Procesos

Qu es un modelo de proceso
de SW?

Es una representacin
abstracta de un proceso
de software.
Representa una
descripcin de un
proceso desde una
perspectiva particular

Ing. Jess B. Olavarria Paz

Ingeniera del Software

Ingeniera del Software

Paradigmas de Procesos

Procesos del Software

Son modelos de procesos muy generales presentados desde un


punto de vista arquitectnico.

Ejemplos de paradigmas de procesos:


Modelo en cascada
Desarrollo evolutivo
Ingeniera del Software (IS) basada en componentes
Desarrollo formal de sistemas

Definen el ciclo de vida


Diferentes modelos de procesos del software
Actividades de un proceso genrico

Ingeniera del Software

Ingeniera del Software

Modelo de Procesos

Ciclo de vida del Software

Cada esfuerzo de desarrollo de software pasa por un ciclo de vida, un


proceso que incluye todas las actividades del ciclo de desarrollo que
tienen que ver con el lanzamiento inicial. La funcin principal del
modelo de ciclo de vida es establecer el orden en que un proyecto
especifica, implementa, prueba y realiza sus actividades. El modelo de
ciclo de vida. apropiado puede hacer dinmico su proyecto y asegura
ayuda en cada paso acercndose ms al objetivo.
Dos de los modelos de ciclo de vida ms populares son el modelo
tradicional de cascada (Waterfall Waterfall) y el modelo Espiral o
modelo de desarrollo de aplicaciones rpida (RAD).

Una aproximacin lgica a la adquisicin, el suministro, el


desarrollo, la explotacin y el mantenimiento del software
IEEE 1074

Un marco de referencia que contiene los procesos, las actividades


y las tareas involucradas en el desarrollo, la explotacin y el
mantenimiento de un producto de software, abarcando la vida del
sistema desde la definicin de los requisitos hasta la finalizacin de
su uso
ISO 12207-1

Ingeniera del Software

Ingeniera del Software

Procesos del ciclo de vida del Software

Procesos Principales

PROCESOS PRINCIPALES

PROCESOS DE SOPORTE
DOCUMENTACIN

ADQUISICIN

GESTIN DE CONFIGURACIN

SUMINISTRO

ASEGURAMIENTO DE CALIDAD

VERIFICACIN
EXPLOTACIN

VALIDACIN
REVISIN CONJUNTA

DESARROLLO
MANTENIMIENTO

AUDITORIA
RESOLUCIN DE PROBLEMAS

Proceso de Adquisicin
Proceso de Suministros
Procesos de desarrollo I
Anlisis de Requisitos del Sistema
Diseo de la Arquitectura del Sistema
Anlisis de Requisitos del Software
Diseo de la Arquitectura del Software
Diseo detallado del Software
Codificacin y Prueba del Software

PROCESOS DE LA ORGANIZACION
GESTIN

INFRAESTRUCTURA

MEJORA

FORMACIN

Ingeniera del Software

Ingeniera del Software

Procesos Principales

Procesos Principales

Procesos de desarrollo II
Integracin del Software
Prueba del Software
Integracin del Sistema
Prueba del Sistema
Instalacin del Software
Soporte del proceso de Aceptacin del Software
Proceso de Explotacin
Proceso de Mantenimiento

Procesos de desarrollo II
Integracin del Software
Prueba del Software
Integracin del Sistema
Prueba del Sistema
Instalacin del Software
Soporte del proceso de Aceptacin del Software
Proceso de Explotacin
Proceso de Mantenimiento

Ingeniera del Software

Ingeniera del Software

Procesos Principales

Modelo en Cascada

En el modelo de cascada, un proyecto progresa a travs de pasos


secuenciales desde el concepto inicial a travs de pruebas del sistema.
Este modelo trabaja bien para proyectos complejos en que puede
especificar fcilmente al principio los requisitos. Este modelo usa puntos de
observacin (Milestones) como la transicin y puntos de valoracin.

Criticas
No refleja realmente el proceso de desarrollo del software.
Se tarda mucho tiempo en pasar por todo el ciclo.
Perpetua el fracaso de la industria del software en su comunicacin
con el usuario final.
El mantenimiento se realiza en el cdigo fuente.
Las revisiones de proyectos de gran complejidad son muy difciles
Impone una estructura de gestin de proyectos

Ingeniera del Software

Ingeniera del Software

Modelo en Cascada

Modelo Incremental

Anlisis
Requisitos
Sistema

Anlisis Requisitos
Software
Diseo Preliminar

Diseo Detallado
Codificacin y
Pruebas

Se evitan proyectos largos y se entrega Algo de valor a los


usuarios con cierta frecuencia.
El usuario se involucra ms.
Difcil de evaluar el coste total.
Difcil de aplicar a sistemas transaccionales que tienden a ser
integrados y a operar como un todo.
Requiere gestores experimentados.
Los errores en los requisitos se detectan tarde.
El resultado puede ser muy positivo.

Explotacin y
Mantenimiento

Ingeniera del Software

Ingeniera del Software

Modelo Incremental

Modelo de Prototipo

A. Requisitos
del Sistema

A. Requisitos
Software

A. Requisitos
Software

A. Requisitos
Software

Diseo

Diseo

Diseo

Codificacin

Codificacin

Codificacin

No modifica el flujo del ciclo de vida.


Reduce el riesgo de construir productos que no satisfagan las
necesidades de los usuarios.
Reduce costos y aumenta la probabilidad de xito.
Exige disponer de las herramientas adecuadas.
No presenta calidad ni robustez
Una vez identificados todos los requisitos mediante el prototipo, se
construye el producto de ingeniera.

Ingeniera del Software

Ingeniera del Software

Modelo de Prototipo

Prototipado Rpido
A. Requisitos
del Sistema
A. Requisitos
Software
Prototipo

Diseo
Preliminar
Diseo
detallado
Prototipo

Codificacin

Pruebas

Prototipo

Operacin y
Mantenimiento

Ingeniera del Software

Ingeniera del Software

El Prototipado

El Prototipado

Para que sea efectivo


Debe ser un sistema con el que se pueda experimentar
Debe ser comparativamente barato (< 10%)
Debe desarrollarse rpidamente
nfasis en la interfaz de usuario
Equipo de desarrollo reducido
Herramienta y lenguajes adecuados

Peligros del Prototipado

El prototipado es un medio excelente para recoger el


feedback (realimentacin) del usuario final.

El cliente ve funcionando lo que para el es la primera versin del


prototipo que ha sido construido con plastilina y alambres, y puede
desilusionarse al decirle que el sistema aun no ha sido construido.
El desarrollador puede caer en la tentacin de ampliar el prototipo
para construir el sistema final sin tener en cuenta los compromisos
de calidad y de mantenimiento que tiene con el cliente.

Ingeniera del Software

Ingeniera del Software

El Prototipado

El Prototipado Operacional

El Prototipado Evolutivo

Construccin de una implementacin parcial que cubre los


requisitos conocidos, para ir aprendiendo el resto y, paulatinamente,
incorporarlos al sistema.
Reduce el riesgo y aumenta la probabilidad de xito.
No se conocen niveles apropiados de calidad y documentacin.
Problemas de gestin de configuracin
Construir software para que pueda ser modificado facilmente es un
arte desconocido.

Ingeniera del Software

Ingeniera del Software

Modelo en Espiral

Modelo en Espiral

El modelo espiral es un modelo orientado a riesgos que divide un


proyecto de software en subproyectos diferentes. Cada subproyecto
toma uno o ms riesgos hasta que todos se identifiquen. El modelo
espiral permite el incremento de la creatividad y la buena
administracin de riesgos debido a su naturaleza reiterativa.

Ingeniera del Software

Ingeniera del Software

Modelo en Espiral

Modelo en Espiral
Diferencia entre modelo en espiral y modelos tradicionales.
Reconocimiento explcito de las diferentes alternativas.
Identificacin de riesgos para cada alternativa desde el comienzo.
Al dividir el proyecto en ciclos, al final de cada uno existe un
acuerdo para los cambios que hay que realizar en el sistema.
El modelo se adapta a cualquier tipo de actividad adicional.

Ingeniera del Software

Ingeniera del Software

Procesos guiados por hitos

Responsabilidades guiadas por hitos

Los hitos son puntos de revisin y sincronizacin, no puntos


de congelamiento.
Los hitos permiten al equipo determinar progreso y hacer
correcciones en el camino.
Los modelos de procesos usan dos tipos de hitos.
Hitos principales
Hitos interinos
Alcanzar un hito principal representa un acuerdo entre el
equipo y el cliente de continuar.
Las entregas son la evidencia fsica de que los equipos
alcanzaron un hito.

Hitos

Gerente de Producto

Plan de proyecto Aprobado

Gerente de Desarrollo

Alcance Completado

Desarrollador y Formacin
de Usuarios

Entrega

Testing y Gerente de Logstica

Ingeniera del Software

Ingeniera del Software

Principios y Practicas de Modelo de Procesos

Usando entregas con versiones

Usando entregas con versiones.


Cronogramando para un futuro incierto
Administrando trade-offs
Administrando Riesgos
Manteniendo una fecha fija
Seccionando proyectos largos en partes manejables
manejables
Realizando construcciones diarias
Usando estimaciones a fondo (botton- up)

Conductor Primario

Visin Aprobada

No importa cun rpido avanza el equipo del proyecto, el mercado,


la tecnologa, la competencia, o el cliente comercial querr ir ms
rpidamente. Las entregas con versiones permiten al equipo del
proyecto responder a los cambios continuos en el alcance,
cronograma, y riesgo del proyecto. Frecuentemente poniendo al da
el producto, no slo hace que el equipo de desarrollo se comunique
con el cliente, pero las sugerencias para las versiones futuras del
producto vienen directamente del uso del cliente del producto.
El equipo entrega un conjunto de rasgos centrales en su primera
versin y agrega los rasgos incrementalmente en los entregas
posteriores hasta que logre la visin completa para el producto.
Versiones posteriores permiten el equipo revalidar o actualizar la
visin de producto como cambios en los requerimientos del
negocio.

Ingeniera del Software

Ingeniera del Software

Usando entregas con versiones

Principio de un proceso exitoso

Promueve la comunicacin frecuente y honrada entre el equipo y el


cliente. La entrega refleja sus mejores ideas.
Permite al equipo del proyecto entregar la funcionalidad crtica ms
temprano y obtener la retroalimentacin del cliente para las
entregas futuras.
Fuerza el cierre de los problemas del proyecto a travs de la fase
de estabilizacin cuando el equipo del proyecto direcciona todos los
problemas con el proyecto antes de la entrega.
Configura metas claras y motivadoras para todos los miembros del
equipo.
Maneja la incertidumbre y cambia en el alcance del proyecto
permitiendo al equipo variar los rasgos y el cronograma en relacin
a otros para un conjunto especfico de rasgos en un plan de
tecnologa global.
Anima la entrega continua incrementando rasgos.

Crear documentacin actualizada


Utilizar entregas versionadas
Hacer compensaciones del proyecto

Ingeniera del Software

Ingeniera del Software

Matriz de las compensaciones del proyecto

Actividades de los Procesos

Hay cuatro actividades bsicas en cualquier proceso software:


Especificacin del software
Desarrollo del software
Validacin del software
Evolucin del software

Se organizan de forma distinta en los diferentes procesos de


desarrollo.

Ingeniera del Software

Ingeniera del Software

Actividades de los Procesos

Actividades de los Procesos

Especificacin del Software: Es el proceso de establecer que


servicios se requieren y cuales son las restricciones sobre las
operaciones y el desarrollo.
Estudio
de Factibilidad

Informe de
Factibilidad

Desarrollo: Un diseo software es una descripcin de la estructura


del software a implementar, de los datos, interfaces entre los
componentes y algoritmos.
Requeriments
Specification

Elicitacin y
Anlisis requerim.

Architectural
design

Especificacin
de requerim.
Modelos del
Sistema

Validacin
de requerim.
Req. Usuario y
del Sistema

System
architecture

Abstract
Specification

Software
specificacion

Actividades del diseo


Interface
design

Interface
specificacion

Component
design

Data
structure
design

Component
specificacion

Data
structure
specification

Algorithm
design

Algorithm
specificacion

Productos del diseo


Documento
De requerim.

La implementacin es el proceso de convertir una especificacin del sistema en un


sistema ejecutable. Se trata de una actividad personal y Normalmente no se sigue
un proceso general.

Ingeniera del Software

Ingeniera del Software

Actividades de los Procesos

Actividades de los Procesos

Validacin: La verificacin y validacin (V&V) pretende demostrar


que un sistema cumple sus especificaciones y satisface las
espectativas del cliente.
Prueba de
Componentes

Especif.
Requerim,

Prueba del
Sistema

Especif.
sistema

Plan prueba
aceptacin

Servicio

Prueba de
Aceptacin

Diseo
sistema

Plan integrac.
sistema
Pruebas
aceptacin

Diseo
detallado

Plan integrac.
subsistema
Prueba integrac.
sistema

validacin

Evolucin:
El software es inherentemente flexible y puede cambiar (durante
y despus del desarrollo)
Si bien hay una diferencia clara entre desarrollo y evolucin
(mantenimiento), dicha diferencia se convierte en irrelevante
desde el momento en que cada vez menos sistemas son
completamente nuevos.

Definir requerim.
del sistema

Pruebas unidad y
mdulo

Prueba integrac.
subsistema

Evaluacin sistema
actual

Plan prueba
aceptacin

Ingeniera del Software

Ingeniera del Software

Conceptos Clave de RUP

Fases e Iteraciones

Disciplinas
Actividades

Artefactos
Modelos
Informes, documentos

Roles

RUP constituye un marco de trabajo para el desarrollo de procesos:


puede acomodarse a una amplia variedad de procesos.
Muestra el proceso de desarrollo desde tres perspectivas:
Dinmica: muestra las fases del proceso a lo largo del tiempo
Esttica: muestra las actividades a realizar del proceso
Prctica: sugiere buenas prcticas a utilizar durante el proceso

Plan prueba
aceptacin

Cundo tienen lugar?


Qu hay que hacer?

Qu se produce?

Quin lo hace?

Ingeniera del Software

Ingeniera del Software

Proceso de Desarrollo de Software

Problemas en el desarrollo del software

Un proceso de desarrollo de software es un conjunto de actividades


necesarias para transformar los requisitos de un usuario en un
sistema de software.

Requisito del usuario

Modificar
Sistema

verificacin

Proceso Unificado de Rational (RUP)

Proponer cambios
en el sistema

Proceso de
Desarrollo de software

Sistema Software

Retrasos en los plazos.


Proyectos cancelados
Rpido deterioro del sistema instalado
Tasa de defectos o fallos
Requisitos mal comprendidos
Cambios frecuentes en el dominio del problema
Muchas de las interesantes caractersticas del software no
proporcionan beneficios al cliente.
Buenos programadores se cansan y dejan el equipo

Ingeniera del Software

Ingeniera del Software

Un proceso Iterativo e Incremental

Porque un desarrollo Iterativo e Incremental

Un proceso de desarrollo de software debe tener una secuencia de


hitos claramente articulados para ser eficaz, que proporcionen a los
director y al resto del equipo del proyecto los criterios que necesitan
para autorizar el paso de una fase a la siguiente dentro del ciclo del
producto.

Para tomar la rienda de los riesgos crticos y significativos desde el


principio.

Para poner en marcha una arquitectura que gue el desarrollo del


software.

Un proceso iterativo es aquel que involucra la gestin de un flujo de


ejecutables del sistema.

Para proporcionar un marco de trabajo que gestione de mejor forma


los inevitables cambios en los requisitos y en otros aspectos.

Ingeniera del Software

Ingeniera del Software

Porque un desarrollo Iterativo e Incremental

Fases del Ciclo de vida - RUP

Para construir el sistema a lo largo del tiempo en lugar de hacerlo


de una sola vez cerca del final, cuando el cambiar algo se ha vuelto
costoso.
Para proporcionar un proceso de desarrollo a traves del cual el
personal pueda trabajar de manera mas eficaz.
En resumen: Para obtener un software mejor

inicio

Elaboracin

Construccin

Transicin

time

Inicial: define el alcance del proyecto y el limite del sistema


Elaboracin: Plan de Proyecto, caractersticas, y la lnea base de la
arquitectura.

Construccin: Se construye el producto.


Transicin: entrega del producto entregable

Ingeniera del Software

Ingeniera del Software

Fases del Ciclo de vida - RUP

Fases e Iteracin

inicio Elaboracin Construccin Transicin


Prelim
iteration

Arch
iteration

Release

El Proceso Unificado se puede describir en dos dimensiones a lo largo de dos ejes:

El eje horizontal representa el tiempo y muestra al aspecto dinmico del


proceso, esto expresado en ciclos, fases, iteraciones e hitos.

El eje vertical representa el aspecto esttico del proceso, esto es expresado


por actividades, artefactos, workers y flujo de trabajo.

Release

Dev
Dev
iteration iteration

Release

Release

Release

Trans
iteration

Release

Release

Release

Una fase es el intervalo de tiempo entre dos hitos importantes del


proceso.
Una iteracin es una sucesin de actividades con un plan
establecido y criterio de evaluacin, mientras se va produciendo las
versiones del sistema.

Das könnte Ihnen auch gefallen