You are on page 1of 47

Desarrollos de Software

Orientados a Objetos usando


UML
Agustn J. Gonzlez
OOP&D.
Material Tomado de: Departamento Sistemas
Informticos y Computacin (DSIC)
Universidad Politcnica de Valencia (UPV) - Espaa
www.dsic.upv.es/~uml
Introduccin
Modelado de SW
Construccin de una casa para fido
Puede hacerlo una sola persona
Requiere:
Modelado mnimo
Proceso simple
Herramientas simples
I. Introduccin: Modelado de SW
Construccin de una casa
Construida eficientemente y en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas ms sofisticadas
I. Introduccin: Modelado de SWI
Construccin de un rascacielos
I. Introduccin: Modelado de SI
Claves en Desarrollo de SI
Herramientas Proceso
Notacin
I. Introduccin: Modelado de SWI
Sistema Computacional
Proceso de Negocios
Orden
Item
envo
El modelado captura las
partes esenciales del sistema

Abstraccin - Modelado Visual (MV)
I. Introduccin: Modelado de SW
MV para manejar la complejidad
I. Introduccin: Modelado de SW
Mltiples Sistemas
MV promueve la reutilizacin
Componentes
Reutilizados
I. Introduccin: Modelado de SW
Por qu la Orientacin a Objetos?
Proximidad de los conceptos de modelado
respecto de las entidades del mundo real

Mejora captura y validacin de requisitos
Acerca el espacio del problema y el
espacio de la solucin

Modelado integrado de propiedades estticas y
dinmicas del mbito del problema

Facilita construccin, mantenimiento y
reutilizacin
III. El Paradigma Orientado a Objeto
Por qu la Orientacin a Objetos?
Conceptos comunes de modelado durante el
anlisis, diseo e implementacin

Facilita la transicin entre distintas fases
Favorece el desarrollo iterativo del
sistema
Disipa la barrera entre el qu y el
cmo

Sin embargo, existen problemas ...
III. El Paradigma Orientado a Objeto
...Los conceptos bsicos de la OO se conocen desde hace
dos dcadas, pero su aceptacin todava no est tan
extendida como los beneficios que esta tecnologa puede
sugerir
...La mayora de los usuarios de la OO no utilizan los
conceptos de la OO de forma purista, como inicialmente
se pretenda. Esta prctica ha sido promovida por
muchas herramientas y lenguajes que intentan utilizar los
conceptos en diversos grados
--Wolfgang Strigel
Problemas en OO
III. El Paradigma Orientado a Objeto
Un objeto contiene datos y operaciones que operan sobre los
datos, pero ...
Podemos distinguir dos tipos de objetos degenerados:
Un objeto sin datos (que sera lo mismo que una biblioteca
de funciones)
Un objeto sin operaciones, con slo operaciones del tipo
crear, recuperar, actualizar y borrar (que se correspondera
con las estructuras de datos tradicionales)
Un sistema construido con objetos degenerados no es un
sistema verdaderamente orientado a objetos
Problemas en OO
III. El Paradigma Orientado a Objeto
Fundamentos de Modelado OO
Objetos
Objeto = unidad atmica que encapsula estado
y comportamiento

La encapsulacin en un objeto permite una alta
cohesin y un bajo acoplamiento

Un objeto puede caracterizar una entidad fsica
(coche) o abstracta (ecuacin matemtica)
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
El Modelado de Objetos permite representar el
ciclo de vida de los objetos a travs de sus
interacciones
En UML, un objeto se representa por un
rectngulo con un nombre subrayado
Otro
Objeto
Un Objeto
Otro
Objeto
ms
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
Ejemplo de varios objetos relacionados:
Felipe
Juan
Cuenta Corriente 101
Cuenta Corriente 114
Banco de Valencia
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
Objeto = Identidad + Estado + Comportamiento
El estado est representado por los valores de los
atributos
Un atributo toma un valor en un dominio concreto
Un coche
Azul
979 Kg
70 CV
...
III. El Paradigma OO: Fundamentos de Modelado OO
Clases y Objetos
III. El Paradigma OO: Fundamentos de Modelado OO
Estado
El estado evoluciona con el tiempo

Algunos atributos pueden ser constantes

El comportamiento agrupa las competencias de
un objeto y describe las acciones y reacciones
de ese objeto

