Sunteți pe pagina 1din 20

el proceso de desarrollo

el proceso: modelos de
desarrollo
proceso
conjunto ordenado de tareas, una serie de pasos que involucran
actividades, restricciones y recursos, que producen una salida
determinada
proceso de software: conjunto de actividades necesarias para
transformar los requisitos de un usuario en un sistema software

Requisitos
del usuario

Proceso de desarrollo
de Software

Sistema software

el proceso: modelos de
desarrollo
caractersticas
tiene una serie de actividades principales
utiliza recursos, est sujeto a restricciones y genera productos intermedios y
finales
compuesto por subprocesos que se encadenan de alguna forma
cada actividad tiene sus criterios de entrada y salida, que permiten conocer
cuando comienza y termina dicha actividad
existen principios orientadores que explican las metas de cada actividad

cuando implica la construccin de un producto, se suele llamar ciclo de


vida
aportan consistencia y estructura sobre el conjunto de actividades, lo
que permite realizar la misma tarea correctamente de forma repetida
existen diferentes modelos de proceso

modelo en cascada
Requerimentos
y Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento

resultado de cada fase: uno o ms


documentos aprobados

se retrasa la localizacin y correccin


de errores

una fase comienza cuando la anterior


termina

pueden producir sistemas poco tiles


para usuarios o mal estructurados

en la prctica, las etapas se solapan

inflexibilidad del modelo: dificultad


para responder a cambios en los
requerimientos

iteraciones de coste elevado y


reelaboracin del trabajo: tendencia a
la congelacin de partes del desarrollo
(especificaciones,...)

desarrollo evolutivo
dos tipos:

basado en:

desarrollo de una implementacin inicial


exposicin a comentarios y crtica del
usuario
refinamiento a travs de diferentes
versiones hasta llegar a un sistema
adecuado

trabajo con cliente para explorar


sus requerimientos y entregar un
sistema final
evolucin continua del prototipo
mediante la agregacin de
funciones y caractersticas
propuestas por el cliente

prototipos desechables

Recoleccin
y refinamiento de
requisitos
Producto

prototipado evolutivo:

Diseo
rpido

comprensin de las necesidades


del cliente
desarrollo de una definicin
mejorada de los requerimientos
del sistema
prototipos centrados en la
experimentacin de requisitos
poco claros o complejos

problemas
Refinamiento
del prototipo

Construccin
del prototipo
Evaluacin del
prototipo por
el cliente

