Sei sulla pagina 1di 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

I. 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 SI

Construccin de un rascacielos

I. Introduccin: Modelado de SW

Claves en Desarrollo de SI
Notacin

Herramientas

Proceso

I. Introduccin: Modelado de SW

Abstraccin - Modelado Visual (MV)


El modelado captura las
partes esenciales del sistema
Orden
Item

envo

Proceso de Negocios
Sistema Computacional

I. Introduccin: Modelado de SW

MV para manejar la complejidad

I. Introduccin: Modelado de SW

MV promueve la reutilizacin
Mltiples Sistemas

Componentes
Reutilizados

III. El Paradigma Orientado a Objeto

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

Problemas en OO
...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

III. El Paradigma Orientado a Objeto

Problemas en OO
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

Fundamentos de Modelado OO

III. El Paradigma OO: 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
ms

Un Objeto

Otro
Objeto

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Ejemplo de varios objetos relacionados:
Cuenta Corriente 101
Juan
Banco de Valencia

Felipe
Cuenta Corriente 114

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:

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

Sevidor 1

Servidor 2
Un cliente

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 1

: Mensaje A
Objeto 2

: Mensaje C

: Mensaje E

Objeto 3

Objeto 4

: Mensaje D

Proceso de Desarrollo
de SW basado en UML

IV. Proceso de Desarrollo de SW basado en UM

Qu es un Proceso de Desarrollo de SW?


Define Quin debe hacer Qu, Cundo y Cmo debe
hacerlo
Requisitos nuevos
o modificados

Proceso de Desarrollo
de Software

Sistema nuevo
o modificado

No existe un proceso de software universal. Las


caractersticas de cada proyecto (equipo de
desarrollo, recursos, etc.) exigen que el proceso sea
configurable

IV. Proceso de Desarrollo de SW basado en UM

Historia de RUP

Rational Unified Process


1998

RationalObjectory Process
1996-1997

Objectory Process
1987-1995

Enfoque Ericsson

Pruebas funcionales
Pruebas de desempe
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
Ingeniera de datos
Diseo de interfaces

UML

IV. Proceso de Desarrollo de SW basado en UM

Dos Dimensiones

IV. Proceso de Desarrollo de SW basado en UM

Fases e Hitos (Milestones)


Inception Elaboration

Objetivos
(Vision)

tiempo

Construction

Arquitectura

Transition

Capacidad
Operacional
Inicial

Release
del Producto

IV. Proceso de Desarrollo de SW basado en UM

Proceso Iterativo e Incremental


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 UM

... Proceso Iterativo e Incremental


Las actividades se encadenan en una minicascada con un alcance limitado por los
objetivos de la iteracin
Anlisis
Diseo

n veces

Codific.
Pruebas e
Integracin

IV. Proceso de Desarrollo de SW basado en UM

Proceso Iterativo e Incremental


Enfoque
Cascada

Enfoque
Iterativo e
Incremental

IV. Proceso de Desarrollo de SW basado en UM

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 UM

...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 UM

...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 UM

...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

Esfuerzo respecto de las Workflows


Inception

Elaboration

Construction

Transition

15%

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

10%

Diseo

15%
30%

Implementacin

15%

Pruebas
P re lim ina ry
Ite ra tion (s)

ite r.
#1

ite r.
#2

ite r.
#n

ite r.
# n+ 1

ite r.
# n+2

ite r.
#m

5% mantenimiento10% gestin cambios

ite r.
#m +1

IV. Proceso de Desarrollo de SW basado en UM

...Esfuerzo respecto de las Fases


Inception

Elaboration

Construction

Transition

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

Diseo

Implementacin

Pruebas
P re lim ina ry
Ite ra tion (s)

Esfuerzo:
Duracin:

5%
10%

ite r.
#1

ite r.
#2

20%
30%

ite r.
#n

ite r.
# n+ 1

65%
50%

ite r.
# n+2

ite r.
#m

ite r.
#m +1

10%
10%

Conclusiones

V. Conclusiones

Claves en el Desarrollo de SI
Notacin
UML

Herramientas
p.e. Rational Rose

Proceso
p.e. Rational Unified Process

Contexto de Desarrollo:
Grado de Complejidad

V. Conclusiones

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