UT3_3
-
Upload
maria-alvarez-lopez -
Category
Documents
-
view
3 -
download
1
description
Transcript of UT3_3
-
16/04/2015
1
UT3: UMLTema 3: Modelado de Clases
1
Modelado de clases
Clases y objetos
Uso de la orientacin a objetos Concepcin de una clase
Atributos
Operaciones
Estereotipos
Responsabilidades y restricciones
Diagrama de clases
2
-
16/04/2015
2
Clases y Objetos.
Los diagramas de Clases y de Objetos son los principales modos de representar los aspectos estructurales en UML.
Diagramas de clases. Estructura del sistema. Clases. Atributos: Tipos, valores iniciales. Operaciones: Funciones, mtodos.
Relaciones con otras clases: Asociaciones Diagramas de objetos. Estructura del sistema en
tiempo de ejecucin. Objetos. Instancias de una Clase. Atributos (valores actuales).
Links. Relaciones entre objetos, instancias de asociaciones
3
Clases y objetos
Un objeto es la instancia de una clase (categora) que cuenta con una estructura:
Atributos (o propiedades)
Operaciones (todas las actividades
que el objeto es capaz de realizar)
Ejemplo: Vosotros y yo somos instancias de la clase Persona
Atributos de Persona: altura, peso, edad
Operaciones: comer, dormir, leer, escribir, hablar, trabajar.
En el mundo de la orientacin a objetos, una clase en realidad es una plantilla para fabricar objetos
Caractersticas o rasgos
4
-
16/04/2015
3
Clases y objetos
Instancia:Cada objeto que pertenece a una clase
Instanciacin / Instanciar: Proceso de generacin o creacin de las instancias (objetos) de una clase
Objeto: Representacin de algo que se describe mediante un identificador, una estructura y un comportamiento. Instancia de una Clase
5
Ejemplo
En la clase lavadora se indica la marca, el modelo, el nmero de serie y la capacidad, junto con las operaciones agregar ropa, agregar detergente y sacar ropa.
Tendremos un mecanismo para fabricar nuevas instancias a partir de su clase nuevos objetos.
Luego, tenemos una plantilla en este modelo original para generar nuevas instancias de Lavadoras
6
-
16/04/2015
4
Clases y objetos
Es importante recordar que el propsito de la orientacin a objetos es desarrollar software que refleje particularmente (que modele) un esquema del mundo.
Cuantos ms atributos y acciones se tengan en cuenta , mayor ser la similitud del modelo con la realidad
En el ejemplo de la lavadora tendremos un modelo ms exacto si incluimos atributos como el volumen del tambor, cronmetro interno, motor y su velocidad. Y.. todava ser un modelo ms preciso si se incluyen acciones de agregar suavizante, cronometrar el lavado, el aclarado y el centrifugado, por ejemplo
7
Uso de la orientacin a objetos
Concepcin de una clase En UML un rectngulo es el smbolo que
representa la clase
El nombre de la clase es, por convencin, una palabra con la primera letra en maysculas (sin acentos) y normalmente se coloca en la parte superior del rectngulo (Lavadora)
Si el nombre consta de dos palabras, se unen inicindolas cada una con maysculas:
LavadoraIndustrial
8
-
16/04/2015
5
Uso de la orientacin a objetos
Concepcin de una clase En el tema 1 hablamos de los
paquetes y decamos que podan agrupar elementos que ofrecen el mismo servicio
El paquete puede jugar un papel en el nombre de la clase Si la clase Lavadora
formase parte de un paquete Electrodomesticos, podemos darle el nombre :
El par de puntos separa el nombre del paquete del nombre de la clase: A este tipo de nombre de clase se le conoce como nombre de ruta
Electrodomesticos::Lavadora
Clase 1
9
Uso de la orientacin a objetos
Concepcin de una clase
Visibilidad (opcional), aplicable a atributos y mtodos: Pblica: (+) Elemento no encapsulado visible para todos Privada: (-) Elemento encapsulado visible en la clase y subclases de la clase Protegida: (#) Elemento encapsulado visible solo en la clase Paquete: (~) Elemento encapsulado visible solo en las clases del mismo
paquete.
En cursiva si es
10
-
16/04/2015
6
Uso de la orientacin a objetos
Atributos Es una propiedad o
caracterstica de una clase y describe un rango de valores que la propiedad podr contener en los objetos (instancias) de la clase Una clase puede contener
varios o ningn atributo
Por convencin, si el atributo consta de una sola palabra se escribe en minsculas
Si el nombre contiene ms de una palabra, cada palabra estar unida a la anterior y comenzar con una letra mayscula, a excepcin de la primera palabra que comenzar en minscula
11
Uso de la orientacin a objetos
Atributos
Un objeto cuenta con un valor especfico en cada uno de los atributos que lo componen
El nombre miLavadora:Lavadora es una instancia con nombre, pero podemos tener una instancia annima como :Lavadora
El atributo puede mostrar su tipo y su valor predeterminado
12
-
16/04/2015
7
Uso de la orientacin a objetos
Operaciones o Mtodos
Algo que la clase puede hacer
La lista de operaciones o acciones de una clase aparece debajo de una que las separa de los atributos de la clase
Si el nombre consta de ms de una palabra se unen como el nombre de la clase
El nombre de la operacin se escribe con minsculas si consta de una sola palabra
13
Uso de la orientacin a objetos
Operaciones
En los parntesis se pueden mostrar el parmetro con el que funcionar la operacin junto con el dato.
La funcin devolver un valor cuando realice su tarea, pudindose mostrar el tipo de valor de que se trate
Esta seccin se conoce como firma de la operacin
14
-
16/04/2015
8
Uso de la orientacin a objetos
Atributos y Operaciones
Lo normal es que contemos con ms de una clase a la vez, por lo tanto, es posible que no sea necesario que aparezcan todos los atributos , ni todas las operaciones, para no crear diagramas saturados
En ocasiones se pueden sustituir por puntos suspensivos, indicando atributos u operaciones que no se encuentran en todo el conjunto
15
Uso de la orientacin a objetos
Estereotipos
Si se tiene una larga lista de atributos u operaciones se pueden organizar de forma que sea ms comprensible
Son estructuras flexibles, pudindose utilizar de diversos modos, por ejemplo con un smbolo que indique el papel de la clase
16
-
16/04/2015
9
Uso de la orientacin a objetos
Responsabilidades
Descripcin de lo que har la clase en su conjunto
Restricciones
Una regla entre llaves restringe al atributo capacidad para contener uno o ms valores
Con OCL (Lenguaje de restriccin de objetos) es una herramienta para agregar restricciones en UML
17
Uso de la orientacin a objetos
Notas adjuntas Proporciona mayor informacin respecto a la clase
Puede contener texto o imgenes
18
-
16/04/2015
10
Cmo encontrar las clases?
En conversaciones con los clientes hay que prestar atencin a los sustantivos que utilizan para describir las entidades de sus negocios: Clases del modelo
Hay que poner atencin a los verbos que se escuchen: Sern las operaciones de las clases.
Los atributos surgirn como sustantivos relacionados con los nombres de la clase
Una vez que tenemos la lista bsica de clases, preguntaremos a los clientes qu es lo que cada clase hace dentro del negocio: Responsabilidad de la clase
19
Diagramas de clases
Tipos de clases
Clases Parametrizables: Plantillas de clases que se pueden parametrizar con uno o ms tipos de datos segn sea necesario (Clases Genricas)
Clases Abstractas: Clases que no tienen implementacin para todos los mtodos definidos
Clases Utilitarias: Clases que contienen libreras de funciones, por ejemplo la API java.util
20
-
16/04/2015
11
Diagrama de clases - Relaciones
Notacin general
Clase1
Plantilla
[0..*] [0..*]
Rol 1 Rol 2Relacin 1-2
{Restriccin}
Clase
21
Diagramas de clases
Dependencia El elemento dependiente requiere la presencia del elemento independiente para su especificacin o implementacin. Los cambios en el elemento independiente pueden afectar al elemento dependiente
Asociacin Especificacin de un conjunto de conexiones entre instancias. Representan la estructura y posibilidades de comunicacin del sistema.
Generalizacin Relacin entre un elemento general y un elemento especfico. El elemento especfico puede aadir informacin y debe ser consistente con el elemento general.
Realizacin Relacin donde un elemento realiza o implementa la especificacin dada por otro elemento.
Agregacin Una forma especial de asociacin que especifica una relacin todo-parte entre el agregado (conjunto) y la parte componente.
Relaciones: Tipos
22
-
16/04/2015
12
Principios de la Orientacin a Objetos
Abstraccin Simplificacin de la realidad.
Retener los aspectos relevantes y prescindir del resto.
El proceso de abstraccin es relativo a un punto de vista particular.
Clasificacin
Encapsulamiento
Generalizacin
Polimorfismo
23
Principios de la Orientacin a Objetos
Clasificacin Relacin bsica entre clases y objetos clasificados en
clases.
Un objeto es instancia de una clase, la clase es su tipo
24
-
16/04/2015
13
Principios de la Orientacin a Objetos
Encapsulamiento
Capacidad de una clase para ocultar su implantacin.
Permite ocultar su informacin al exterior, es decir, que un atributo o un mtodo no sean manipulados por otras clases
Para ocultar informacin, la clase proporciona niveles de acceso: pblico, protegido, privado, etc.
Mtodos de acceso al encapsulamiento:
Set
get
25
Principios de la Orientacin a Objetos
Interfaz: Conjunto de atributos y operaciones que
ofrecen un servicio coherente. No contiene la implementacin de las operaciones. No se puede instanciar. Una interfaz puede tener asociaciones navegables. Anloga a una clase abstracta con todas sus
operaciones abstractas. Distinta de interfaz natural: conjunto de
operaciones pblicas de una clase (accesibles a travs de cualquier asociacin navegable hacia la clase).
26
Agrupa clases que realizan lasmismas operaciones
-
16/04/2015
14
Principios de la Orientacin a Objetos
Interfaces La relacin de herencia existente entre una clase
interfaz y la subclase que implementa esa interfaz se conoce como relacin de realizacin.
Esta relacin de herencia se representa grficamente mediante la siguiente flecha:
27
Principios de la Orientacin a Objetos
Interfaces: Ejemplo
28
es un estereotipo
-
16/04/2015
15
Principios de la Orientacin a Objetos
Generalizacin o Herencia Herencia: Propiedad que tienen las clases de
heredar de sus superclases estructura y/o comportamiento (Simple /Mltiple)
29
Agrupa clases que sonlo mismo
Principios de la Orientacin a Objetos
Generalizacin: Jerarqua de clases
Representaciones alternativas:
Relaciones binarias
Estructura en rbol
30
-
16/04/2015
16
Principios de la Orientacin a Objetos
Polimorfismo Capacidad de ejecutar distintas operaciones en respuesta al mismo mensaje. Una operacin polimrfica es aqulla que tiene muchas implementaciones.
La subclase puede modificar la implementacin de las operaciones heredadas. El mismo nombre de operacin puede designar implementaciones distintas. Objetos de distintas clases en el mismo rbol jerrquico tienen operaciones con el
mismo nombre pero con diferente implementacin, por tanto pueden responder al mismo mensaje cada uno a su manera.
31
Enlaces y Asociacin
Asociacin
Conexin de clases entre s de forma conceptual.
Enlace: conexin entre objetos.
Determina una tupla de objetos. Instancia de una asociacin.
32
-
16/04/2015
17
Asociacin
Nombre de Asociacin y Nombre de Rol Los nombres de asociacin se pueden repetir en un modelo,
excepto para asociaciones entre las dos mismas clases.
Los nombres de rol se pueden repetir en asociaciones distintas, y pueden ser iguales que los nombres de las clases asociadas.
33
Asociacin
Multiplicidad de la Asociacin (I) En una asociacin binaria, la multiplicidad de un
extremo de asociacin especifica el nmero de instancias destino que pueden estar enlazadas con una nica instancia origen a travs de la asociacin.
34
-
16/04/2015
18
Asociacin
Multiplicidad de la Asociacin (y II) Valores tpicos: 0..1 cero o uno 1..1 uno y slo uno (abreviado como 1) 0..* desde cero hasta muchos (abreviado como *) 1..* desde uno hasta muchos
Otros valores: Rangos enteros: (2..*), (0..3), etc. Lista de rangos separados por comas: (1, 3, 5..10, 20..*), (0, 2, 4, 8), etc.
Si no se indica multiplicidad se considera 1. Restricciones (entre llaves): ordered/unordered: las instancias van ordenadas / o no (valor por
omisin: {unordered}). unique/nonunique: los valores de las instancias deben ser nicos / o no
(valor por omisin: unique). Se pondr nonunique para permitir tener varios enlaces que asocien el mismo conjunto de instancias.
35
Asociacin
Ejemplos Multiplicidad
36
-
16/04/2015
19
Asociacin
Navegabilidad de la Asociacin La navegabilidad de una asociacin binaria especifica la
capacidad que tiene una instancia de la clase origen de acceder a las instancias de la clase destino por medio de las instancias de la asociacin que las conectan.
Acceder= nombrar, designar o referenciar el objeto para... leer o modificar el valor de un atributo del objeto (desaconsejable), invocar una operacin del objeto (enviarle un mensaje), usar el objeto como parmetro o valor de retorno en un mensaje, modificar (asignar o borrar) el enlace con el objeto.
37
La navegabilidad entre clases nos muestraque es posible pasar desde un objeto de la claseorigen a uno o ms objetos de la clase destinodependiendo de la multiplicidad
Asociacin
Asociaciones Actor-Sistema y Clase-Clase Un mismo concepto puede ser modelado a la vez como actor y como
clase: Actor: representa entidades externas al sistema. Clase: representa entidades modeladas dentro del sistema.
No confundir asociaciones actor-sistema (casos de uso, relaciones con el exterior) con asociaciones clase-clase (relaciones internas): Para subastar algn artculo es necesario darse de alta como vendedor,
introduciendo el NIF, un nombre descriptivo (largo), un nombre de usuario (breve) y una contrasea de acceso. Una vez que el vendedor est dado de alta, puede registrar artculos en la subasta o modifica alguno de sus datos: descripcin breve, descripcin ampliada, fotografa en formato JPEG, y precio de salida.
38
-
16/04/2015
20
Asociacin
Asociacin y Dependencia Asociacin = conocimiento, conocimiento dependencia. Toda asociacin induce una dependencia en el sentido en que es
navegable. Unidireccional: dependencia slo en un sentido, menor acoplamiento. Bidireccional: dependencia mutua, mayor acoplamiento.
Cmo conseguir navegabilidad entre instancias sin dependencia entre clases:
La clase Persona depende de la clase Sociedad, pero no de la clase Sociedad Annima.
Es posible conseguir un enlace navegable entre dos instancias sin que exista dependencia entre las clases a las que pertenecen.
39
Asociacin
Asociaciones Reflexivas Una asociacin reflexiva(o recursiva)es aquella en la que los dos
extremos de la asociacin estn unidos a la misma clase. Los enlaces pueden conectar dos instancias diferentes de la
misma clase, o incluso una instancia consigo misma. En una asociacin reflexiva los nombres de rol son obligatorios,
para poder distinguir los dos extremos de la asociacin. Una asociacin reflexiva no es simtrica: los extremos son
distinguibles, aunque la asociacin quiera significar equivalencia: es-amigo-de, es-igual-a...
40
-
16/04/2015
21
Asociacin
Restricciones
41
Asociaciones
Asociacin n-aria Asociacin entre N clases: los enlaces conectan N instancias.
No permite: direccin del nombre, navegabilidad, agregacin. S permite: clase-asociacin.
Multiplicidad engaosa: Nmero permitido de instancias para cualquier posible combinacin de instancias
de las otras n-1 clases. La multiplicidad mnima suele ser 0. Efecto rebote del uno: la multiplicidad mnima 1 (o superior) en un extremo
implica que debe existir un enlace (o ms) para cualquier posible combinacin de instancias de los otros extremos.
42
-
16/04/2015
22
Asociaciones
Ciclos de Asociaciones y Asociaciones Derivadas Puede un alumno matricularse en asignaturas que no son de su
titulacin? Posibles interpretaciones alternativas del diagrama: La titulacin se obtiene a partir de las asignaturas: asociacin derivada. Titulacin matriculada acta como restriccin para elegir asignatura
matriculada. Titulacin matriculada acta como sugerencia para elegir asignatura
matriculada. Titulacin matriculada y asignatura matriculada son independientes.
43
Agregacin
Es un tipo especial de asociacin que representa una relacin todo-parte, transitiva y asimtrica. No impone ninguna restriccin especial sobre la
multiplicidad. Puede ser reflexiva para las clases, pero no para las
instancias.
44
-
16/04/2015
23
Composicin
Es un tipo especial de agregacin no compartida. La multiplicidad slo puede ser 0..1 1..1. El todo es responsable de la existencia y
almacenamiento de las partes. Propagacin de las operaciones de copiado y borrado.
Composicin no significa encapsulamiento ni acceso restringido.
45
DECLARACIN CLASE EN JAVA
CONSTRUCTORES
OPERADOR THIS
EXTENDS (una clase deriva de otra)
MS OPERACIONES: DESTRUCTORES, SELECTORES, MODIFICADORES
GET Y SET
Informacin importante
46
-
16/04/2015
24
Documentacin
Uml en 24 horas Universidad Carlos III: Modelado Esttico
Diseo de Software Avanzado. Departamento de Informtica
UML EspecificacinUML.pdf FormalUML.pdf Diagramas de Clases (UML ilustrado) Universidad de Los Andes Demin Gutierrez Marzo 2011
47