prisas del cliente (utilizacin del


prototipo como sistema final
pasar elecciones debidas al prototipo a
la implementacin final (entorno,
sistema operativo,...)
estructura deficiente
evolucin del proceso difcil de gestionar
herramientas y tcnicas especiales
poco adecuado para grandes sistemas

prototipado evolutivo
Desarrollar
especificacin
abstracta

Construir
prototipo

NO

Entregar
sistema

SI

Sistema
adecuado?

Utilizar
prototipo

prototipado con lenguajes


visuales
Hypertext
displaycomponent

Datecomponent

File

Edit

Views

12thJanuary2000
Rangechecking
script

Layout

Options

Help
General
Index

3.876
Userprompt
component+
script

Drawcanvas
component

se utilizan lenguajes como Visual Basic,


Delphi,...
el prototipo se desarrolla creando una
interfaz de usuario a partir de
elementos estndar y asociando
componentes con esos elementos
existen grandes libreras de
componentes para dar soporte a este
tipo de desarrollo
en muchos casos las libreras deben de
adaptarse a los requerimientos
especficos de la aplicacin

difcil coordinar desarrollos basados en


equipos

Treedisplay
component

no existe una arquitectura de sistema


explcita
pueden existir dependencias complejas
entre partes del programa que
dificultan el mantenimiento

desarrollo incremental

Definicin general de
requerimientos

Asignacin de requerimientos
a incrementos

Diseo de la arquitectura del


sistema

Desarrollo de incrementos
del sistema

Validar
incrementos
Integrar
incrementos

Validar
sistema

pasos
identificacin y priorizacin de funciones y
servicios
definicin de varios requerimientos que
proporcionan parte de la funcionalidad, segn la
prioridad (los ms importantes se entregan
antes)
definicin detallada de requerimientos del
incremento y desarrollo con el proceso ms
adecuado
congelacin de requerimientos de incrementos
desarrollados
puesta en explotacin de los incrementos
completados y entregados

ventajas
puesta en marcha temprana
los incrementos iniciales permiten refinar
requerimientos de incrementos posteriores
satisfaccin del cliente (bajo riesgo de fallo)
sistema final muy probado y con pocos fallos

sistema incompleto
sistema completo

problemas
incrementos relativamente pequeos
adaptacin de requerimientos a incrementos del
tamao apropiado

Sistema final

identificacin de recursos comunes a todos los


incrementos

modelo en espiral
propuesto por Barry
Boehm
organizacin en ciclos

PROGRESO
A TRAVS
DE LAS ITERACIONES

DETERMINAR
OBJETIVOS,
ALTERNATIVAS Y
RESTRICCIONES

EVALUAR ALTERNATIVAS,
IDENTIFICAR Y
RESOLVER RIESGOS

Anlisis de riesgos

primer ciclo: factibilidad


segundo ciclo:
requerimientos

Anlisis de riesgos

tercer ciclo: diseo


...

Anlisis de riesgos

cada ciclo se divide en 4


sectores
REVISIN

definicin de objetivos,
restricciones del producto
y proceso, plan de
administracin,...

.Plan de
requerimientos
Plan de ciclo
de vida

evaluacin y reduccin de
riesgos (por ejemplo,
mejor definicin de
requerimientos mediante
prototipos)
desarrollo y validacin:
eleccin de un modelo
para el desarrollo
planificacin: el proyecto
se revisa y se decide si se
contina con el siguiente
ciclo. si es as, se planifica
la siguiente fase

Plan de
desarrollo
Plan de integracin
y prueba

An.
Riesgo.
Prototipo 1

Prototipo
operativo
Prototipo 3

Prototipo 2

Concepto de
operacin
Requerimientos
de software
Validacin de
requerimientos

Simulaciones, modelos,
pruebas comparativas

Diseo del
producto

Diseo
detallado

Codificar
Diseo de validacin
y verificacin

PLANIFICAR SIGUIENTE
FASE

Explotacin

Prueba de
aceptacin

Prueba de
unidad
Prueba de
integracin

DESARROLLAR, VERIFICAR
PRODUCTO DE SIGUIENTE NIVEL

el proceso unificado de
desarrollo
proceso unificado de desarrollo
propuesto por los autores de UML (lenguaje unificado
de modelado)
basado en componentes interconectados a travs de
interfaces
utiliza UML para desarrollar los esquemas y diagramas
de un sistema software
principales aspectos definitorios
dirigido por casos de uso
centrado en la arquitectura
iterativo e incremental

el proceso unificado: dirigido


por casos de uso

Retirar dinero

Cliente del banco

Ingresar dinero

Transferencia entre cuentas

para construir un sistema con xito hay que


conocer las necesidades y deseos de los
futuros usuarios
usuario
personas que trabajan y necesitan
el sistema
otros sistemas que interactan
con el que estamos desarrollando
interaccin:
usuario inserta tarjeta en cajero
automtico
usuario responde sobre la
pantalla a las preguntas que
realiza el cajero
el usuario recibe una cantidad de
dinero y su tarjeta
una interaccin as es un caso de uso
fragmento de funcionalidad del
sistema que proporciona al
usuario un resultado importante

el proceso unificado: dirigido


por casos de uso
utilidad casos de uso
herramienta para especificar los requisitos de un sistema:
representan los requisitos funcionales y juntos constituyen el
modelo de casos de uso, que describe la funcionalidad total
del sistema
guan el proceso de desarrollo (diseo, implementacin y
prueba)

basndose en el modelo de casos de uso, se crean modelos de


diseo e implementacin
se revisa cada modelo para que sean conformes al modelo de
casos de uso
se prueba la implementacin para garantizar que los componentes
del modelo de implementacin implementan correctamente los
casos de uso

no slo inician el proceso de desarrollo sino que ste sigue un


hilo de trabajo que parte de los casos de uso

el proceso unificado: centrado


en la arquitectura
casos
casos de
de
uso
uso

conduce

gua

la arquitectura de un sistema
software se describe mediante
diferentes vistas del sistema
en construccin

arquitectura
arquitectura

Capa especfica
de la aplicacin

Capa general de la
aplicacin

Capa
intermedia

Capa de software
del sistema

influida por diversos factores

necesidades de la empresa, tal


y como las perciben los
usuarios y clientes
otros factores, como
plataforma de explotacin
(arquitectura hardware, sistema
operativo, gestor de bases de
datos, protocolos de
comunicacin,...),
componentes reutilizables,
sistemas heredados, requisitos
no funcionales,...

el proceso unificado: centrado


en la arquitectura
es una vista del diseo completo con las caractersticas ms
importantes resaltadas, dejando los detalles de lado.
hay una constante interaccin entre los casos de uso y la arquitectura,
que evolucionan en paralelo
los casos de uso deben encajar en la arquitectura cuando se realizan
la arquitectura debe permitir el desarrollo de todos los casos de uso
requeridos

el arquitecto
realiza un esquema en borrador de la arquitectura que no es especfica de
los casos de uso (por ejemplo, la plataforma)
trabaja con un subconjunto de los casos de uso principales del sistema,
especificndolo en detalle y realizndolo en trminos de subsistemas,
clases y componentes
a medida que los casos de uso se especifican y maduran, se descubre ms
de la arquitectura, lo que a su vez lleva a la maduracin de ms casos de
uso
este proceso contina hasta que se considera que se dispone de una
arquitectura estable

el proceso unificado: iterativo e


incremental
el trabajo se divide en partes ms pequeas o
miniproyectos
miniproyecto: una iteracin que resulta en un incremento
iteracin: pasos en el flujo de trabajo
incremento: crecimiento del producto
las iteraciones estn controladas y planificadas

factores para seleccionar lo que se implementar en una iteracin


la iteracin se centra en un grupo de casos de uso que juntos
amplan la utilidad del producto desarrollado hasta ahora
la iteracin trata los riesgos ms importantes

las iteraciones sucesivas se construyen sobre los artefactos de


desarrollo tal como quedaron al final de la ltima iteracin
en las primeras fases del ciclo de vida los incrementos implican
modificaciones
en las ltimas fases los incrementos implican menos modificaciones
y ms aadidos a los modelos

el proceso unificado: iterativo e


incremental
para cada iteracin:

identificacin y especificacin de los casos de uso relevantes


creacin de un diseo utilizando la arquitectura seleccionada como gua
implementacin del diseo mediante componentes
verificacin de que los componentes satisfacen los casos de uso
si una iteracin cumple con sus objetivos, el desarrollo contina con la
siguiente iteracin. Si no, se revisan las decisiones previas y se adopta un
nuevo enfoque

ventajas proceso iterativo controlado


reduccin del coste del riesgo a los costes de un solo incremento
reduccin del riesgo de no sacar al mercado el producto en el calendario
previsto
se acelera el ritmo del esfuerzo de desarrollo en su totalidad, para obtener
resultados claros a corto plazo
los requerimientos del usuario se van refinando en iteraciones sucesivas,
por lo que se pueden acomodar mejor los cambios

la vida del proceso unificado


el proceso unificado se repite a lo largo de una serie de ciclos
cada ciclo concluye con una versin del producto y consta de cuatro fases

inicio: descripcin del producto final a partir de una idea inicial y anlisis de negocio para el
producto
principales funciones del sistema y usuarios ms importantes (modelo de casos de uso)
posible arquitectura del sistema
plan del proyecto, coste, identificacin y priorizacin de riesgos

elaboracin:
se especifican en detalle los principales casos de uso
se disea la arquitectura del sistema: vistas arquitectnicas del modelo de casos de uso, del
modelo de anlisis, del modelo de diseo, del modelo de implementacin y modelo de despliegue
al final se pueden planificar las actividades y estimar recursos necesarios para finalizar el proyecto

construccin:
se crea el producto aadiendo el software a la arquitectura
al final se dispone de todos los casos de uso acordados para el desarrollo aunque puede
incorporar defectos

transicin
periodo durante el cual el producto se convierte en versin beta, en la que usuarios prueban el
producto e informan de defectos y deficiencias
se corrigen problemas e incorporan sugerencias
incluye actividades como la formacin del usuario, proporcionar una lnea de ayuda y asistencia,...

cada fase se divide a su vez en iteraciones

la vida del proceso unificado


Fases
Flujos de trabajo
fundamentales

Inicio

Construccin

Elaboracin

Transicin

Requisitos
una iteracin en la
fase de elaboracin

Anlisis

Diseo

Implementacin

Prueba

iter #1

iter #2

---

---

---

Iteraciones

---

---

iter #n-1

iter #n

bibliografa

Bruegge, B., Dutoit, A.H., Ingeniera del Software Orientado a Objetos, cap. 1
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de
Software, cap. 1
Pressman, R.S., Ingeniera del Software. Un enfoque prctico, cap. 1 y 2
Sommerville, I., Ingeniera de Software, cap. 1, 2 y 3

S-ar putea să vă placă și