9 Uml Clases Ads 2015 i

Embed Size (px)

DESCRIPTION

Ing Requisitos

Citation preview

  • 1UML Modelado Conceptual

    Omar Hurtado Jara

    [email protected]

    FACULTAD DE INGENIERAAnlisis y Diseo de Sistemas

    Modelo Conceptual

    Objetivo:

    Desarrollar un diagrama de clases (Modelo Conceptual).

    Contenido:

    Modelado Conceptual

    Caractersticas especficas

    Agregacin/Composicin

    Clase-Asociacin

    Generalizacin

    Restricciones y notas

  • 2Anlisis y Diseo de Sistemas

    Modelado conceptual

    Especifica los conceptos ms significativos del dominio del problema.

    Conjunto de conceptos y reglas para representar los aspectos lgicos de la realidad y que deben estar contenidos en los requisitos del futuro software.

    Para UML representa una estructura esttica, tpicamente no se define ninguna operacin. La representacin incluye los atributos y relaciones de

    los conceptos.

    Caractersticas:

    - Claro y simple

    - Consistente

    - Completo

    - Fidelidad

    - No redundante

    Modelado conceptual con UML

    Qu significa modelo conceptual

    - Es una vista grfica de la informacin controlada por el sistema.

    Dos niveles de abstraccin: clasificacin / instanciacin

    - clase: es una plantilla que define a un grupo de entidades con

    estructura, relaciones, semntica y comportamiento comunes.

    - objeto: representa a una entidad concreta con identidad, estado y

    comportamiento.

    Juan:Vendedor reloj:Artculo

    radio:Artculo

    Objetos

    Clase

  • 3Anlisis y Diseo de Sistemas

    Definiciones bsicas

    clases en anlisis y diseo:

    - Anlisis

    - Representan o corresponden a conceptos del dominio.

    - Por lo general se representan conceptos y atributos.

    - Diseo

    - Representan o corresponden a fragmentos de cdigo.

    - Especifican al detalle elementos de implementacin.

    Anlisis y Diseo de Sistemas

    Notacin bsica de objetos y clases

    PuntoposicinX

    posicinY

    situar( )

    mover( )

    p1 : Punto

    posicinX = 3

    posicinY = -5

    p2 : Punto

    posicinX = 0

    posicinY = 2

    instance ofinstance of

    p1 : Punto

    p1

    : Punto

    Punto

    posicinX

    posicinY

    Punto

    situar( )

    mover( )

    Punto

  • 4Tipos de clases

    Tipos de clases segn los objetos representados:

    - objetos fsicos: avin, persona, libro...

    - objetos lgicos: cuenta corriente, asignatura, nmero complejo

    - objetos histricos: asiento bancario, reserva de habitacin

    Para entender lo que es una clase, hace falta entender cules sern sus instancias. Un caso especial lo constituyen

    los objetos que representan una coleccin, familia o tipo de

    cosas, ms que una cosa en s misma.

    - Ejemplos: raza perruna, producto a la venta, ttulo en la biblioteca.

    Todo objeto representa una entidad concreta, pero esto no significa necesariamente entidad fsica o tangible.

    Anlisis y Diseo de Sistemas

    Atributos

    Atributo: propiedad compartida por los objetos de una clase

    - cada atributo tiene un valor (probablemente diferente) para cada objeto

    Atributo derivado (concepto propio del anlisis):

    - propiedad redundante que puede ser calculada a partir de otras

    - /rea ( = base * altura)

    - pueden implementarse como operaciones al pasar a diseo

    Notacin (ms importante en diseo)

    - pueden suprimirse todos los elementos excepto el nombre de atributo:

    - visibilidad nombre multiplicidad : Tipo = valorInicial

    - Ejemplos:

    - + saldo : Moneda = 0

    - - Edad *: Entero

    - Apellido

  • 5Anlisis y Diseo de Sistemas

    Operaciones

    Operacin: funcin o transformacin que puede aplicarse a los objetos de una clase.

    - puede ser invocada por otros objetos, o por el mismo objeto.

    - mtodo: especificacin procedimental (implementacin) de una operacin.

    Notacin (ms importante en diseo)

    - pueden suprimirse todos los elementos excepto el nombre de operacin

    - visibilidad nombre (param: Tipo = valDef,) : TipoRet

    - ejemplos:

    - obtenerSaldo ( ) : Moneda

    - marcar (nmero : Telfono; reintentos : Integer)

    Anlisis y Diseo de Sistemas

    Enlaces y asociaciones

    ArtculoVendedor

    Juan : Vendedor

    Ana : Vendedor

    Estatuilla : Artculo

    Cuadro : Artculo

    Espejo : Artculo

    Asociacin:

    Especificacin de un

    conjunto de enlaces.

    Representa la estructura

    y el comportamiento del

    sistema.

    Enlace:

    Conexin entre objetos.

    Determina una tupla de objetos.

    Instancia de una asociacin.

  • 6Anlisis y Diseo de Sistemas

    Asociaciones: nombre de asociacin y nombre de rol

    ArtculoVendedorsubasta

    ArtculoPersonavendedor artculo

    Nombre de asociacin Direccin del nombre

    Nombres de rol

    Los nombres de asociacin se pueden repetir en un modelo, excepto para

    asociaciones entre las mismas dos clases

    Los nombres de rol se pueden repetir en asociaciones distintas, y pueden ser

    iguales que los nombres de las clases asociadas

    Anlisis y Diseo de Sistemas

    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.

    Multiplicidad de la asociacin

    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

    ArtculoPersona

    vendedor artculo

    1..1 0..*

    Artculo

    participa

    obligatoriamente

    Persona

    participa

    opcionalmente

  • 7Anlisis y Diseo de Sistemas

    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 DNI, 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 modificar alguno de sus datos: descripcin breve, descripcin ampliada, fotografa en formato JPEG, y precio de salida.

    Vendedor

    Registrar

    artculo

    Modificar

    datos de artculo

    Artculo

    descripcinBreve

    descripcinAmpliada

    fotografa

    precioSalida

    Vendedor

    dni

    nombreDescriptivo

    nombreUsuario

    contrasea

    subasta

    registra

    modifica

    Anlisis y Diseo de Sistemas

    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...

    Empleado Personadirige

    0..1

    0..*

    jefe

    subalterno

    ama

    0..*

    0..*

    amante

    amado

    dirige(Ana, Juan) dirige(Juan, Ana) ama(Pedro, Clara) ama(Clara, Pedro)

  • 8Anlisis y Diseo de Sistemas

    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.

    PiezaMquina0..* 1..*

    0..*

    0..*

    m1 : Mquina

    m2 : Mquina

    p1 : Pieza p2 : PiezaAnlisis y Diseo de Sistemas

    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

    AvinEscuadrilla

    Cabina Fuselaje Ala

    Piloto0..3 1..* 0..* 0..2

    1

    0..1

    1 2

  • 9Anlisis y Diseo de Sistemas

    Clase-asociacin

    Tiene todas las propiedades de una clase y de una asociacin:

    - Atributos, operaciones y asociaciones con otras clases.

    - Conexin entre clases que especifica enlaces entre ellas.

    - Multiplicidad, navegabilidad, agregacin...

    Es un nico elemento, por tanto tiene un nombre nico.

    Como cualquier otra asociacin, no puede contener tuplas repetidas, aunque los valores de los atributos sean distintos: sustituir clase-

    asociacin por clase intermedia.

    Persona Empresa

    trabaja-para

    sueldo Cuenta

    trabaja-para1..* 0..*

    pagar-en0..* 1Representa el estado

    actual o el registro

    histrico?

    Anlisis y Diseo de Sistemas

    Persona Empresa

    trabaja-para

    sueldo

    pagar( )

    trabaja-para1..* 0..*

    Transformacin de clase-asociacin en clase intermedia

    Sustituir la clase-asociacin por una clase simple, cuyas instancias representan enlaces.

    Las multiplicidades originales se cruzan, y aparecen otras nuevas.

    Es una forma de implementar la clase-asociacin, pero hay que aadir una restriccin adicional para no permitir tuplas repetidas.

    Persona Empresa

    trabaja-parasueldo

    pagar( )

    1

    0..*

    1

    1..*

    clase intermedia

    clase-asociacin

  • 10

    Anlisis y Diseo de Sistemas

    Generalizacin y clasificacin

    Principio de sustitucin:

    - Extensin: todas los objetos de la subclase son tambin de la superclase.

    - Intensin: la definicin de la superclase es aplicable a la subclase.

    Generalizacin: clase-clase.

    - Gato es un tipo de Mamfero, Mamfero es un tipo de Animal.

    Clasificacin: objeto-clase.

    - Fluti es un Gato, Fluti es un Mamfero, Fluti es un Animal.

    Gato Mamfero Animal

    Fluti

    instance of

    Instancias directas e indirectas

    Anlisis y Diseo de Sistemas

    Generalizacin y especializacin

    Dos puntos de vista complementarios:

    - Generalizar es identificar las propiedades comunes (atributos, asociaciones, operaciones) de varias clases y representarlas en una clase ms general denominada superclase.

    - Elevar el nivel de abstraccin, reducir la complejidad, organizar.

    - Especializar es capturar la propiedades especficas de un conjunto de objetos dentro de una clase dada, que an no han sido distinguidas en ella, y representarlas en una nueva clase denominada subclase.

    - Reutilizar un concepto aadiendo propiedades variantes.

    La generalizacin es una relacin pura entre clases:

    - No tiene instancias, ni multiplicidad.

    - La subclase hereda todas las propiedades y relaciones de la superclase.

    - Las propiedades heredadas de la superclase no se representan en la subclase (a menos que sean operaciones redefinidas).

  • 11

    Anlisis y Diseo de Sistemas

    Transporte

    AreoTerrestre

    Avin HelicpteroBicicleta Automvil Ferrocarril

    Jerarquas de clases

    Generalizacin:

    - no-reflexiva

    - transitiva

    - asimtrica

    Transporte

    Areo

    Terrestre

    Avin Helicptero

    Bicicleta

    Automvil

    Ferrocarril

    Representaciones alternativas:

    - relaciones binarias

    - estructura en rbol

    Anlisis y Diseo de Sistemas

    Subclase vs. Atributo

    Cmo modelar las propiedades de los objetos? Regla general:

    - Propiedad cambiante o rango de valores muy grande: atributo.

    - Propiedad fija con valores enumerados: especializacin (cada propiedad se traduce en un criterio de especializacin, cada valor en una subclase).

    - Tambin se puede modelar como un atributo con valor fijo.

    Criterio final de especializacin: comportamiento.

    CuentaCorrientetitular

    moneda

    Coche

    CocheRojoCocheVerdeCocheAzul

    color

    Alternativa a la

    doble

    especializacin

    Especializacin

    exagerada?

  • 12

    Anlisis y Diseo de Sistemas

    Diagramas de clases y de objetos

    Diagrama de clases

    - captura y especifica el vocabulario del sistema:

    - elementos: clases, atributos, operaciones...

    - relaciones: asociaciones, generalizaciones...

    - estructura del sistema, fundamento de su comportamiento

    - sugerencias para mejorar la comunicacin:

    - nombres adecuados: clases, atributos, operaciones, asociaciones, roles

    - distribucin espacial de los elementos y evitar cruces de lneas

    - distinto nivel de detalle segn el propsito y nivel de abstraccin

    Diagrama de objetos

    - ilustra la estructura del sistema mediante situaciones particulares

    - fotografa del sistema: objetos, valores de atributos; enlaces

    - las instancias deben conformarse a sus especificaciones

    - objetos, enlaces clases, asociaciones

    - las especificaciones pueden estar representadas en distintos diagramas

    Anlisis y Diseo de Sistemas

    Diagrama de clases vs. Diagrama de objetos

    Sociedad

    Annima Limitada

    Sociedad Personaaccionista

    empleadoAcme : Sociedad

    Emca : Limitada

    Ana : Persona

    Clara : Persona

    Pedro : Persona

    accionista

    empleado

    empleado

    accionista

  • 13

    Anlisis y Diseo de Sistemas

    Restricciones y notas

    {ningn accionista

    puede ser empleado}

    falta determinar

    las subclases

    de SociedadSociedad Persona

    accionista

    empleado

    Vendedornif {regla nif}

    nombreDescriptivo

    nombreUsuario

    contraseaAnlisis y Diseo de Sistemas

    Restricciones en asociaciones

    Vuelo Aeropuerto

    {ordered} escala

    * 0..*

    * 1origen

    * 1destino

    Cliente Mesa* *

    reserva

    Cuenta

    Sociedad

    Persona

    * 0..1

    * 0..1

    {xor} or exclusivo entre asociaciones

    ordenacin de los elementos

    una asociacin no puede

    contener tplas repetidas

  • 14

    Caso de feria de subastas

    Usuario

    NIF

    nombre descriptivo

    nombre usuario

    contrasea

    Comprador Vendedor

    Artculodescripcin breve

    descripcin ampliada

    fotografa

    precio salida

    hora salida

    adjudicado

    Pujahora

    valor

    1

    *

    1

    *

    * 1