IDP 02 Modelos estructurales (I)

Embed Size (px)

Citation preview

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    1/74

    Mster en Ingeniera del Software, Mtodos Formalesy Sistemas de Informacin

    TEMA 2: MODELOSESTRUCTURALES

    INGENIERA DE LA PROGRAMACIN

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    2/74

    Contenidos

    1. Introduccin2. Clases3. Asociaciones yenlaces

    4. Agregacin5. Generalizacin /Especializacin6. Clases abstractas

    7. Herencia mltiple8. Restricciones yAsociaciones exclusivas

    9 Interfaces10 Paquetes11 Diagramas deComponentes

    12 Diagramas deDespliegue

    2

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    3/74

    Introduccin13

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    4/74

    Modelos estructurales4

    El modelo de objetos o diagrama de clasesrefleja la estructura esttica del sistema. Es la herramienta principal de la mayor parte de

    los mtodos OO. Contiene clases relacionadas con otras clases,

    mediante asociaciones y relaciones degeneralizacin / especializacin.

    Cuando sea conveniente se pueden utilizartambin diagramas que contengan objetos,llamados diagramas de instancias.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    5/74

    Objetos5

    Un objeto es un concepto, abstraccin, ocosa que tiene sentido dentro delcontexto de una aplicacin. En definitiva,

    una encapsulacin de datos yoperaciones. Los objetos aparecen como nombres

    propios o como referencias especficasdentro de la descripcin del problema oen las discusiones con el usuario.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    6/74

    Modelo de objetos

    PersonaCasa Coche

    Gap Semntico

    Modelo

    Mundo Real

    vive conduce

    6

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    7/74

    Identidad de los objetos7

    El identificador de objetos (OID) es unacaracterstica que permite diferenciar dosocurrencias de un objeto con el mismoestado.

    Durante la fase de anlisis se asume que losobjetos poseen identidad, en la fase deimplementacin se puede elegir unaaproximacin para realizarla: Direcciones de memoria: en lenguajes de

    programacin. Combinacin de valores de atributos: en bases

    de datos Nombres nicos (surrogates): en algunos

    sistemas orientados a objetos.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    8/74

    persona1

    persona2

    Surrogates:

    Persona01, Persona02

    Direcciones de memoria

    Base de datos relacional

    Nom: String

    Edat: Integer

    Persona

    Id Nom Edat

    1 Pepe 30

    2 Pepe 30

    Pepe:Persona30

    Pepe:Persona30

    Ejemplos de OID8

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    9/74

    Clases29

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    10/74

    Clases: notacin10

    Una clase es la descripcin de un grupode objetos con estructura,comportamiento y relaciones similares.

    Se puede aadir un 4 compartimiento para definir

    responsabilidades, descripcin de la clases, etc.

    Nombre de la clase

    Atributos

    Operaciones

    NombreClase

    +attribute1:type = defaultValue

    +attribute2:type

    -attribute3:type

    +operation1(params):returnType

    -operations2(params)

    -operation3()

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    11/74

    Clases y instancias

    Una clase es unaabstraccin

    Un objeto es una

    manifestacinconcreta de esaabstraccin.

    11

    Nombre: StringPoblacio: Integer

    Ciutat

    Houston: CiutatNombre: Houston TX

    Poblacion: 3000000

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    12/74

    Atributos: notacin12

    Un atributo es una propiedad de una clase identificadacon un nombre, y caracterizada por un rango de valoresque puede tomar (un tipo).

    Notacin[visibilidad] Nombre [: Tipo] [= valor_inicial]

    donde visibilidad puede ser:+ = Pblica# = Protegida- = Privada (por defecto)

    = implementacin o paquete

    Los tipos permitidos para los atributos son tiposbsicos (integer, real, char, string, etc.), no objetos.

    + nom: string# edad: int- direccion: string

    ~ telefono: string

    Persona

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    13/74

    Atributos vs relaciones13

    Los atributos no incluyen referencia a otrosobjetos, estas referencias se representanmediante relaciones (enlaces).

    En el modelo de objetos no deben aparecer

    atributos que acten como identificadores deobjetos. Salvo si son identificadores naturales

    Coche

    Matrcula

    color

    Aeropuerto

    IDAeropuerto

    CdigoAeropuerto

    Nombre

    ZonaHoraria

    Bueno para anlisis y diseo Mal modelo para anlisis, bueno para diseo

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    14/74

    Operaciones14

    Una operacin se corresponde con unservicio que puede ser requerido acualquier objeto de la clase.

    Una operacin es una funcin otransformacin que puede ser aplicada alos objetos.

    Un mtodo es la implementacin de unaoperacin.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    15/74

    Operaciones: notacin15

    Las operaciones se definen de la siguiente forma:[visibilidad] Nombre( [comalista_parmetros] ) [:

    Tipo_Resultado]

    donde visibilidad puede ser:+ = Pblica (opcin por defecto)#= Protegida- = Privada~ = Paquete

    #Reiniciar()~ponerAlarma(t:float)+temperatura():float

    SensorTemperatura

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    16/74

    Operaciones tpicas16

    Las operaciones que cambian el estado deun objeto se dice que tienen efectoslaterales.

    Las operaciones que no tienen efectoslaterales y que nicamente calculan unvalor funcional se llaman consultas.

    Las consultas devuelven el valor de losatributos de los objetos.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    17/74

    Atributos derivados17

    Un atributo se dice que es derivado si puedecalcularse en cualquier momento a partir delvalor de otros atributos.

    La notacin para la informacin derivada esla siguiente:/Nombre_Atributo: Tipo

    Producto

    -nombre:string

    -id:string

    -precio:float

    /precioConIva

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    18/74

    Relaciones entre clases/objetos

    Relacin

    Agregacin

    Composicin

    Uso

    Dependencia

    Herencia

    18

    TIENE UN ES UN

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    19/74

    Relaciones entre clases

    Relacin DescripcinAsociacin Objetos tipo X y tipo Y se relacionan entre s

    Uso Objetos de clase X usan objetos tipo Y que no sonatributos de X

    Dependencia Como uso, pero adems los objetos tipo Y noexisten independientemente de los de tipo X

    Agregacin Objetos de tipo X tienen atributos de tipo Y

    Composicin Como agregacin, pero adems los objetos tipo Y

    no existen independientemente de los de tipo XHerencia Objetos de tipo X son un subconjunto de los

    objetos de tipo Y

    19

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    20/74

    Relaciones entre clases en Java

    Relacin entreClases Mecanismo JavaUso ydependencia

    Referencias a objetos en parmetros y variableslocales

    Agregacin y

    ComposicinReferencias a objetos en atributos

    Herencia Herencia simple mediante derivacin (extends)Herencia mltiple mediante implementacin de

    mltiples interfaces (implements)Otras relaciones Organizacin en paquetes y subpaquetes

    (package)

    20

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    21/74

    Relaciones entre clases en UML21

    Asociacin Uso Dependencia Agregacin Composicin

    Herencia Realizacin

    TIENE UN

    ES UN

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    22/74

    Asociaciones y enlaces322

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    23/74

    Asociaciones y enlaces23

    Un enlace es una conexin fsica oconceptual entre objetos. Una asociacin es una relacin estructural

    que especifica que los objetos de unelemento estn conectados con losobjetos de otro.

    Las asociaciones aparecen en el diagramade clases, mientras que los enlacesaparecen en el diagrama de instancias.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    24/74

    Asociaciones24

    Cada asociacin en el diagrama de clasesse corresponde con un conjunto deenlaces en el diagrama de instancias.

    Dada una asociacin entre dos clases, sepuede navegar en los dos sentidos, desdeobjetos de una clase a objetos de la otra.

    Asociaciones binarias son aquellas queconectan dos clases.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    25/74

    Madrid: Ciudad

    Nombre Ciudad: Madrid

    poblacin: 3.000.000

    Ciudad

    Nombre Ciudad

    poblacin

    Ba: Aeropuerto

    Nombre Aeropuerto : Barajas

    Ge: Aeropuerto

    Nombre Aeropuerto: Getafe

    Da servicio Da servicio

    Aeropuerto

    Nombre Aeropuerto

    CodigoAeropuerto: BA CodigoAeropuerto: Ge

    CodigoAeropuerto

    Da servicio

    Nombre Asociacin

    multiplicidad

    Diagrama de instancias

    Modelo de objetos

    **

    Asociaciones y enlaces25

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    26/74

    Asociaciones y enlaces

    Madrid: Ciutat

    Nom Ciutat: Madrid

    poblaci: 3.000.000

    Ciutat

    Nom Ciutat

    poblaci

    Ba: Aeroport

    NomAeroport: Barajas

    Ge: Aeroport

    Nom Aeroport: Getafe

    Dona servei Dona servei

    Aeroport

    NomAeroport

    CodiAeroport: BA CodiAeroport: Ge

    CodiAeroport

    Dona servei* *

    Diagrama de instancias

    Diagrama de clases

    26

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    27/74

    Asociaciones y enlaces27

    Durante el anlisis las referencias a objetosse representan mediante enlaces, los enlacessimilares se representan medianteasociaciones.

    Persona-Nom:String = ''

    -Adrea: String;

    +Departament:String;

    +AssignarDepartament(d:String);

    EmpresaTreballa Per a

    * 1

    p:Persona E:Empresa

    AssignarDepartament(Vendes);

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    28/74

    Atributos vs asociaciones28

    Durante el diseo las asociaciones se puedenrepresentar con punteros, claves ajenas, etc.

    En el mbito conceptual no existe ningunadiferencia entre un atributo y una asociacin.

    En el mbito de la implementacin lasemntica es distinta: Atributos: Semntica de valor Tipo: integer, float, string,..

    Asociaciones: Semntica de referencia

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    29/74

    Anlisis vs diseo29

    Ciudad

    Nombre Ciudad

    Poblacin

    Aeropuerto

    Nombre Aeropuerto

    CdigoAeropuerto Da servicio

    Modelo de anlisis

    Aeropuerto

    Nombre AeropuertoCdigoAeropuerto

    Ciudad

    Nombre Ciudad

    Poblacin

    Aeropuertos

    Aeropuerto

    Nombre Aeropuerto

    CdigoAeropuertoCiudades

    Ciudad

    Nombre Ciudad

    Poblacin

    Modelos de diseo

    * *

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    30/74

    Asociaciones no binarias30

    Las asociaciones pueden ser binarias,ternarias o de orden mayor.

    asociaciones

    enlaces

    Proyecto Persona

    Lenguaje

    Proyecto Lenguaje

    Persona

    LenguajeProyecto

    Maria

    Gestin

    C

    Cobol

    Auto Cad

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    31/74

    Multiplicidad31

    1 Uno y slo uno5 Necesariamente cinco0..1 Cero o unoM..N De M a N* De 0 a muchosn De 0 a muchos0..* De 0 a muchos

    1..* De 1 a muchos

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    32/74

    Ejemplo32

    Motor Vendedor de billetes

    Avin

    1..4

    1

    1..4

    1

    Piloto

    Reserva

    n

    1

    n

    1

    Lnea area

    Vuelon1 n1

    1..2

    n

    1..2

    n

    n1 n1

    1

    n

    1

    n

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    33/74

    Roles33

    Los roles son nombres que identifican elpapel que juega una clase asociada a otradada.

    Trabaja paraPersona CompaaNombreN SSDireccion

    NombreDireccion

    Empleado Empresa

    Banco

    Cliente

    Roles

    Nombre relacin

    *

    *

    1

    1

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    34/74

    Roles34

    Los roles se utilizan para recorrer lasasociaciones. Se tratan comopseudoatributos.UnaCompaia.empleado

    UnaPersona.empresa Son obligatorios para distinguir asociaciones

    reflexivas.

    Persona

    0..n22

    padres

    hijos0..n

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    35/74

    Roles35

    Son obligatorios para distinguirasociaciones distintas entre un mismo parde clases.

    origenDescripcin

    destinoDescripcin

    1

    1

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    36/74

    Asociaciones como clases36

    Clases de asociacin: asignan una clase ala asociacin entre 2 clases Permiten aadir atributos a la asociacin

    Compaia Persona

    Trabajo

    Fichero UsuarioAutorizacin

    Accesible por

    permiso acceso

    fecha alta

    salario

    **

    **

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    37/74

    Asociaciones cualificadas37

    Los cualificadores o calificadores dentro de unarelacin de asociacin se utilizan para resolverbsquedas: dado un objeto en un extremo de larelacin, cmo identificar un objeto o conjunto

    de objetos en el otro extremo? Actan como ndices para recorrer la relacin.

    Banco + N de Cuenta da una Cuenta

    Siempre que se pueda pensar en una estructura

    de datos para efectuar una bsqueda en unextremo de una asociacin (una tabla hash, unrbol binario), se puede utilizar un cualificador.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    38/74

    Ej. Asociacin cualificada38

    Banco Cuenta

    N de cuentaNombreBanco

    N de cuenta

    Banco Cuenta

    NombreBanco*1

    0..11

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    39/74

    Cualificacin39

    La cualificacin aumenta la precisin delmodelo.

    1

    DescripcinDeVuelo

    N de Vuelo

    HoraSalida

    Duracion

    Vuelo

    HoraSalidaActual

    DuracionActual

    FechaSalida

    1

    1

    DescripcinDeVuelo

    N de Vuelo

    HoraSalida

    Duracion

    Vuelo

    FechaSalida

    HoraSalidaActual

    DuracionActual

    *

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    40/74

    Agregacin440

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    41/74

    Agregacin41

    Es un tipo de relacin con unas propiedadessemnticas adicionales.

    La relacin de agregacin se emplea cuandose desea modelar una relacin del tipo

    Todo/Parte.Una empresa est formada por departamentos

    Departamentos

    Nombre

    NumEmpleados

    Empresa

    NIF

    Nombre

    todo parte

    simbolo agregacin

    *

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    42/74

    Agregacin: propiedades42

    Las propiedades ms significativas de laagregacin son: Transitiva (Si A es parte de B y B de C

    entonces A es parte de C)Antisimtrica (si A es parte de B entonces B

    no puede ser parte de A).

    Documento Parrafo

    n

    Sentencia

    nn n

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    43/74

    Tipos de agregacin43

    Se pueden dar dos tipos de relaciones deagregacin.Inclusiva o fsica (composicin): cadacomponente puede pertenecer a lo sumo a uncompuesto. La destruccin del compuestoimplica la destruccin de las partes.Referencial o de catlogo: los componentesson reutilizables a lo largo de distintoscompuestos. No estn relacionados lostiempos de vida.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    44/74

    Agregacin y composicin44

    1..*

    1..*

    Polgono

    Punto Apariencia

    ColorRelleno

    3+{ ordenado }

    Polgono

    Punto

    AparienciaColorRelleno

    3+{ ordenado }

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    45/74

    Referencial o inclusiva?45

    Pieza de catlogo

    n model0..n

    0..n

    Pieza fsica

    n serie0..n

    0..n

    0..1

    Describe0..1

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    46/74

    Generalizacin / Especializacin5

    46

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    47/74

    Generalizacin47

    Las jerarquas de clases permiten gestionar lacomplejidad mediante un ordenamientotaxonmico.

    A partir de un conjunto de clases, si estas

    tienen en comn una serie de atributos yoperaciones, por generalizacin se puedecrear una versin ms general (superclase) delas clases iniciales (subclases).

    Los atributos y operaciones comunes a estasse sitan en la superclase y son compartidospor todas las subclases.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    48/74

    Especializacin48

    La especializacin es la relacin contraria, partede una superclase y se dirige hacia un conjuntode subclases.

    Las subclases heredan los atributos y las

    operaciones definidas en la superclase, pudiendoaadir atributos y operaciones propios. Cada instancia de una clase tambin cumple que

    es una instancia de su superclase Discriminante: : atributo de enumeracin queindica qu propiedad de un objeto est siendo

    abstrada por una relacin de generalizacin. Noson obligatorios.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    49/74

    Ejemplo discriminantesEquip

    nomfabricant

    pes

    cost

    Bomba

    pressi succi

    pressi descrrega

    mesura de flux

    IntercanviadorCalor

    rea superficial

    dimetre del tub

    longitud de tub

    pressi del tub

    pressi superficial

    Tanc

    volum

    pressi

    dimetre impulsor

    nmero de fulles

    eix rotaci

    material diafragma

    Bomba centrfuga

    longitud del pist

    dimetre del pist

    nmero de cilindres

    Bomba PistBomba Diafragma

    tipus de bomba

    tipus dequip

    ...

    ...

    49

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    50/74

    Ejemplo discriminantes50

    Equip

    nom

    fabricant

    pes

    cost

    Bomba

    pressi succi

    pressi descrrega

    mesura de flux

    IntercanviadorCalor

    rea superficial

    dimetre del tub

    longitud de tub

    pressi del tub

    pressi superficial

    Tanc

    volum

    pressi

    dimetre impulsor

    nmero de fulles

    eix rotaci

    material diafragma

    Bomba centrfuga

    longitud del pist

    dimetre del pist

    nmero de cilindres

    Bomba PistBomba Diafragma

    tipus de bomba

    tipus dequip

    ...

    ...

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    51/74

    Ejemplo reescritura51

    Figura

    color

    posicin centro

    grosor dibujo

    Dimensin 0 Dimensin 1 Dimensin 2

    Dimensin

    mover

    seleccionar

    rotar

    visualizar

    orientacin orientacin

    tipo llenado

    llenar

    cambiarEscala

    cambiarEscala

    Punto

    visualizar

    Linea

    extremos

    visualizar

    Arco

    radio

    ngulo inicial

    ngulo arco

    visualizar

    Polgono

    nmerolados

    vrtices

    visualizar

    Crculo

    dimetro

    visualizarrotar

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    52/74

    Especializacin vs Herencia52

    La relacin de especializacin se emplea en la fase demodelado de un sistema, mientras que la relacin deherencia se ve como un mecanismo de reutilizacin decdigo en la fase de implementacin o diseo.

    Figuracolorposicio

    moureseleccionarvisualitzar

    Punt

    visualitzar

    Cercle

    visualitzar

    Quadrat

    visualitzar

    costatdimetre

    Puntcolorposicio

    moureseleccionarvisualitzar

    Cercle

    visualitzar

    Quadrat

    visualitzar

    costatdimetre

    Anlisis Diseo

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    53/74

    Especializacin completa/incompleta

    53

    Dos tipos de restricciones: Completa: Todos los hijos de la generalizacin

    se han especificado en el modelo

    Incompleta: No se han especificado todos loshijos y se permiten hijos adicionales

    Persona

    Hombre Mujer

    { completa }sexo

    rbol

    Nogal Pino Olmo

    { incompleta }

    l d

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    54/74

    Especializacin dinmica54

    Se habla de especializacin dinmicacuando un objeto puede cambiar de clasedentro de una jerarqua de subclases.

    Persona

    Hombre Mujer

    { completa }sexo

    Ingeniero

    Director

    Vendedor

    trabajo

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    55/74

    Clases abstractas655

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    56/74

    Ej Cl b

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    57/74

    Ej. Clase abstracta57

    Todas sus subclases concretas debensuministrar la implementacin de laoperacin.

    Empleado

    calcular sueldo {abstracto}

    Empleado por

    horas

    paga por horas

    paga horas extras

    calcular sueldo

    Empleado

    autnomo

    paga mensual

    calcular sueldo

    Empleado

    asalariado

    paga semanal

    calcular sueldo

    ganancias anuales

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    58/74

    Herencia mltiple758

    H i l i l

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    59/74

    Herencia mltiple59

    Cuando una clase tiene ms de una claseantecesora directa. La nueva clase hereda la unin de los

    atributos y operaciones definidos en lasclases antecesoras. Una caracterstica de una clase que llegue

    por distintas vas slo se heredar unavez.

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    60/74

    E i d l h i l i l

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    61/74

    Evitando la herencia mltiple61

    Si el lenguaje de implementacin no poseeherencia mltiple se puede reestructurarel modelo de objetos para eliminarla.

    Empleado

    Empleado

    por horas

    Empleado

    asalariado

    Empleado

    autonomo

    Empleadocon pension

    Empleadosin pension

    Empleado

    por horas

    con pension

    estado salario

    estado pension

    U d i

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    62/74

    Usando agregacin62

    Una superclase con generalizacionesindependientes se refunde en forma deagregado, en el cual cada componentesustituye a una generalizacin.

    Empleado

    N. Empleado

    por horas

    N. Empleado

    asalariado

    N. Empleado

    autonomo con pensin sin pensin

    estado salario estado pension

    Nomina

    EmpleadoPensin

    Empleado

    U d d l i

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    63/74

    Usando delegacin63

    Se puede heredar la clase ms importantey delegar el resto.Empleado

    Empleado

    por horasEmpleado

    asalariadoEmpleado

    autonomo con pensin sin pensin

    estado salario estado pension

    Pensin

    Empleado

    F t i i

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    64/74

    Factorizacin64

    Se puede emplear una jerarqua deespecializacin anidada, primero sefactoriza por una generalizacin ydespus por otra.

    Empleado

    Empleado

    por horas

    Empleado

    asalariado

    Empleado

    autonomo

    estado salario

    Empleado

    por horas

    con pensin

    Empleado

    por horas

    sin pensin

    Empleado

    autonomo

    con pensin

    Empleado

    autonomo

    sin pensin

    estado pension estado pension

    estado pension

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    65/74

    Restricciones y asociacionesexclusivas

    8

    65

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    66/74

    Ej R t i i b t ib t

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    67/74

    Ej. Restricciones sobre atributos67

    Tambin se utilizan entre relaciones de asociacin.

    Empleado

    Sueldo

    Jefe

    { sueldo

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    68/74

    Asociaciones exclusivas68

    Una asociacin exclusiva (or-asociacin) estformada por un conjunto de asociaciones querelacionan una clase inicial (fuente) con una serie declases destino (objetivo).

    Tomado un objeto de la clase fuente ste estrelacionado a lo sumo con un objeto de una claseobjetivo.

    Indice

    Cluster Tabla

    OR

    ItemIndice

    Cluster Tabla

    Indice

    **

    0..10..1

    0..1*

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    69/74

    Interfaces69

    Interfaz

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    70/74

    Interfaz70

    Coleccin de operaciones que se usa paraespecificar un servicio de una clase o unacomponente

    No proporciona ni estructura (atributos[salvo constantes]) ni implementacin

    Ejemplos notacin

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    71/74

    Ejemplos notacin71

    +abrirConexin()

    +analizarURL()

    +establecerURL()

    +aFormatoExterno()

    interfaz

    IGestorFlujoURL

    +comer()

    +dormir()

    +evacuar()

    interfaz

    INio

    IUnknown IOrtografa

    ISensor

    Red::IRouter

    Sensores::IDestino

    Vista como una clase estereotipada: Cuando las operaciones y/o susargumentos son importantes en el modelo

    Relaciones entre interfaces

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    72/74

    Relaciones entre interfaces72

    Generalizacin: herencia entre interfaces. Dependencia: cuando una

    clase/componente necesita/hace uso de

    los servicios proporcionados por unainterfaz. Realizacin: cuando una

    clase/componente implementa/realiza losservicios definidos en una interfaz.

    Realizacin

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    73/74

    Realizacin73

    Una clase realiza o implementa un interfaz siimplementa todos los mtodos declaradospor ese interfaz (incluidos aquellos quepudiera heredar de otros interfaces)

    ArrayList LinkedList

    List

    +get(int index):T

    Ejemplo y notacin alternativa

  • 7/27/2019 IDP 02 Modelos estructurales (I)

    74/74

    Ejemplo y notacin alternativa74