Ing De Sistemas
UML: Lenguaje Unificado de Modelado
Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Introducción
Unified Modeling Language Motivación: combinar y estandarizar una notación para describir sistemas orientados a objetos a partir de los lenguajes de modelado más conocidos
Booch – OOD Rumbaugh – OMT Jacobson – OOSE y Objectory
UML es un lenguaje gráfico paravisualizar, especificar, construir y documentar un sistema software desde distintos puntos de vista UML permite describir los aspectos estáticos (estructura) y dinámicos (comportamiento) de un sistema
Introducción
Similitud:
Arquitectos: planos ⇒ edificios Ingenieros del software: diagramas ⇒ programas
UML versión 2.0 (finales 2004) Dominio: contexto de un problema Modelo: abstracción de unproblema
Contenido
Diagramas de estructura
Clases y objetos Relaciones Interfaces
Diagramas de comportamiento
Colaboraciones Diagramas de secuencia Diagramas de comunicación
Diagramas de estructura
Clases y objetos
Diagramas de clases: estructura del sistema.
Clases: conceptos dentro del sistema que comparten los mismos atributos, operaciones, relaciones y semántica Atributos: tipo,visibilidad, posible valor inicial Operaciones: signatura, visibilidad Asociaciones: relaciones entre clases
Diagramas de objetos: estructura del sistema en tiempo de ejecución.
Objetos: instancias de una clase Atributos (valores actuales) Links: relaciones entre objetos, instancias de asociaciones
Diagramas de estructura
Clases y objetos. Ejemplo
Diagrama de clases:
Elemento
CarbonoHidrógeno
Diagrama de objetos:
:Hidrógeno
:Hidrógeno
:Hidrógeno
:Carbono
:Carbono
:Hidrógeno
:Hidrógeno
:Hidrógeno
Diagramas de estructura
Clases y objetos
Nombre de la clase visibilidad Circulo
-radio: double -centrox: double -centroy: double +Area(): double +Perímetro(): double
En cursiva si es abstracta Atributos
Operaciones Clase del objeto
Nombredel objeto
unCirculo: Circulo radio = 3.4 centrox = 2.0 centroy = 2.0
Valores de los atributos
Diagramas de estructura
Atributos
Notación para atributos de clases:
[visibilidad] [/] nombre [:tipo] [multiplicidad] [= valor] [{propiedad}]
Visibilidad: + (público) – (privado) # protegido /: indica que el atributo es derivado Multiplicidad: va entre [ ] y vale 1 por defecto Propiedades:{readOnly}, {union}, {subsets }, {redefines }, {ordered}, {bag}, {seq}, {sequence} Un atributo subrayado es estático
Diagramas de estructura
Atributos. Ejemplo
ClaseA
name: String shape: Rectangle + size: Integer [0..1] / area: Integer {readOnly} height: Integer = 5 width: Integer # pos: Point
public class ClaseA { String name; Rectangle shape; public Integer size = null; Integer area;Integer height = new Integer(5); Integer width; protected Point pos; public Integer getArea () { return height*width; } }
ClaseB
id: {redefines name} shape: Square
public class ClaseB extends ClaseA { String id; Square shape; }
Diagramas de estructura
Métodos
Notación para métodos de clases:
[visibilidad] nombre ( [parámetros] ) [: tipo-retorno] [{propiedad}]
Visibilidad: +(público) – (privado) # protegido Parámetros: separados por comas Propiedades: {query}, {update}, {concurrent}, {abstract}, {constructor} Un método subrayado es estático Ejemplos:
display() + toString(): String
Diagramas de estructura
Estereotipos
Estereotipo: extensión del vocabulario de UML que permite crear nuevos bloques derivados de los existentes, pero específicos a un problema concretoEjemplos:
...
MiBooleano
+ cierto: Integer + false: Integer
Diagramas de estructura
Relación de generalización
Especialización
Figura
public class Figura … public class Circulo extends Figura …
Circulo
Cuadrado
Elipse
Diagramas de estructura
Relación de generalización
Clasificación múltiple: un objeto puede pertenecer a varios subtipos no relacionados por herencia...
Regístrate para leer el documento completo.