Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

42
POO1501-Paradigma Orientado a POO1501-Paradigma Orientado a Objetos Objetos Profesor : Roberto Rojas R Profesor : Roberto Rojas R odríguez odríguez cuela de Informática y Telecomunicaciones Sede San Joaquín Unidad 1 : Bases de la Orientación a Objetos

Transcript of Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Page 1: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

POO1501-Paradigma Orientado a ObjetosPOO1501-Paradigma Orientado a Objetos

Profesor : Roberto Rojas RProfesor : Roberto Rojas Rodríguezodríguez

Escuela de Informática y TelecomunicacionesSede San Joaquín

Unidad 1 : Bases de la Orientación a Objetos

Page 2: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

ContenidosContenidos

1.1. UML: qué esUML: qué es

2.2. UML Parte EstáticaUML Parte Estática

3.3. TallerTaller

Page 3: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

1. UML: Qué es1. UML: Qué es

Lo que implica que sea unificadoLo que implica que sea unificado

Componentes: Vistas y DiagramasComponentes: Vistas y Diagramas

EjemplosEjemplos

Page 4: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Unified Modeling LanguageUnified Modeling Language

Lenguaje de Modelado Visual de Propósito Lenguaje de Modelado Visual de Propósito generalgeneral

Usos:Usos:– Especificar, visualizar, construir y documentar Especificar, visualizar, construir y documentar

artefactos de un sistema software.artefactos de un sistema software.

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

Page 5: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

UML: “Unificado”UML: “Unificado”

Cruza los métodos y notaciones anterioresCruza los métodos y notaciones anteriores

Cruza los ciclos de desarrolloCruza los ciclos de desarrollo

Cruza los dominios de aplicaciónCruza los dominios de aplicación

Cruza las plataformas y lenguajes de Cruza las plataformas y lenguajes de implantaciónimplantación

Cruza los procesos de desarrolloCruza los procesos de desarrollo

Cruza los conceptos internosCruza los conceptos internos

Page 6: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

UML: ComponentesUML: Componentes

Vista EstáticaVista EstáticaVista de Casos de UsoVista de Casos de UsoVista de InteracciónVista de InteracciónDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de ColaboraciónDiagrama de ColaboraciónVista de la Máquina de EstadosVista de la Máquina de EstadosVista de ActividadesVista de ActividadesVista FísicaVista FísicaVista de la Gestión del ModeloVista de la Gestión del ModeloConstructores de ExtensibilidadConstructores de Extensibilidad

Page 7: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

UML EstáticoUML EstáticoVista 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 8: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de ClasesDiagrama de Clases

Page 9: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de Casos de UsoDiagrama de Casos de Uso

Page 10: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de ComponentesDiagrama de Componentes

Page 11: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de DespliegueDiagrama de Despliegue

Page 12: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

UML DinámicoUML DinámicoVista 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 13: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de EstadosDiagrama de Estados

Page 14: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de ActividadesDiagrama de Actividades

Page 15: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de SecuenciaDiagrama de Secuencia

Page 16: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de ColaboraciónDiagrama de Colaboración

Page 17: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

UMLUMLGestión del ModeloGestió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 18: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Vista de la Gestión del ModeloVista de la Gestión del Modelo

Page 19: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

ExtensibilidadExtensibilidad

Page 20: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

2. UML Parte Estática2. UML Parte Estática

Diagrama de Casos de UsoDiagrama de Casos de UsoDiagrama de ClasesDiagrama de Clases

Page 21: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de Casos de UsoDiagrama de Casos de UsoModela la funcionalidad de un sistema percibido Modela la funcionalidad de un sistema percibido desde el usuario externo (actor).desde el usuario externo (actor).

Un caso de uso es una unidad de funcionalidad Un caso de uso es una unidad de funcionalidad coherente expresado como una transacción coherente expresado como una transacción entre actores y el sistema.entre actores y el sistema.

Pueden describirse en varios niveles de detalle. Pueden describirse en varios niveles de detalle.

Un caso de uso se implementa como una Un caso de uso se implementa como una colaboración en la vista de interacción.colaboración en la vista de interacción.

Page 22: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de Casos de Uso: ElementosDiagrama de Casos de Uso: Elementos

Actor:Actor:rol que rol que juega juega un usuario un usuario con respecto al sistema. con respecto al sistema.

un Actor no un Actor no necesariamente necesariamente representa a una representa a una persona en particular, persona en particular, sino más bien la labor sino más bien la labor que realiza frente al que realiza frente al sistema. 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 23: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de Casos de Uso: RelacionesDiagrama de Casos de Uso: Relaciones

Asociación:Asociación:

