Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema2 Modeloobjeto 1pp
Tema2 Modeloobjeto 1pp
Resumen
Resumen
Descriptores
Esquema
Situacin actual
Cul es la demanda actual de los
usuarios de ordenadores?
Mayor funcionalidad
Facilidad de manejo
reas de aplicacin
Hardware
Interfaces
de usuario
Sistemas
Operativos
Lenguajes
de prog.
OO
Inteligencia
Artificial
Bases de
Datos
Reingeniera
de Procesos
Mtodos y
CASE
Evolucin de la OO
Origen
Interfaz de
usuario
Madurez
20XX
Texto
GUI
Procedural
C, Cobol
Objetual
C++, Java
Lenguaje Simula
Tcnicas estructuradas
Difusin
1990 Hoy
Estndares
Extensin de los
productos
SGBD
Relacional
ObjetoRelacional
Objeto
Beneficios potenciales
Aumentar la productividad
Ventajas
Ocultacin de la informacin
Uso de interfaces
Aumento de la productividad
10
Desventajas
11
12
2. Modelo objeto
13
Orientado a
Orientado a
Orientado a
Orientado a
Orientado a
procedimientos: Algoritmos
objetos: Clases y objetos
lgica: Objetivos
reglas: Reglas si-entonces
restricciones: Relaciones invariantes
14
15
16
Elementos
Fundamentales
Abstraccin
Encapsulamiento
Modularidad
Jerarqua
Mensajes
Elementos
Secundarios
Tipos
Polimorfismo *
Concurrencia
Persistencia
[Booch, 1994]
17
Abstraccin (i)
18
Abstraccin (ii)
Abstraer es el acto de identificar y utilizar slo aquellas caractersticas
pertinentes al propsito actual
[Booch, 1994]
19
Abstraccin (iii)
20
Abstraccin (iv)
21
Abstraccin (v)
Nombre: Lo distingue de otros conceptos
Concepto
Reloj
Dispositivo que
mide el tiempo
22
Encapsulamiento (i)
23
Encapsulamiento (ii)
Encapsulamiento
Informacin y
operaciones
Interfaz Pblica
Qu
DATOS
+
SERVICIOS
Representacin Privada
Cmo
Principio de ocultacin
de la informacin [Parnas, 1972]
Universidad de Salamanca Departamento de Informtica y Automtica
24
Encapsulamiento (iii)
[Booch, 1994]
25
Encapsulamiento (iv)
Es un principio de estado que agrupa datos y procesos
permitiendo ocultar a los usuarios de un objeto los
aspectos de implementacin, ofrecindoles una interfaz
externa mediante la cual poder interaccionar
con el objeto
[Piattini et al., 2004]
Tcnica de modelado e implementacin que separa los
aspectos externos de un objeto de los internos, detalles
de implementacin de un objeto
[Rumbaugh et al., 1991]
26
Jerarqua (i)
[Booch, 1994]
La abstraccin es un concepto
sumamente til, pero
demasiado extenso, excepto
para los casos triviales
El encapsulamiento y la
modularidad son medios para
manejar las abstracciones
Con frecuencia, un conjunto
de abstracciones forma una
jerarqua
La identificacin de estas
jerarquas en el diseo
simplifica la comprensin del
problema
27
Jerarqua (ii)
La jerarqua es una clasificacin u ordenacin
de abstracciones [Booch, 1994]
Principales
Jerarquas
Simple
Mltiple
28
Jerarqua (iii)
Abstraccin + Clasificacin
Concepto
29
Jerarqua (iv)
Abstraccin de clasificacin
SGBD
Relacin
ES_MIEMBRO DE
Word
PowerPoint
Relacin
ES_MIEMBRO DE
. . .
Access
Oracle
. . .
Sybase
30
Jerarqua (v)
Abstraccin de generalizacin
Vehculo
Relacin
ES_UN
Ciclomotor Turismo
...
Camin
31
Jerarqua (vi)
Abstraccin de agregacin
Relacin
ES_PARTE_DE
Ruedas
Automvil
Motor
...
Volante
32
Ejemplo (i)
Fenmenos?
Conceptos?
Abstracciones?
FENMENOS?
CONCEPTOS?
33
Ejemplo (ii)
ABSTRACIONES?
Relacin
ES_PARTE_DE
Asignatura
Relacin
ES_UN
Troncal
Obligatoria
Crditos Tericos
Crditos Prcticos
Optativa
Relacin
ES_MIEMBRO DE
Ing. Sw
POO
34
Mensajes (i)
35
Mensajes (ii)
36
Polimorfismo (i)
37
Polimorfismo (ii)
Universal
Paramtrico
Inclusin
Ad-hoc
Sobrecarga
Coercin
38
Polimorfismo (iii)
39
Polimorfismo (iv)
Ejemplo
Enviar a una forma un mensaje para
que se dibuje, dar como resultado una
forma diferente para cada tipo de
objeto, debido a que el mtodo Draw()
de cada forma es diferente
40
Polimorfismo (v)
41
Modularidad (i)
42
Modularidad (ii)
Las clases y los objetos
forman la estructura
lgica del sistema
Arquitectura fsica
del sistema
Estas abstracciones
se sitan en mdulos
43
Modularidad (iii)
La modularizacin consiste en dividir un programa en mdulos
que pueden compilarse de forma separada, pero que tienen
conexiones con otros mdulos. Utilizaremos la definicin
de Parnas: Las conexiones entre mdulos son las suposiciones
que cada mdulo hace acerca de todos los dems
[Liskov, 1988]
La modularidad es la propiedad que tiene un sistema que ha
sido descompuesto en un conjunto de mdulos cohesivos
y dbilmente acoplados
[Booch, 1994]
44
3. Qu es UML?
45
Qu es UML?
Lenguaje para especificar, construir, visualizar y
documentar ingenios software, cuyo alcance
pretende cubrir los conceptos de Booch, OMT y OOSE
resultando un lenguaje simple, comn y ampliamente
utilizable por usuarios de otros mtodos
UML define varios modelos para la representacin de los sistemas que pueden
verse y manipularse mediante un conjunto de diagramas diferentes
UML tiene un amplio espectro de utilizacin
46
Qu es un modelo?
47
Lenguaje de
Modelado = Notacin + Reglas
Semnticas
Pragmticas
48
Datos?
edad
raza
color
Soy
orientado a
objetos!
Procesos?
ladrar
comer
dormir
49
50
Caminos al estndar
UML
OMG
Grady Booch
Ivar Jacobson
James Rumbaugh
Microsoft
Oracle
...
Estandarizacin
Prestigio
Reconocimiento
Universidad de Salamanca Departamento de Informtica y Automtica
51
4. Historia de UML
52
Objetivos iniciales
Unificacin de mtodos OO
53
54
Marzo de 2003
Septiembre de 2001
Documentos pblicos
Junio de 1999
Modificaciones editoriales
Julio de 1998
Aceptacin de UML 1.1 como
estndar por OMG
17 de Noviembre 1997
Publicacin de UML 1.1
Septiembre 1997
Publicacin de UML 1.0
Enero 1997
Junio 96 y Octubre 1996
OOPSLA95
Abril de 2005
1.4
OMG UML v1.4.2
UML 2.1
Estandarizacin
UML 1.1
UML 1.0
Unificacin
Booch94
ISO/IEC 19501
Colaboradores y
expertos
OMT-2
Fragmentacin
Otros mtodos Booch91
OMT-1
OOSE
55
56
En continua revisin
57
58
59
UML
UML
UML
UML
Summary
Semantics
Notation Guide
Example Profiles
UMLModel Interchange
Object Constraint Language
[OMG, 2003]
60
Proporciona un vocabulario
Proporciona las reglas para combinar las palabras de ese vocabulario
con el objetivo de posibilitar la comunicacin
El vocabulario y las reglas de UML se centran en la representacin
conceptual y fsica de un sistema
61
[Adrian, 2006]
Universidad de Salamanca Departamento de Informtica y Automtica
[OMG, 2007]
62
UML Superestructura
63
UML Infraestructura
64
Mecanismos comunes
Especificaciones
Adornos
Divisores comunes
Mecanismos de extensibilidad
65
Modelado de objetos
Modelado de objetos
Modelado dinmico
Modelado funcional
66
Modelos de representacin
Modelo de
Modelo de
Modelo de
Modelo de
Modelo de
Modelo de
clases
estados
casos de uso
interaccin
realizacin
despliegue
Estructural
Dinmica
De gestin de modelos
67
Diagramas (i)
68
Diagramas (ii)
Los diagramas expresan grficamente partes de un modelo
Use Case
Use Case
Diagrams
Diagramas
Diagrams de
Secuencia
Scenario
Scenario
Diagrams
Diagramas
Diagrams de
Comunicacin
Scenario
Scenario
Diagrams
Diagramas
Diagrams de
Estados
Use Case
Use Case
Diagrams
Diagramas
Diagrams de
Casos de Uso
State
State
Diagrams
Diagramas
Diagrams de
Clases
State
State
Diagrams
Diagramas
Diagrams de
Componentes
Modelo
Component
Component
Diagrams
Diagramas
Diagrams
Diagramas de
Actividad
State
State
Diagrams
Diagramas
Diagrams de
Objetos
de
Distribucin
69
Diagramas (iii)
Diagrama
Descripcin
Prior.
Diagrama de Clases
Alta
Diagrama de
Actividades
Alta
Diagrama de
Secuencias
Alta
Diagrama de
Componentes
Media
Media
70
Diagramas (iv)
Diagrama
Descripcin
Prior.
Diagrama de
Mquinas de Estado
Media
Diagrama de Casos
de Uso
Media
Diagrama de
Objetos
Baja
Diagrama de
Paquetes
Baja
Diagrama de
Revisin de la
Interaccin
Baja
71
Diagramas (v)
Diagrama
Descripcin
Prior.
Diagrama de
Comunicaciones
(anteriormente:
Diagrama de
colaboraciones)
Baja
Diagrama de
Estructura de
Composicin
Baja
Diagrama de Tiempos
Baja
72
Elementos de modelado
Elementos de visualizacin
Un nivel dado puede contener una mezcla de paquetes y otros elementos de modelado
73
Objeto
Atributos
Atributos
Mtodos
Mtodos
Estado
Caso de
Uso
Nodo
Interfaz
Interfaz requerida
Actor
Paquete
Componente
Nota
Dependencia
Generalizacin
Asociacin
Agregacin
Composicin
74
75
76
77
Mecanismos generales
Estereotipos
Etiquetas
Adornos
Notas
Restricciones
La especificacin de los elementos pueden incluir detalles grficos o textuales adicionales. Ej. + o #
Dicotomas
78
Clasificacin estructural
Comportamiento dinmico
Describe las cosas que hay en el sistema y sus relaciones con otras cosas
79
Dinmica
Gestin de
modelo
Vista
Diagramas
Conceptos Principales
Vista esttica
Diagrama de clases
Clase, asociacin,
generalizacin,
dependencia, realizacin,
interfaz
Diagrama de casos de
uso
Vista de
implementacin
Diagrama de
componentes
Componente, interfaz,
dependencia, realizacin
Vista de despliegue
Diagrama de
despliegue
Nodo, componente,
dependencia, localizacin
Vista de mquina de
estados
Diagrama de estados
Vista de actividad
Diagrama de
actividad
Estado, actividad,
transicin de terminacin,
divisin, unin
Vista de interaccin
Diagrama de
secuencia
Interaccin, objeto,
mensaje, activacin
Diagrama de
comunicacin
Colaboracin, interaccin,
rol de colaboracin,
mensaje
Diagrama de clases
Paquete, subsistema,
modelo
80
Correspondencias
Funciones
Sistema
D. Casos de Uso
D. de comunicacin
Comportamiento
Comunicacin
Descomposicin
Conceptual
Funciones
Comportamiento
Componente
D. de Secuencia
D. de Clases
D. de objetos
D. de Estados
Comunicacin
D. de actividad
Universidad de Salamanca Departamento de Informtica y Automtica
81
6. Vista esttica
82
Introduccin
83
Clasificacin
El mundo real puede ser visto desde abstracciones diferentes
(subjetividad)
Mecanismos de abstraccin
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
84
Concepto de clasificador
Un clasificador es un concepto
discreto en el modelo, que tiene
identidad, estado, comportamiento
y relaciones [Rumbaugh et al.,
1999]
CLASIFICADOR
FUNCIN
NOTACIN
Actor
Clase
Nombre
Clase-en-estado
Nombre[s]
Rol-clasificador
Componente
Tipo de dato
Interfaz
Nodo
Un recurso informtico
Seal
Subsistema
Caso de uso
Rol:Nombre
Nombre
Inombre
Seal
Subsistema
85
Objeto (i)
Concepto intuitivo
Es la unidad de descomposicin fundamental de un
sistema en el paradigma de la orientacin al objeto
86
Objeto (ii)
[Booch, 1994]
87
Objeto (iii)
Estado
Comportamiento
88
Objeto (iv)
Identidad
Es aquella propiedad de un objeto que lo distingue de
todos los dems [Booch, 1994]
No es conveniente que los nombres de las entidades las identifiquen ya que
- Una entidad puede no tener un nombre nico y,
sin embargo, ser identificable
- Una entidad puede tener ms de un nombre nico
- Una entidad puede cambiar de nombre a lo largo del
tiempo
89
Objeto (v)
90
Objeto (vi)
Atributos
Comportamiento
Estado
Identidad
Responsabilidad
Balance
Tipo de inters deudor
Inters acreedor
Haber
Debe
Informe
Abrir
Cerrar
Saldo actual
Cuenta del Departamento de Informtica y Automtica
Almacena dinero del Departamento y le proporciona
acceso al mismo mediante cheques
Proporciona un inters sobre el saldo siempre que ste
se mantenga por encima de una cantidad
91
Objeto (vii)
Y en resumen ...
Atributos
Atributos
calc_sueldo_neto
calcular_edad
fecha_nac
complementos
irpf
s_social
sueldo_base
nombre
calc_base_imponible
Servicios
Servicios
92
Clase (i)
Sirve como molde para crear instancias o, lo que es lo mismo, objetos reales
descritos por la clase
El proceso de creacin de objetos se conoce como instanciacin
93
Clase (ii)
94
Clase (iii)
La fbrica de objetos
95
Clase (iv)
96
Clase (v)
Nombre de la clase
color
cilindrada
velocidadMaxima
Atributos de la clase
arrancar
acelerar
frenar
Mtodos de la clase
97
Clase (vi)
Para hacer referencia a una clase que est presente en otro paquete se
utilizar la sintaxis
Nombre del Paquete::Nombre de la Clase
La visibilidad especifica cmo puede ser utilizada por otras clases externas al
contenedor
Una clase tiene una multiplicidad que especifica cuantas instancias de ella
pueden existir
98
Clase (vii)
Ejemplos de definicin de clases
Ventana
{abstract,
autor=Jose
estado=comprobada}
Ventana
Ventana
tamao: rea
visibilidad: Lgico
display ()
hide ()
Rectangulo
P1: Punto
P2: Punto
<<constructor>>
Rectangulo (p1:Punto, p2:Punto)
<<consulta>>
rea ():Real
aspecto (): Real
...
<<actualizacin>>
mueve (delta: Punto)
escala (ratio: Real)
...
<<controlador>>
PenTracker
{abstract}
MiVentana
:Ventana
[OMG, 2003]
99
Clase (viii)
ArtculoRemitido
ArtculoRemitido
1..*
ArtculoRemitido
[aceptado]
ArtculoRemitido
[rechazado]
0..1
1..*
SesinConferencias
1
SesinConferencias
1
ColaImpresora
*
Impresora
100
Clase abstracta
Clase abstracta
Operacin concreta
Operacin abstracta
Clases concretas
Operacin concreta sobreescrita
101
102
1..k
T
<<enlace>> <Direccin,24>
FVector <Punto,3>
Enlazado implcito
La clase tiene nombre annimo
Lista de Direcciones
Enlazado explcito
La clase tiene su propio nombre
103
int main() {
Pila< int > intPila(10);
int i=100;
ejemplo.cpp
while( doublePila.poner(x+=.75) );
cout << "Pila llena. Hay " << doublePila.elementos()
<< " numeros en la pila" << endl;
while( doublePila.quitar(x) )
cout << x << endl;
}
Llenando la
Pila llena.
109
108
107
106
105
104
103
102
101
100
Llenando la
Pila llena.
104.25
103.5
102.75
102
101.25
pila de enteros...
Hay 10 numeros en la pila
pila de dobles...
Hay 5 numeros en la pila
104
Atributo (i)
El tipo de un atributo puede ser simple o complejo
Cada objeto de la clase tiene un valor independiente para el
atributo (excepto para los atributos con alcance de clase)
Un clasificador forma un espacio de nombres para sus
atributos
Los atributos de una clase no deberan ser manipulables
directamente por el resto de objetos
La encapsulacin presenta dos ventajas bsicas
105
Atributo (ii)
Los niveles de encapsulacin estn heredados de los niveles
de C++
(-) Privado
Es el ms fuerte
Esta parte es totalmente invisible (excepto para clases friends en
terminologa C++)
(#) Protegido
(+) Pblico
106
Atributo (iii)
Visibilidad
Nombre
El valor inicial
Multiplicidad
Posible nmero de valores del atributo que pueden existir
simultneamente
Por defecto: exactamente 1
La expresin de tipo
La cadena de propiedades
107
Atributo (iv)
En una clase, el valor descrito por un atributo puede ser distinto en cada
objeto (alcance de instancia) o compartido por todos los objetos (alcance
de clase)
108
Atributo (v)
<<estereotipo>>visibilidad nombre [multiplicidad]:tipo=valor-inicial{cadena de propiedades}
+tamao:Area=(100,100)
#visibilidad:Boolean=invisible
+tamao-por-defecto:Rectngulo
idUnico:Long
-xptr:XWindowPtr{requisito=4.3}
colores[3]:Saturacin
puntos[2..*]:Punto
nombre[0..1]:String
+tamao:Area=(100000){frozen}
-salario:Dinero {>0,<1000000}
109
Operacin (i)
Especifica una transformacin del estado del objeto destino o bien una
consulta que proporciona un valor a quien invoque esa operacin
Especifica el algoritmo o procedimiento que da lugar a los resultados de
una operacin
110
Operacin (ii)
direccin
111
Operacin (iii)
= true o false
= true o false
112
Operacin (iv)
Ejemplos
mostrar()
+mostrar():Localizacin
+oculta()
set(n:Nombre, s:String)
obtenerID(): Integer
reiniciar() {guarded}
-attachXWindow(xwin:XWindow*)
+controlInstancias()
Slo el nombre
Visibilidad, nombre y tipo de retorno
Visibilidad, nombre y abstracta
Nombre y parmetros
Nombre y tipo de retorno
Nombre y propiedad
Visibilidad, nombre y atributos
Nombre y alcance de clase
113
Operacin (v)
114
Operacin (vi)
Modificador
Selector
Constructor
Iterador
Destructor
115
Interfaz (i)
116
Interfaz (ii)
Una interfaz es una coleccin de operaciones que se emplea para especificar un servicio de una clase o
de un componente
Una interfaz sirve para nombrar una coleccin de operaciones y para especificar sus signaturas y efectos.
Una interfaz se centra en los efectos, no en la estructura, de un servicio dado. Una interfaz no ofrece una
implementacin para ninguna de sus operaciones. La lista de operaciones puede incluir tambin las
seales que esa clase est dispuesta a manejar
Una interfaz se emplea para especificar un servicio que proporciona un proveedor y que pueden solicitar
otros elementos. La interfaz da nombre a una coleccin de operaciones que funcionan en cooperacin
para realizar algn comportamiento de inters lgico de un sistema o como parte de un sistema
Una interfaz define un servicio que ofrece una clase o un componente. Define un servicio que a su vez es
implementado por una clase o componente. Como tal, una interfaz abarca los lmites lgicos y fsicos de
un sistema. Una o ms clases (que formarn probablemente parte de un subsistema componente)
pueden proporcionar una implementacin lgica de la interfaz. Uno o ms componentes pueden
proporcionar un empaquetamiento fsico que se adapte a la misma interfaz
Si una clase realiza (implementa) una interfaz, entonces debe declarar o heredar todas las operaciones de
la interfaz. Si una clase realiza ms de una interfaz, tiene que contener todas y cada una de las
operaciones que se encuentren en cualquiera de sus interfaces. Una misma operacin puede aparecer en
ms de una interfaz. Si coinciden sus signaturas deben representar la misma operacin o bien estarn en
conflicto y el modelo estar mal formado. Una interfaz no hace afirmacin alguna acerca de los atributos
o asociaciones de una clase; stos formarn parte de su implementacin
Definicin extendida [Rumbaugh et al., 1999]
Universidad de Salamanca Departamento de Informtica y Automtica
117
Interfaz (iii)
El crculo puede estar conectado mediante una lnea continua con clases u otros elementos que
lo admitan
Adems, se puede conectar con contenedores de nivel superior, tales como los paquetes, que
contengan las clases. Esto indica que la clase proporciona todas las operaciones que admite la
interfaz
Una clase que utilice o requiera operaciones proporcionadas por la interfaz se puede
conectar al crculo mediante una flecha discontinua que apunte al crculo
En el comportamiento de operacin se pone una lista de las operaciones que admite la interfaz
La flecha discontinua implica que la clase requiere las operaciones especificadas en la interfaz
para algn propsito, pero no exige que la clase cliente haga uso de todas las operaciones de
la interfaz
La relacin de realizacin se muestra mediante una lnea discontinua con una cabeza de
flecha triangular slida, que va desde una clase a una interfaz que admita sta
Indica que el cliente (situado en la cola de la flecha) admite todas las operaciones definidas en
el proveedor (situado en la cabeza de la flecha), pero sin necesidad de admitir ninguna
estructura de datos del proveedor (atributos y asociaciones)
118
Interfaz (iv)
Una clase
Una interfaz
119
Interfaz (v)
interface IEjemplo {
int operacion1(int a, int b);
int operacion2(int a, int b);
}
class A1 implements IEjemplo {
public int operacion1(int a, int b) {
return a+b;
}
public int operacion2(int a, int b) {
return a-b;
}
}
class A2 implements IEjemplo {
public int operacion1(int a, int b) {
return a*b;
}
public int operacion2(int a, int b) {
return a/b;
}
}
class UsaInterfaces {
public static void main (String []s) {
A1 a1 = new A1();
A2 a2 = new A2();
IEjemplo interfaz;
interfaz = a1;
System.out.println(interfaz.operacion1(8, 4));
System.out.println(interfaz.operacion2(8, 4));
interfaz = a2;
System.out.println(interfaz.operacion1(8, 4));
System.out.println(interfaz.operacion2(8, 4));
12
4
32
2
}
}
120
Notacin Lollilpop
[Adrian, 2006b]
[Adrian, 2006b]
Relaciones (i)
123
Relaciones (ii)
Persona
Clase
Relacin
Pepe
Luis
Mara
Organizacin
USAL
ENUSA
Ayuntamiento
Asignatura
Enlace
Ing.Sw
Redes
POO
Objeto
Universidad de Salamanca Departamento de Informtica y Automtica
124
Relaciones (iii)
Los enlaces entre objetos pueden representarse entre las respectivas clases
Asociacin y Agregacin (vista como un caso particular de asociacin)
Generalizacin/Especializacin
Dependencia
Flujo
Generalizacin
Realizacin
Uso
125
Asociacin (i)
126
Asociacin (ii)
Persona
Profesor
Alumno
Ensea
Asignatura
Est matriculado
Trabaja en
Organizacin
Universidad de Salamanca Departamento de Informtica y Automtica
127
Indicador de navegacin
Multiplicidad
Uno: 1
Especificacin de multiplicidad [mnima...mxima]
Muchos: *
La multiplicidad mnima >= 1 establece una restriccin
multiplicidad
NombreCalificador:NombreClase
nombre
asociacin
ClaseB
agregacin/
composicin
ruta de
asociacin
nombre de
asociacin
indicador de
navegacin
calificador
Persona
129
Concierto
*
Orquesta
actor
*
*
msico
Intrprete
Suplente
Persona
Titular
0..1
Miembro_de
*
{subset}
0..1
Presidente
Suplencia
*
*
Comit
130
Persona
Cuenta
{xor}
Corporacin
Polgono
Contiene
3..*
Punto
{ordered}
Ejemplos de restricciones
131
Asociacin calificada
Tablero de Ajedrez
cuenta #
columna: Columna
fila:Fila
0..1
Persona
1
Cuadrado
132
Se utilizan cuando cada enlace debe tener sus propios valores para los
atributos, operaciones propias o sus propias referencias a objetos
Pueden tener operaciones que modifiquen los atributos del enlace o que
aadan o eliminen enlaces al propio enlace
Pueden participar en otras asociaciones
Cada instancia de una clase asociacin tiene referencias a objetos, as
como valores para los atributos especificados por la parte de la clase
Una clase asociacin C que conecta dos clases A y B no es lo mismo que
una clase D con asociacin binaria a cada una de las clases A y B
133
Compaa 1..*
Empleador
1..*
Empleado
Persona
Trabajo
Jefe
salario
0..1
Dirige a...
trabajador *
Ejemplo de clase asociacin
134
Empresa
propiedad
Persona
propietario
Participacin
cantidad
Empresa
1
propiedad
Adquisicin
cantidad
fecha
importe
1
propietario
Persona
135
Cada clase podra aparecer varias veces desempeando cada vez distintos roles
La multiplicidad con que una clase participa en una relacin n-aria se define con respecto a
las otras n-1 clases
As, dada una relacin entre las clases (A, B y C)
La multiplicidad de C indica cuntas instancias de C pueden asociarse con una pareja cualquiera de
instancias de A y B. Si por ejemplo la multiplicidad es (muchos, muchos, uno), significa que para
cada pareja posible (A, B) existe una nica instancia de C. Para una pareja (B, C) dada, existen
varias instancias de A
No se puede definir la multiplicidad con respecto a una nica clase porque la multiplicidad
sera varios para cualquier asociacin n-aria
136
Equipo
*
equipo
Jugador
goleador
Registro
golea a favor
goles en contra
ganados
perdidos
empatados
Alumno
*
0..1
Curso
Profesor
Registro
137
Agregacin (i)
Una agregacin es una forma de asociacin que representa una relacin todoparte entre un agregado (el todo) y las partes que los componen
Transitiva significa que tiene sentido decir que B es parte de A si existe una ruta de enlaces
de agregacin desde B hasta A en sentido directo
Antisimtrica significa que no existen bucles en las rutas dirigidas de los enlaces de agregacin.
Esto es, no es posible que ningn objeto sea parte de s mismo directa o indirectamente
Uniendo los dos roles, el grafo de enlaces de agregacin de todas las asociaciones de
agregacin es un grafo parcialmente ordenado, un grafo sin bucles
Empresa
Servicio
Seccin
Transitividad en la agregacin
Universidad de Salamanca Departamento de Informtica y Automtica
138
Agregacin (ii)
Elemento
a: Contenedor
c: Contenedor
b: Contenedor
g: Icono
Icono
Contenedor
d: Contenedor
Recursividad empleando
agregacin
h: Icono
e: Icono
f: Icono
i: Icono
139
Agregacin (iii)
Esto requiere que todos los adornos de los extremos de la agregacin sean
consistentes
MensajeCorreo
MensajeCorreo
*
1
Direccin
*
1
Cuerpo
1
Direccin
1
Cuerpo
140
Agregacin (iv)
Multiplicidad Mnima
0
flexible
>0
estricta Multiplicidad
Multiplicidad Mnima
0
nulos permitidos
>0
nulos no permitidos
Objeto Agregado
(mna, mxa)
(mnc, mxc)
Objeto Componente
Mxima
1
>1
disjunto
no disjunto
Multiplicidad Mxima
1
univaluado
>1
multivaluado
141
Agregacin (v)
Criterios de agregacin
142
Agregacin (vi)
143
Composicin (i)
Una parte no puede ser parte directa de dos objetos, aunque pueda serlo
indirectamente de mltiples objetos en diversos niveles de granularidad del
rbol
144
Composicin (ii)
Durante la vida del elemento compuesto, ningn otro objeto puede tener la
responsabilidad de creacin o destruccin sobre las partes
El comportamiento de una clase compuesta se puede disear con el conocimiento
de que ninguna otra clase destruir o desasignar sus piezas
Un elemento compuesto puede aadir piezas adicionales durante su vida, siempre
que lo permita la multiplicidad
Tales piezas se pueden quitar explcitamente antes de la muerte del elemento compuesto
145
Composicin (iii)
Esto no imposibilita a una clase para ser una parte compuesta de ms de una
clase en diferentes momentos o en diferentes instancias, pero solamente
puede existir un enlace de composicin al mismo tiempo para un objeto
Hay una restriccin XOR entre los posibles compuesto a los que una pieza
pudo pertenecer
Un objeto tambin puede ser parte de diversos objetos compuesto durante
su vida, pero solamente uno a la vez
146
Composicin (iv)
147
Composicin (v)
Ventana
Ventana
barradedesplazamiento:
Deslizador
ttulo[0..1]: Cabecera
cuerpo: Panel
Ventana
ttulo:Cabecera
0..1
2
Deslizador
0..1
Cabecera
cuerpo:Tablero
Panel
148
Composicin (vi)
Ninguna otra relacin de las clases que son parte pueden considerarse en
la notacin de los atributos
La composicin es transitiva
*
Divisin
Departamento
La composicin es transitiva
149
Generalizacin/Especializacin (i)
150
Generalizacin/Especializacin (ii)
151
Generalizacin/Especializacin (iii)
Definir las condiciones bajo las cuales se puede usar una instancia de una clase
Permitir la descripcin incremental de un elemento compartiendo las
descripciones de sus ancestros
152
Generalizacin/Especializacin (iv)
153
Generalizacin/Especializacin (v)
Vehculo
Vehculo Terrestre
Coche
Camin
Vehculo Areo
Avin
Helicptero
154
Generalizacin/Especializacin (vi)
Figura
Polgono
Elipse
Spline
...
Spline
...
Figura
Polgono
Elipse
155
Generalizacin/Especializacin (vii)
Disjoint (disjunto)
Overlapping (solapado)
Complete (completo)
Incomplete (incompleto)
156
Generalizacin/Especializacin (viii)
restricciones, se
aplican a todos los
hijos
Trabajador
{disjoint, inclomplete}
Carnicero
Pescadero
Panadero
Atleta
{overlapping, incomplete}
Futbolista
Nadador
Restricciones de la generalizacin
Universidad de Salamanca Departamento de Informtica y Automtica
157
Generalizacin/Especializacin (ix)
158
Generalizacin/Especializacin (x)
159
Generalizacin/Especializacin (xi)
160
Generalizacin/Especializacin (xii)
Alumno
char *nombre
...
char *nombre
...
Herencia repetida
Persona
Profesor
Estudiante
Becario
char*
Profesor::nombre;
char*
Alumno::nombre;
Becario
161
Generalizacin/Especializacin (xiii)
Generalizacin de asociaciones
162
Generalizacin/Especializacin (xiv)
Tema
Pedido
Cliente
modelo
vista
modelo
Smbolo
vista
modelo
vista
SmboloPedido
SmboloCliente
Generalizacin de asociaciones
Universidad de Salamanca Departamento de Informtica y Automtica
163
Dependencia (i)
164
Dependencia (ii)
Contexto de clases
Evento
Proveedor (independiente)
Cliente (dependiente)
Universidad de Salamanca Departamento de Informtica y Automtica
165
Paquete (i)
Elementos
Bsicos
Ventas
166
Paquete (ii)
Elementos Bsicos
Tienda
Ventas
Tiene
1
1..*
Registro
Elementos Bsicos::
Registro
Registro
Captura
1
Venta
167
Paquete (iii)
Elementos
Bsicos
Ventas
168
169
Conceptual
Especificacin
Implementacin
170
Persona
Vista conceptual
Persona
Persona
{abstracta}
nombre
nif
direccin
nacimiento
- nombre: string
- nif: string
- direccin: string
- nacimiento: fecha
CalculaEdad():entero
+ CalculaEdad():int
Vista de especificacin
Vista de implementacin
171
7. Vista de interaccin
172
Introduccin
Los objetos del sistema interaccionan unos con otros para realizar colectivamente
los servicios ofrecidos por las aplicaciones
Los diagramas de interaccin muestran cmo se comunican los objetos en una
interaccin
Esa interaccin se puede describir de dos maneras complementarias
Diagramas de secuencia
Diagramas de comunicacin
173
Colaboracin
174
Interaccin (i)
175
Interaccin (ii)
Donde
predecesor es una lista de los nmeros de secuencia de los mensajes separados por comas
que deben ocurrir antes del mensaje especificado
guarda representa una condicin para el envo del mensaje
secuencia representa el nivel de anidamiento procedural
Por ejemplo el mensaje 3.1.4 es posterior al mensaje 3.1.3 dentro de la activacin 3.1
Tambin se pueden aadir nombres para especificar mensajes concurrentes, por ejemplo, el mensaje
3.1a y el mensaje 3.1b son concurrentes dentro de la activacin 3.1
Adems se puede incluir una especificacin de iteracin de la forma *[i:=0 1..n] para representar el
envo de una secuencia de mensajes o *||[i:=0..n] para indicar que el envo es en paralelo
Ejemplos
2: mostrar(x,y)
1.3.1: p: = encontrar(espec)
[x<0] 4: invertir(x, color)
A3, B4/ C3.1*: actualizar
mensaje simple
llamada anidada con valor de retorno
mensaje condicional
sincronizacin con otros hilos de ejecucin, iteracin
176
Interaccin (iii)
177
178
Es un diagrama bidimensional
La dimensin vertical es el eje de tiempos
179
180
181
El origen de una flecha de retorno puede hacer que finalice una activacin o un
objeto
182
183
Otras variantes
184
emisor
restricciones
intercambio
receptor
levantar auricular
mensaje
tono de marcado
marcar dgito
...
comentario
La llamada se
encamina por
la red
encaminar
mensaje
con duracin
tono de llamada
suena el telfono
se responde
En este punto los
interesados pueden
hablar
tono de fin
deja de sonar
185
:Ticket
Crea ( )
:Cuenta
:Orden
reserva (fecha,cuenta )
creacin
cargo (coste)
bono (fecha,cuenta)
mensaje
Llamada recursiva
retorno
Activacin
destruccin
186
ob3 : C3
op()
La operacin
crea este objeto
ob4 : C4
La operacin
crea este objeto
ob1 : C1
[x>0]: crear (x)
ob2 : C2
Divisin de
control
concurrente
hacer (z)
Unin
de control
hacer(w)
Llamar
Retorno
Unin de
control
concurrente
Unin
de control
realizarRecurrencia ()
Llamada al
mismo
objeto
La lnea de vida
finaliza
El objeto se destruye a s
mismo en este punto
La lnea de vida
contina
187
Object2
Object3
ms1()
[x<19] calcular()
[x>19] calcular()
Obj2
ms1()
*[i:=1..N]: num:=siguiente()
188
Aleatorio
Programador
ejecutarSimulacion()
horas:=siguienteEnt()
trabajar(horas)
*[i:=1..N]
comer()
LineaVenta
t:=getTotal()
* : st:=getSubtotal()
189
[Adrian, 2006b]
Universidad de Salamanca Departamento de Informtica y Automtica
190
Operadores de
interaccin
Operandos de
diferentes tipos en el
operador
Alternativas,
Opciones, breaks,
operaciones
paralelas, loops, etc
[Adrian, 2006b]
191
Cuando se instancia una comunicacin, los objetos estn ligados a los roles del clasificador y
los enlaces a los roles de asociacin
Los smbolos de enlace pueden llevar estereotipos para indicar enlaces temporales
(parameter o local) o llamadas al mismo objeto (self)
Resulta necesario etiquetar con nmeros de secuencia tanto la secuencia de mensajes como los
hilos concurrentes
192
Los
Los
Los
Los
En este uso, muestran el contexto necesario para implementar todas las operaciones de
una clase
Esto permite al ingeniero del software ver los roles mltiples que los objetos pueden
desempear en varias operaciones
Esta vista puede tomarse como la unin de todas las colaboraciones necesarias para
describir todas las operaciones de un objeto
193
194
: Registro
: Registro
1: create (cajero)
create
1: hacer (cajero)
: Venta {new}
Como el mensaje de creacin
no es obvio, se estereotipa por
claridad
: Venta {new}
195
Secuencia de mensajes
196
mensaje()
: Obj1
: Obj2
197
Se debe ser consistente y subrayar los nombres de las instancias para interpretar
correctamente los mensajes a clases o a instancias
198
2: coste:=reservar(pedido)
:EncargadoPedidos
flujo de mensajes
entradas
:BDEntradas
rol de asociacin
Solicitante
1: revisarCrdito (cliente)
nmero de secuencia
navegacin en
sentido nico
crdito
:OficinaCrdito
rol de clasificador
Diagrama de comunicacin
Universidad de Salamanca Departamento de Informtica y Automtica
199
:Ventana
<<parameter>> ventana
1: mostrarPosiciones (ventana)
1.1.3.1: enlaza (self)
auto-enlace
para llamadas recursivas
contenido {new}
:Lnea {new}
cable : Cable
<<self>>
i-1
<<local>> lnea
iteracin
izquierdo : SegmentoCable
derecho : SegmentoCable
nombre
de hilo
concurrente
variable
local
operacin
valor
devuelto
objeto creado
durante la
iteracin
200
:ClaseA
1a [condicin] : ms2()
:ClaseB
:ClaseD
1b.1: ms5()
1a.1: ms3()
:ClaseC
ejecutarSimulacin()
:Simulador
1 * [i:=1..N] num:=siguienteNum()
:Aleatorio
Iteracin
Universidad de Salamanca Departamento de Informtica y Automtica
201
:Venta
1 * : st:=getSubtotal()
*
:LineaVenta
ms1()
:Obj
1: lista:=syncronizedList(unaLista)
java.util.Collections
202
Diagrama de revisin de
interacciones
[Adrian, 2006b]
203
[Adrian, 2006b]
204
205
Introduccin
206
Cajero automtico
caso de uso
sacar dinero
cliente
actor
transferencias
depositar dinero
operador
administracin
comunicacin entre
actor y caso de uso
207
208
Introduccin
Cualquier cosa que pueda afectar a un objeto se puede caracterizar como evento
Un estado es un conjunto de valores de un objeto para una clase dada, que
tienen la misma respuesta cualitativa a los eventos que ocurren
Cuando un objeto detecta un evento responde de diferente forma dependiendo
de su estado
209
210
211
212
213
Ejemplos (i)
contratar
en el paro
en activo
perder empleo
jubilarse
jubilarse
jubilado
214
Ejemplos (ii)
Se permite
bifurcacin condicional
Estado inicial
Transicin al
estado inicial
Y
[self.tamao=0]
[else]
e/a
entry / b
Equivale a tamao != 0
215
Ejemplos (iii)
Compra
Estado inicial
Transicin de
terminacin
insertar
tarjeta
Salida anormal
salida/expulsar tarjeta
Referencia de submquina
Estado final
Incluir identificacin
fallo
Salida normal Men de seleccin
Seleccionando
Inactivo
pulsar
compra
pulsar
cancelar
Transicin exterior
Accin
Transicin
interior
Accin
atmica
pulsar
repetir
Confirmando
pulsar confirmar
Vendiendo
entrada/vender()
Transicin de
finalizacin
Diagrama de transicin de estados con un estado compuesto secuencial
Universidad de Salamanca Departamento de Informtica y Automtica
216
Ejemplos (iv)
Clase Elegida
Incompleto
Laboratorio 1
Perodo de
proyecto
Prueba final
Diagrama de
transicin de
estados con un
estado compuesto
concurrente
laboratorio
realizado
laboratorio
realizado
Laboratorio 2
proyecto
realizado
aprobado
suspenso
Suspenso
Aprobado
217
218
Introduccin
219
Diagrama de actividades
220
Ejemplo (i)
inicio de
la actividad
global
Configurar
pedido
actividad
[entrada individual]
bifurcacin
[abono]
[es socio?]
Asignar
asientos
Cargar en
cuenta
hilo
condicional
Aplicar
descuento
Asignar los
asientos
divisin
de control
Cargar en
tarjeta
unin
de control
reunificacin
Diagrama de
actividad
Enviar
paquete
fin de
la actividad
global
221
Ejemplo (ii)
Cliente
Ventas
Almacn
Solicitar producto
Procesar pedido
Extraer artculos
Enviar pedido
Recibir pedido
Facturar pedido
Pagar factura
Cerrar pedido
222
223
[Adrian, 2006b]
224
225
Introduccin
Vista de implementacin
Vista de despliegue
226
Concepto de componente
227
228
229
Ejemplos
Deletrear-comprobar
Diccionario
Sinnimos
componente
conexin
interfaz
Transacciones
Actualiza
dependencia de uso
ATM- GUI
componente
Diagrama de componentes
Universidad de Salamanca Departamento de Informtica y Automtica
230
UML 2.0
[Adrian, 2006b]
231
Concepto de nodo
Los nodos pueden tener estereotipos para distinguir diferentes tipos de recursos
Dispositivos
Procesadores
Memoria
232
Ejemplos (i)
<<Cliente>>
Terminal Punto
de Venta
<<TCP/IP>>
<<Servidor>>
Base de
Datos
<<RDSI>>
Se pueden distinguir tipos de
nodos y conexiones por
estereotipado
Control
<<RDSI>>
233
Ejemplos (ii)
Transacciones
<<base de datos>>
Contabilidad
Actualiza
enlace de comunicacin
dependencia
Cliente: ATM
ATM-GUI
Instancia de
nodo
Diagrama de despliegue
234
[Adrian, 2006b]
235
[Adrian, 2006b]
236
237
[Adrian, 2006b]
Universidad de Salamanca Departamento de Informtica y Automtica
238
239
Las partes de un sistema son a su vez sistemas que actan conjuntamente para
producir el comportamiento del sistema
Descomposicin conceptual. Particin en trminos del entorno externo del sistema.
Entorno en el que residen los usuarios o el sistema
Descomposicin fsica. Se define en trminos de los componentes fsicos subyacentes.
Componentes software, recursos fsicos
240
241
Los elementos clave de esta vista son los clasificadores y las relaciones entre ellos
Cada una representa un aspecto del sistema. No son algo grfico sino abstracciones
compuestas de diagramas
Se clasifican en tres reas: estructural, dinmica y de gestin de los modelos
Los casos de uso son una tcnica para la especificacin de requisitos funcionales que no
pertenece estrictamente al enfoque orientado a objetos
242
243
Solucin 1
0..1
Panel
Solucin 2
ControlGrfico
*
*
ControlGrfico
*
Contenedor
Botn
Icono
Desplegable
...
0..1
Contenedor
Botn
Icono
Desplegable
...
Panel
244
Modelar la siguiente situacin mediante un diagrama de clases de UML. Una empresa decide informatizar su nmina.
Del resultado del anlisis realizado, se obtienen las siguientes informaciones
A cada empleado se le entregan mltiples justificantes de nmina a lo largo de su vida laboral en la empresa y al menos uno
mensualmente
A cada empleado se le asigna un nmero de matrcula en el momento de su incorporacin a la empresa, y ste es el nmero usado
a efectos internos de identificacin. Adems, se registran el NIF del empleado, nombre, nmero de hijos, porcentaje de retencin
para Hacienda, datos de cuenta corriente en la que se le ingresa el dinero (banco, sucursal y nmero de cuenta ) y departamentos
en los que trabaja
Un empleado puede trabajar en varios departamentos y en cada uno de ellos trabajar con una funcin distinta
De un departamento se mantiene el nombre y cada una de sus posibles sedes
Son datos propios de un justificante de nmina el ingreso total percibido por el empleado y el descuento total aplicado. La distincin
entre dos justificantes de nmina se har, adems de mediante el nmero de matrcula del empleado, mediante el ejerci fiscal y
nmero de mes al que pertenece y con un nmero de orden en el caso de varios justificantes de nmina recibidos el mismo mes
Cada justificante de nmina consta de varias lneas (al menos una de ingresos) y cada lnea se identifica por un nmero de lnea del
correspondiente justificante. Una lnea puede corresponder a un ingreso o a un descuente. En ambos casos, se recoge la cantidad
que corresponde a la lnea ( en positivo si se trata de un ingreso o en negativo si se trata de un descuento); en el caso de los
descuentos, se recoge la base sobre la cual se aplica y el porcentaje que se aplica para el clculo de stos
Toda lnea de ingreso de un justificante de nmina responde a un nico concepto retributivo. En un mismo justificante, puede
haber varias lneas que respondan al mismo concepto retributivo. De los conceptos retributivos se mantiene un cdigo y una
descripcin
De cara a la contabilidad de la empresa, cada lnea de un justificante de nmina se imputa al menos a un elemento de coste. Al
mismo elemento de coste pueden imputrsele varias lneas. Para cada elemento de coste, se recoge un cdigo, una descripcin y un
saldo
Entre los elementos de coste se establece una jerarqua, en el sentido de que un elemento de coste puede contener a otros
elementos de coste, pero un elemento de coste slo puede estar contenido en, a lo sumo, otro elemento de coste
En determinadas fechas, que se deben recoger, cada elemento de coste se liquida con cargo a varios apuntes contables ( cdigo y
cantidad) y a una o varias transferencias bancarias, de las que se recogen los datos de cuenta corriente (banco, sucursal y nmero
de cuenta) y la cantidad. Por cada apunte contable y transferencia bancaria se pueden liquidar varios elementos de coste
245
246
247
248
249
250
251
252
253
254
Bell, D. UML Basics: An Introduction to the Unified Modeling Language. The Rational
Edge. http://www.therationaledge.com/. June 2003
Artculo en el que Booch pone de manifiesto la necesidad de una unificacin en los mtodos de
desarrollo como incidente en la calidad del software desarrollado
Artculo en el que Grady Booch expone su visin de las barreras que tiene la Orientacin al Objeto
para ser adoptada por las organizaciones
Booch, G. Quality Software and the UML. Object Magazine. March 1997
255
Fowler, M., Scott, K. UML Gota a Gota. Addison Wesley Longman (Pearson), 1999
Gnova, G., Llorens, J., Martnez, P. Semantics of the Minimum Multiplicity in Ternary
Associations in UML. En M. Gogolla, C. Kobryn (Eds.), UML 2001. Lecture Notes in
Computer Science, LNCS 2185, Springer-Verlag, pp. 329-341. 2001
Interesantsimo artculo que defiende que la transicin entre los modelos de anlisis y diseo no est
exenta de problemas, precisamente por la dificultad de determinar en qu fase se est en ciertos
momentos y porque el significado de los objetos de anlisis (objetos semnticos) y objetos de
diseo no es la misma
Rine, D. Object-Oriented Technology and Software Reuse. IEEE Computer, 26(7):6. July
1993
Artculo que pone de manifiesto la dificultad de expresar las multiplicidades en un asociacin n-aria
en UML
Breve artculo que trata la relacin existente entre la Orientacin a Objetos y la reutilizacin del
software
256
15. Referencias
257
Referencias (i)
[Booch, 1994] Booch, G. Object Oriented Analysis and Design with Applications. 2nd Edition. The
Benjamin/Cummings Publishing Company, 1994
[Booch et al., 1997] Booch, G., Jacobson, I., Rumbaugh, J. The Unified Modeling Language for
Object-Oriented Development. Documentation set, version 1.0. Rational Software Corporation, 13
January 1997
[Booch et al., 1999] Booch, G., Rumbaugh, J., Jacobson, I. El Lenguaje Unificado de Modelado.
Addison-Wesley, 1999
[Booch y Rumbaugh, 1995] Booch, G., Rumbaugh, J. Unified Method for Object-Oriented
Development. Documentation set, version 0.8. Rational Software Corporation, 1995
[Budd, 1991] Budd, T. An Introduction to Object-Oriented Programming. Addison-Wesley, 1991
[Crespo, 2000] Crespo Gonzlez-Carvajal, Y. Incremento del Potencial de Reutilizacin del Software
mediante Refactorizacin. Tesis Doctoral. Universidad de Valladolid. 2000
[Champeaux et al., 1993] Champeaux, D., Lea, D., Faure, P. Object-Oriented System Development.
Addison Wesley, 1993
[Dhal et al., 1972] Dhal, O., Dijkstra, E., Hoare C. A. R. Structured Programming. Academic Press,
1972
[Fowler y Scott, 2000] Fowler, M., Scott, K. UML Distilled. A Brief Guide to the Standard Object
Modeling Language. 2nd edition. Addison Wesley, 2000
[Freeman, 1987] Freeman, P. A Perspective on Reusability. En P. Freeman (Ed.), IEEE Tutorial: Software
Reusability. IEEE Computer Society Press, pp. 2-8. 1987
[Graham, 1994] Graham, I. Object-Oriented Methods. 2nd Edition. Addison-Wesley, 1994
Universidad de Salamanca Departamento de Informtica y Automtica
258
Referencias (ii)
[Harel, 1987] Harel, D. Statecharts: A Visual Formalism for Complex Systems. Science of Computer
Programming, 8(3):231-274. 1987
[Harel et al., 1990] Harel, D., Lachover, H., Naamad, A., Pnueli, A., Politi, M., Sherman, R., ShtullTrauring, A., Trakhtenbrot, M. B. STATEMATE: A Working Environment for the Development of Complex
Reactive Systems. IEEE Transactions on Software Engineering, 16(3):403-414. April 1990
[Jacobson et al., 1992] Jacobson, I., Christerson, M., Jonsson, P., vergaad, G. Object Oriented Software
Engineering: A Use Case Driven Approach. Addison-Wesley, 1992
[Krueger, 1992] Krueger, C. W. Software Reuse. ACM Computing Surveys, 24(2):131-183. June 1992
[Liskov, 1988] Liskov, B. Data Abstraction and Hierarchy. SIGPLAN Notices, 23(5), 1988
[Meyer, 1997] Meyer, B. Object Oriented Software Construction. 2nd edition. Prentice Hall, 1997
[OMG, 1998] OMG. OMG Unified Modeling Language Specification. Version 1.2. Object Management Group Inc.
ftp://ftp.omg.org/pub/docs/ad/98-12-02-pdf. [ltima vez visitado, 3-10-2007]. July 1998
[OMG, 1999] OMG. OMG Unified Modeling Language Specification. Version 1.3. Object Management Group Inc.
June 1999
[OMG, 2001] OMG. OMG Unified Modeling Language Specification. Version 1.4. Object Management Group Inc.
http://www.omg.org/cgi-bin/apps/do_doc?ad/01-02-13. [ltima vez visitado, 3-10-2007]. September 2001
[OMG, 2003] OMG. OMG Unified Modeling Language Specification. Version 1.5. Object Management Group Inc.
Document formal/03-03-01. March 2003. http://www.omg.org/docs/formal/03-03-01.pdf [ltima vez visitado, 310-2007]
[OMG, 2007] OMG. Unified Modeling Language: Superstructure. Version 2.1.2. Object Management Group Inc.
Document formal/07-11-01. November 2007. http://www.omg.org/cgi-bin/doc?formal/07-11-01 [ltima vez
visitado, 6-10-2008]
Universidad de Salamanca Departamento de Informtica y Automtica
259
Referencias (iii)
[Parnas, 1972] Parnas, D. L. On the Criteria To Be Used in Decomposing Systems into Modules.
Communications of the ACM, 15(12):1053-1058. December 1972
[Piattini, 1996] Piattini, M. Tecnologa Orientada al Objeto. Notas del curso Tecnologa Orientada al
Objeto. ALI-CyL, Valladolid, Noviembre 1996
[Piattini et al., 2004] Piattini, M., Calvo-Manzano, J. A., Cervera, J., Fernndez, L. Anlisis y Diseo
Detallado de Aplicaciones Informticas de Gestin. Ra-ma, 2004
[Rational et al., 1997] Rational Software Corporation, Microsoft, Hewlett-Packard, Oracle,
Sterling Software, MCI Systemhouse, Unisys, ICON Computing IntelliCorp, i-Logix, IBM,
ObjecTime. Platinum Technology, Ptech, Taskon, Reich Technologies, Softeam. UML Proposal
to the Object Management. In Response to the OA&D Task Forces RFP-1. UML 1.1 Referece Set 1.1. 1
September 1997
[Rumbaugh et al., 1991] Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lorensen, W. ObjectOriented Modeling and Design. Prentice-Hall, 1991
[Rumbaugh et al., 1999] Rumbaugh, J., Jacobson, I., Booch, G. The Unified Modeling Language.
Reference Manual. 2 Edicin. Addison-Wesley Object Technology Series, 1999
[Smith y Tockey, 1988] Smith, M., Tockey, S. An Integrated Approach to Software Requirements
Definition Using Objects. Seattle, WA: Boeing Commercial Airplane Support Division, 1988
[Sutherland, 1997] Sutherland, J. Object World Tutorial - Object Design Tutorial. 1997
[Adrian, 2006] Adrian, V. UML 2.0. Epidata Consulting. http://www.epidataconsulting.com/site/files/UML
20 - CODE.pdf [ltima vez visitado, 16-10-2008]. Enero 2006.
[Adrian, 2006b] Adrian, V. El poder semntico de UML en la prctica. Epidata Consulting.
http://www.epidataconsulting.com/site/files/Articulo UML Code.pdf [Visitado, 16-10-2008]. Enero 2006.
Universidad de Salamanca Departamento de Informtica y Automtica
260