Las operaciones de un objeto son consecuencia
de un estmulo externo representado como
mensaje enviado desde otro objeto
III. El Paradigma OO: Fundamentos de Modelado OO
Comportamiento
Ejemplo de interaccin:
Otro objeto
Un objeto
Un mensaje
Operacion 1
Operacion 2
III. El Paradigma OO: Fundamentos de Modelado OO
Comportamiento
Los mensajes navegan por los enlaces, a
priori en ambas direcciones

Estado y comportamiento estn
relacionados

Ejemplo: no es posible aterrizar un avin si
no est volando. Est volando como
consecuencia de haber despegado del suelo
III. El Paradigma OO: Fundamentos de Modelado OO
Persistencia
La persistencia de los objetos designa la
capacidad de un objeto trascender en el
espacio/tiempo
Podremos despus reconstruirlo, es decir,
cogerlo de memoria secundaria para utilizarlo
en la ejecucin (materializacin del objeto)

Los lenguajes OO no proponen soporte
adecuado para la persistencia, la cual debera
ser transparente, un objeto existe desde su
creacin hasta que se destruya
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Un sistema informtico puede verse como un
conjunto de objetos autnomos y concurrentes
que trabajan de manera coordinada en la
consecucin de un fin especfico

El comportamiento global se basa pues en la
comunicacin entre los objetos que la
componen
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes

Objeto Activo: posee un hilo de ejecucin (thread)
propio y puede iniciar una actividad

Objeto Pasivo: no puede iniciar una actividad pero
puede enviar estmulos una vez que se le solicita
un servicio
Cliente es el objeto que solicita un servicio.
Servidor es el objeto que provee el servicio
solicitado
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Los agentes renen las caractersticas de
clientes y servidores

Son la base del mecanismo de delegacin

Introducen indireccin: un cliente puede
comunicarse con un servidor que no conoce
directamente
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Ejemplo en el que un agente hace de aislante:
Un agente
Un cliente
Sevidor 1
Servidor 2
III. El Paradigma OO: Fundamentos de Modelado OO
El Concepto de Mensaje
La unidad de comunicacin entre objetos se
llama mensaje

El mensaje es el soporte de una comunicacin
que vincula dinmicamente los objetos que
fueron separados previamente en el proceso
de descomposicin
Adquiere toda su fuerza cuando se asocia al
polimorfismo y al enlace dinmico

III. El Paradigma OO: Fundamentos de Modelado OO
El Concepto de Mensaje
Objeto 4 Objeto 3
Objeto 2
Objeto 1
: Mensaje E
: Mensaje D
: Mensaje C
: Mensaje A
III. El Paradigma OO: Fundamentos de Modelado OO
Proceso de Desarrollo
de SW basado en UML
Define Quin debe hacer Qu, Cundo y Cmo
debe hacerlo




No existe un proceso de software universal. Las
caractersticas de cada proyecto (equipo de
desarrollo, recursos, etc.) exigen que el proceso sea
configurable
Qu es un Proceso de Desarrollo de SW?
Requisitos nuevos
o modificados
Sistema nuevo
o modificado
Proceso de Desarrollo
de Software
IV. Proceso de Desarrollo de SW basado en UML
Historia de RUP
Pruebas funcionales
Pruebas de desempeo
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
Ingeniera de datos
Diseo de interfaces
Rational Unified Process
1998
Rational Objectory Process
1996-1997
Objectory Process
1987-1995
Enfoque Ericsson
UML
IV. Proceso de Desarrollo de SW basado en UML
Dos Dimensiones
IV. Proceso de Desarrollo de SW basado en UML
Fases e Hitos (Milestones)
tiempo
Objetivos
(Vision)

Arquitectura

Capacidad
Operacional
Inicial

