unidad 1.1 - introduccíon a uml-diagramas de clases
TRANSCRIPT
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
ContenidosContenidos
1.1. UML: qué esUML: qué es
2.2. UML Parte EstáticaUML Parte Estática
3.3. TallerTaller
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
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
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
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
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
Diagrama de ClasesDiagrama de Clases
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de ComponentesDiagrama de Componentes
Diagrama de DespliegueDiagrama de Despliegue
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
Diagrama de EstadosDiagrama de Estados
Diagrama de ActividadesDiagrama de Actividades
Diagrama de SecuenciaDiagrama de Secuencia
Diagrama de ColaboraciónDiagrama de Colaboración
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
Vista de la Gestión del ModeloVista de la Gestión del Modelo
ExtensibilidadExtensibilidad
2. UML Parte Estática2. UML Parte Estática
Diagrama de Casos de UsoDiagrama de Casos de UsoDiagrama de ClasesDiagrama 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.
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
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).
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.
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.
Máquina Recicladora: Máquina Recicladora: Identificación de ActoresIdentificación de Actores
Máquina Recicladora: Diagrama Máquina Recicladora: Diagrama CompletoCompleto
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
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).
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)
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)
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
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)
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
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.
GeneralizaciónGeneralización
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
AsociaciónAsociación
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.
Agregación y ComposiciónAgregación y Composición
Agregación (Por referencia)
Composición (Por valor)
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
Diagrama de ClasesDiagrama de Clases