Introduccion a UML

44
Introducción a UML

description

Introducción UML

Transcript of Introduccion a UML

Page 1: Introduccion a UML

Introducción a UML

Page 2: Introduccion a UML

Contenidos

1. UML: qué es2. UML Parte Estática3. Taller

Page 3: Introduccion a UML

Unified Modeling Language

Lenguaje de Modelado Visual de Propósito general Usos:

Especificar, visualizar, construir y documentar artefactos de un sistema software.

Se diseñó de manera de independizarlo del método de desarrollo, y se intenta que sea aplicable a todas las etapas del ciclo de vida del software

Page 4: Introduccion a UML

UML: “Unificado” Cruza los métodos y notaciones anteriores Cruza los ciclos de desarrollo Cruza los dominios de aplicación Cruza las plataformas y lenguajes de implantación Cruza los procesos de desarrollo Cruza los conceptos internos

Page 5: Introduccion a UML

UML: Componentes Vista Estática Vista de Casos de Uso Vista de Interacción Diagrama de Secuencia Diagrama de Colaboración Vista de la Máquina de Estados Vista de Actividades Vista Física Vista de la Gestión del Modelo Constructores de Extensibilidad

Page 6: Introduccion a UML

UML Estático

Vista Diagramas Conceptos Principales

Vista Estática Diagrama de Clases

Clase, Asociación, GeneralizaciónDependencia, Realización, Interfase

Vista de Casos de Uso

Diagrama de Casos de Uso

Caso de uso, Actor, Asociación, Extensión, Inclusión, Generalización de caso de uso

Vista de Implementación

Vista del despliegue (deployment)

Diagrama de Componentes

Componente, Interfaz, Dependencia, Realización

Diagrama de Despliegue

Nodo, Componente, Dependencia, Locación

Page 7: Introduccion a UML

Diagrama de Clases

Page 8: Introduccion a UML

Diagrama de Casos de Uso

Page 9: Introduccion a UML

Diagrama de Componentes

Page 10: Introduccion a UML

Diagrama de Despliegue

Page 11: Introduccion a UML

UML Dinámico

Vista Diagramas Conceptos Principales

Vista de Máquina de Estados

Diagrama de Estados (statechart)

Estado, Evento, Transición, Acción

Vista de actividades

Diagrama de Actividades

Estado, Actividad, Transición de compleción, Juntura (join), Bifurcación (fork)

Vista de Interacción

Diagrama de Secuencia

Interacción, Objeto, Mensaje, Activación

Diagrama de Colaboración

Colaboración, Interacción, Rol de colaboración, Mensaje

Page 12: Introduccion a UML

Diagrama de Estados

Page 13: Introduccion a UML

Diagrama de Actividades

Page 14: Introduccion a UML

Diagrama de Secuencia

Page 15: Introduccion a UML

Diagrama de Colaboración

Page 16: Introduccion a UML

UMLGestión del Modelo

Vista Diagramas Conceptos Principales

Vista de la gestión del modelo

Diagrama de Clases

Paquete, Subsistema, Modelo

Vista Diagramas Conceptos Principales

Todas Todos Restricción, Estereotipo, Valores tagged (etiquetados)

Extensibilidad

Page 17: Introduccion a UML

Vista de la Gestión del Modelo

Page 18: Introduccion a UML

Extensibilidad

Page 19: Introduccion a UML

2. UML Parte Estática

Diagrama de Casos de UsoDiagrama de Clases

Page 20: Introduccion a UML

Diagrama de Casos de Uso Modela la funcionalidad de un sistema percibido desde el

usuario externo (actor). Un caso de uso es una unidad de funcionalidad coherente

expresado como una transacción entre actores y el sistema.

Pueden describirse en varios niveles de detalle. Un caso de uso se implementa como una colaboración en

la vista de interacción.

Page 21: Introduccion a UML

Diagrama de Casos de Uso: Elementos

Actor: rol que juega un usuario

con respecto al sistema. un Actor no

necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.

Caso de Uso: Operación o tarea

específica que se realiza tras una orden de algún agente externo, originada por una petición de un actor o bien desde la invocación desde otro caso de uso

Page 22: Introduccion a UML

Diagrama de Casos de Uso: Relaciones

Asociación: Es el tipo de relación más

básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso).

Dependencia o Instanciación: Es una forma muy

particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea).

Page 23: Introduccion a UML

Diagrama de casos de Uso: Relaciones de Generalización

Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores).

Se diferencian por el estereotipo <<uses>> (uso) o (<<extends>>) (herencia).

extends: Se recomienda utilizar cuando un caso de uso es similar a otro (en sus características).

uses: Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica.

Page 24: Introduccion a UML

Diagrama de Casos de Uso: EjemploMáquina Recicladora

El sistema debe : 2. Registrar el número de ítemes ingresados. 3. Imprimir un recibo cuando el usuario lo solicita, que incluye (a)

una descripción de lo depositado, (b) el valor de cada item y (c) el total

4. El usuario/cliente presiona el botón de comienzo 5. Existe un operador que desea saber lo siguiente: (a) Cuántos

ítemes han sido retornados en el día y (b) al final de cada día, un resumen de todo lo depositado.

6. El operador debe además poder cambiar información asociada a ítemes y dar una alarma en el caso de que (a) un item se atore o (b) no hay más papel.

Page 25: Introduccion a UML

