Contenido
Capítulo 1: A propósito de UML A - Introducción
11
B - El origen del UML: Unified Modeling Language
11
C - RUP: Rational Unified Process
13
D - MDA: Model Driven Architecture
16
Capítulo 2: Conceptos de la orientación a objetos A - Introducción
19
B - El objeto
20
C - La abstracción
21
D - Clases de objetos
21
E - Encapsulación
23
F - Especialización y generalización
24
G - Herencia
26
H - Clases abstractas y concretas
27
I - Polimorfismo
28 3
J - Composición
29
K - La especialización de los elementos: la noción de estereotipo en UML
31
L - Conclusión
33
Capítulo 3: Modelado de los requisitos A - Introducción
37
B - Casos de uso
37
C - Actor
38
D - Escenario
39
E - Relación de comunicación
39
F - Diagrama de los casos de uso
40
G - Relaciones entre los casos de uso 1 - Relación de inclusión 2 - Relación de extensión 3 - Especialización y generalización de los casos de uso
42 42 45 47
H - Representación textual de los casos de uso
50
I - Conclusión
53
J - Ejercicios 1 - El hipódromo 2 - El club ecuestre 3 - El tiovivo de caballos de madera
54 54 54 54
4
Capítulo 4: Modelado de la dinámica A - Introducción
57
B - Diagrama de secuencia 1 - Definición 2 - Línea de vida de un objeto 3 - Envío de mensajes 4 - Creación y destrucción de objetos 5 - Descripción de la dinámica
58 58 58 59 62 63
C - Marcos de interacción (UML 2) 1 - La noción de marco de interacción 2 - La alternativa 3 - El bucle 4 - Utilización de los marcos de interacción
65 65 65 66 67
D -Diagrama de comunicación
69
E -Descubrir los objetos del sistema
72
F -Conclusión
76
G - Ejercicios 1 - El hipódromo 2 - La central de compra de caballos
77 77 77
Capítulo 5: Modelado de objetos A - Introducción
81
B - Conocer los objetos del sistema por descomposición
82
5
C - Representación de clases 1 - La forma simplificada de representación de clases 2 - La encapsulación 3 - La noción de tipo 4 - Firma de los métodos 5 - La forma completa de representación de las clases 6 - Los atributos y los métodos de clase 7 - Los atributos calculados
85 85 87 89 91 93 94 96
D - Las asociaciones entre objetos 1 - Los vínculos entre objetos 2 - Representación de las asociaciones entre clases 3 - La cardinalidad de las asociaciones 4 - Navegación 5 - Asociar una clase a sí misma 6 - Las clases-asociaciones 7 - La calificación de las asociaciones 8 - La expresión de las especificaciones en las asociaciones 9 - Los objetos compuestos
96 96 98 100 101 102 104 105 107 110
E - Relación de generalización/especialización entre clases 1 - Clases más específicas y clases más generales 2 - La herencia 3 - Clases concretas y abstractas 4 - Expresión de especificaciones sobre la relación de herencia 5 - La herencia múltiple 6 - Factorización de las relaciones entre objetos 7 - Interfaz
114 114 115 116
F - Diagrama de objetos o instancias
126
G - Diagrama de estructura compuesta
127
6
118 119 121 122
1 - Descripción de un objeto compuesto 2 - Colaboración
127 134
H - Conclusión
136
I - Ejercicios 1 - La jerarquía de los caballos 2 - Los productos para caballos
137 137 137
Anexo 1: Corrección de los ejercicios A - Capítulo 3 1 - El hipódromo 2 - El club ecuestre 3 - El tiovivo de caballos de madera
141 141 142 143
B - Capítulo 4 1 - El hipódromo 2 - La central de compra de caballos
145 145 146
C - Capítulo 5 1 - La jerarquía de los caballos 2 - Los productos para caballos
147 147 148
Anexo 2: Notación gráfica Diagrama de actividades
151
Diagrama de casos de uso
152
Diagrama de clases
152
Diagrama de comunicación
153
Diagrama de componentes
153 7
Diagrama de despligue
153
Diagrama de estados-transiciones
154
Diagrama de secuenci
155
Glosario
157
Ă?ndice
159
8
Conceptos de la orientación a objetos
A Introducción El objetivo del presente capítulo es describir los diferentes conceptos y principios de la orientación a objetos en los que se basa el lenguaje UML. Conocerlos resulta indispensable para comprender los elementos utilizados en los diagramas UML que abordaremos en los capítulos siguientes. En primer lugar, trataremos el concepto de objeto y después veremos cómo modelarlo en UML por abstracción. Introduciremos la noción de clases, representación común de un conjunto de objetos similares. Hablaremos después del principio de encapsulación, ocultación de informaciones internas y propias del funcionamiento del objeto. Describiremos las relaciones de especialización y de generalización que introducen las jerarquías de clases, la herencia, las clases concretas y abstractas y, posteriormente, abordaremos el polimorfismo, consecuencia directa de la especialización.
ã Editions ENI - All rights reserved
Finalmente trataremos la composición de objetos para concluir con una noción más específica de UML, la especialización de los elementos del diagrama a través de los estereotipos.
19
Capítulo 2
B El objeto Un objeto es una entidad identificable del mundo real. Puede tener una existencia física (un caballo, un libro) o no tenerla (un texto de ley). Identificable significa que el objeto se puede designar. Ejemplo Mi yegua Jorgelina Mi libro sobre UML El artículo 293B del código de impuestos
En UML todo objeto posee un conjunto de atributos (estructura) y un conjunto de métodos (comportamiento). Un atributo es una variable destinada a recibir un valor. Un método es un conjunto de instrucciones que toman unos valores de entrada y modifican los valores de los atributos o producen un resultado. Incluso los objetos estáticos del mundo real son percibidos siempre como dinámicos. Así, en UML, un libro se percibe como un objeto capaz de abrirse él mismo en una página determinada. Todo sistema concebido en UML está compuesto por objetos que interactúan entre sí y realizan operaciones propias de su comportamiento. Ejemplo Una manada de caballos es un sistema de objetos que interactúa entre sí, cada objeto posee su propio comportamiento. De esta forma, el comportamiento global de un sistema se reparte entre los diferentes objetos. En nuestro ejemplo bastará con hacer un paralelismo con el mundo real para comprenderlo.
20
Conceptos de la orientación a objetos
C La abstracción La abstracción es un principio muy importante en modelado. Consiste en tener en cuenta únicamente las propiedades pertinentes de un objeto para un problema concreto. Los objetos utilizados en UML son abstracciones del mundo real. Ejemplo Si nos interesamos por los caballos en su actividad de carrera, las propiedades aptitud, velocidad, edad, equilibrio mental y casta de origen son pertinentes para dicha actividad y se tienen en cuenta. Si nos interesamos por los caballos en su actividad de bestia de tiro, las propiedades edad, tamaño, fuerza y corpulencia son pertinentes para dicha actividad y se tienen en cuenta. La abstracción es una simplificación indispensable para el proceso de modelado. Un objeto UML es una abstracción de un objeto del mundo real de acuerdo con las necesidades del sistema de la cual sólo se tienen en cuenta los elementos esenciales.
D ã Editions ENI - All rights reserved
Clases de objetos Un conjunto de objetos similares, es decir, con la misma estructura y comportamiento, y constituidos por los mismos atributos y métodos, forma una clase de objetos. La estructura y el comportamiento pueden entonces definirse en común en el ámbito de la clase. Todos los objetos de una clase, llamada también instancia de clase, se distinguen por tener una identidad propia y sus atributos les confieren valores específicos.
21
CapĂtulo 2 Ejemplo El conjunto de caballos constituye la clase Caballo, que posee la estructura y el comportamiento descritos en la figura 2.1.
Figura 2.1 - La clase Caballo El caballo Jorgelina es una instancia de la clase Caballo cuyos atributos y valores se ilustran en la figura 2.2.
Figura 2.2 - El caballo Jorgelina El nombre de las clases se escribe en singular y estĂĄ formado siempre por un nombre precedido o seguido por uno o varios adjetivos que lo califican. Dicho nombre es revelador de los objetos que forman la clase.
22
Conceptos de la orientación a objetos
E Encapsulación La encapsulación consiste en ocultar los atributos y métodos del objeto a otros objetos. En efecto, algunos atributos y métodos tienen como único objetivo tratamientos internos del objeto y no deben estar expuestos a los objetos exteriores. Una vez encapsulados, pasan a denominarse atributos y métodos privados del objeto. La encapsulación es una abstracción, ya que se simplifica la representación del objeto con relación a los objetos externos. Esta representación simplificada está formada por atributos y métodos públicos del objeto. La definición de encapsulación se realiza en el ámbito de la clase. Los objetos externos a un objeto son, por tanto, las instancias de las demás clases. Ejemplo
ã Editions ENI - All rights reserved
Al correr, los caballos efectúan diferentes movimientos como pueden ser levantar las patas, levantar la cabeza o levantar la cola. Esos movimientos son internos al funcionamiento del animal y no tienen por qué ser conocidos en el exterior. Son métodos privados. Las operaciones acceden a una parte interna del caballo: sus músculos, su cerebro y su vista. La parte interna se representa en forma de atributos privados. El conjunto de atributos y métodos se ilustra en la figura 2.3.
23
Capítulo 2
Figura 2.3 - La clase Caballo detallada En la notación UML, los atributos y métodos públicos aparecen precedidos del signo más mientras que los privados (encapsulados) aparecen precedidos del signo menos.
F Especialización y generalización Hasta el momento, cada clase de objetos se introduce de forma separada a las demás clases. Las clases pueden definirse también como subconjuntos de otras clases, pero éstos deben constituir siempre conjuntos de objetos similares. Hablamos entonces de subclases de otras clases que, por tanto, constituyen especializaciones de esas otras clases. Ejemplo La clase de los caballos es una subclase de la clase de los mamíferos.
24