Escuela de Informtica y Telecomunicaciones Sede San Joaqun Unidad 1 : Bases de la Orientacin a Objetos Contenidos 1. UML: qu es 2. UML Parte Esttica 3. Taller 1. UML: Qu es Lo que implica que sea unificado Componentes: Vistas y Diagramas Ejemplos
Unified Modeling Language
Lenguaje de Modelado Visual de Propsito general
Usos: Especificar, visualizar, construir y documentar artefactos de un sistema software.
Se dise de manera de independizarlo del mtodo de desarrollo, y se intenta que sea aplicable a todas las etapas del ciclo de vida del software UML: Unificado Cruza los mtodos y notaciones anteriores Cruza los ciclos de desarrollo Cruza los dominios de aplicacin Cruza las plataformas y lenguajes de implantacin Cruza los procesos de desarrollo Cruza los conceptos internos
UML: Componentes Vista Esttica Vista de Casos de Uso Vista de Interaccin Diagrama de Secuencia Diagrama de Colaboracin Vista de la Mquina de Estados Vista de Actividades Vista Fsica Vista de la Gestin del Modelo Constructores de Extensibilidad UML Esttico Vista
Extensibilidad Vista de la Gestin del Modelo Extensibilidad 2. UML Parte Esttica Diagrama de Casos de Uso Diagrama de Clases 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 transaccin entre actores y el sistema.
Pueden describirse en varios niveles de detalle.
Un caso de uso se implementa como una colaboracin en la vista de interaccin. 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 ms bien la labor que realiza frente al sistema. Caso de Uso: Operacin o tarea especfica que se realiza tras una orden de algn agente externo, originada por una peticin de un actor o bien desde la invocacin desde otro caso de uso Diagrama de Casos de Uso: Relaciones Asociacin: Es el tipo de relacin ms bsica que indica la invocacin desde un actor o caso de uso a otra operacin (caso de uso). Dependencia o Instanciacin: Es una forma muy particular de relacin entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Diagrama de casos de Uso: Relaciones de Generalizacin Este tipo de relacin 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 caractersticas). uses: Se recomienda utilizar cuando se tiene un conjunto de caractersticas que son similares en ms de un caso de uso y no se desea mantener copiada la descripcin de la caracterstica. Diagrama de Casos de Uso: Ejemplo Mquina Recicladora El sistema debe : 1. Registrar el nmero de temes ingresados. 2. Imprimir un recibo cuando el usuario lo solicita, que incluye (a) una descripcin de lo depositado, (b) el valor de cada item y (c) el total 3. El usuario/cliente presiona el botn de comienzo 4. Existe un operador que desea saber lo siguiente: (a) Cuntos temes han sido retornados en el da y (b) al final de cada da, un resumen de todo lo depositado. 5. El operador debe adems poder cambiar informacin asociada a temes y dar una alarma en el caso de que (a) un item se atore o (b) no hay ms papel.
Mquina Recicladora: Identificacin de Actores Mquina Recicladora: Diagrama Completo Diagrama de Clases Modela los conceptos del dominio de la aplicacin.
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, Composicin, Agregacin, Asociacin y Uso. Responsabilidades Clase Es la unidad bsica que encapsula toda la informacin de un Tipo de Objeto (un objeto es una instancia de una clase). Atributo Los atributos describen a una clase. Pueden ser Pblicos, 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 slo ser accesible desde dentro de la clase (slo sus mtodos lo pueden acceder).
protected (#, ): Indica que el atributo no ser accesible desde fuera de la clase, pero si podr ser accesado por mtodos de la clase adems de las subclases que se deriven (herencia)
Mtodos Las operaciones o mtodos de una clase describen la forma en la cual sta interacta con su entorno. Pueden ser Pblicas, Privadas o Protegidas.
public (+, ): Indica que el mtodo ser visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
private (-, ): Indica que el mtodo slo ser accesible desde dentro de la clase (slo otros mtodos 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 mtodos de la clase adems de las subclases que se deriven (herencia)
Relaciones entre Clases Las clases interrelacionadas modelan un sistema en su dimensin esttica.
Existen tres tipos de relaciones bsicas:
Dependencia Generalizacin Asociacin
Un cambio en la clase independiente (Aplicacin) puede afectar a la clase dependiente (Ventana) La interpretacin ms frecuente es la de uso: una clase usa a otra como argumento de una operacin.
El objeto creado no se almacena en el objeto que lo crea. Dependencia (instanciacin o uso) Generalizacin Relaciona una abstraccin general (superclase) con una ms concreta del mismo tipo (subclase)
Una clase puede tener cero, una (herencia simple) o ms superclases (herencia mltiple) Una clase sin superclases es una clase raz
Una clase sin subclases es una clase hoja Generalizacin Polimorfismo Una generalizacin da a lugar al polimorfismo entre clases de una jerarqua de generalizaciones.
Un objeto de una subclase puede sustituir a un objeto de la superclase en cualquier contexto. Lo inverso no es cierto Una operacin de la subclase con igual signatura que una operacin de la superclase la anula y sustituye.
El polimorfismo es muy til en la programacin. Generalizacin Asociacin Tiene multiplicidad, que especifica por cada clase el nmero de objetos de la clase opuesta que se relacionan con un solo objeto de dicha clase a travs de la asociacin:
1 : uno 0..1 : cero o uno 3 : tres *: muchos 1..*: al menos uno 2,6,7: dos, seis o siete 2-4, 10-12 : de dos a cuatro y de diez a doce Asociacin Agregacin y Composicin Composicin
Relacin esttica, 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 parmetro pasado por valor. Agregacin
Relacin dinmica, 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 parmetro pasado por referencia. Permite modelar objetos complejos, en base a relaciones todo parte. Agregacin y Composicin Agregacin (Por referencia) Composicin (Por valor) Elementos Responsabilidades La distribucin de responsabilidades en un sistema, se realiza identificando un conjunto de clases que colaboran entre s para llevar a cabo algn comportamiento.
Luego hay que identificar el conjunto de responsabilidades para cada clase Diagrama de Clases