Máquina Recicladora: Identificación de Actores

Page 26: Introduccion a UML

Máquina Recicladora: Diagrama Completo

Page 27: Introduccion a UML

Diagrama de Clases Modela los conceptos del dominio de la aplicación. Permite visualizar las relaciones entre las clases que

involucran el sistema Un diagrama de clases está compuesto por los siguientes

elementos: Clases: atributos, operaciones y visibilidad. Relaciones: Herencia, Composición, Agregación, Asociación

y Uso. Responsabilidades

Page 28: Introduccion a UML

Diagrama de Clases: ElementosClase

Es la unidad básica que encapsula toda la información de un Tipo de Objeto (un objeto es una instancia de una clase).

Page 29: Introduccion a UML

Diagrama de Clases: ElementosAtributo

Los atributos describen a una clase. Pueden ser Públicos, Privados o Protegidos.

public (+, ): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

private (-, ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden acceder).

protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (herencia)

Page 30: Introduccion a UML

Diagrama de Clases: ElementosOperaciones (métodos)

Las operaciones o métodos de una clase describen la forma en la cual ésta interactúa con su entorno. Pueden ser Públicas, Privadas o Protegidas.

public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la misma clase lo pueden acceder).

protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (herencia)

Page 31: Introduccion a UML

Diagrama de Clases: ElementosRelaciones entre Clases

Las clases interrelacionadas modelan un sistema en su dimensión estática.

Existen tres tipos de relaciones básicas: Dependencia Generalización Asociación

Page 32: Introduccion a UML

Relaciones entre Clases:Dependencia (instanciación o uso)

Un cambio en la clase independiente (Aplicación) puede afectar a la clase dependiente (Ventana)

La interpretación más frecuente es la de uso: una clase usa a otra como argumento de una operación.

El objeto creado no se almacena en el objeto que lo crea.

Page 33: Introduccion a UML

Relaciones entre Clases:Generalización

Relaciona una abstracción general (superclase) con una más concreta del mismo tipo (subclase)

Una clase puede tener cero, una (herencia simple) o más superclases (herencia múltiple)

Una clase sin superclases es una clase raíz

Una clase sin subclases es una clase hoja

Page 34: Introduccion a UML

Relaciones entre Clases:Generalización - Polimorfismo

Una generalización da a lugar al polimorfismo entre clases de una jerarquía de generalizaciones. Un objeto de una subclase puede sustituir a un objeto de

la superclase en cualquier contexto. Lo inverso no es cierto

Una operación de la subclase con igual signatura que una operación de la superclase la anula y sustituye.

El polimorfismo es muy útil en la programación.

Page 35: Introduccion a UML

Relaciones entre Clases:Generalización

Page 36: Introduccion a UML

Relaciones entre clases:Asociación

Relación estructural entre las clases.

En general es simétrica Tiene un nombre, que la

describe (verbo, con dirección de lectura)

Puede tener un rol que describe el papel específico que una clase juega en una asociación.

Tiene multiplicidad, que especifica por cada clase el número de objetos de la clase opuesta que se relacionan con un solo objeto de dicha clase a través de la asociación:

1 : uno0..1 : cero o uno3 : tres*: muchos1..*: al menos uno2,6,7: dos, seis o siete2-4, 10-12 : de dos a cuatro y

de diez a doce

Page 37: Introduccion a UML

Relaciones entre clases:Asociación

Page 38: Introduccion a UML

Relaciones entre ClasesAgregación y Composición

Composición Relación estática, en donde

el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye.

El Objeto base se contruye a partir del objeto incluido, es decir, es "parte/todo“, como un parámetro pasado “por valor”.

Agregación Relación dinámica, en donde

el tiempo de vida del objeto incluido es independiente del que lo incluye.

El objeto base utiliza al incluido para su funcionamiento, como un parámetro pasado “por referencia”.

Permite modelar objetos complejos, en base a relaciones todo –parte.

Page 39: Introduccion a UML

Relaciones entre Clases:Agregación y Composición

Agregación (Por referencia)

Composición (Por valor)

Page 40: Introduccion a UML

Diagrama de Clases: ElementosResponsabilidades

La distribución de responsabilidades en un sistema, se realiza identificando un conjunto de clases que colaboran entre sí para llevar a cabo algún comportamiento. Luego hay que identificar el conjunto de responsabilidades para cada clase

Page 41: Introduccion a UML

Diagrama de Clases

Page 42: Introduccion a UML

3. Caso

Para el caso descrito, desarrolle:

Diagrama de Casos de Uso

Diagrama de Clases

Page 43: Introduccion a UML

Bibliografía y Referencias: Fundamental

James Rumbaugh, Ivar Jacobson, Grady Booch, “The Unified Modeling Language Reference Manual”, Addison Wesley, 1999

Craig Larman, “UML y Patrones”, Prentice Hall, 1999 OMG www.omg.org

Page 44: Introduccion a UML

Bibliografía y ReferenciasComplementaria

Rational www.rational.com Robert Muller, “Database Design For Smarties: Using

UML for Data Modeling”, Morgan Kaufmann, 1999 Luis Guerrero, “Taller de UML”, DCC, Universidad de

Chile, 2002, www.dcc.uchile.cl/~luguerre/cc61j Patricio Salinas, “Tutorial de UML”, DCC, Universidad de

Chile, 2000, www.dcc.uchile.cl/~psalinas/uml