UT3_3

24
16/04/2015 1 UT3: UML Tema 3: Modelado de Clases 1 Modelado de clases Clases y objetos Uso de la orientación a objetos Concepción de una clase Atributos Operaciones Estereotipos Responsabilidades y restricciones Diagrama de clases 2

description

entornos de desarrollo

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