uml utpl progavanzada
TRANSCRIPT
-
7/27/2019 UML UTPL ProgAvanzada
1/261
Universidad de Salamanca Departamento de Informtica y Automtica
Ingeniera del Software
Dr. Francisco Jos Garca Pealvo([email protected])Miguel ngel Conde Gonzlez
([email protected])Sergio Bravo Martn
Tema 2: Modelo objetoUna descripcin de UML
3 I.T.I.S.Fecha de ltima modificacin: 16-10-2008
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 UML UTPL ProgAvanzada
2/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 2
Resumen
Resumen
Se presentan los conceptos relacionados con Ingeniera del Software enel paradigma de la orientacin a objetos. Para ello se estudia el marcoconceptual que proporciona este paradigma para el modelado desistemas software. Posteriormente, los conceptos introducidos sepresentarn mediante su correspondiente representacin, notacin, enel lenguaje de modelado UML. Adems de los elementos del lenguajede UML, se introduce el conjunto de diagramas que propone estelenguaje para el modelado de los diferentes aspectos de un sistemasoftware
Descriptores
Modelo objeto; Objeto; Clase; UML; Modelado de objetos; Elementos demodelado; Vistas de UML; Vista esttica; Diagrama de clases;Clasificador; Interfaz; Relacin; Vista de casos de uso; Diagrama decasos de uso; Actor; Caso de uso; Relaciones entre casos de uso; Vistade mquina de estados; Vista de actividad; Diagrama de actividad;Vista de interaccin; colaboracin; Interaccin; Diagrama de secuencia;Diagrama de colaboracin (Comunicacin); Vistas fsicas; Nodo;
Componente
Bibliografa
[Booch et al., 1999][Larman, 2003] Captulos 9, 10, 11, 12, 13 y 15[OMG, 2003][Rumbaugh et al., 2000][Rumbaugh et al., 1998] Captulos 1, 3 y 4
-
7/27/2019 UML UTPL ProgAvanzada
3/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 3
Esquema Introduccin a la orientacin a objetos
Modelo objeto Qu es UML? Historia de UML Visin global de UML Vista esttica
Vista de interaccin Vista de casos de uso Vista de mquina de estados Vista de actividad Vistas fsicas Aportaciones principales del tema Ejercicios Lecturas complementarias Referencias
-
7/27/2019 UML UTPL ProgAvanzada
4/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 4
1. Introduccin a la orientacin a objetos
I i d l S ft
-
7/27/2019 UML UTPL ProgAvanzada
5/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 5
Situacin actual
Cul es la demanda actual de losusuarios de ordenadores?
Mayor funcionalidad Facilidad de manejo
I i d l S ft
-
7/27/2019 UML UTPL ProgAvanzada
6/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 6
reas de aplicacin
OO
Bases deDatos
Mtodos yCASE
Reingeniera
de Procesos
Lenguajesde prog.
Interfacesde usuario
InteligenciaArtificial
SistemasOperativos
Hardware
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
7/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 7
Evolucin de la OO
Origen Finales de los aos 60 Lenguaje Simula Tcnicas estructuradas
Difusin Mediados de los aos 80
Primeras conferenciassobre el tema
Madurez Finales de los aos 90
Estndares Extensin de los
productos
Texto
ProceduralC, Cobol
Relacional
GUI
ObjetualC++, Java
ObjetoObjeto-Relacional
Interfaz deusuario
Lenguaje deprogramacin
SGBD
1990 Hoy 20XX
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
8/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 8
Beneficios potenciales
Mejorar la calidad del software
Acortar los tiempos de desarrollo
Aumentar la productividad
Incrementar la reutilizacin del software
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
9/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 9
Orientacin a objetos y reutilizacin
Existe una relacin simbitica entre la tecnologa de objetos yla reutilizacin del software Utilizar la OO no implica reutilizacin de forma automtica La reutilizacin es una disciplina en s misma
Reutilizacin es cualquier procedimiento que produce o ayuda aproducir un sistema mediante el nuevo uso de algn elementoprocedente de un esfuerzo de desarrollo anterior [Freeman, 1987]
Reutilizacin es la utilizacin de conceptos y objetos existentes en unsistema o situacin nueva, directamente o adaptndolos. Para ello,estos conceptos y objetos debern encontrarse codificados en un nivel
de abstraccin establecido y debern poder ser recuperados [Krueger,1992]
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
10/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 10
Ventajas
Marco conceptual de referencia con una mayor riquezasemntica Herramienta para la gestin de la complejidad
Divisin ms natural de los sistemas
Se mejora el mantenimiento y la evolucin de los sistemassoftware Ocultacin de la informacin Uso de interfaces
Los objetos bien diseados, constituyen la base para mdulos
reutilizables Aumento de la productividad
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
11/261
g
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 11
Desventajas
Disear mdulos reutilizables aade un coste Beneficios a medio/largo plazo Falta de productos (bibliotecas, CASE...) Falta de eficiencia Falta de formacin Forma de trabajo diferente a la tradicional Falta de madurez Falta de estndares
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
12/261
g
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 12
Opiniones sobre la tecnologa de objetos
La orientacin al objeto es potencialmente una de las tecnologas ms
potentes de las que haya podido disponer la industria de la tecnologa dela informacin y sus usuarios. Como tal demanda una gestin de altonivel. No es una panacea pero si una herramienta de gran poder,peligrosa si se utiliza mal, pero capaz de grandes cosas. Plant 1992
La orientacin a objeto se convertir en la tecnologa de software
emergente ms importante de los aos 90. Bill Gates Las tecnologas de objetos constituyen junto con el Web (Internet) las
dos cosas ms exitosas ahora y para el futuro en el mundo del software.Steve Jobs en Bussiness Week
No hay duda de que la tecnologa orientada a objetos ha entrado aformar parte de la corriente principal de la computacin. Grady Booch
Si yo tuviera que vender mi gato (al menos a un informtico) no dira quees amable y autosuficiente y que se alimenta de ratones: ms bienargira que est orientado-a-objetos. Roger King
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
13/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 13
2. Modelo objeto
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
14/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 14
Tipos de paradigmas de programacin (i)
La mayora de los desarrolladores trabajan en un lenguaje yutilizan slo un estilo de programacin Se puede definir estilo de programacin como una forma de
organizar programas sobre las bases de algn modeloconceptual de programacin y un lenguaje apropiado para
que resulten claros los programas escritos en ese estilo Tipos principales de estilos de programacin
Orientado a procedimientos:Algoritmos Orientado a objetos: Clases y objetos Orientado a lgica: Objetivos Orientado a reglas: Reglas si-entonces Orientado a restricciones: Relaciones invariantes
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
15/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 15
Tipos de paradigmas de programacin (ii)
Cada estilo de programacin se basa en su propiomarco de referencia conceptual
Cada uno requiere una actitudmental diferente, una forma
distinta de pensar en el problema
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
16/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 16
Definicin de modelo objeto
Modelo de la realidad, construido segn las lneas directrices
propuestas por el paradigma de la Orientacin al Objeto. Lasentidades de un sistema se describen en trminos del constructorobjeto
Conjunto de conceptos y tiles empleados para elaborar larepresentacin de la realidad, siguiendo el paradigma de la
Orientacin al Objeto Un Modelo Objeto es un marco de referencia conceptual, en el que
se establece el conjunto bsico de los conceptos, la terminologaasociada y el modelo de computacin de los Sistemas Softwaresoportados por la tecnologa orientada a los objetos Este conjunto bsico de conceptos deber incluir, como mnimo, los de
abstraccin, encapsulacin,jerarqua y modularidad y deberconsiderar el sistema de informacin como un conjunto de entidadesconceptuales modeladas como objetos e interactuando entre ellas
Ingeniera del Software
-
7/27/2019 UML UTPL ProgAvanzada
17/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 17
Elementos de un modelo objeto
ElementosFundamentales Abstraccin Encapsulamiento Modularidad Jerarqua Mensajes
ElementosSecundarios Tipos Polimorfismo * Concurrencia Persistencia
[Booch, 1994]
Ingeniera del Software
M d l b j t U d i i d UML
-
7/27/2019 UML UTPL ProgAvanzada
18/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 18
Abstraccin (i)
Elemento para combatir la complejidad Accin de separar mentalmente La abstraccin surge de un reconocimiento de las similitudes
entre ciertos objetos, situaciones o procesos del mundo real,y la decisin de concentrarse en esas similitudes e ignorar por
el momento las diferencias [Dhal et al., 1972] Una abstraccin se centra en la visin externa de un objeto,
sirviendo para separar el comportamiento esencial de unobjeto de su implantacin
Las abstracciones son descripciones incompletas de larealidad La abstraccin siempre tiene un objetivo
Ingeniera del Software
Modelo ob jeto Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
19/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 19
La abstraccin se centra en las caractersticas esenciales de algn objeto,en relacin a la perspectiva del observador
Abstraccin (ii)
Abstraer es el acto de identificar y utilizar slo aquellas caractersticaspertinentes al propsito actual
[Booch, 1994]
Ingeniera del Software
Modelo ob jeto Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
20/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 20
Representacin de las caractersticas esenciales de algo sin incluirantecedentes o detalles irrelevantes [Graham, 1994]
Una abstraccin denota las caractersticas esenciales de un objetoque lo distinguen de todos los dems tipos de objetos y proporcionaas fronteras conceptuales ntidamente definidas respecto a laperspectiva del observador [Booch, 1994]
Facilidad mental que permite a los humanos ver los problemas delmundo real con grados variables de detalle, dependiendo del contextovigente del problema [Rumbaugh et al., 1991]
Las caractersticas esenciales que distinguen a una entidad de todaslas dems entidades. Una abstraccin define una frontera relativa a la
perspectiva del observador [OMG, 2003]
Abstraccin (iii)
Ingeniera del Software
Modelo ob jeto Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
21/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 21
Abstraccin (iv)
Fenmeno es un objeto del mundo real que es percibido El libro Los pilares de la tierra de Ken Follet
El tipo de inters que ofrece el banco por un depsito a 2 meses Un reloj
Concepto es una abstraccin que describe un conjunto de
fenmenos Los libros del gnero de novela histrica Los tipos de inters bancarios Los relojes de pulsera
Un concepto describe las propiedadescomunes a un conjunto de fenmenos
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
22/261
Modelo ob jeto. Una descrip cin de UML
Universidad de Salamanca Departamento de Informtica y Automtica 22
Abstraccin (v)Concepto
Nombre: Lo distingue de otros conceptos
Reloj
Miembros: Conjunto de fenmenos que forman parte del concepto
Propsito: Propiedades que determinan la pertenencia al concepto
Dispositivo quemide el tiempo
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
23/261
j p
Universidad de Salamanca Departamento de Informtica y Automtica 23
La abstraccin ayuda a laspersonas a pensar sobre loque estn haciendo
El encapsulamiento permiteque los cambios realizadosen los programas sean fiablescon el menor esfuerzo
El encapsulamiento facilitala ocultacin de la informacin
Encapsulamiento (i)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
24/261
Universidad de Salamanca Departamento de Informtica y Automtica 24
Encapsulamiento Generar una cpsula, una barreraconceptual sobre la informacin yservicios de un objeto, haciendoque stos permanezcan juntos
Informacin yoperaciones
DATOS+
SERVICIOS
Principio de ocultacinde la informacin [Parnas, 1972]
Interfaz PblicaQu
Representacin PrivadaCmo
Encapsulamiento (ii)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
25/261
Universidad de Salamanca Departamento de Informtica y Automtica 25
El encapsulamiento oculta los detalles de la implementacin de un objeto
Encapsulamiento (iii)
[Booch, 1994]
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
26/261
Universidad de Salamanca Departamento de Informtica y Automtica 26
Es un principio de estado que agrupa datos y procesospermitiendo ocultar a los usuarios de un objeto los
aspectos de implementacin, ofrecindoles una interfazexterna mediante la cual poder interaccionar
con el objeto[Piattini et al., 2004]
Tcnica de modelado e implementacin que separa losaspectos externos de un objeto de los internos, detalles
de implementacin de un objeto
[Rumbaugh et al., 1991]
Encapsulamiento (iv)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
27/261
Universidad de Salamanca Departamento de Informtica y Automtica 27
La abstraccin es un conceptosumamente til, perodemasiado extenso, exceptopara los casos triviales
El encapsulamiento y lamodularidad son medios para
manejar las abstracciones Con frecuencia, un conjunto
de abstracciones forma unajerarqua
La identificacin de estas
jerarquas en el diseosimplifica la comprensin delproblema
Las abstracciones forman una jerarqua
Jerarqua (i)[Booch, 1994]
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
28/261
Universidad de Salamanca Departamento de Informtica y Automtica 28
La jerarqua es una clasificacin u ordenacinde abstracciones [Booch, 1994]
PrincipalesJerarquas
Jerarqua de clases Generalizacin
Jerarqua de partesAgregacin
Simple
Mltiple
Jerarqua (ii)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
29/261
Universidad de Salamanca Departamento de Informtica y Automtica 29
Jerarqua (iii)
En la abstraccin se busca la expresin de unconcepto Clasificacin especializa la nocin de abstraccin
Agrupar ideas en clases
Elementos individuales vs. nociones generales Colecciones representadas por un concepto
Abstraccin Clasificacin Concepto+
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
30/261
Universidad de Salamanca Departamento de Informtica y Automtica 30
Jerarqua (iv)
Abstraccin de clasificacin Agrupa fenmenos similares Selecciona las propiedades comunes e ignora las propiedades
individuales
SGBD
Sybase. . .Access Oracle
SoftwareMicrosoft
Word PowerPoint . . .
RelacinES_MIEMBRO DE RelacinES_MIEMBRO DE
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
31/261
Universidad de Salamanca Departamento de Informtica y Automtica 31
Jerarqua (v)
Abstraccin de generalizacin Agrupa conceptos, conjuntos similares de fenmenos
Vehculo
Ciclomotor Turismo Camin. . .
RelacinES_UN
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
32/261
Universidad de Salamanca Departamento de Informtica y Automtica 32
Jerarqua (vi)
Abstraccin de agregacin Agrupa conceptos no similares Ignora las diferencias entre las partes y se concentra en el hecho de
que forman parte de un todo
Automvil
Ruedas Motor Volante. . .
RelacinES_PARTE_DE
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
33/261
Universidad de Salamanca Departamento de Informtica y Automtica 33
Ejemplo (i)
Plan de estudios de la Ingeniera Tcnica en Informtica de
Sistemas Fenmenos? Conceptos? Abstracciones?
Ingeniera del Software, asignatura obligatoria, de 4,5 crditos tericosy 1,5 crditos prcticos
.
.
.Programacin Orientada a Objetos, asignatura optativa, de 3 crditos tericosy 3 crditos prcticos
FENMENOS? CONCEPTOS?
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
34/261
Universidad de Salamanca Departamento de Informtica y Automtica 34
Ejemplo (ii)
ABSTRACIONES?
Asignatura
Troncal Obligatoria Optativa
Ing. Sw POO
Crditos Tericos
Crditos Prcticos
RelacinES_MIEMBRO DE
Relacin
ES_PARTE_DE
RelacinES_UN
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
35/261
Universidad de Salamanca Departamento de Informtica y Automtica 35
Los objetos se comunican a travs del paso de mensajes Elimina la duplicacin de datos y garantiza que no se propaguen
los efectos de los cambios en las estructuras de datosencapsuladas dentro del objeto sobre otras partes del sistema
Se realizan mediante llamadas a funciones Un objeto accede a otro envindole un mensaje Cuando esto ocurre, el receptor ejecuta el mtodo
correspondiente al mensaje Un mensaje consiste en un nombre de un mtodo ms cualquier
argumento adicional El conjunto de mensajes a los que un objeto responde caracteriza
su comportamiento El mtodo asociado a un mensaje es el algoritmo detallado que lo
implementa (privado)
Mensajes (i)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
36/261
Universidad de Salamanca Departamento de Informtica y Automtica 36
Mensajes (ii)
Llamada a una operacin o a un objeto, en la que se incluyeel nombre de la operacin y una lista de valores deargumentos [Rumbaugh et al., 1991]
Operacin que un objeto realiza sobre otro [Booch, 1994]
Una comunicacin entre objetos que transmite informacin
con la expectativa de desatar una accin. La recepcin de unmensaje es, normalmente, considerado como un evento[OMG, 2003]
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
37/261
Universidad de Salamanca Departamento de Informtica y Automtica 37
Polimorfismo (i)
Posibilidad de utilizar el mismo smbolo con fines distintos cuando elcontexto est claro Un solo nombre (como puede ser la declaracin de una variable) puede
denotar objetos de muchas clases diferentes que se relacionan por algunasuperclase comn
Faceta ms interesante del polimorfismo cuando interactan las
caractersticas de la herencia y el enlace dinmico
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
38/261
Universidad de Salamanca Departamento de Informtica y Automtica 38
Universal Ad-hoc
Paramtrico Inclusin Sobrecarga Coercin
Polimorfismo (ii)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
39/261
Universidad de Salamanca Departamento de Informtica y Automtica 39
El polimorfismo ad-hoc se refiere al uso del mismo smbolo en
operaciones no relacionadas semnticamente La sobrecarga (overloading) de operadores encaja en esta categora La coercin permite que operaciones funcionen sobre entradas de tipo
mixto
El polimorfismo universal implica el uso del mismo smbolo en
operaciones con una semntica comn El polimorfismo paramtrico se refiere a la posibilidad de sustituir
argumentos de un rango de tipos en una llamada a funcin El polimorfismo de inclusin o de subclases se produce cuando un servicio
definido en una clase se redefine en alguna de sus subclasesmanteniendo la misma signatura. As, un mensaje enviado a un objeto
instancia de esta clase o de cualquiera de sus subclases puede invocarcualquiera de estos servicios, segn sea la clase a la que pertenezca elobjeto que lo recibe
Polimorfismo (iii)
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
40/261
Universidad de Salamanca Departamento de Informtica y Automtica 40
Polimorfismo (iv)
Implica que el objeto que enva un mensaje no necesita conocer la
instancia de la clase receptora Es el receptor quien determina el mtodo a ejecutar
Permite detectar y aprovechar similitudes entre distintas clases de objetos Objetos distintos que responden a un mismo mensaje pueden ser tratados de
la misma forma por el remitente
Enviar a una forma un mensaje paraque se dibuje, dar como resultado unaforma diferente para cada tipo deobjeto, debido a que el mtodo Draw()
de cada forma es diferente
Ejemplo
Ingeniera del SoftwareModelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
41/261
Universidad de Salamanca Departamento de Informtica y Automtica 41
Polimorfismo (v)
Polimorfismo (muchas formas") es la propiedad por la que una
operacin se comporta de forma diferente en diferentes clases[Sutherland, 1997]
Capacidad de un comportamiento de tener una interpretacin sobre msde una clase [Piattini, 1996]
La posibilidad de que una variable o una funcin adopte diferentes
formas en tiempo de ejecucin o, ms especficamente, a la posibilidad dereferirse a instancias de varias clases [Graham, 1994] Concepto de la teora de tipos, de acuerdo con el que un nombre (como
una declaracin de una variable) puede denotar objetos de muchas clasesdiferentes que se relacionan mediante alguna superclase comn; as todoobjeto denotado por este nombre es capaz de responder a algn conjuntocomn de operaciones de diferentes modos [Booch, 1994]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
42/261
Universidad de Salamanca Departamento de Informtica y Automtica 42
La fragmentacin de un programa en componentes
individuales puede reducir la complejidad en algn grado Dicha fragmentacin crea una serie de fronteras bien
definidas y documentadas dentro del programa. Estasinterfaces tienen una importancia incalculable para lacomprensin del programa
No todos los LPOO soportan el concepto de mdulo En muchos LPOO el mdulo es una construccin adicional
del lenguaje y justifica un conjunto separado dedecisiones de diseo
El uso de mdulos es esencial para el manejo de lacomplejidad
Modularidad (i)
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
43/261
Universidad de Salamanca Departamento de Informtica y Automtica 43
Las clases y los objetos
forman la estructuralgica del sistema Estas abstracciones
se sitan en mdulos
Arquitectura fsicadel sistema
Algunos lenguajes distinguen entre la interfaz de un
mdulo y su implementacin
Se tiene una estrecha relacin entremodularidad y encapsulamiento
Modularidad (ii)
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
44/261
Universidad de Salamanca Departamento de Informtica y Automtica 44
La modularizacin consiste en dividir un programa en mdulosque pueden compilarse de forma separada, pero que tienenconexiones con otros mdulos. Utilizaremos la definicin
de Parnas: Las conexiones entre mdulos son las suposicionesque cada mdulo hace acerca de todos los dems
[Liskov, 1988]
La modularidad es la propiedad que tiene un sistema que hasido descompuesto en un conjunto de mdulos cohesivos
y dbilmente acoplados
[Booch, 1994]
Modularidad (iii)
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
45/261
Universidad de Salamanca Departamento de Informtica y Automtica 45
3. Qu es UML?
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
46/261
Universidad de Salamanca Departamento de Informtica y Automtica 46
UML es un lenguaje de modelado de objetos independiente del mtodo que seimplemente
UML no es una notacin propietaria UML no es una metodologa, mtodo o proceso El objetivo de UML es la unificacin de los mtodos de modelado de objetos
Identificacin y definicin de la semntica de los conceptos fundamentales Eleccin de una representacin grfica cuya sintaxis sea simple, expresiva e intuitiva Los diferentes conceptos se han modelado, a su vez, con UML: metamodelado
UML define varios modelos para la representacin de los sistemas que puedenverse y manipularse mediante un conjunto de diagramas diferentes
UML tiene un amplio espectro de utilizacin
Lenguaje para especificar, construir, visualizar ydocumentar ingenios software, cuyo alcance
pretende cubrir los conceptos de Booch, OMT y OOSEresultando un lenguaje simple, comn y ampliamente
utilizable por usuarios de otros mtodos
Qu es UML?
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
47/261
Universidad de Salamanca Departamento de Informtica y Automtica 47
Qu es un modelo?
En la vida real, se construyen muchas clases de modelos con
distintos propsitos antes de construirlos Objetivos de los modelos
Probar una entidad fsica antes de construirla Comunicacin con el cliente Visualizacin Reduccin de la complejidad Estructurar las ideas
Un modelo es una abstraccin de un sistema semnticamentecerrada
Un lenguaje de modelado es un lenguaje para especificar,construir, visualizar y documentar ingenios software
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
48/261
Universidad de Salamanca Departamento de Informtica y Automtica 48
Por qu es necesario un lenguaje de modelado?
Los sistemas complejos son
difciles de entender si no secuenta con un modelo que losdescriba
El conseguir un lenguaje demodelado capaz de captar lasemntica de cualquier sistemasoftware, es esencial a la hora dellevar a cabo un proyectosoftware de una ciertacomplejidad
La representacin de un modelo
en un lenguaje de modeladoobviamente tiene un valoraadido si dicho lenguaje demodelado es estndar
Mtodo = Qu + Cmo + Porqu
Lenguaje de
Modelado= Notacin + Reglas
Sintcticas
Semnticas
Pragmticas
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
M d l b d l di bj l
-
7/27/2019 UML UTPL ProgAvanzada
49/261
Universidad de Salamanca Departamento de Informtica y Automtica 49
Modelos basados en el paradigma objetual
Con la orientacin a objetos se busca una suma sinrgica
Objetos! = caractersticas + comportamiento
Datos?edad
razacolor
Procesos?ladrar
comerdormir
Soyorientado a
objetos!
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
N id d d l ifi i t d
-
7/27/2019 UML UTPL ProgAvanzada
50/261
Universidad de Salamanca Departamento de Informtica y Automtica 50
Necesidad de la unificacin en un estndar
Necesidad de estandarizacin a mediados de los noventa
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
C i l t d
-
7/27/2019 UML UTPL ProgAvanzada
51/261
Universidad de Salamanca Departamento de Informtica y Automtica 51
Caminos al estndar
UMLMicrosoft
Oracle...
OMG
Estandarizacin
PrestigioReconocimiento
Ivar Jacobson
Grady Booch
James Rumbaugh
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
52/261
Universidad de Salamanca Departamento de Informtica y Automtica 52
4. Historia de UML
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Gnesis y evolucin de UML (i)
-
7/27/2019 UML UTPL ProgAvanzada
53/261
Universidad de Salamanca Departamento de Informtica y Automtica 53
Gnesis y evolucin de UML (i)
Objetivos iniciales Unificacin de mtodos OO
Mtodo de Booch [Booch, 1994] OMT [Rumbaugh et al., 1991] OOSE [Jacobson et al., 1992] Otros
Centrarse en un lenguaje de modelado estndar y no en un procesode desarrollo estndar
Lograr un consenso dentro de la comunidad de la orientacin a objetoen cuanto a los conceptos de modelado principales
Ofrecer una semntica que permitiese modelar problemas en
diferentes mbitos Ofrecer unos mecanismos de extensin que permitiesen extender UMLante necesidades concretas
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Gnesis y evolucin de UML (ii)
-
7/27/2019 UML UTPL ProgAvanzada
54/261
Universidad de Salamanca Departamento de Informtica y Automtica 54
Gnesis y evolucin de UML (ii)
En 1994 Rumbaugh y Booch crean el Mtodo Unificado
En 1995 se incorpora Jacobson y los tres autores publican un documento titulado UnifiedMethod V0.8 [Booch y Rumbaugh, 1995]
El mtodo unificado se reorienta hacia la definicin de un lenguaje universal para elmodelado de objetos, transformndose en UML (Unified Modeling Language)
En 1996 se crea un consorcio de colaboradores para trabajar en la versin 1.0 de UML En 1997 se produce la estandarizacin de UML 1.0 por la OMG (Object Management Group)
[Booch et al., 1997] La siguiente versin oficial de UML es la versin 1.1 [Rational et al., 1997] En julio de 1998 aparece una revisin interna de UML que recoge diversos cambios
editoriales, pero no tcnicos. Esta versin es la que se conoce como UML 1.2 [OMG, 1998] Casi un ao ms tarde, en junio de 1999 aparece OMG UML 1.3 [OMG, 1999] con algunos
cambios significativos, especialmente en lo tocante a la semntica En septiembre de 2001 aparece UML 1.4 [OMG, 2001] y en abril 2005 OMG UML v1.4.2
(OMG document: formal/05-04-01) es aceptado como un estndar ISO (ISO/IEC 19501) En 2005 se libera UML 2.0 La versin actual es: Unified Modeling Language: Superstructure Specification.
Version 2.1.2 [OMG, 2007]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Gnesis y evolucin de UML (iii)
-
7/27/2019 UML UTPL ProgAvanzada
55/261
Universidad de Salamanca Departamento de Informtica y Automtica 55Principales etapas de la definicin de UML
Gnesis y evolucin de UML (iii)
Otros mtodos Booch91 OMT-1 OOSE
Booch94 OMT-2
OOPSLA95 Mtodo Unificado 0.8
Junio 96 y Octubre 1996 UML 0.9 & 0.91
UML 1.0Publicacin de UML 1.0
Enero 1997
UML 1.1Publicacin de UML 1.1Septiembre 1997
Colaboradores y
expertos
Documen
tos
pblicos
FragmentacinFragmentacin
UnificacinUnificacin
EstandarizacinEstandarizacin
OMG UML 1.1Aceptacin de UML 1.1 como
estndar por OMG17 de Noviembre 1997
OMG UML 1.2
OMG UML 1.3Modificaciones editoriales
Julio de 1998
Junio de 1999
OMG UML 1.4Septiembre de 2001
Marzo de 2003 OMG UML 1.5
Agosto de 2005 OMG UML 2.0
Nov. 2007
Rev. permanenteOMG UML 2.1
OMG UML v1.4.2
ISO/IEC 19501Abril de 2005
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Limitaciones de UML 1 x
-
7/27/2019 UML UTPL ProgAvanzada
56/261
Universidad de Salamanca Departamento de Informtica y Automtica
Limitaciones de UML 1.x
56
Limitado soporte en el desarrollo de sistemas: semntica dbil No soporta arquitecturas complejas y especificaciones completas del
comportamiento de un sistema No est claramente definido para soportar el desarrollo basado en
componentes
No satisface todos los aspectos de desarrollo de software Relativamente complejo, impreciso e incompleto Orientado a ingenieros y tcnicos, mantiene difcil comunicacin con los
usuarios y clientes
Ha fallado en su penetracin en el mercado Oficialmente no haba sido estandarizado Entre el 7 y 10% de los desarrolladores utilizan UML, META GROUP
Ha creado un nuevo problema: round-trip engineering Generacin parcial del cdigo (slo estructura) UML no se puede EJECUTAR
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Enfoque de UML 2 x (i)
-
7/27/2019 UML UTPL ProgAvanzada
57/261
Universidad de Salamanca Departamento de Informtica y Automtica
Enfoque de UML 2.x (i)
57
En versiones anteriores se haca hincapi en que UML no
era un lenguaje de programacin Ahora UML 2.0 se transforma para capturar ms
comportamiento Herramientas con soporte a la automatizacin y generacin
de cdigo fuente desde modelos UML (MOF y MDA)
Diseado para corregir las limitaciones de UML 1.x Mejorada la visualizacin de requisitos Mejora el soporte a sistemas complejos Incorpora la definicin de componentes (especificacin de
arquitecturas e interfaces)
En continua revisin En base a la experiencia de los usuarios y fabricantes Usabilidad y escalabilidad
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Enfoque de UML 2 x (ii)
-
7/27/2019 UML UTPL ProgAvanzada
58/261
Universidad de Salamanca Departamento de Informtica y Automtica
Enfoque de UML 2.x (ii)
UML for systems engineering, ACM (ene-07)
58
xUML es un 4GL, definido a travs de unprofileen la Superestructura de UML 2.0
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
59/261
Universidad de Salamanca Departamento de Informtica y Automtica 59
5. Visin global de UML
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
OMG UML 1.5 Specification
-
7/27/2019 UML UTPL ProgAvanzada
60/261
Universidad de Salamanca Departamento de Informtica y Automtica 60
OMG UML 1.5 Specification
UML Summary UML Semantics UML Notation Guide UML Example Profiles
Software Development Processes Business Modeling
UMLModel Interchange Object Constraint Language
[OMG, 2003]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Elementos del lenguaje
-
7/27/2019 UML UTPL ProgAvanzada
61/261
Universidad de Salamanca Departamento de Informtica y Automtica 61
Elementos del lenguaje
UML Notation Guide Define la sintaxis grfica de UML 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
UML Semantics Define la semntica de UML Conjunto de reglas que permiten asignar un significado a lasexpresiones sintcticas
lenguaje = sintaxis + semntica
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
OMG UML 2.1.2 Specification
-
7/27/2019 UML UTPL ProgAvanzada
62/261
Universidad de Salamanca Departamento de Informtica y Automtica 62
p
UML 2.1.2 Superstructure UML 2.1.2 Infrastructure UML Object Constraint Language (OCL) UMLXMI/
DiagramInterchange
[OMG, 2007][Adrian, 2006]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
UML Superestructura
-
7/27/2019 UML UTPL ProgAvanzada
63/261
Universidad de Salamanca Departamento de Informtica y Automtica
p
Los conceptos de UML estn agrupados en tres grandes
partes: Parte I: conceptos relacionados con el modelo de estructura
Capacidades de modelado: clases, objetos, compuesto, paquetes,componentes y despliegue
Parte II: conceptos relacionados con el modelo de comportamiento Capacidades de modelado: casos de uso, comunicacin, secuencias,
interaccin, actividades, estados y temporal
Parte III: conceptos adicionales Capacidades de modelado: flujos, plantillas, tipos primitivos... Personalizacin de UML a otros dominios y plataformas
Cada capacidad se especifica en detalle Sintaxis (instancia segn el metamodelo, MOF), semntica, notacin,
diferencias con UML 1.5...
63
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
UML Infraestructura
-
7/27/2019 UML UTPL ProgAvanzada
64/261
Universidad de Salamanca Departamento de Informtica y Automtica
Define los conceptos centrales: core(ncleo) Es un meta-modelo (modelo de modelos)
Por medio de esta especificacin se modela el resto de UML UML es un lenguaje que se define a s mismo
Arquitectura UML / MOF (Meta-Object Facility) El meta-modelo de UML 2.0 est adaptado a MOF Permite mecanismos de extensin (lenguaje configurable)
La idea fundamental en el meta-modelado es que cadaentidad del sistema (clase) juegue dos papeles Como plantilla, cuando se lo ve como una clase, y Como instancia, cuando se lo ve como objeto
Esta parte es transparente al usuario de UML
64
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Modelo conceptual de UML
-
7/27/2019 UML UTPL ProgAvanzada
65/261
Universidad de Salamanca Departamento de Informtica y Automtica 65
Bloques bsicos de construccin
Diagramas (diagramas de clase, diagramas de casos de uso...) Elementos de modelado (clases, interfaces, componentes...) Relaciones (asociaciones, generalizacin, dependencia...)
Reglas de formacin correcta Nombres Alcance Visibilidad Integridad Ejecucin
Mecanismos comunes Especificaciones Adornos Divisores comunes Mecanismos de extensibilidad
p
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Modelado de objetos
-
7/27/2019 UML UTPL ProgAvanzada
66/261
Universidad de Salamanca Departamento de Informtica y Automtica 66
El trmino modelado expresa la descomposicin en elementos simplesms fciles de comprender
El modelado de un sistema se hace tpicamente desde tres puntos devista distintos Modelado de objetos
Aspectos estticos y estructurales del sistema
Modelado dinmico Aspectos temporales y de comportamiento del sistema
Modelado funcional Aspectos de transformacin funcional del sistema
Las diferentes clases de modelos desglosan el sistema en puntos de vistaortogonales
Se pueden representar y manipular utilizando una notacin uniforme Las diferentes partes no son completamente independientes Cada modelo va evolucionando durante el ciclo de desarrollo
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Modelos de representacin
-
7/27/2019 UML UTPL ProgAvanzada
67/261
Universidad de Salamanca Departamento de Informtica y Automtica 67
UML define varios modelos de representacin Modelo de clases Modelo de estados Modelo de casos de uso Modelo de interaccin Modelo de realizacin Modelo de despliegue
Los modelos son manipulados por medio de vistas que seclasifican en tres reas [Rumbaugh et al., 1999] Estructural
Dinmica De gestin de modelos
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Diagramas (i)
-
7/27/2019 UML UTPL ProgAvanzada
68/261
Universidad de Salamanca Departamento de Informtica y Automtica 68
Los diagramas de UML son grafos que describen los
contenidos de una vista UML 2.0 clasifica los diagramas en tres clases
Diagramas de comportamiento: Permiten exhibir comportamientosde un sistema o de los procesos de las organizaciones. Incluyen losdiagramas de actividad, estado, caso tpico y de interaccin
Diagramas de interaccin: Es un subconjunto de los diagramas decomportamiento que permiten enfatizar las interacciones entre losobjetos. Incluyen comunicacin, vista general de interacciones,secuencia y diagrama de tiempo
Diagramas de estructura: Muestran los elementos de una
especificacin que sean independientes del tiempo. Incluyen clase,estructura de componentes, componente, despliegue, objeto ydiagramas de paquetes
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Diagramas (ii)
-
7/27/2019 UML UTPL ProgAvanzada
69/261
Universidad de Salamanca Departamento de Informtica y Automtica 69
Use CaseDiagramsUse Case
DiagramsDiagramas deCasos de Uso
ScenarioDiagramsScenario
DiagramsDiagramas deComunicacin
StateDiagramsState
DiagramsDiagramas deComponentes
Component
DiagramsComponentDiagramsDiagramas deDistribucin
StateDiagramsState
DiagramsDiagramas deObjetos
Scenario
DiagramsScenarioDiagramsDiagramas deEstados
Use CaseDiagramsUse Case
DiagramsDiagramas deSecuencia
StateDiagramsState
DiagramsDiagramas deClases
Diagramas deActividad
Modelo
Los diagramas expresan grficamente partes de un modelo
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Diagramas (iii)
-
7/27/2019 UML UTPL ProgAvanzada
70/261
Universidad de Salamanca Departamento de Informtica y Automtica
Diagrama Descripcin Prior.
Diagrama de Clases Muestra una coleccin de elementos de modelado declarativo(estticos), tales como clases, tipos y sus contenidos yrelaciones
Alta
Diagrama deActividades
Representa los procesos de negocios de alto nivel, incluidos elflujo de datos. Tambin puede utilizarse para modelar lgicacompleja y/o paralela en un sistema
Alta
Diagrama deSecuencias
Representa una interaccin, poniendo el foco en la secuenciade los mensajes que se intercambian, junto con suscorrespondientes ocurrencias de eventos en las Lneas de Vida
Alta
Diagrama deComponentes
Representa los componentes que componen una aplicacin,sistema o empresa. Los componentes, sus relaciones,interacciones y sus interfaces pblicas
Media
Diagrama deDespliegue Fsico
Muestra cmo y dnde se desplegar el sistema. Las mquinas
fsicas y los procesadores se representan como nodos y laconstruccin interna puede ser representada por nodos oartefactos embebidos. Como los artefactos se ubican en losnodos para modelar el despliegue del sistema, la ubicacin esguiada por el uso de las especificaciones de despliegue
Media
70
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Diagramas (iv)
-
7/27/2019 UML UTPL ProgAvanzada
71/261
Universidad de Salamanca Departamento de Informtica y Automtica
Diagrama Descripcin Prior.
Diagrama deMquinas de Estado
Ilustra cmo un elemento, muchas veces una clase, se puedemover entre estados que clasifican su comportamiento, deacuerdo con disparadores de transiciones, guardias derestricciones y otros aspectos de los diagramas de Mquinas deEstados, que representan y explican el movimiento ycomportamiento
Media
Diagrama de Casos
de Uso
Un diagrama que muestra las relaciones entre los actores y el
sujeto (sistema), y los casos de uso Media
Diagrama deObjetos
Presenta los objetos y sus relaciones en un punto del tiempo. Sepuede considerar como un caso especial de un diagrama declases o de comunicaciones
Baja
Diagrama dePaquetes
Presenta cmo se organizan los elementos de modelado enpaquetes y las dependencias entre ellos, incluyendo
importaciones y extensiones de paquetes
Baja
Diagrama deRevisin de laInteraccin
Enfocan la revisin del flujo de control, donde los nodos sonInteracciones u Ocurrencias de Interacciones. Las Lneas de Vidalos Mensajes no aparecen en este nivel de revisin
Baja
71
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Diagramas (v)
-
7/27/2019 UML UTPL ProgAvanzada
72/261
Universidad de Salamanca Departamento de Informtica y Automtica
Diagrama Descripcin Prior.
Diagrama deComunicaciones(anteriormente:Diagrama decolaboraciones)
Es un diagrama que enfoca la interaccin entre lneas de vida,donde es central la arquitectura de la estructura interna ycmo ella se corresponde con el pasaje de mensajes. Lasecuencia de los mensajes se da a travs de un esquema denumerado de la secuencia
Baja
Diagrama deEstructura deComposicin
Representa la estructura interna de un clasificador (tal comouna clase, un componente o un caso de uso), incluyendo los
puntos de interaccin de clasificador con otras partes delsistema
Baja
Diagrama de Tiempos
El propsito primario es mostrar los cambios en el estado o lacondicin de una lnea de vida (representando una Instanciade un Clasificador o un Rol de un clasificador) a lo largo deltiempo lineal. El uso ms comn es mostrar el cambio deestado de un objeto a lo largo del tiempo, en respuesta a los
eventos o estmulos aceptados. Los eventos que se reciben seanotan, a medida que muestran cundo se desea mostrar elevento que causa el cambio en la condicin o en el estado
Baja
72
-
7/27/2019 UML UTPL ProgAvanzada
73/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Elementos de modelado (ii)
-
7/27/2019 UML UTPL ProgAvanzada
74/261
Universidad de Salamanca Departamento de Informtica y Automtica 74
Interfaz
Mtodos
Atributos
Clase
Mtodos
Atributos
Objeto
Estado
Caso deUso
Actor
Nodo
PaqueteNota Componente
Dependencia Generalizacin
Asociacin Agregacin
Composicin
Interfaz requerida
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Reglas de UML (i)
-
7/27/2019 UML UTPL ProgAvanzada
75/261
Universidad de Salamanca Departamento de Informtica y Automtica 75
Los bloques de construccin de UML tienen que
combinarse siguiendo un conjunto de reglas queespecifican un modelo bien formado Un modelo bien formado
Es aqul que es semnticamente autoconsistente y est en
armona con todos sus modelos relacionados Indica que el modelo o una parte suya se atiene a todas las
reglas semnticas y sintcticas que le son de aplicacin
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Reglas de UML (ii)
-
7/27/2019 UML UTPL ProgAvanzada
76/261
Universidad de Salamanca Departamento de Informtica y Automtica 76
UML tiene reglas para Nombres: Cmo llamar a los elementos, relacionesy diagramasAlcance: El contexto que da significado especfico a
un nombreVisibilidad: Cmo se pueden ver y utilizar los
nombres por otros Integridad: Cmo se relacionan apropiada y
consistentemente unos elementos con otros Ejecucin: Qu significa ejecutar o simular un
modelo dinmico
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Reglas de UML (iii)
-
7/27/2019 UML UTPL ProgAvanzada
77/261
Universidad de Salamanca Departamento de Informtica y Automtica 77
Ejemplo de regla semntica: Clase
Si una clase es concreta, todas las operaciones de laclase han de tener un mtodo que la implementa en eldescriptor
Ejemplo de regla sintctica: Clase Notacin bsica: Una clase se representa por un
rectngulo de lnea continua con tres compartimentosseparados por lneas horizontales
Opciones de presentacin: Los compartimentos deatributo y operacin pueden suprimirse
Ejemplo de recomendacin sintctica: Clase Recomendacin de estilo: Los nombres de las clases
han de comenzar por letra mayscula
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Mecanismos generales
M i l ( d di i t i )
-
7/27/2019 UML UTPL ProgAvanzada
78/261
Universidad de Salamanca Departamento de Informtica y Automtica 78
Mecanismos generales (espec., adornos, divisores, extensiones) Mecanismos que aseguran la integridad conceptual de la notacin
Ofrecen comentarios extra, informacin, o semntica sobre un elemento de modelado Ofrecen tambin los mecanismos de extensin a UML Los mecanismos generales incluyen
Estereotipos Especializan las clases del metamodelo. Ej. actor
Etiquetas
Extienden los atributos de las clases del metamodelo Una etiqueta es un par (nombre, valor). Ej. {versin=2.0 autor=fran}
Restricciones Extienden la semntica del metamodelo. Ej. {ordenado}
Notas Comentarios vinculados a uno o ms elementos de modelado
Adornos La especificacin de los elementos pueden incluir detalles grficos o textuales adicionales. Ej. + o #
Dicotomas Clasificador instancia. Ej. tipo/instancia Especificacin realizacin. Ej. tipo/clase
Esto es una nota UML
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Vistas de UML (i)
-
7/27/2019 UML UTPL ProgAvanzada
79/261
Universidad de Salamanca Departamento de Informtica y Automtica 79
Una vista es un subconjunto de UML que modela construcciones querepresentan un aspecto de un sistema Cada una de las vistas representa un aspecto del sistema No es algo grfico, sino una abstraccin compuesta de diversos
diagramas Es el elemento de enlace del lenguaje de modelado con el
mtodo/proceso elegido para el desarrollo
Las vistas se pueden dividir en tres reas [Rumbaugh et al., 1999] Clasificacin estructural
Describe las cosas que hay en el sistema y sus relaciones con otras cosas
Comportamiento dinmico Refleja el comportamiento del sistema en el tiempo
Gestin del modelo Describe la organizacin de los modelos en unidades jerrquicas
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Vi t Di C t P i i l
Vistas de UML (ii)
-
7/27/2019 UML UTPL ProgAvanzada
80/261
Universidad de Salamanca Departamento de Informtica y Automtica 80
rea Vista Diagramas Conceptos Principales
Vista esttica Diagrama de clases Clase, asociacin,generalizacin,dependencia, realizacin,
interfazVista de casos de uso Diagrama de casos de
usoCaso de uso, actor,asociacin, extensin,inclusin, generalizacin de
casos de uso
Diagrama de
componentes
Componente, interfaz,
dependencia, realizacin
Estructural
Vista de
implementacin
Vista de despliegue Diagrama dedespliegue
Nodo, componente,dependencia, localizacin
Vista de mquina deestados
Diagrama de estados Estado, evento, transicin,accin
Vista de actividad Diagrama de
actividad
Estado, actividad,transicin de terminacin,
divisin, unin
Diagrama de
secuencia
Interaccin, objeto,
mensaje, activacin
Dinmica
Vista de interaccin
Diagrama decomunicacin
Colaboracin, interaccin,rol de colaboracin,
mensaje
Gestin demodelo
Vista de gestin delmodelo
Diagrama de clases Paquete, subsistema,modelo
Vistas y diagramas de UML
[Rumbaugh et al., 1999]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Correspondencias D. Casos de Uso
-
7/27/2019 UML UTPL ProgAvanzada
81/261
Universidad de Salamanca Departamento de Informtica y Automtica 81
Sistema
Componente
Funciones
Comportamiento
Comunicacin
Funciones
Comportamiento
Comunicacin
Descomposicin
Conceptual
D. de Secuencia
D. de Clases
D. de objetos
D. de Estados
D. de actividad
D. de comunicacin
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
-
7/27/2019 UML UTPL ProgAvanzada
82/261
Universidad de Salamanca Departamento de Informtica y Automtica 82
6. Vista esttica
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Introduccin
L i t tti tit l f d t d UML
-
7/27/2019 UML UTPL ProgAvanzada
83/261
Universidad de Salamanca Departamento de Informtica y Automtica 83
La vista esttica constituye el fundamento de UML La vista esttica captura la estructura de objetos
En una nica estructura se agrupan estructuras de datos y caractersticasde comportamiento
Los elementos de la vista esttica de un modelo son los conceptos quetienen significado en una aplicacin, incluyendo conceptos del mundoreal y conceptos computacionales
Los elementos clave de la vista esttica son los clasificadores y susrelaciones
Un clasificador es un elemento de modelado que describe cosas Clases, interfaces, tipos de datos, casos de uso, paquetes...
Las relaciones entre clasificadores son asociacin, generalizacin y
varias clases de dependencia entre las que se incluyen realizacin y uso El diagrama ms representativo de esta vista es el diagrama de
clases
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clasificacin
-
7/27/2019 UML UTPL ProgAvanzada
84/261
Universidad de Salamanca Departamento de Informtica y Automtica 84
El mundo real puede ser visto desde abstracciones diferentes
(subjetividad) Mecanismos de abstraccin
Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin
La clasificacin es uno de los mecanismos de abstraccin msutilizados
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Concepto de clasificador
-
7/27/2019 UML UTPL ProgAvanzada
85/261
Universidad de Salamanca Departamento de Informtica y Automtica 85
Un clasificador es un concepto
discreto en el modelo, que tieneidentidad, estado, comportamientoy relaciones [Rumbaugh et al.,1999]
CLASIFICADOR FUNCIN NOTACIN
Actor Usuario externo de un sistema
Clase Un concepto del sistema modelado
Clase-en-estado Una clase restringida a un estado particular
Rol-clasificadorUn clasificador restringido a un uso particular enuna colaboracin
Componente Una porcin fsica de un sistema
Tipo de datoUn descriptor de un conjunto de valores primitivosque necesitan una identidad
Nombre
InterfazUn conjunto nombrado de operaciones quecaracterizan un comportamiento Inombre
Nodo Un recurso informtico
Seal Una comunicacin asncrona entre objetos
Subsistema Un paquete que se trata como una unidad con unaespecificacin, implementacin e identidad
Caso de usoUna especificacin del comportamiento de unaentidad en su interaccin con agentes externos.
Nombre
Nombre[s]
Rol:Nombre
Seal
Subsistema
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Objeto (i)
Concepto intuitivo
-
7/27/2019 UML UTPL ProgAvanzada
86/261
Universidad de Salamanca Departamento de Informtica y Automtica 86
Concepto intuitivo Es la unidad de descomposicin fundamental de un
sistema en el paradigma de la orientacin al objeto Objeto como cosa del mundo real, algo tangible, visible
Cualquier cosa, ocurrencia o fenmeno que puede ser identificadoy caracterizado
Objeto como abstraccin intelectualmente comprensible Objeto como ejecutor de un pensamiento o accin ... un objeto modela una parte de la realidad. Con el concepto
de objeto, se modela la permanencia e identidad de conceptospercibidos
Una entidad definida por un conjunto de atributos comunes y
los servicios u operaciones asociados Un objeto tiene estado, exhibe algn comportamiento bien
definido y tiene una identidad nica
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Objeto (ii)
-
7/27/2019 UML UTPL ProgAvanzada
87/261
Universidad de Salamanca Departamento de Informtica y Automtica 87
[Booch, 1994]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Objeto (iii)
E t d
-
7/27/2019 UML UTPL ProgAvanzada
88/261
Universidad de Salamanca Departamento de Informtica y Automtica 88
Estado El estado de un objeto abarca todas las propiedades (normalmente
estticas) del mismo ms los valores actuales (normalmentedinmicos) de cada una de esas propiedades [Booch, 1994]
Comportamiento El comportamiento de un objeto es cmo acta y reacciona un
objeto, en funcin de sus cambios de estado y paso de mensajes
[Booch, 1994] El estado de objeto representa los resultados acumulados de su
comportamiento [Booch, 1994] Una operacin denota un servicio que una clase ofrece a sus clientes
[Booch, 1994]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Identidad
Objeto (iv)
-
7/27/2019 UML UTPL ProgAvanzada
89/261
Universidad de Salamanca Departamento de Informtica y Automtica 89
Es aquella propiedad de un objeto que lo distingue detodos 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 deltiempo
El modelo/sistema debe preocuparsede la identificacin de las entidades
El tiempo de vida de un objeto es el tiempo que se extiendedesde el momento en que se crea un objeto por primera vez(consumiendo as espacio por primera vez) hasta que ese
espacio se recupera
Identidad
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Objeto (v)
Un objeto tiene estado comportamiento e identidad; la estructura y el
-
7/27/2019 UML UTPL ProgAvanzada
90/261
Universidad de Salamanca Departamento de Informtica y Automtica 90
Un objeto tiene estado, comportamiento e identidad; la estructura y elcomportamiento de objetos similares estn definidos en su clase comn;
los trminos instancia y objeto son intercambiables [Booch, 1994] Un objeto representa un elemento, unidad o entidad individual e
identificable, ya sea real o abstracta, con un papel bien definido en eldominio del problema [Smith y Tockey, 1988]
Entidad conceptual que es identificable, tiene caractersticas que
comporten un estado interno y tiene unas operaciones que puedencambiar el estado del sistema local, y que tambin pueden solicitaroperaciones de objetos relacionados [Champeaux et al., 1993]
Una entidad delimitada precisamente y con identidad, que encapsulaestado y comportamiento. El estado es representado por sus atributos yrelaciones, el comportamiento es representado por sus operaciones,mtodos y mquinas de estados. Un objeto es una instancia de unaclase [OMG, 2003]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Objeto (vi)
Atributos Balance
-
7/27/2019 UML UTPL ProgAvanzada
91/261
Universidad de Salamanca Departamento de Informtica y Automtica 91
Atributos
Comportamiento
Estado Identidad Responsabilidad
Balance Tipo de inters deudor Inters acreedor
Objeto Cuenta Bancaria
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
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Y en resumen
Objeto (vii)
-
7/27/2019 UML UTPL ProgAvanzada
92/261
Universidad de Salamanca Departamento de Informtica y Automtica 92
Y en resumen ...
Servicios
Atributos
calcular_edad
calc_sueldo_neto
calc_base_imponible
Servicios
Atributos
fecha_nac
nombresueldo_base
complementosirpf
s_social
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (i)
Construccin estructural por excelencia en los sistemas orientados a
-
7/27/2019 UML UTPL ProgAvanzada
93/261
Universidad de Salamanca Departamento de Informtica y Automtica 93
Construccin estructural por excelencia en los sistemas orientados aobjetos Una clase representa un concepto discreto dentro de la aplicacin que se est
modelando
Una clase es un descriptor de un conjunto de objetos con estructura,comportamiento y relaciones similares 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
Una clase dicta la estructura y comportamiento de sus instancias(objetos)
Las instancias contienen localmente datos que se corresponden con laestructura dictada por la clase y que representa el estado del objeto
Todos los objetos en un sistema de objetos pertenecen a alguna clase
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Una clase define un conjunto de objetos que tienen un
Clase (ii)
-
7/27/2019 UML UTPL ProgAvanzada
94/261
Universidad de Salamanca Departamento de Informtica y Automtica 94
Una clase define un conjunto de objetos que tienen unestado (estructura) y comportamiento El estado se describe por atributos y asociaciones
Los atributos se utilizan generalmente para los valores puros de losdatos sin identidad
Las asociaciones se utilizan para las conexiones entre objetos conidentidad
Las piezas individuales de comportamiento invocable se describenmediante operaciones Un mtodo es la implementacin de una operacin, cada uno con su
correspondiente signatura
Puestos en conjunto, los atributos y los mtodos de una clasesuelen recibir el nombre de recursos o propiedades de la clase
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (iii)
L l ti b l id tifi
-
7/27/2019 UML UTPL ProgAvanzada
95/261
Universidad de Salamanca Departamento de Informtica y Automtica 95
Las clases tienen un nombre que las identifica
Una clase puede ser vista como El mecanismo para crear objetos
La fbrica de objetos
El conjunto de todas sus instancias
Una clase es como una especie de contrato que vincula a unaabstraccin con todos sus clientes
Distincin entre visin externa (interfaz) e interna
(implementacin) de la clase
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (iv)
-
7/27/2019 UML UTPL ProgAvanzada
96/261
Universidad de Salamanca Departamento de Informtica y Automtica 96
Descripcin abstracta de los datos y del comportamiento de una
coleccin de objetos similares [Budd, 1991] Descripcin de un grupo de objetos con propiedades similares,
comportamientos comunes, interrelaciones comunes y semnticacomn [Rumbaugh et al., 1991]
Una clase es un tipo abstracto de datos equipado con una posibleimplementacin [Meyer, 1997]
Construccin lingstica en un lenguaje orientado a objetos. Lasclases implementan tipos y son plantillas a partir de las cuales secrean objetos. Los objetos de la misma clase tienen estructura yoperaciones comunes de acuerdo a la definicin de la clase [Crespo,2000]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (v)
En UML las clases se representan por rectngulos
-
7/27/2019 UML UTPL ProgAvanzada
97/261
Universidad de Salamanca Departamento de Informtica y Automtica 97
p p gcompartimentados El primer compartimento contiene el nombre de la clase, que debe ser
nico en el paquete que la contiene El segundo contiene los atributos El ltimo los mtodos
Motocicleta
colorcilindradavelocidadMaxima
arrancar
acelerarfrenar
Nombre de la clase
Atributos de la clase
Mtodos de la clase
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (vi)
Un conjunto de clases puede utilizar la relacin de generalizacin y elmecanismo de herencia construidos en ella para compartir piezas
-
7/27/2019 UML UTPL ProgAvanzada
98/261
Universidad de Salamanca Departamento de Informtica y Automtica 98
mecanismo de herencia construidos en ella para compartir piezascomunes de estado y descripcin del comportamiento
Una clase tiene un nombre nico dentro de su contenedor, que esgeneralmente un paquete, aunque puede ser tambin otra clase Para hacer referencia a una clase que est presente en otro paquete se
utilizar la sintaxisNombre del Paquete::Nombre de la Clase
La clase tiene una visibilidad con respecto a su contenedor La visibilidad especifica cmo puede ser utilizada por otras clases externas alcontenedor
Una clase tiene una multiplicidad que especifica cuantas instancias de ellapueden existir La mayora de las veces es muchos (cero o ms, sin lmite explcito) Pero tambin existen clases unitarias de las que existe una sola instanciadurante la ejecucin
Las clases unitarias se representan mediante un smbolo de clase con un pequeo1 en la esquina superior derecha
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (vii)
Ejemplos de definicin de clases
-
7/27/2019 UML UTPL ProgAvanzada
99/261
Universidad de Salamanca Departamento de Informtica y Automtica 99
Ventana
Ventana
tamao: rea
visibilidad: Lgico
display ()hide ()
+tamao: rea =(100,100)#visibilidad: Lgico= invisible+tamao-por-defecto: Rectngulo#tamao-mximo: Rectngulo-xptr: XWindows*
+display ()+hide ()+create ()-attrachXWindow(xwin:Xwindows*)
Ventana
{abstract,
autor=Joseestado=comprobada}
PenTracker
{abstract}
Rectangulo
P1: Punto
P2: Punto
Rectangulo (p1:Punto, p2:Punto)
rea ():Real
aspecto (): Real
...
mueve (delta: Punto)
escala (ratio: Real)
...
Ejemplos de definicin de objetos
MiVentana :Ventana
[OMG, 2003]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase (viii)
A t l R itid
-
7/27/2019 UML UTPL ProgAvanzada
100/261
Universidad de Salamanca Departamento de Informtica y Automtica 100
ColaImpresora Impresora11 *
Ejemplo de clase unitaria
ArtculoRemitido
SesinConferencias
1..*
0..1
Asociacin entre clases
ArtculoRemitido
ArtculoRemitido[aceptado]
ArtculoRemitido[rechazado]
SesinConferencias
1..*
1
Ejemplo de clase en estado
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase abstracta
Clase que no instanciable directamente, biend l (l f l l
-
7/27/2019 UML UTPL ProgAvanzada
101/261
Universidad de Salamanca Departamento de Informtica y Automtica 101
porque su descripcin es incompleta (le falta el
mtodo de una o ms operaciones) o porque noha sido pensada para ser instanciada aunque sudescripcin est completa [Rumbaugh et al.,1999]
El objetivo fundamental de una clase abstracta esla especializacin
Una clase concreta no puede tener operacionesabstractas, pero una clase abstracta si puedetener operaciones concretas
En UML el nombre de una clase abstracta debeaparecer en cursiva Tambin se puede utilizar la palabra abstract en la
lista de propiedades que aparece despus o debajodel nombre
Por ejemplo, Cuenta {abstract}
Clase abstractaOperacin concret
Operacin abstrac
Clases concretas
Operacin concreta sobreescrita
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase parametrizada (i)
Elemento parametrizado de un modelo
-
7/27/2019 UML UTPL ProgAvanzada
102/261
Universidad de Salamanca Departamento de Informtica y Automtica 102
Es un descriptor de una clase con uno o ms parmetros formales sin
especificar Define una familia de clases, cada clase es especificada asociando los
parmetros a una lista de valores actuales
Tpicamente, los parmetros son clasificadores que representan tipos deatributos, pero tambin pueden representar enteros
Los elementos subordinados dentro de la plantilla se definen en trminosde los parmetros formales, as quedan enlazados cuando se enlaza laplantilla en s con los valores reales
Para su representacin, UML utiliza un rectngulo en lnea discontinuasuperpuesto en la esquina superior derecha de un rectngulocorrespondiente a una clase
Para utilizarla, los parmetros tienen que estar asociados (en tiempo demodelado) con valores reales
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase parametrizada (ii)
T,k:Entero
-
7/27/2019 UML UTPL ProgAvanzada
103/261
Universidad de Salamanca Departamento de Informtica y Automtica 103
1..k
FVector
T
FVector Lista de Direcciones
Enlazado explcitoLa clase tiene su propio nombre
Enlazado implcitoLa clase tiene nombre annimo
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Clase parametrizada (iii) Ejemplo
template< class T >
class Pila {
int cima;
int tamano;
T * i
pila.h
#include
#include "prueba.h"
int main() {
Pila< int > intPila(10);
int i=100;
cout
-
7/27/2019 UML UTPL ProgAvanzada
104/261
Universidad de Salamanca Departamento de Informtica y Automtica 104
T *espacio;
bool estaVacia() const {return cima==-1;}
bool estaLlena() const {return cima==tamano-1;}
public:Pila(int);
~Pila() {delete [] espacio;}
bool poner (const T&);
bool quitar(T&);
int elementos();
};
// Constructor por defecto
template< class T >
Pila< T >::Pila(int t){
tamano = t > 0 ? t : 10;
cima=-1;
espacio = new T[tamano];
}
template< class T >
bool Pila< T >::poner(const T &valor) {
if ( !estaLlena() ) {
espacio[++cima]=valor;
return true;
}
return false;
}
template< class T >
bool Pila< T >::quitar(T &retorno) {
if ( !estaVacia() ) {
retorno = espacio[cima--];return true;
}
return false;
}
template< class T >
int Pila< T >::elementos() {return cima+1;}
cout
-
7/27/2019 UML UTPL ProgAvanzada
105/261
Universidad de Salamanca Departamento de Informtica y Automtica 105
p p p p j
Cada objeto de la clase tiene un valor independiente para elatributo (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
Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye Favorece la modularidad y el mantenimiento
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Atributo (ii)
Los niveles de encapsulacin estn heredados de los niveles
-
7/27/2019 UML UTPL ProgAvanzada
106/261
Universidad de Salamanca Departamento de Informtica y Automtica 106
pde C++ (-) Privado
Es el ms fuerte Esta parte es totalmente invisible (excepto para clases friendsen
terminologa C++)
(#) Protegido Los atributos/operaciones protegidos estn visibles para las clases
friendsy para las clases derivadas de la original
(+) Pblico Los atributos/operaciones pblicos son visibles a otras clases (cuando se
trata de atributos se est transgrediendo el principio de encapsulacin)
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Atributo (iii) La notacin de los atributos es
visibilidad nombre [multiplicidad]:tipo=valor-inicial{cadena de propiedades}
-
7/27/2019 UML UTPL ProgAvanzada
107/261
Universidad de Salamanca Departamento de Informtica y Automtica 107
Visibilidad Expresa si los atributos son visibles a otros objetos
Nombre Es una cadena que sirve para identificar al atributo Slo el nombre es obligatorio
Multiplicidad
Posible nmero de valores del atributo que pueden existirsimultneamente Por defecto: exactamente 1
La expresin de tipo Indica el tipo o dominio del atributo
El valor inicial
Este elemento es opcional, (en cuyo caso se omite el signo igual) La cadena de propiedades
Indica los valores de las propiedades de un elemento
p p p p p
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Atributo (iv)
En una clase, el valor descrito por un atributo puede ser distinto en cadaobjeto (alcance de instancia) o compartido por todos los objetos (alcance
-
7/27/2019 UML UTPL ProgAvanzada
108/261
Universidad de Salamanca Departamento de Informtica y Automtica 108
objeto (alcance de instancia) o compartido por todos los objetos (alcance
de clase) Alcance de instancia: Descripcin de un valor sin existencia hasta que no se
instancia el objeto. Situacin por defecto Alcance de clase: Declaracin de un valor discreto individual que existe a los
largo de toda la vida de un sistema. Guardan informacin de una clase entera.Se representa subrayando la cadena que expresa el tipo y el nombre
Atributo base vs. atributo derivado (fechaNacimiento vs. edad) El atributo derivado se representa con una barra / delante del atributo
La variabilidad indica si el valor del atributo puede cambiar tras lainicializacin. Por defecto changeable addOnly atributos con multiplicidad mayor que uno. Se pueden aadir
valores frozen el valor no se puede modificar una vez inicializado
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Atributo (v)
visibilidad nombre [multiplicidad]:tipo=valor-inicial{cadena de propiedades}
-
7/27/2019 UML UTPL ProgAvanzada
109/261
Universidad de Salamanca Departamento de Informtica y Automtica 109
+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,
-
7/27/2019 UML UTPL ProgAvanzada
110/261
Universidad de Salamanca Departamento de Informtica y Automtica 110
Una operacin es la especificacin de una transformacin o consulta
que puede tener un objeto Especifica una transformacin del estado del objeto destino o bien una
consulta que proporciona un valor a quien invoque esa operacin
Un mtodo es la implementacin de una operacin Especifica el algoritmo o procedimiento que da lugar a los resultados de
una operacin
Las declaraciones de operacin son heredadas por losdescendientes de la clase Si otra declaracin tiene la misma signatura coincidente, entonces se
trata de la misma operacin
La declaracin de la operacin que sea el antepasado comn de todaslas declaraciones de esa clase es lo que se denomina el origen
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Operacin (ii)
Notacin similar a los atributosestereotipo visibilidad nombre (lista de parmetros): tipo-de-retorno {cadena de propiedades}
-
7/27/2019 UML UTPL ProgAvanzada
111/261
Universidad de Salamanca Departamento de Informtica y Automtica 111
Lista-de-parmetros: Es una lista de declaraciones deparmetros separadas por comas direccin nombre: tipo valor-por-defecto
direccin in: Entrada pasada por valor. Cambios no disponibles al emisor out: Salida. No existe valor de entrada. Valor final disponible para el emisor inout: Entrada que se puede modificar. Resultado final disponible al emisor return: Valor proporcionado por una llamada. El valor est disponible para el
emisor
nombre: Es el nombre del parmetro tipo: Referencia a un clasificador (clase, tipo de datos o interfaz). El
argumento que est enlazado con el parmetro tiene que ser unainstancia del clasificador o de uno de sus descendientes
estereotipo visibilidad nombre (lista de parmetros): tipo-de-retorno {cadena de propiedades}
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Operacin (iii)
Cadena de propiedades: Lista de propiedades o restriccionesseparadas por comas
-
7/27/2019 UML UTPL ProgAvanzada
112/261
Universidad de Salamanca Departamento de Informtica y Automtica 112
separadas por comas isQuery: Indica si la operacin deja o no intacto el estado del sistema
= true o false isPolymorphic: Indica si la implementacin de la operacin puede o no
ser anulado por las clases descendientes = true o false
concurrency: Indica la semntica de las llamadas concurrentes a una
misma instancia pasiva sequential: Los que la llaman deben coordinarse de modo que slo se
pueda ejecutar una llamada a un objeto al mismo tiempo guarded: Pueden producirse mltiples llamadas simultaneas, pero slo se
permite que se ejecute una en un momento dado. El resto quedanbloqueadas
concurrent: Pueden producirse mltiples llamadas simultneas. Todas seejecutan concurrentemente
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Operacin (iv)
Una operacin con alcance de clase se presenta subrayada
-
7/27/2019 UML UTPL ProgAvanzada
113/261
Universidad de Salamanca Departamento de Informtica y Automtica 113
Las operaciones se suelen expresar en minscula (primeraletra incluida) Si la operacin es abstracta se acostumbra a mostrar en
cursiva
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
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Operacin (v)
Ejemplo de un mtodo de clase
-
7/27/2019 UML UTPL ProgAvanzada
114/261
Universidad de Salamanca Departamento de Informtica y Automtica 114
class metodoClase {
public static void main(String s[]) {
double x=Math.PI/2;
System.out.println(Math.sin(x));
}
}
-
7/27/2019 UML UTPL ProgAvanzada
115/261
-
7/27/2019 UML UTPL ProgAvanzada
116/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
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.
-
7/27/2019 UML UTPL ProgAvanzada
117/261
Universidad de Salamanca Departamento de Informtica y Automtica 117
p p y p p g yUna interfaz se centra en los efectos, no en la estructura, de un servicio dado. Una interfaz no ofrece unaimplementacin para ninguna de sus operaciones. La lista de operaciones puede incluir tambin lasseales que esa clase est dispuesta a manejar
Una interfaz se emplea para especificar un servicio que proporciona un proveedor y que pueden solicitarotros elementos. La interfaz da nombre a una coleccin de operaciones que funcionan en cooperacinpara 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 esimplementado 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 puedenproporcionar 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 dela interfaz. Si una clase realiza ms de una interfaz, tiene que contener todas y cada una de lasoperaciones que se encuentren en cualquiera de sus interfaces. Una misma operacin puede aparecer enms de una interfaz. Si coinciden sus signaturas deben representar la misma operacin o bien estarn enconflicto 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]
-
7/27/2019 UML UTPL ProgAvanzada
118/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Interfaz (iv)
Una clase
-
7/27/2019 UML UTPL ProgAvanzada
119/261
Universidad de Salamanca Departamento de Informtica y Automtica 119
Una clase
Una interfaz
-
7/27/2019 UML UTPL ProgAvanzada
120/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Interfaces en UML 2.0 (i)
Notacin Lollilpop Dependencias de un calificador a una interfaz
-
7/27/2019 UML UTPL ProgAvanzada
121/261
Universidad de Salamanca Departamento de Informtica y Automtica
Dependencias de un calificador a una interfaz Interfaces requeridas por un clasificador (Requeridas) Interfaces implementadas por un clasificador (Provistas)
[Adrian, 2006b]
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Interfaces en UML 2.0 (y ii)
-
7/27/2019 UML UTPL ProgAvanzada
122/261
Universidad de Salamanca Departamento de Informtica y Automtica
[Adrian, 2006b]
-
7/27/2019 UML UTPL ProgAvanzada
123/261
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Relaciones (ii)
Persona Relacin
-
7/27/2019 UML UTPL ProgAvanzada
124/261
Universidad de Salamanca Departamento de Informtica y Automtica 124
USALENUSA
Ayuntamiento
PepeLuis
Mara
Ing.SwRedesPOO
Asignatura
Persona
Organizacin
Clase
Objeto
Enlace
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Relaciones (iii) Expresan las conexiones entre clasificadores
Los enlaces entre objetos pueden representarse entre las respectivas clases
Formas de relacin entre clases
-
7/27/2019 UML UTPL ProgAvanzada
125/261
Universidad de Salamanca Departamento de Informtica y Automtica 125
Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin
Las relaciones de Agregacin y Generalizacin forman jerarquas de clases Pueden ser de varios tipos RELACIN FUNCIN NOTACIN
Asociacin
Descripcin de una conexin entre instancias de
clases
Dependencia Relacin entre dos elementos del modelo
FlujoRelacin entre dos versiones de un objeto enmomentos sucesivos
GeneralizacinRelacin entre una descripcin ms general y unams especfica de algo, usado por herencia
Realizacin Relacin entre una especificacin y suimplementacin
UsoSituacin en la que un elemento requiere a otro parasu correcto funcionamiento.
Ingeniera del Software
Modelo ob jeto. Una descrip cin de UML
Asociacin (i)
Una asociacin describe las conexiones semnticas entre objetos dediferentes clases
-
7/27/2019 UML UTPL ProgAvanzada
126/261
Universidad de Salamanca Departamento de Informtica y Automtica 126
Una instancia de una asociacin es un enlace Una asociacin relaciona una lista de dos o ms clasificadores, con las
repeticiones permitidas Un enlace abarca una lista de objetos Las asociaciones llevan la informacin sobre relaciones entre objetos en
un sistema Las asociaciones pueden ser reflexivas, binarias, ternarias o de
orden s