Release
del Producto
Inception Elaboration Construction Transition
IV. Proceso de Desarrollo de SW basado en UML
El ciclo de vida iterativo se basa en la
evolucin de prototipos ejecutables que se
muestran a los usuarios y clientes
En el ciclo de vida iterativo a cada iteracin
se reproduce el ciclo de vida en cascada a
menor escala
Los objetivos de una iteracin se establecen
en funcin de la evaluacin de las
iteraciones precedentes
IV. Proceso de Desarrollo de SW basado en UML
Proceso Iterativo e Incremental
Las actividades se encadenan en una mini-
cascada con un alcance limitado por los
objetivos de la iteracin
Anlisis
Diseo
Codific.
Pruebas e
Integracin
n veces
IV. Proceso de Desarrollo de SW basado en UML
... Proceso Iterativo e Incremental
Proceso Iterativo e Incremental
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
IV. Proceso de Desarrollo de SW basado en UML
Fases del Ciclo de Vida
El ciclo de vida consiste en una serie de ciclos,
cada uno de los cuales produce una nueva
versin del producto
Cada ciclo est compuesto por fases y cada
una de estas fases est compuesta por un
nmero de iteraciones
Las fases son:
Inicio o Estudio de oportunidad
Elaboracin
Construccin
Transicin
IV. Proceso de Desarrollo de SW basado en UML
...Fases del Ciclo de Vida
Inicio o Estudio de oportunidad (inception)
Define el mbito y objetivos del proyecto
Se define la funcionalidad y capacidades
del producto

Elaboracin
Tanto la funcionalidad como el dominio
del problema se estudian en profundidad
Se define una arquitectura bsica
Se planifica el proyecto considerando
recursos disponibles

IV. Proceso de Desarrollo de SW basado en UML
...Fases del Ciclo de Vida
Construccin
El producto se desarrolla a travs de iteraciones
donde cada iteracin involucra tareas de anlisis,
diseo e implementacin
Las fases de estudio y anlisis slo dieron una
arquitectura bsica que es aqu refinada de manera
incremental conforme se construye (se permiten
cambios en la estructura)
Gran parte del trabajo es programacin y pruebas
Se documenta tanto el sistema construido como el
manejo del mismo
Esta fase proporciona un producto construido junto
con la documentacin
IV. Proceso de Desarrollo de SW basado en UML
...Fases del Ciclo de Vida
Transicin
Se libera el producto y se entrega al usuario
para un uso real
Se incluyen tareas de marketing, empaquetado
atractivo, instalacin, configuracin,
entrenamiento, soporte, mantenimiento, etc.
Los manuales de usuario se completan y refinan
con la informacin anterior
Estas tareas se realizan tambin en iteraciones
IV. Proceso de Desarrollo de SW basado en UML
Esfuerzo respecto de las Workflows
15%
10%
15%
30%
15%
10% gestin cambios 5% mantenimiento
P r e l i m i n a r y
I t e r a t i o n ( s )
i t e r .
# 1
i t e r .
# 2
i t e r .
# n
i t e r .
# n + 1
i t e r .
# n + 2
i t e r .
# m
i t e r .
# m + 1
I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n
Una iteracin en la
fase de elaboracin
Requisitos
Diseo
Implementacin
Pruebas
Anlisis
...Esfuerzo respecto de las Fases
P r e l i m i n a r y
I t e r a t i o n ( s )
i t e r .
# 1
i t e r .
# 2
i t e r .
# n
i t e r .
# n + 1
i t e r .
# n + 2
i t e r .
# m
i t e r .
# m + 1
I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n
Esfuerzo: 5% 20% 65% 10%
Duracin: 10% 30% 50% 10%
Una iteracin en la
fase de elaboracin
Requisitos
Diseo
Implementacin
Pruebas
Anlisis
IV. Proceso de Desarrollo de SW basado en UML
Conclusiones
Claves en el Desarrollo de SI
Herramientas
p.e. Rational Rose
Proceso
p.e. Rational Unified Process
Notacin
UML
V. Conclusiones
Contexto de Desarrollo:
Grado de Complejidad
V. Conclusiones
Bibliografa Recomendada
UML
www.omg.org/uml/
Meta-links www.celigent.com/uml/ y www.cetus-links.org/oo_uml.html
Pierre-Alain Muller Instant UML
Martin Fowler, UML Destilled (UML Gota a Gota)
Terry Quatrani, Visual Modeling ..., un caso de estudio

Herramientas CASE
Herramientas basadas en UML
www.objectsbydesign.com/tools/umltools_byPrice.html
International Council in SE (INCOSE) www.incose.org/tools/
Herramientas basadas en UML
www.objectsbydesign.com/tools/umltools_byPrice.html
Otras
Revista IEEE Software, Conferencias: OOPSLA, ECOOP
Patrones www.enteract.com/bradapp/docs/patterns-intro.html,
Tutoriales en ingls www.celigent.com/omg/umlrtf/tutorials.htm

V. Conclusiones

You might also like