ORIENTADO A OBJETOS
(ADOO)
CON UML
Alejandro Domnguez / Jorge
Kashiwamoto / Enrique Torres
(Versin 4.0)
Curso impartido en la Fundacin Arturo
Rosenblueth y en UNITEC de 1998-2010
Objetivos generales
Proporcionar el conocimiento de los
principios inherentes en el anlisis y diseo
orientado a objetos
Introducir el Lenguaje Unificado de
Modelado (Unified Modeling Language:
UML), el cual es el lenguaje estndar para
el anlisis y diseo orientado a objetos
Utilizar UML para modelar un caso prctico
de sistemas
http://www.rational.com
8
Diagramas de clase
Diagramas de secuencia
Diagramas de estado
10
TRATAMIENTO DE LA
COMPLEJIDAD Y LA
ORIENTACIN A OBJETOS
Alejandro Domnguez
11
Panormica general
Complejidad de los sistemas de
software
Tratamiento de la complejidad y
descomposicin
Descomposicin orientada a
procesos y a objetos
12
Los sistemas
Un sistema es:
Un grupo conexo y organizado de objetos
Un todo compuesto de partes organizadas
acorde a algn esquema o plan
Caractersticas propias
Propiedades emergentes
13
Sistemas complejos
La complejidad de
un sistema es una
propiedad inherente,
no accidental
La interconexin de
los sistemas es una
fuente potencial para
inconsistencias e
incongruencias
14
Origen de la complejidad de
los sistemas
Desarrollado por personas
Sujeto a cambios
Desarrollado a travs de
un proceso largo y tedioso
La no existencia de leyes
fundamentales para
explicar los fenmenos y
enfoques
No se comprende el
sistema en su totalidad
Difcil de documentar y
probar
Potencialmente
inconsistente o incompleto
15
2 razn.- Complejidad de
los procesos:
Problemas en la
administracin y gestin
Necesidad de simplificacin
16
17
2 atributo
Los subsistemas se han definido arbitrariamente
3er atributo
El acoplamiento entre componentes del mismo
subsistema es fuerte y el acoplamiento entre
componentes de diferentes subsistemas es dbil
18
5 atributo
No siempre evolucionaron de sistemas simples a
sistemas complejos
19
Tratamiento de la
complejidad
Principios que permitirn el
tratamiento de la complejidad:
Abstraccin
Ignorar los detalles no esenciales y
construir un modelo ideal y generalizado
Jerarqua
Clasificar en grupos de abstracciones
relacionadas para poder distinguir
explcitamente las propiedades comunes y
distintas
Descomposicin
Orientada a procesos
Orientada a objetos
20
Descomposicin
La mejor tcnica conocida
desde tiempos inmemoriales
para enfrentar la
complejidad es: divide et
impera
Descomposicin orientada a
procesos (OP)
22
Descomposicin orientada a
objetos (OO)
El sistema se visualiza como un conjunto de
objetos autnomos, que al colaborar entre
si muestran cierta conducta
Los procesos no existen de manera
independiente, estn asociados a las objetos
Cada objeto exhibe un comportamiento
propio bien definido, y adems modela
alguna entidad del mundo real
23
Descomposicin OP vs OO
Cul es la forma correcta de descomponer
un sistema complejo, OP u OO?
Las dos formas son importantes
La OP muestra el orden de los eventos
La OO enfatiza las entidades que causan la
accin
No es recomendable descomponer un
sistema complejo de ambas formas
simultneamente debido a que se
incrementa la complejidad
24
Recomendacin para el
tratamiento de la complejidad
Primero aplicar un descomposicin OO, la
cual servir como marco de referencia para
continuar con una descomposicin OP
25
HISTORIA DE LA
ORIENTACIN A
OBJETOS
Alejandro Domnguez
26
Panormica general
La vida media de las tecnologas
de IS
Aspectos histricos de la
orientacin a objetos(OO)
La OO en lo 1990s
Lo que se ha aprendido de la OO
27
15 aos de fama
La experiencia nos dice que las tecnologas
de ingeniera de software (IS) ms
populares tienen el siguiente
comportamiento:
Toman algn tiempo en llegar a ser populares
Tienen un periodo de florecimiento de 15 aos
1966:
Se introduce al mercado Simula, el primer
lenguaje de programacin OO
Finales de 1960s:
Alan Kay trabaja en la mquina denominada
FLEX, la precursora de Dynabook, la Xerox
Star, y la Apple Macintosh
30
1972:
Se desarrolla la primera versin de Smalltalk
1980:
Grady Booch introduce el diseo orientado
objetos
Se introducen las primeras versiones de
hardware OO
31
1986:
Se introducen las primeras versiones de
anlisis OO y de anlisis de
requerimientos OO
1988:
anlisis del dominio OO aparece en la
literatura
32
Finales de 1980s:
Aparece un gran nmero de lenguajes de
programacin OO; incluyendo: C++,
Eiffel, CLOS, etc.
33
No orientado
a objetos
Fortran
Orientado
a objetos
LISP
1960
Cobol
PL/1
Simula
Smalltalk-72
1970
Prolog
Smalltalk-74
Pascal
Smalltalk-76
Smalltalk-78
Loops
Smalltalk-80
1980
Ada
Objective C
Object Pascal
C ++
Eiffel
1990
Ada 9
Object Cobol
Java
CLOS
34
35
36
Ada/Booch
Booch 91
Booch
1990
OOSE
Jacobsen
RDD
Wirfs-Brock
OMT
Rumbaugh et al.
OBA
Gibson/Goldb.
OOA
Coad/Yourdon
Booch 93
OOSE 94
1995
1997
State Charts
Harel
OMT 94
Fusion
Coleman
SOMA
Graham
Team Fusion
Coleman et al.
OODA
Martin/Odell
MOSES
Henderson-Sellers
RD
Shalaer/Mellor
38
39
La tecnologa OO es vasta
Ms amplia que lo indicado en los
lenguajes de programacin OO
40
42
CONCEPTOS DE LA
ORIENTACIN A
OBJETOS
Jorge Kashiwamoto /
Alejandro Domnguez
44
Panormica general
La orientacin a objetos
Objetos y abstraccin
Clasificacin y clases
Caractersticas de los Objetos
Relaciones
Agregacin
Modularidad
Encapsulamiento
Generalizacin y especializacin
Polimorfismo
45
Qu es la Orientacin a
Objetos?
46
Paradigma
PARADIGMA
Procedural
Funcional
ASPECTOS ESENCIALES
QUE MODELA
Algoritmos
Restricciones
Objetos
Clases y objetos
47
Paradigma de la
ORIENTACIN A OBJETOS
Marco conceptual propio
Anlisis de problemas
Enfoque particular del problema.
Planteamiento ms claro
Determinados problemas
Derivados de la OO
Tecnologas
Metodologas
Programacin
Lenguajes
Bases de Datos
Etc.
49
Motivaciones de la OO
Tratar o abordar dominios de problemas ms amplios y
complejos
Mejorar la interaccin entre los usuarios y los analistas.
Incrementar la
programacin
consistencia
entre
anlisis,
diseo
Orientacin a Objetos
El software se organiza como una coleccin
de objetos discretos que contienen tanto
estructuras de datos como comportamiento
Rumbaugh
51
Herencia
Polimorfismo
52
Definicin de objeto
Un objeto es:
Diccionario Larousse: Objeto (del bajo latn
objectum < lat.)
Cosa material y concreta, por lo regular de dimensiones
reducidas
Trmino con lo que se denota aquello sobre lo que
recae la accin expresada por el verbo
The 3 amigos:
Una manifestacin concreta de una abstraccin
Una entidad con una frontera e identidad bien definidas
que encapsula estado y comportamiento
Una instancia de una clase
53
OBJETO
Es una entidad que retiene una cierta informacin
abstracta y sabe como realizar ciertas operaciones sobre
esta informacin
Wirfs-Brock
OBJETO =
ATRIBUTOS +
COMPORTAMIENTO
Ejemplos de objetos
En una empresa
procesadora de
alimentos
Objetos pasivos:
Un saco de lentejas
Un paquete de caf
Factura 895 enviada a
alguna empresa
Agentes humanos
Zoila Baca del Corral
(Secretaria ejecutiva)
Armando B. Roncas
(Guardia de seguridad)
Objetos estructurales
Departamento de
ventas
Objetos activos:
Camioneta placas
1234AB
La mquina de fax de
la empresa
55
Abstraccin
La abstraccin surge desde un
reconocimiento de similaridades entre ciertos
objetos, situaciones o procesos en el mundo
real, y la decisin de concentrar la atencin
sobre estas similaridades e ignorar por el
momento las diferencias.[Hoare]
La
abstraccin
es
una
descripcin
simplificada, o especificacin, de un sistema
que enfatiza algunos de los detalles o
propiedades del sistema mientras suprime
otras. Una buena abstraccin es una que
enfatiza detalles que son significativos al
lector o usuario y suprime detalles que son,
al menos por el momento, inmateriales o que
distraen la atencin. [Shaw]
56
Abstraccin
Un concepto califica como una abstraccin
slo si este puede ser descrito, comprendido
y
analizado
independientemente
del
mecanismo que eventualmente ser usado
para realizar ste. [Berzins, Gray y
Naumann]
Una abstraccin denota las caractersticas
esenciales de un objeto que distinguen a ste
de todos los otros tipos de objetos y de esta
forma proporciona lmites conceptuales
definidos sucintamente, relativos a la
perspectiva del observador. [Booch]
57
Abstraccin
Abstraccin es el principio de ignorar
aquellos aspectos de un sujeto que no son
relevantes al propsito actual, con el objetivo
de concentrar la atencin completamente en
aquellos que lo son. [Oxford University]
La abstraccin de datos es el principio de
definir un tipo de dato en trminos de las
operaciones que se aplican a objetos de este
tipo, con la restriccin de que los valores de
tales objetos pueden ser modificados y
observados slo mediante el uso de estas
operaciones. [Oxford University]
58
60
Clasificacin
Los
objetos
con
iguales
estructuras
y
comportamiento (operaciones) se agrupan para
formar una clase que los describe.
En este sentido el concepto de clase nos permite
dividir y clasificar los objetos de nuestro problema.
Se dice que la clase en tanto describe funciona
como el tipo y el objeto en tanto es descrito y
puede tener una existencia concreta, como la
instancia o variable del tipo.
CLASES
61
Dificultades de la clasificacin
62
CLASE
Es una coleccin de objetos los cuales comparten
las mismas caractersticas y comportamientos.
Wirfs-Brock
63
Representacin de clase
64
65
typedef int T;
# define Max_Stack 100
T stack[Max_Stack];
int top=0;
T item;
typedef int T;
typedef struct{
int top, size;
T *stack;
}stack;
2
66
typedef int T;
class stack{
public: //interface
stack(int size);
~stack(void);
void push(const T &item);
void pop(T &item);
int is_empty(void) const;
int is_full(void) const;
private: //implementacin
int top_, size_;
T *stack;
}
stack s1(10); s1.push(473);
67
Caractersticas de un objeto
Abstraccin /
Clasificacin
Encapsulamiento
Herencia
Polimorifismo
Modularidad
Extensibilidad
Persistencia
Concurrencia
Identidad
Estado
Reusabilidad
Comportamiento
68
Identidad
69
Estado
Una condicin o situacin durante la
vida de un objeto que satisface
alguna condicin, lleva a cabo
alguna actividad, o espera algn
evento
Transicin
Cambio de estado.
Evento
Un suceso u ocurrencia de un fenmeno
que lleva a una transicin.
70
Comportamiento
Los efectos observables de un
evento, incluyendo sus
resultados
71
Comportamiento:
Implantacin
Operacin
Es una funcin de transformacin sobre los atributos del
objeto (no necesariamente cambindolos). Los tipos ms
comunes de operacin sobre un objeto son: Modificacin,
Seleccin, Iteracin.
Mtodo
Es la implementacin especfica de una operacin. Algunos
especialistas utilizan los trminos Operacin y Mtodo de
manera intercambiable.
72
Comportamiento:
Tipo de Objetos
Objetos Activos y Objetos Pasivos
Los objetos activos son aquellos que dirigen su propio hilo
de control. Los objetos pasivos slo pueden ejecutar
transiciones cuando se acta sobre ellos. Dado que los
objetos activos son autnomos, ellos son la raz del control
en un sistema. La existencia de hilos mltiples de control
en un programa (concurrencia) slo puede lograrse con
mltiples objetos activos, mientras que los sistemas
secuenciales slo tienen un objeto activo a la vez.
73
Identidad
Propiedad que permite
distinguirlo de todos los
dems objetos
existentes
74
Identidad
Los datos estn cuantificados en entidades
discretas y distinguibles, con fronteras bien
definidas, denominadas objetos.
Cada objeto tendr una existencia propia,
independientemente del valor de sus atributos.
No es diferenciar los objetos por su nombre, sino
ellos mismos, por el hecho de existir.
Todo objeto contiene una referencia a si mismo.
Ejemplo
clasedefinida a,b
a <> b
75
76
Ejemplo: un circulo
Nombre: circulo
Atributos: radio (radio:r) y
posicin del centro (centro:(a,b))
Operaciones: desplegar,
remover, reposicionar, modificar
tamao
Restricciones: el radio debe ser
positivo
79
Modularidad
"Las conexiones entre los mdulos son las asunciones que los
mdulos hacen acerca de cada otro". [Parnas]
80
Modularidad
Principio de programacin que nos permite precisar las
interfaces con distintas decisiones de diseo.
Los mdulos son una forma de organizar y especializar el
trabajo de programacin.
81
Encapsulamiento
La abstraccin y el encapsulamiento son conceptos
complementarios: la abstraccin focaliza sobre la
visin externa de un objeto y el encapsulamientotambin conocido como ocultamiento de informacin impide que los clientes vean la visin interna del
objeto, donde el comportamiento de la abstraccin es
implementado. De esta manera, el encapsulamiento
proporciona barreras explcitas entre diferentes
abstracciones.
"Para trabajar la abstraccin, la implementacin debe
ser encapsulada". [Liskov] En la prctica, esto significa
que cada clase debe tener dos partes: una interfaz y
una implementacin. La interfaz de una clase captura
slo su visin externa, encerrando nuestra abstraccin
del comportamiento comn de todas las instancias de
la clase. La implementacin de una clase comprende la
representacin de la abstraccin as como los
mecanismos que alcanzan el comportamiento
deseado.
82
Encapsulamiento
"El encapsulamiento es el proceso de ocultamiento de
todos los detalles de un objeto que no contribuyen a
sus caractersticas esenciales". [Booch] En la prctica,
uno oculta la representacin de un objeto as como la
implementacin de sus mtodos.
"El encapsulamiento (ocultamiento de informacin) es
un principio usado cuando se desarrolla la estructura
global de un programa, donde cada componente de un
programa debe encapsular u ocultar una nica
decisin de diseo...La interfaz de cada mdulo es
definida en forma tal que revele tan poco como sea
posible acerca de su funcionamiento interno. [Oxford
University]
Esto ayuda a un trabajo eficiente de los
programadores de manera que tengan que invertir
pocos esfuerzos a la hora de hacer cambios o
modificaciones.
83
Encapsulamiento (Resumen)
La abstraccin y el encapsulamiento
son conceptos complementarios
La abstraccin se centra en el
comportamiento observable de un objeto
El encapsulamiento se centra en el origen
de dicho comportamiento
El encapsulamiento
Se logra a travs del ocultamiento de la
informacin que no contribuye a sus
caractersticas esenciales de un objeto
84
Ejemplo de encapsulamiento
85
Permisos de Acceso
Publico: Los atributos y operaciones declarados
pblicos (interfaz de la clase) sern del acceso de
cualquier funcin, ya sea sta una operacin en
una clase derivada o en cualquier otra clase cliente
de los servicios de la clase.
Protegido: Los atributos y operaciones declarados
protegidos (implementacin de la clase) sern del
acceso de cualquier funcin que sea una operacin
en una clase derivada.
Privado: Los atributos y operaciones declarados
privados (implementacin de la clase) sern del
acceso slo de las funciones de la propia clase.
86
Permisos de Acceso
Tipos de Clientes
Operaciones en otras clases que invocan operaciones
sobre los objetos de la clase (simples clientes)
mantener el encapsulamiento
Los usuarios no deben tener otra visin de la clase que no
sea la que puede tener a travs de su interface
87
Permisos de Acceso
Causas
Importancia de la Redefinicin
Eficiencia
88
Ejemplo
Circulo
Privado:
Xcoor, Ycoor
Protegido:
radio
Publico:
leer_coor()
mostrar()
ocultar()
esta_oculto()
trasladar()
Circulo expandible
Publico:
Expandir()
Contraer()
89
Relacin
Conexin entre cosas
Utilizadas en el modelado OO
Se trazan como rutas con diferentes tipos
de lnea para distinguir diferentes clases de
relaciones.
91
Tipo de Relacin:
DEPENDENCIA
Es una relacin que establece que un
cambio en la especificacin de un objeto
puede afectar otro que lo utiliza, pero no
necesariamente a la inversa.
Tambin conocidas como
Relacin de referencia
asociacin de referencia
92
Dependencia
La conexin slo se refiere a otro objeto
Dependencia: ejemplos
Empleado
Atributos
Nombre: Tecla
Puesto: Bibliotecaria
Edad: 40
Salario: 3000.00
Relaciones con
Usuarios
Jefe
Libros
Operaciones
Prestar libros
Reasignar colocaciones
Estar de mal humor
Solicitar aumento de salario
Reasignar colocacin
Operacin
Parmetro
94
Dependiencia y dinmica de
los objetos
La dinmica de los objetos se
genera por los mensajes
existentes entre los objetos
El recibir un mensaje provoca
que una operacin sea
ejecutada por el objeto
receptor
La operacin puede mandar
mensajes adicionales a otros
objetos
95
Dependencia: Modelado
Se traza como una lnea punteada dirigida.
Utilice las dependencias cuando se desea mostrar
que un objeto usa a otro.
Frecuentemente se utilizar cuando una clase utliza
a otro como argumento de la firma de una
operacin.
La dependencia puede tener nombre cuando se
requiera calidad por la cantidad de referencias.
96
Ejemplo de Dependiencia
97
Estereotipos de Dependencia
bind
El origen instanca la plantilla destino utilizando los
parmetros actuales
derive
El orrigen puede ser calculado a partir del destino
friend
Especifica que el orgien se le otroga una visibilidad
especial dentro del destino
instanceOf
Especifica que el objeto orgien es una instancia del
clasficador destino
98
Estereotipos de Dependencia
instantiate
El origen crea instancias del destino
powertype
El destino es powertype del origen
Powertype es un clasificador cuyos objetos son hijos de un
padre dado.
refine
Especifica que el orgien es un grado ms fino de
abstraccin que el destino
99
Tipo de Relacin:
GENERALIZACIN
Es una relacin entre una cosa general (superclase
o padre) y una cosa ms especfica (subclase o
hijo).
es-un-tipo-de
Los hijos pueden ser utilizados dondequiera que el
padre aparece.
Herencia
Polimorfismo
100
101
Adornments
Nombre
Rol
Multiplicidad
Agregacin
102
Asociacin: Nombre
Describe la naturaleza y direccin de la
relacin
Persona
TrabajaPara
Empresa
103
Asociacin: Rol
Faceta de la clase en una relacin dada
Empresa
+Empleado
+Empleador
104
Asociacin: Multiplicidad
Cantidad de objetos a ser conectados a
travs de una instancia de la asociacin
Persona
1..*
+Empleador
Empresa
+Empleado
105
Asociacin: Agregacin
Relacin estructural entre puntos
Empresa
1
*
Departamento
106
Asociacin: Agregacin
Agregacin
Granja
Uvalda
Ubre
Lety
Leche
Paty
Pastura
107
Tipos de asociaciones de
agregacin
Existen dos tipos de agregacin
Normal: Es una relacin tiene
Una universidad tiene facultades
Un CD tiene pistas
Nota: Puede faltar alguna de las partes sin
afectar el todo (las partes forman el todo)
108
Taxonoma y generalizacin
Taxonoma (del griego taxis,
ordenacin + nomos, ley)
1 Disciplina que estudia los
principios, mtodos y fines de
clasificacin
Cuenta
Cuenta de
inters
Cuenta de
depsito
109
Generalizacin y
especializacin
Generalizacin implica
generalizacin-especializacin de
la clase base a la clase derivada
Donde existe una clase general y
diferentes clases especializacin
Empleado
es un
hereda de
Director
Conductor
La clase general se llama
Administrativo de camiones
superclase y las clases
especializacin se llaman subclases
110
Generalizacin y herencia
La generalizacin cuando se manifiesta en
un lenguaje de programacin se le conoce
como herencia
La herencia es una relacin entre diferentes
clases, las cuales comparten caractersticas
comunes
111
Herencia: Definicin
Es un mecanismo para compartir atributos
operaciones
comunes
entre
clases,
mediante una relacin jerrquica y
transitiva, donde una clase hereda de otra
sus atributos y operaciones y aade otros
nuevos que van a ser exclusivos para ella y
sus posibles descendientes, o sea clases que
se formen de ella a su vez.
112
Herencia: Definicin
Es el mecanismo por el cual elementos ms
especficos incorporan estructura y
comportamiento definidos por elementos
ms generales.
UML
113
Herencia: Ejemplo
114
Herencia: Ejemplo
Clase: Acadmico
Atributos
Direccin
Edad
Nombre
Estudiante
Atributos
Sexo
Aos de estudio
Programa acadmico
Operaciones
Solicitar libros
Realizar reportes
Hacer abstracciones
Desarrollar investigaciones
Profesor
Operaciones
Asistir a clases
Entregar tareas
Hacer tesis
Atributos
Sexo
Especialidad
Grado acadmico
Operaciones
Impartir clase
Generar notas de clase
Asignar calificaciones
115
Generalizacin y herencia
Una superclase hereda a una subclase y una
subclase es heredada por una superclase
Se heredan los atributos, las operaciones y todas
las asociaciones
116
Generalizacin, herencia y
clases abstractas
Clase abstracta
es aquella que no tiene ningn objeto; i.e., no se
pueden crear instancias u objetos
Automvil
Automvil
deportivo
Automvil
familiar
Avin
Automvil
turismo
Avin
militar
Avin de
carga
Avin de
pasajeros
117
Generalizacin, herencia y
clases concretas
Clases concretas
Son opuestas de las clases abstractas
Es posible crear instancias u objetos de ellas y
tienen implementaciones de todas las operaciones
Vehculo
(clase abstracta)
Automvil
Automvil
deportivo
Automvil
A
Avin
Automvil
familiar
Automvil
turismo
Automvil
B
Automvil
C
Avin
militar
Avin de
carga
Avin de
pasajeros
Instancias u objetos
118
Propiedades de la herencia
Permite reutilizacin
Los componentes pueden reutilizarse
Enfoque de reutilizacin bottom-up
Herencia: Ejemplo
120
Polimorfismo
Una misma operacin puede tener
comportamientos diferentes segn el objeto que la
ejecuta.
Es decir, el mismo mensaje puede tener respuestas
diferentes por parte de objetos diferentes.
Ejemplo
CalculaArea(int lado)
CalculaArea(int largo, int ancho)
121
Polimorfismo
El comportamiento del sistema se define por el
comportamiento dinmico de las instancias de
las clases
Segn Jacobson
Polimorfismo significa que el originador del mensaje
no necesita conocer a la instancia de la clase que lo
recibe. La instancia receptora puede pertenecer a
una clase arbitraria
122
Polimorfismo
El polimorfismo permite que diferentes instancias
de diferentes clases estn asociadas
Una instancia receptora interpreta las operaciones
de acuerdo a la clase a la que pertenece
Ejemplo:
El mensaje dibujar se puede interpretar de diferentes
formas por las instancias de una clase
123
Polimorfismo:
Formas de Aplicacin
Se detecta a travs de la firma de los mtodos
Nombre
Nmero de Argumentos
124
Principio de Subclasificacin
Liskov
Principio de Abierto/Cerrado
Reusabilidad y Extensibilidad
Aplicacin de la Herencia
126
Implicaciones
La aplicacin ms importante de la herencia es
la simplificacin conceptual del problema al reducir el
nmero de caractersticas independientes, y
mecanismo para formar complejas estructuras de datos
por niveles de construccin desde ms abstractos hasta
ms concretos.
127
Ejemplo
Aves
Color del plumaje
Perodo de incubacin
Anidar()
Aparearse()
comer()
Volar()
Pingino
129
Ejemplo
Rectngulo
Ancho
Largo
Cuadrado
Crear( a,a )
Rel_Aspecto( a,a
)
130
Herencia: Consistencia
La herencia un mecanismo controlado de
redefinicin.
En ocasiones tambin es necesario contar con
herramientas (algunos lenguajes las tienen) para
lograr herencias que controlen la redefinicin no
slo en interfaz sino tambin en implementacin.
la clase base se puede adjudicar el derecho de
permitir la redefinicin de sus operaciones
imponiendo ciertas condiciones a la nueva
implementacin que mantengan la consistencia de
la clase. Por ejemplo, que despus de la operacin
se mantenga una cierta relacin entre los valores
de los atributos.
131
Herencia Simple
La clase se define o deriva a partir de una
nica clase base
Animal
Mamfero
Hombre
132
Herencia mltiple
Es una forma de herencia
en donde una clase
hereda la estructura y
comportamiento de dos
Director
clase base
Administrativo
Empleado
es un
Empleado
eventual
Conductor
de camiones
es un
Empleado
de bodega
Empleado
de oficina
Todologo
133
Ambigedades en la herencia
mltiple
Colisin de nombres
Herencia incorrecta
repetida
A
(A)
(A)
(A)
(A)
?
?
134
Persistencia
Un objeto en software ocupa alguna cantidad de
espacio y existe para una cantidad particular de
tiempo. Existe un espectro de existencia de objetos
que va desde objetos transitorios que aparecen dentro
de la evaluacin de una expresin, hasta objetos en
una base de datos que sobreviven a la ejecucin de un
programa. [Atkinson]
Este espectro de persistencia de objetos abarca, entre
otras, las siguientes:
Resultados transientes en la evaluacin de una expresin
Variables locales en activaciones de procedimientos
Variables propias [como en Algol 60] y variables globales
135
Persistencia
Los lenguajes tradicionales de programacin
usualmente direccionan solo los tres
primeros tipos de objetos persistentes, la
persistencia de los ltimos tres tipos es
tpicamente del dominio de la tecnologa de
bases de datos.
La persistencia es la propiedad de un objeto
a travs de la cual su existencia trasciende en
el tiempo (el objeto contina existiendo
despus de que su creador deja de existir)
y/o en el espacio (la localizacin del objeto
se mueve de la direccin en la cual ste fue
creado). [Booch]
136
Conclusiones: Caractersticas
de la OO
Reduce la brecha semntica entre la realidad
y los modelos
137
Conclusiones: Debilidades de
la OO
Reutilizacin a gran escala an no se
lleva a cabo
Existen pocas bibliotecas reutilizables
La administracin de las bibliotecas
reutilizables es un problema debido a
su falta de estandarizacin
Se requiere un entrenamiento fuerte
del personal antes de que se pueda
implantar
138
Conclusiones: La OO y los
sistemas
Los sistemas pueden ser
Basados en objetos
encapsulamiento + identidad de objetos
Basados en clases
basados en objetos + abstraccin de conjunto
Orientados a objetos
basados en clases + herencia +autorrecursin
139
INTRODUCCIN A UML
Y AL ADOO
Alejandro Domnguez
140
Panormica general
Surgimiento y desarrollo de
UML
Surgimiento de UML
UML (Unified Modeling Language:
lenguaje unificado de modelado)
Es el sucesor de los diferentes
modelos para llevar a cabo anlisis y
diseo orientados a objetos (ADOO)
Naci como una unificacin de los
modelos de Booch, Rumbaugh
(OMT) y Jacobson (The 3 amigos)
Es el lenguaje de modelado estndar
aprobado por la OMG en 1997
142
Desarrollo de UML
OOSA
Shalaer/Mellor
Ada/Booch
Booch 91
Booch
1990
OOSE
Jacobsen
RDD
Wirfs-Brock
OMT
Rumbaugh et al.
OBA
Gibson/Goldb.
OOA
Coad/Yourdon
Booch 93
OOSE 94
1995
OMT 94
Fusion
Coleman
OODA
Martin/Odell
Harel
Cartas de
estado
UM 0.8
OOPSLA 95
Booch/Rumbaugh
SOMA
Graham
UML 0.9
MOSES
Henderson-Sellers
The 3 amigos
1997
UML 1.0
Team Fusion
The 3 amigos Notacin Coleman et al.
UML 1.1
Aceptado por
la OMG 11/97
OPEN/OML
Open-Group
(+30 colaboradores)
RD
Shalaer/Mellor
143
144
Caractersticas de UML
UML es un lenguaje para
Visualizar
Es un lenguaje grfico con una semntica bien definida
Especificar
Permite construir modelos precisos, no ambiguos, y
completos
Construir
UML no es un lenguaje de programacin visual, pero
los modelos creados con l pueden conectarse
directamente a una gran variedad de stos
Documentar
Permite expresar, a cualquier nivel de detalle, la
arquitectura, los requerimientos, y las pruebas de un
sistema
145
Dependiendo de la cultura de
desarrollo estos artefactos se
tratan a un nivel de detalle
diferente
146
Relaciones
Unen o ligan las cosas
Diagramas
Agrupan las colecciones de cosas
147
De comportamiento
Son la parte dinmica de los modelos de UML
Interaccin entre objetos (mensajes y secuencias de
accin) y mquinas de estado
De agrupamiento
Son las partes organizacionales en los modelos de UML
Paquetes (mecanismos de propsito general para
organizar elementos en grupos)
De notacin
Son las partes que explican los modelos en UML
Notas
148
Asociacin
Es una relacin estructural que describe un conjunto de
ligas (conexiones entre objetos)
Generalizacin
Es una relacin de especializacin/generalizacin en la
cual los elementos hijo se sustituyen por elementos padre
Realizacin
Es una relacin semntica entre clasificadores (especifica
un contrato que otro clasificador asegura llevar a cabo)
149
Diagramas de colaboracin
Diagramas de estado
Diagramas de actividad
Diagramas de componentes
Diagramas de implantacin
150
152
CASOS DE
USO DEL
SISTEMA
PRUEBA
153
Modelo de
anlisis
Modelo de
diseo
CASOS DE
USO DEL
SISTEMA
Modelo de
implementacin
PRUEBA
Modelo de prueba
154
Diagrama de clases
(primera versin)
Modelo de
anlisis
Diagrama de clases
(+ paquetes)
Asociaciones
Atributos
de Clases
Modelo
diseo
Clases
Casos de uso
Casos de uso
(+ descripciones)
Secuencia de las
operaciones
Diagrama de secuencias
Estados de las
Diagrama de estado operaciones
Definicin de la interfaz 2 Definicin
Diagrama
de la 155
de clases
interfaz 1
MODELO DE
REQUERIMIENTOS
(MODELADO DE CASOS
DE USO )
Alejandro Domnguez
156
Panormica general
Proporcionar las bases del
modelo de casos de uso (use
cases):
Actores
Casos de uso
157
Diagrama de clases
(primera versin)
Diagrama de clases
(+ paquetes)
Asociaciones
Atributos
de Clases
Modelo
diseo
Clases
Casos de uso
Casos de uso
(+ descripciones)
Secuencia de las
operaciones
Diagrama de secuencias
Estados de las
Diagrama de estado operaciones
Definicin de la interfaz 2 Definicin
Diagrama
de la 158
de clases
interfaz 1
Caractersticas de los
requerimientos de un sistema
Los requerimientos de un
sistema
Necesitan ser los adecuados
Los requerimientos de un
sistema deben centrarse en los
usuarios
159
Seguido de
Anlisis
Explora la conectividad y las consecuencias
de los conflictos (diferentes y potenciales)
que surgen en los requerimientos del
usuario
Diseo
Mapea los requerimientos en una
aplicacin de software
160
Obtencin de los
requerimientos del usuario
El usuario debe decir
que desea
El analista debe
Estructurar la
informacin de tal forma
que pueda ser utilizada
ms tarde en el anlisis
y diseo
Durante y despus de
los requerimientos
El analista debe
Escribir la informacin recolectada de tal forma
que el usuario la comprenda
Crear una serie de diagramas acerca del negocio
del usuario
Ayudan a la comprensin
Proporcionan un punto de partida para confirmar los
requerimientos reales
162
Qu es un modelo de casos
de uso?
Un modelo de caso de uso:
Describe los servicios que el
sistema proporciona al usuario
Proporciona informacin acerca
de los usuarios (actores) del
sistema
Actores: Humanos, otros sistemas,
mquinas
163
Produccin de un modelo de
casos de uso
INPUTS
PROCESOS
Prcticas
existentes de
sistemas
Requerimientos
del nuevo
sistema
OUTPUTS
1 modelo de
casos de uso
164
Actores
Un actor
Es alguien o algo externo al sistema
Personas, software, hardware, almacenes de datos, o redes
Operador
165
166
Actores primarios
Son aquellos para los cuales se
especifica y se construye
Son activos
Inician su actividad con el sistema
Usuario de computadoras con la
computadora
Usuario del telfono con el telfono
Cobrador con el sistema de cobranza
Interanuta con el visualizador web
167
Actores secundarios
Supervisan, ayudan y mantienen al sistema
Son pasivos: no inician ninguna actividad con el
sistema
168
169
Representan lo qu el
sistema debe
proporcionar, en lugar
de cmo lo debe hacer
Cmo el sistema
proporcionar el servicio
no debe ser importante
para el usuario
Cuando se utiliza el
telfono , no es
importante cmo se
lleva a cabo la
conexin con otro
170
171
172
173
174
Escenarios
Caso de uso
175
Ejemplo de escenario 2
Mara teclea la cuenta 23457
Mara teclea su NIP 75432
Mara su balance promedio entre 1/1/1995 - 30/12/99
El sistema proporciona el balance promedio
Ejemplo de escenario 3
Pedro teclea la cuenta 23456
Pedro teclea su NIP 65432
Pedro su balance promedio entre30/11/1999 - 30/12/99
El sistema proporciona el balance promedio
176
Existen cuando
Todo funciona bien
No existen bugs
No existen errores
Secundarios
Describen las excepciones encontradas en un flujo normal
(flujos alternativos)
Existen cuando
Una accin debe tomarse en algn punto
Algo es errneo en algn punto
Algn comportamiento que puede pasar en algn momento
177
Descripcin de actores y
casos de uso
Cada actor necesita
un nombre descriptivo
una breve descripcin de una o dos oraciones
de longitud
Las sentencias deben describir al actor con respecto
al sistema
178
Ejemplos de descripcin de
actores
Actores
Cliente - una persona quien ordena
productos de la compaa
Vendedor - un empleado de la compaa
quien procesa los pedidos del cliente
Mensajera - UPS, FedEx, DHL, MexPost,
etc.
179
Prctica
Tabla de Actores
Nombre del
Actor
Tipo
Descripcin
Primario
Secundario
Ambos
180
Ejemplos de descripcin de
casos de uso
Casos de uso
Del cliente - elaborar orden, obtener estado de orden,
regresar producto, cancelar orden, registrar observaciones
181
Prctica
Relacin de Actores con Casos de Uso
Actor
182
183
184
185
Notacin grfica en un
diagrama de casos de uso
Notacin para
un actor
Nombre
del actor
Notacin para
el sistema
Nombre
del sistema
Notacin para
el caso de uso
Nombre del
caso de uso
Nombre: frase verbal
activa o en infinitivo
186
Nombre del
caso de uso
Nombre
del actor
187
Actores primarios en un
diagrama de casos de uso
Sistema de inversiones
Ejecutar orden
Actores
primarios
Corredor
de bolsa
Verificar inversin
Inversionista
188
Actores secundarios en un
diagrama de casos de uso
Sistema de inversiones
Actores
primarios
Actor
secundario
Ejecutar orden
Corredor
de bolsa
Verificar inversin
Sistema
bancario
Transferir dinero
Inversionista
189
Mantener los
diagramas claros y
ntidos
No poner demasiados
casos de uso en un
diagrama
Diagramas sencillos son
mas fciles de entender
190
Relaciones de generalizacin
en casos de uso
Estas relaciones estn ligadas a los escenarios
secundarios
Extend
Cuando un caso de uso se extiende a otro al agregar acciones
Include
Cuando un caso de uso incorpora el comportamiento de otro
caso de uso en un lugar especfico del primero
Verificar balance
Validar cuenta
<<include>>
Prestar efectivo
<<extend>>
Verificar cantidad prestada
191
192
Diagrama de la asociacin
extend
<<extend>>
Capturar
transacciones
Prestar efectivo
Cliente
del banco
<<extend>>
<<extend>>
Depositar efectivo
193
194
Diagrama de la asociacin
include
<<extend>>
Capturar
transacciones
<<extend>>
Prestar efectivo
Cliente
del banco
<<extend>>
Depositar efectivo
<<include>
<<include>
Generar anotacin
195
Cliente
hereda
Cliente
del banco
196
Propiedades de la herencia
entre actores
Simplifica el diagrama
sin perdida de detalle
Cliente
del banco
Seala la relacin
jerrquica entre actores
El actor receptor obtiene
las capacidades del actor
padre
Los actores padres no
notan la presencia de la
herencia
Persona
fsica
Persona
moral
Otro
banco
197
<<extend>>
Capturar
transacciones
Cliente
del banco
Prestar efectivo
<<extend>>
<<extend>>
Depositar efectivo
Obtener comisin
Otro
banco
198
199
200
Ejemplo: el problema
Definir el modelo de casos de uso
para un sistema de biblioteca:
Mostrar las relaciones include y extend
entre los casos de uso y los casos de
uso abstractos
Incluir al menos 3 casos de uso:
Caso de uso para la bsqueda de libros
Caso de uso para el prstamo de libros
Caso de uso para el regreso de libros
201
Ejemplo: descripcin de
actores y casos de uso
Actores
Usuario - persona que interacta directamente
con el sistema
Casos de uso
Del usuario - buscar por autor, buscar por ttulo,
buscar por clave, buscar por autor-ttulo,
reservar libro
Del bibliotecario - prestar libro
Al bibliotecario - regresar libro
202
<<include>>
<<extend>>
Autenticar usuario
Regresar
libro
Buscar libro
Usuario
<<extend>>
<<extend>>
<<extend>>
Bibliotecario
<<include>>
Accesar datos de
libros actuales
<<extend>>
Buscar libros
actuales
Prestar
libro
203
MODELO DE ANLISIS
(DIAGRAMAS DE CLASE)
Alejandro Domnguez
204
Panormica general
Desarrollar las descripciones de
casos de uso
Describir los principios de los
diagramas de clase
Construccin de diagramas de clase
a partir del modelo de casos de uso
Introducir nuevos tipos de objetos
205
El modelo de anlisis
Modelo de
requerimientos
Diagrama de clases
(primera versin)
Modelo de
anlisis
Diagrama de clases
(+ paquetes)
Casos de uso
(+ descripciones)
Secuencia de las
operaciones
Diagrama de secuencia
Estados de las
Diagrama de estado operaciones
DIAGRAMA Definicin de la interfaz 2 Definicin
de la206
DE CLASES
interfaz 1
Asociaciones
Atributos
Modelo de Clases
diseo
Clases
Casos de uso
Produccin de un modelo de
descripcin de casos de uso
INPUTS
Diagramas de
casos de uso
PROCESOS
OUTPUTS
Generar descripciones de
casos de uso
Refinar y completar casos
de uso y el modelo
Describir y probar
interfaces de usuario
Describir interfaces del
sistema
1 modelo de
casos de uso
Descripciones
del caso de
uso
Descripciones
de la interfaz
del usuario
207
Descripciones de casos de
uso
A cada elipse se debe
asociar un texto que
describa el caso de uso en
mas detalle
El texto puede ser resmenes
con palabras clave
Formato bsico
Nombre
Actores
Pre-condiciones
Flujo de eventos
Post-condiciones
Caminos alternativos
208
Pre-condiciones
Estado del sistema antes que el caso de
uso ocurra
Post-condiciones
Estado del sistema despus de que el
caso de uso ha ocurrido exitosamente
209
210
211
<<extend>>
<<extend>>
Autenticar usuario
Regresar
libro
Buscar libro
Usuario
<<extend>>
<<extend>>
<<extend>>
Bibliotecario
<<include>>
Accesar datos de
libros actuales
<<extend>>
Buscar libros
actuales
Prestar
libro
212
Ejemplo: Descripcin de
buscar por ttulo
Actores: Usuario
213
Ejemplo: Descripcin de
reservar libro (1)
Actores: Usuario
Pre-condiciones: El sistema est en
posibilidades de reservar libro
Flujo de eventos:
1. Si el sistema no tiene informacin para autenticar
al usuario, entonces do extend autenticar usuario
2. Si el usuario conoce datos del libro y desea
reservarlo, entonces introduce datos al sistema y
presiona el botn reservar, de otra forma el sistema
le informa que el libro no est disponible
214
Ejemplo: Descripcin de
reservar libro (2)
4. Si el usuario quiere salir, entonces presiona el
botn SALIDA
5. Si el usuario no conoce datos del libro y desea
reservarlo, entonces ir casos de uso de bsqueda
215
Interfaces
Pueden ser definidas por
actores, casos de uso, o ambos
Dice lo que se espera que la
entidad haga
No es parte de los actores o
casos de uso
Es una descripcin de cmo
interactuar con el actor o caso de
uso
216
Efectuar pedido
Cliente
Indican quin
usa la interfaz
Interfaz para
bsqueda
de pedidos
Interfaz
para ordenar
pedidos
Cancelar pedido
Vendedor
218
TTULO
CAMPO 1
CAMPO 2
CAMPO 3
OK
Cancelar
219
Mapa de navegacin de
interfaces (1)
Una vez diseadas las
interfaces se debe
hacer un mapa de
navegacin entre ellas
El mapa de navegacin
seala la secuencia de
la interaccin humanomquina va las
interfaces de usuario
Notacin
Rectngulo = pantalla
Seala que otra pantalla ser
invocada
Mapa de navegacin de
interfaces (2)
TTULO
CAMPO 1
Login
UC001
Pantalla
Principal
UC002
CAMPO 2
CAMPO 3
OK
Cancelar
Despliegue
de Horario
UC003
Despliegue
de Materias
UC004
Confirmacin
221
222
223
FASES DE
PRODUCCIN
224
FASES DE
PRODUCCIN
225
Produccin de un diagrama
de clases
Propsito: Proporcionar un modelo lgico del software del sistema
OUTPUTS
PROCESOS
INPUTS
Modelo de
casos de uso y
descripciones
Listado de
objetos en el
dominio del
problema
Bosquejar el diagrama de
clases inicial
Reexaminar el
comportamiento de en los
casos de uso y los objetos
Refinar el diagrama de clases
Efectuar verificaciones de los
diagramas
Revisar diagramas de clase
Agrupar clases en paquetes
Diagramas de
clase
incluyendo
descripciones
de las clases
Asociaciones
entre clases
El papel que
juegan las
clases
Jerarquas de
herencia
226
Descripcin de objetos
atributos y operaciones
En las descripciones de los casos de
uso
Los objetos y las clases se determinan
subrayando cada sujeto o sustantivo
Los atributos se determinan subrayando
todos los adjetivos asociados a sus
respectivos objetos
Las operaciones se determinan
subrayando todos los verbos y frases
verbales asociados a los respectivos
objetos
227
Clases en UML
Existen dos notaciones posibles:
Nombre de la clase
Nombre de la clase
Polgono
centro: punto
vrtices: lista de puntos
color del borde: color
color de relleno: color
despliegue (on: superficie)
rotar (ngulo: entero)
borrar ( )
destruir ( )
seleccionar (p: punto): boolean)
Polgono
228
Objetos en en UML
Existen dos notaciones posibles:
Nombre del objeto
Triangulo1: Polgono
centro = (0,0)
vrtices = (0,0), (4,0), (4,3)
color del borde: negro
color de relleno: blanco
Triangulo1: Polgono
229
Generalizacin en UML
Superclase
Personal
Bibliotecario
Subclase
Instructor
Subclase
Investigador
Subclase
Manejador
Manejador
de teclado
Manejador
de mouse
Manejador
de joystick
230
todo
todo
partes
partes
es capital de
Asociacin simple
pas
nombre
poblacin
Joven
nombre
/es yerno de
Asociacin derivada
Joven
nombre
es novio de
Joven
nombre
232
Asociaciones (3)
empresa
persona
trabaja para
nombre
nombre
empleado #IMSS
domicilio empleador
Roles
Muchos
Exactamente uno
Cero o ms
0..
Uno o ms
1..
Cero o uno
0..1
Rango especificado
2..4, 7
233
Ejemplos de asociaciones en
UML
Usuario
autorizar en >
Estacin
de trabajo
1
Notacin para
clase asociada
Autorizacin
prioridades
privilegios
iniciar sesin
terminar sesin
Atributo
Nombre
atributos
operaciones
Operacin
Directorio
234
Estereotipos
Se utilizan para especificar la semntica de
elementos ya definidos en UML
Son elementos generalizables (se pueden
especializar o generalizar)
Se pueden especificar en una clase delante del
nombre de la clase
Gerente
Ventana
235
3 estereotipos importantes
Clases interfaz
Para todo lo relacionado las interfaces del
sistema
Clases entidad
Para informacin persistente y el
comportamiento acoplado a ella
Clases control
Para funcionalidad no necesariamente atada a
otras clases
236
<<interface>>
Dispositivo
de alarma
sonido (alarma)
237
<<entidad>>
Depositar
artculo
Nombre: cadena
valor depositado: ECU
Total diario: entero
Crear ()
Obtener_valor (entero)
Incremento ()
<<entidad>>
Botella
<<entidad>>
Caja
238
<<control>>
Generador de reportes
Compilar (Reporte)
Monitorear (Reporte)
Imprimir (Reporte)
239
producir una vista del caso de uso, i.e., un diagrama de clases para
cada caso de uso
producir un nico diagrama de clases para todos los casos de uso240
241
Paquetes (1)
Son consecuencia del gran
nmero de clases existentes en
un sistema
Son necesarios para:
Proporcionar funcionalidad
opcional
Minimizar los efectos del cambio
Deben poseer
Acoplamiento interno fuerte
Acoplamiento externo dbil
242
Paquetes (2)
Pueden
Contener paquetes
anidados con paquetes de
servicio como partes
atmicas
Tener clases individuales
fuera de ellos
Ser el resultado de
problemas
organizacionales o
administrativos
243
Ejemplo de paquetes
<<subsystem>>
Editor
Controler
Diagram
elements
Domain
elements
Graphics
core
WindowsCore
MotifCore
Windowing
system
Motif
Microsoft
Windows244
Modelo de anlisis
ETAPAS DE PRODUCCIN
245
EL MODELO DE DISEO
(DIAGRAMAS DE
SECUENCIA)
Alejandro Domnguez
246
Panormica general
Definir la relacin entre el anlisis y
el diseo
El modelo de diseo I
Modelo de
requerimientos
Modelo de
anlisis
Diagrama de clases
(+ paquetes)
Casos de uso
(+ descripciones)
Secuencia de las
operaciones
Diagrama de secuencia
Estados de las
Diagrama de estado operaciones
DIAGRAMA Definicin de la interfaz 2 Definicin
de la
DE CLASES
interfaz248
1
Asociaciones
Atributos
Modelo de Clases
diseo
Clases
Casos de uso
OUTPUTS
Especificacin
de
requerimientos
relacionados al
ambiente de
implementacin
Modelo de
anlisis y
diagramas de
clase
Descripciones
de los casos de
uso
Diagramas de
secuencia (un
diagrama por
caso de uso)
Diagramas de
estado (un
diagrama por
clase)
Modelo de
diseo
completo
(diagramas de
clase)
249
PROCESOS
Identificar el ambiente de
implementacin
Modelar el diseo inicial del
diagrama de clases
Disear el control de flujo
Definir la clase interfaz
Modelar diagramas de estados
Finalizar el diseo del
diagrama de clases
DIAGRAMAS DE CLASE
EN EL ANLISIS
Modelo conceptual del sistema
DIAGRAMAS DE CLASE
EN EL DISEO
Construccin del sistema
250
El ambiente de
implementacin
Factores que intervienen
Sistema operativo
Lenguaje de programacin
Sistema de administracin de la
interfaz de usuario
Administrados de bases de datos
ANLISIS
DISEO
AMBIENTE DE
IMPLEMENTACIN
Bibliotecas reutilizables
Procesos de desarrollo
251
<<entidad>>
Director
<<entidad>>
Empleado de
tiempo parcial
<<entidad>>
Empleado de
tiempo parcial
<<entidad>>
Secretaria
<<entidad>>
Secretaria
<<entidad>>
Secretaria de
tiempo parcial
<<entidad>> 1..1
Secretaria de
tiempo parcial 252
1..1
tiempo parcial
<<entidad>>
Empleado de
tiempo completo
<<entidad>>
Empleado
?
?
?
Traduccin del modelo de
anlisis al modelo de diseo
Diagramas de secuencia
De todas la tcnicas de modelado de UML,
esta es probablemente la ms compleja
Son tiles para decidir y modelar cmo el
sistema llevar a cabo lo que se describi
en el modelo de casos de uso
Ayudan a asignar responsabilidades a las
clases y objetos
Ayudan para que se pueda comprender en
un programa OO el flujo de control
(secuencia) general de los objetos
254
255
256
Diagrama de secuencias en
UML: La notacin
Muestra interacciones entre un
conjunto de objetos en forma
temporal
crear
B
f( )
C
crear
g( )
tiempo
Convenciones de notacin:
h( )
destruir
257
Clase 1:
objeto
Tarea
principal
Clase 2:
objeto
Clase 3:
objeto
Clase 4:
objeto
Hacer
esto
Hacer
esto
Hacer
esto
258
Ejemplo de la forma
tenedor
Descripcin
:Cliente
Direccin:
Direccin de cliente
Obtener direccin
Obtener direccin
259
Clase 1:
objeto
Tarea
principal
Clase 2:
objeto
Clase 3:
objeto
Clase 4:
objeto
Hacer
esto
Hacer
esto
Hacer
esto
260
Ejemplo de la forma
escalera
Descripcin
:Cliente
Direccin:
Direccin del cliente
Obtener nmero
telefnico
Obtener telfono
261
:Adaptador
DgitoBotn
BotnPresionado( )
Marcador
Display:
DisplayMarcador
:Altavoz
Dgito( )
DespliegueDgito(cdigo )
EmitirTono( cdigo)
262
:Mandar
AdaptadorBotn
:Marcador
:Celular
Diplay:
DisplayCelular
BotnPresionado( )
Send( )
Conectar( )
EnUso( )
263
:Celular
Conectar( )
Crear( )
:Conexin
Conectar( )
ConexinEstablecida( )
Fin( )
Desconectar( )
Desconectar( )
Destruir( )
264
Solicitar monto
y nmero cuenta
:despachador
:retirador
:cuenta
Verificar NIP ( )
retirar ( )
Dar dinero
Proporcionar
saldo ( )
Dar dinero
265
EL MODELO DE DISEO
(DIAGRAMAS DE
ESTADO)
Jorge Kashiwamoto
266
Panormica general
Definir el concepto de Evento,
Actividad y Estado
El modelo de diseo I
Modelo de
requerimientos
Modelo de
anlisis
Diagrama de clases
(+ paquetes)
Casos de uso
(+ descripciones)
Secuencia de las
operaciones
Diagrama de secuencia
Estados de las
Diagrama de estado operaciones
DIAGRAMA Definicin de la interfaz 2 Definicin
de la
DE CLASES
interfaz268
1
Asociaciones
Atributos
Modelo de Clases
diseo
Clases
Casos de uso
Representacin del
Comportamiento
Modelado del aspecto Dinmico
Interaccin
Comportamiento de una sociedad de objetos
Mquina de Estados
Comportamiento de un objeto
269
Mquina de Estados
Secuencia de estados del tiempo de vida de
un objeto, suscitados por Eventos
Seales
Operaciones
Ocurrencia de un
Evento
Dependiendo del
Estado Actual
del Objeto
Ejecucin de
una Actividad
270
Evento
Especificacin de una ocurrencia
significativa que tiene una ubicacin en el
tiempo y el espacio
Ocurrencia de un estmulo que dispara la
transicin de un estado
271
Actividad
Ejecucin no-atmica dentro de una
maquina de estados
Produce
Cambio de Estado
Regresa un valor
Dependiendo del
Estado Actual
del Objeto
Ocurrencia de
un Evento
Ejecucin de
una Actividad
Cambio de Estado
del Objeto
272
Estado
Condicin o situacin de un objeto durante
su tiempo de vida, en la cual
Satisface una condicin
Realiza alguna actividad
Transicin
Relacin de cambio entre 2 estados
Adeudo
Pagar
Pagado
Transicin
274
275
Caractersticas de una
Mquina de Estados
Una mquina de estados bien estructurada
es:
Eficiente
Simple
Adaptable
Entendible
276
Representacin de un Estado
ESTADOS
ESTADO
FINAL
NOMBRE
envo
Solicitado
Entregado
devolucin
ESTADO INICIAL
277
Partes de un Estado
Nombre
Acciones de Entrada/Salida
Transiciones internas
Subestados
Eventos Diferidos
Actividad
Solicitado
entry/ ponBitcora(PrdCve,SolEnt)
exit/ponBitcora(PrdCve,SolOut)
nuevoDestinatario / Producto.CambiaDest()
do / EsperaMensajera
descuentaInv / defer
278
Condicin de transicin
Guard Condition
Accin
Estado Destino
279
TRANSICIN SIN
DISPARADOR
Solicitado
EnInventario pedido
ConProveedor
Autoriza(PrdCve)
[cobroValido]
Pagado
Entregado
envo
/ m.AgregaEnvo
ACCIN
GUARD CONDITION
DISPARADOR DE EVENTO CON PARAMETROS
280
Subestados secuenciales
TRANSICION DE/A
ESTADO COMPUESTO
ESTADO COMPUESTO
SUBESTADO SECUENCIAL
Activo
insertarTarjeta
Validando
Desocupado
[continuar]
cancelar
mantener
Seleccionando
Procesando
[no continuar]
Mantenimiento
TRANSICION DE
SUBESTADO
entry/leerTarjeta
exit /expulsarTarjeta
Imprimiendo
281
Subestados histricos
ESTADO INICIAL PARA
LA PRIMERA ENTRADA
Respaldando
Comando
consulta
Acumulado
Copiado
ESTADO HISTRICO
SHALLOW
Borrado
282
Subestados concurrentes
SUBESTADOS
CONCURRENTES
Desocupado
JOIN
ESTADO
COMPUESTO
mantener
FORK
Mantenimiento
Probando
Probando
Dispositivos
Ordenando
Auto
Diagnsticos
[continuar]
Esperando
Comando
keyPress
[no continuar]
283
EL MODELO DE DISEO
(DIAGRAMAS DE
COLABORACIN)
Jorge Kashiwamoto
284
Panormica general
Comprender la utilizacin de los
diagramas de colaboracin:
Fundamentos
Relacin con Diagramas de Secuencia
Elementos
Flujos de Control
Usos
Diagrama de colaboracin
Tipo de diagrama de interaccin
Elementos de un diagrama de
colaboracin
Objetos
Ligas
Mensajes
287
Elementos
objeto
c:Cliente
liga o
enlace
<<local>>
1: <<crea>>
2: ponAcciones(a,d,o) estereotipo
3: <<destruye>>
de ruta
mensaje
:Transaccin
{transient}
objeto
<<global>>
p:ODBCProxy
2.1: ponValores(d,3.4)
2.2: ponValores(a,CO)
secuencia
288
289
290
Flujos
Flujo Secuencial de Control
Flujos Complejos
Iteracin
Precediendo con
*
*[ i := 1..n]
Salto
[condicin_booleana]
Ramas con la misma numeracin
Equivalencia semntica
Los diagramas de colaboracin y de
secuencia tienen equivalencia semntica.
Aunque no necesariamente explcitamente
visualicen la misma informacin.
292
293
Pasos
1. Establecer el contexto
(sistema, subsistema, operacin, clase,
escenario de caso de uso, colaboracin)
294
Pasos
3. Establecer los valores iniciales de cada uno de
estos objetos
(valores, estados, roles, instanciacin mltiple become,
copy -)
Pasos
5. Iniciar el trazo de mensajes
5.1 Comenzar con el mensaje que inicia la interaccin
5.2 Aadir mensajes subsecuentes
5.3 Aplicar la secuencia de numeracin
Otros consejos
Usualmente los diagramas de secuencia
muestran un flujo de control
Tpicamente, se tienen varios diagramas de
interaccin
Primarios
Rutas alternativas
297
2: agregarEstudiante(s)
r:RegistrarAgente
1: <<crear>>
3: registrar()
3.1: obtenItinerario()
<<local>>
{self}
s:Estudiante
registrado = False
3.2: agrega(s)
c1:Curso
:Escuela
s:Estudiante
registrado = False
3.4: <<become>>
3.3: agrega(s)
c2:Curso
{association}
{association}
298
Diagramas de Interaccin
Bien Estructurados
Se enfoca en un aspecto de la dinmica del sistema
Contiene solamente aquellos elementos que son
esenciales para entender un aspecto del sistema
Provee detalles consistentes con su nivel de
abstraccn y aquellos adornments esenciales
No es demasiado general ni exageradamente
detallado
299
EL MODELO DE DISEO
(DIAGRAMAS DE
ACTIVIDAD)
Jorge Kashiwamoto
300
Panormica general
Comprender la utilizacin de los
diagramas de Actividad:
Fundamentos
Relacin con Diagramas de Secuencia
Elementos
Flujos de Control
Usos
Diagrama de actividad
Muestra el Flujo de Actividad a Actividad
Actividad
Ejecucin no atmica dentro de una
mquina de estados.
Las actividades resultan en una Accin
(clculos atmicos ejecutables):
Cambio de Estado
Regreso de un Valor
304
Acciones
Agrupan a
La llamada a otra operacin
Enviar una seal
Crear o destruir objetos
Clculos puros
V.g.: Evaluar una expresin
305
Ejemplo
estado inicial
Seleccionar Lugar
Comisionar Arquitecto
Desarrollar un Plan
estado de accin
estado de
actividad con
submquina
Autorizar Plan
salto secuencial
[no aceptado]
fork concurrente
[else]
Elaborar Construccin
Hacer Negociaciones()
join concurrente
Finalizar Construccin
estado final
:Escrituras
[Completo]
flujo de objeto
306
Estados Accin
Representan una accin
307
Estados Accin
expresin
Autorizar Plan
accin sencilla
i := Sqrt(j) + 1
308
Estados Actividad
Pueden descomponerse
Su actividad est respresentada por otros
diagramas de actividad
No son atmicos, pueden interrumpirse
Se considera que toma algn tiempo en
ejecutarse
Un Estado Accin es un subcaso del Estado
Actividad
309
Estados Actividad
Estado Actividad =
+ Estados Accin
+ Estados Actividad
Partes
Accin de Entrada
Accin de Salida
Especificaciones de Submquina
310
Estados Actividad
Hacer construccin
entry/Bloquea()
Procesar Factura(f)
Accin de Entrada
Submquina
311
Transiciones
Es el paso de un estado accin o actividad a
otro, una vez que ste se ha completado.
Se representan con lneas con puntas de
flecha dirigidas
Saltos
Especificacin de rutas alternativas basadas
en expresiones Booleanas.
Se representa con un rombo a partir del
cual, se tienen ms de una transicin
alternativa especificadas con Guard
Conditions entre corchetes.
Se usa la palabra reservada else
Pueden modelarse iteraciones.
313
Fork / Join
Modelar actividades concurrentes
Pueden anidarse
Se representan con lneas horizontales a
partir de las cuales salen las transiciones
iniciales o llegan las finales de los estados
concurrentes.
314
Swimlanes
Grupos o particiones de estados de
actividad segn la organizacin de negocio
responsable.
Modelar flujos de trabajo de Procesos de
Negocio.
Flujos de Objeto
Modela los objetos (particulamente con
estado) que pasan de un estado a otro.
Se representa como se hace
convencionalmente en UML y se une con
lneas rayadas dirigidas entre los estados.
316
Aplicacin Metodolgica
para Flujos de Trabajo
1. Establecer el foco del flujo de trabajo
2. Seleccionar los objetos de negocio de alta
nivel de responsabilidad
3. Identificar las precondiciones para el
estado inicial y las postcondiciones para el
estado final
4. Se trazan los elementos
317
Flujos de Trabajo
5. Para acciones o conjunto de acciones
complicadas, se colapsan en estados
Actividad.
6. Trazar las transiciones, comenzar con las
secuenciales, saltos y concurrentes en este
orden.
7. Se grafican los objetos importantes con
sus valores o estados.
318
Ejemplo
Cliente
Ventas
Contabilidad
Almacn
Solicita
Devolucin
Dar
Folio
Enviar
Artculo
Recibir
Artculo
i:Artculo
[Regresado]
Resurtir
Artculo
Registrar
i:Artculo
[Disponible]
319
EL MODELO DE
IMPLANTACIN
(DIAGRAMAS DE
COMPONENTES)
Jorge Kashiwamoto
321
Panormica general
Comprender la utilizacin de los
diagramas de componentes:
Fundamentos
Relacin con Clases
Relacin con Interfaces
Reemplazo Binario
Tipos
Ejemplos
322
Diagrama de Componentes
Modelado de Aspectos Fsicos del Sistema
Diagrama de Componentes
Involucra el modelado de cosas fsicas que
residen en un NODO
Ejecutables
Bibliotecas
Tablas
Archivos
Documentos
324
Diagrama de Componentes
Definicin
Visualiza
Un conjunto de componentes y
Sus relaciones
Grficamente es un conjunto de
Vrtices
Arcos
325
Componente
Parte fsica y reemplazable de un sistema
que conforma la realizacin de un conjunto
de interfaces
kernel32.dll
326
Nombre de un componente
Interfaz (Servicios)
FraudAgent.dll
agent.java
Realizes
FraudAgent
FraudPolicy
FraudSearch
system::dialog.dll
{versin=2.1.75}
Componentes y Clases
Semejanzas
Nombre
Realizan un conjunto de interfaces
Participan en relaciones de
Dependencia
Generalizacin y
Asociacin
Anidarse
Tienen instancias
Participan en interacciones
328
Componentes y Clases
Representacin fsica
Representacin lgica
Empaquetamiento
fsico
Nivel de abstraccin
Operaciones a travs
de interfaces
Acceso a atributos y
operaciones
329
Componentes y Clases
Diferencias
Residen en un nodo
Otro Caso
Implementacin fsica
de un conjunto de
elementos lgicos
(clases y
colaboraciones)
Diseo lgico
contenible en otros
elementos
Servicios configurables
Servicios disponibles
solo por interfaces
330
FraudAgent.dll
COMPONENTES
PatternSearch
FraudAgent
FraudPolicy
CLASES
331
Componentes e Interfaces
Interfaz
Coleccin de Operaciones que utilizada para
especificar un servicio de una clase o
componente.
Son el pegamento entre los diferentes
componentes (se requiere infraestructura
basada en componentes del sistema operativo)
COM+
CORBA
Enterprise Java Beans
332
Componentes e Interfaces
Descomposicin de la Implementacin Fsica
333
FORMA ICNICA
image.java
component.java
ImageObserver
FORMA EXPANDIDA
image.java
<<interface>>
ImageObserver
abort: int {final static}
error: int {final static}
component.java
imageUpdate():Boolean
334
Reemplazo binario
Partes reemplazables binarias en el Sistema
Operativo
No implican reconstruccin o recompilacin
inmediata
335
Reemplazo binario
Un componente es
Fsico
Reemplazable
Sustituible
Mismas Interfaces
Tipos de Componentes
De Implantacin
Necesarios y suficientes para generar sistemas ejecutables
.EXE
.DLL o equivalente
Tablas, Pginas Web dinmicas, modelos de objetos, otros
ejecutables, etc.
Productos de Trabajo
Fuentes
Archivos de Datos
De Ejecucin
Aquellos que slo existen en el ambiente de ejecucin
Objeto COM+ instanciado
337
Elementos Estndares
Ejecutable (Executable)
Biblioteca (Library)
Esttica o Dinmica
Tabla (Table)
Archivo (File)
Documento (Document)
338
Modelado de Ejecutables y
Bibliotecas
animator.exe
dlog.dll
{versin=5.0.1}
render.dll
wrfrme.dll
raytrce.dll
339
animator.exe
{versin=5.0.1}
animator.ini
render.dll
wrfrme.dll
raytrce.dll
shapes.tbl
340
Modelado de APIs
animator.exe
{versin=5.0.1}
IScripts
IRendering
IApplication
IModels
341
render.cpp
{versin=5.3.7}
rengine.h
{versin=4.6}
poly.h
{versin=4.1}
colortab.h
{versin=4.1}
342
EL MODELO DE
IMPLANTACIN
(DIAGRAMAS DE
IMPLANTACIN
o
DEPLOYMENT)
Jorge Kashiwamoto
343
Panormica general
Comprender la utilizacin de los
diagramas de Deployment:
Fundamentos
Nodos
Relacin con componentes
Paquetes
Conexiones
Atributos
Usos
344
Diagramas de Deployment
Modelado de los Aspectos Fsicos del
Sistema
Junto con el de componentes son los 2
diagramas en este nivel
Diagramas de Deployment
Modela una vista de implantacin esttica
346
Diagramas de Deployment
Visualiza el aspecto esttico de los nodos fsicos y
sus relaciones; as como los detalles de su
Modem bank
construccin
Internet
Nodos
<<processor>>
caching server
<<processor>>
caching server
Nodos
Conexin
<<network>> local network
<<processor>>
primary server
<<processor>>
server
<<processor>>
server
<<processor>>
server
347
Elementos de un
Diagrama de Deployment
Nodos
Relaciones de
Dependencia
Asociacin
348
Nodo
Elemento fsico que existe en tiempo de
ejecucin y representa un recurso
computacional
mi_server
Nombre
349
Nombres de Nodo
Nombres extendidos
ventas
Nombres simples
Deploys
pos.exe
contacts.exe
mi_server
Package
server::backup
{remoteAdministrationOnly}
350
Semejanzas entre
Nodos y Componentes
Nombres
Relaciones
Dependencia
Generalizacin
Asociacin
Anidarse
Tener instancias
Participar en interacciones
351
Diferencias entre
Nodos y Componentes
Ejecutan componentes
Representan la
implantacin fsica de
componentes
Participan en la
ejecucin de un
sistema
Representan el
empaquetamiento
fsico de otros
elementos lgicos
352
pos.exe
contacts.exe
353
Nodos y Paquetes
Los nodos pueden ser agrupados en
paquetes
Servidores
server_1
server_backup
354
Conexiones
Asociaciones entre nodos
cajero
Conexin
<<10-T Ethernet>>
server
consola
RAID Array
<<RS-232>>
355
tributos y adornments
:cajero
Deploys
user.exe
<<10-T Ethernet>>
s : server
processorSpeed = 300 MHz
memory = 128 Mb
c: consola
Deploys
admin.exe
config.exe
:RAID Array
Deploys
dbadmin.exe
tktmstr.exe
<<RS-232>>
356
Usos comunes
Modelado de
Sistemas Embebidos
Sistemas Cliente / Servidor
Sistemas Distribuidos
357
INTRODUCCIN AL
PROCESO UNIFICADO
DE DESARROLLO DE
SOFTWARE
Jorge Kashiwamoto
358
Panormica general
Conocer la existencia de una
propuesta de proceso unificado de
desarrollo
Conocer la arquitectura del proceso
de desarrollo
Apreciar la importancia, ventajas y
desventajas de este tipo de proceso
de desarrollo
359
Metodologa
LENGUAJE
V.g.: UML
PROCESO
V.g.: Rational Unified Process
HERRAMIENTA
V.g.: Rose
360
PROCESO
Elementos de Proyecto
Fases
Etapas
Mtodos
Tcnicas y
Prcticas
RUP
Rational Unified Process
Proceso unificado de desarrollo de software
Caractersticas
Proceso de Desarrollo de Software
Dirigido por Casos de Uso
Centrado en la Arquitectura
Iterativo e Incremental
362
Iterativo e Incremental
Inception
Elaboration
Transition
Construction
363
364
RUP
365
Trabajadores (Workers)
Personas que participan en el proceso
Worker
366
Trabajadores (2)
1. Analista de Sistemas
2. Especificador de Casos de Uso
3. Arquitecto
4. Ingeniero de Casos de Uso
5. Ingeniero de Componentes
6. Integrador de Sistemas
7. Diseador de Pruebas
8. Ingeniero de Pruebas de Integracin
9. Ingeniero de Pruebas del Sistema
367
Analista de Sistemas
Responsable del conjunto de requisitos
modelados en los casos de uso
Requisitos funcionales y no funcionales
Delimitar el sistema
Analista de
Sistemas
Flujos de Trabajo
Requerimientos
368
Especificador de Casos de
Uso
Responsable de la descripcin detallada
de un caso de uso
Establecer una comunicacin estrecha
y eficaz con los usuarios (directos)
Especificador
de C.U.
Flujos de Trabajo
Requerimientos
369
Diseador de Interfaces
Disear las interfaces de usuario
Aspecto visual
Diseador de
Interfaces
Flujos de Trabajo
Requerimientos
370
Arquitecto
Requerimientos
Describir la arquitectura y prioridades del
modelo de casos de uso
Anlisis
Garantizar la integridad del modelo de anlisis
Arquitecto
371
Diseo
Ingeniero
de C.U.
Flujos de Trabajo
Anlisis
Diseo
372
Ingeniero de Componentes
Anlisis
Definir y mantener las responsabilidades,
atributos, relaciones y requisitos especiales de
una o varias clases del anlisis
Diseo
Ingeniero de
Componentes
373
Integrador de Sistemas
Planificar la secuencia de
construcciones necesarias en cada
iteracin
Integrador de
Sistemas
Flujos de Trabajo
Implantacin
374
Diseador de Pruebas
Garantizar la integridad del modelo de
pruebas
Planear las pruebas
Diseador
de Pruebas
Flujos de Trabajo
Pruebas
375
Ingeniero de Pruebas de
Integracin
Ejecutar las pruebas de integracin
Verificar el correcto funcionamiento de
componentes
Ing. de Pruebas Documentar los defectos
de Integracin
Flujos de Trabajo
Pruebas
376
Ventajas de un Proceso
Process Know-How Toma de Decisiones
Estadarizacin
Calidad y Mejores prcticas
Mantenimiento
Control de Complejidad
Control de Proyecto
Reduccin de Costos
378
Ventajas de RUP
Aplicacin de Principios de Ingeniera
Desarrollo
Iteratividad
Orientado a Requerimientos
Basado en Arquitectura
Retroalimentacin
Prototipado
Definicin de Producto
379
Desventajas de RUP
Solamente es un Proceso
No tiene Soporte Multiproyecto
Influencia de los Fabricantes de Herramientas
Carencias en:
Mtrica
Reuso
Control de Personal
Control de Pruebas
380