Es el tipo de relación Es el tipo de relación más básica que indica más básica que indica la invocación desde un la invocación desde un actor o caso de uso a actor o caso de uso a otra operación (caso de otra operación (caso de uso). 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 24: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de casos de Uso: Diagrama de casos de Uso: Relaciones de GeneralizaciónRelaciones de Generalización

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

Se diferencian por el Se diferencian por el estereotipo estereotipo <<uses>><<uses>> (uso) (uso) o (<<extends>>)o (<<extends>>) (herencia) (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 25: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de Casos de Uso: EjemploDiagrama de Casos de Uso: EjemploMáquina Recicladora Máquina Recicladora

El sistema debe : El sistema debe :

1.1. Registrar el número de ítemes ingresados. Registrar el número de ítemes ingresados.

2.2. Imprimir un recibo cuando el usuario lo solicitaImprimir un recibo cuando el usuario lo solicita, que incluye , que incluye (a) una descripción de lo depositado, (b) e(a) una descripción de lo depositado, (b) el valor de cada l valor de cada item item y (c) el ty (c) el total otal

3.3. El usuario/cliente presiona el botón de comienzo El usuario/cliente presiona el botón de comienzo

4.4. Existe un operador que desea saber lo siguiente: Existe un operador que desea saber lo siguiente: (a) (a) CuCuáántos ítemes han sido retornados en el díantos ítemes han sido retornados en el día y (b) a y (b) al final l final de cada díade cada día, un , un resumen de todo lo depositado. resumen de todo lo depositado.

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

Page 26: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Máquina Recicladora: Máquina Recicladora: Identificación de ActoresIdentificación de Actores

Page 27: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Máquina Recicladora: Diagrama Máquina Recicladora: Diagrama CompletoCompleto

Page 28: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de ClasesDiagrama de Clases

Modela los conceptos del dominio de la aplicación.Modela los conceptos del dominio de la aplicación.

Permite Permite visualizar las relaciones entre las clases visualizar las relaciones entre las clases que involucran el sistemaque involucran el sistema

Un diagrama de clases estUn diagrama de clases estáá compuesto por los compuesto por los siguientes elementos: siguientes elementos:

– Clases:Clases: atributos, atributos, operaciones operaciones y visibilidad. y visibilidad. – RelacionesRelaciones: Herencia, Composición, Agregación, : Herencia, Composición, Agregación,

Asociación y Uso. Asociación y Uso. – ResponsabilidadesResponsabilidades

Page 29: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

ClaseClase

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

Page 30: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

AtributoAtributo

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

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

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

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

Page 31: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

MétodosMétodos

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

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

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

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

Page 32: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Relaciones entre ClasesRelaciones entre Clases

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

Existen tres tipos de relaciones básicas:Existen tres tipos de relaciones básicas:

– DependenciaDependencia

– GeneralizaciónGeneralización

– AsociaciónAsociación

Page 33: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

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

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

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

Dependencia (instanciación o uso)Dependencia (instanciación o uso)

Page 34: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

GeneralizaciónGeneralización

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

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

Una clase sin superclases es una clase raízUna clase sin superclases es una clase raíz

Una clase sin subclases es una clase hojaUna clase sin subclases es una clase hoja

Page 35: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Generalización – PolimorfismoGeneralización – Polimorfismo

Una generalización da a lugar al polimorfismo Una generalización da a lugar al polimorfismo entre clases de una jerarquía de entre clases de una jerarquía de generalizaciones.generalizaciones.

– Un objeto de una subclase puede sustituir a un objeto Un objeto de una subclase puede sustituir a un objeto de la superclase en cualquier contexto. Lo inverso no de la superclase en cualquier contexto. Lo inverso no es ciertoes cierto

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

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

Page 36: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

GeneralizaciónGeneralización

Page 37: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

AsociaciónAsociación

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

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

Page 38: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

AsociaciónAsociación

Page 39: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Agregación y ComposiciónAgregación y Composición

ComposiciónComposición

RRelación estática, en donde elación estática, en donde el tiempo de vida del objeto el tiempo de vida del objeto incluido estincluido estáá condicionado condicionado por el tiempo de vida del por el tiempo de vida del que lo incluye. que lo incluye. EEl Objeto base se contruye l Objeto base se contruye a partir del objeto incluido, a partir del objeto incluido, es decir, es "parte/todo“es decir, es "parte/todo“, , como un parámetro pasado como un parámetro pasado “por valor”.“por valor”.

AgregaciónAgregación

RRelación dinámica, en donde elación dinámica, en donde el tiempo de vida del objeto el tiempo de vida del objeto incluido es independiente del incluido es independiente del que lo incluye. que lo incluye.

EEl objeto base utiliza al l objeto base utiliza al incluido para su incluido para su funcionamientofuncionamiento, como un , como un parámetro pasado “por parámetro pasado “por referencia”.referencia”.

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

Page 40: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Agregación y ComposiciónAgregación y Composición

Agregación (Por referencia)

Composición (Por valor)

Page 41: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Elementos ResponsabilidadesElementos Responsabilidades

La La distribución de distribución de responsabilidades en un responsabilidades en un sistema, sistema, se realizase realiza identificaidentificandondo un conjunto de un conjunto de clases que colaborclases que colaboraan entre n entre sí sí para llevar a cabo algún para llevar a cabo algún comportamiento. comportamiento.

Luego hay que identificar el Luego hay que identificar el conjunto de conjunto de responsabilidades para responsabilidades para cada clasecada clase

Page 42: Unidad 1.1 - Introduccíon a UML-Diagramas de Clases

Diagrama de ClasesDiagrama de Clases