uml utpl progavanzada

Upload: david-bejar-caceres

Post on 14-Apr-2018

228 views

Category:

Documents


0 download

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

    ([email protected])

    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