You are on page 1of 51

UML

Diseo Orientado a Objetos

El Problema!
Usted ha sido contratado para desarrollar un

sistema para administrar una biblioteca universitaria.


La biblioteca actualmente usa un programa de

1960s, escrito en un lenguaje obsoleto, para algunas tareas de prstamo y bsqueda.


Usted quiere construir un sistema interactivo

que maneja ambas opciones en lnea.

Definicin vaga del sistema

Diferentes usuarios tienen diferentes prioridades Los usuarios no se expresan claramente de que es lo que quieren que el sistema realice Difcil de imaginar trabajar con un sistema del cual se tiene solo una descripcin que parece buena pero le falta algo vital. Administradores del sistema no tienen experiencia haciendo las tareas que los usuarios deben realizar.

El Problema!
Libros y Revistas

La biblioteca almacena libros y revistas. Tiene varias copias de un libro determinado. Algunos libros son para para prestamos de tiempo corto. El resto de libros pueden ser prestados hasta por 3 semanas por cualquier miembro de la Biblioteca. Solo miembros del personal bibliotecario pueden prestar revistas. Miembros de la biblioteca pueden prestar hasta 6 libros a la vez. Miembros del personal bibliotecario pueden prestar hasta 12 libros a la vez. Nuevos libros y revistas llegan regularmente, y los viejos son descartados algunas veces. Las revistas del ao son archivadas en un volumen anual al final del ao.
Prstamo

Es necesario que el sistema mantenga la informacin de cuando libros y revistas son prestados y devueltos, como lo hace el sistema actual. El nuevo sistema debe enviar alertas cuando un libro esta no ha sido devuelto. Como posible futuro requerimiento esta la posibilidad de que se pueda extender el prstamo de un libro, siempre que este no este reservado.
Bsqueda

Usted quiere construir un sistema interactivo que maneja ambas opciones en lnea.

Qu es UML
UML es una notacin que se produjo como resultado de la unificacin de la tcnica de modela de objetos e ingeniera de software orientada a objetos. UML es un lenguaje de modelamiento estndar que sirve para visualizar, especificar, construir y documentar los artefactos de un sistema orientado a objetos. UML ha sido utilizado en sistemas: Informacin, Financieros, Telecomunicaciones, Transporte, Defensa/aeroespacio, Electrnica Mdica, Cientficos, Distribuidos

Fases en el desarrollo de sistemas


Anlisis del sistema
Modelo funcional
Representado en UML con diagramas de caso de uso Describe la funcionalidad del sistema desde el punto de vista del usuario.

Diseo
Modelo de objetos
Representado en UML con diagrama de clases Describe la estructura del sistema desde el punto de vista de objetos, atributos, asociaciones y operaciones

Modelo dinmico
Representado en UML con diagramas de secuencias, estados y actividad. Describe el comportamiento interno del sistema

Implementacin (programacin) Pruebas

Anlisis del sistema

Fases en el desarrollo de un sistema

Casos de Uso
Si queremos realizar un sistema de calidad, debemos entonces satisfacer las necesidades de sus usuarios. Realizar un anlisis del sistema orientado desde el punto de vista de los usuarios

Identificar usuarios del sistema Identificar las tareas que deben realizar los usuarios del sistema - Identificarlas en orden de importancia

Usuarios? Tareas?
UML utiliza los trminos tcnicos Actores y Casos de Uso

Actor Usuarios

Casos de Uso

Actor
Es un usuario del sistema en un rol Caso de Uso Tareas en particular. Puede ser otro sistema que acta como un usuario para nuestro sistema

Actores
Un actor es un usuario del sistema en un rol en particular. Puede ser otro sistema que acta como un usuario para nuestro sistema

Casos de Uso
Un caso de uso es una tarea que el actor necesita realizar con ayuda del sistema. - Prestar la copia de un libro - Devolver un libro Ntese que una frase tan simple como prestar un libro puede implicar una serie de variantes. El detalle de cada caso de uso debe ser documentado en tercera persona. .

Casos de Uso
Se utilizan durante la obtencin de requerimientos y el anlisis para representar la funcionalidad del sistema. Se enfocan en el comportamiento del sistema desde un punto de vista externo. Diagrama de caso de uso Describe una funcin proporcionada por el sistema que produce un resultado visible para un actor. Los casos de uso estn dentro de la frontera del sistema.

Prestar copia de libro


Una persona presta un libro.
El sistema verifica que la persona sea miembro de la biblioteca, si no lo es no tiene permitido prestar libros,

Casos de Uso

El mximo numero de libros a prestar es 6 si es miembro y 12 si es parte del staff. Actor Si es miembro de la Es un usuario del staff sistema en libro un rol biblioteca o del y el en particular. esta disponible graba exitosamente el prstamo Puede ser otro sistema que acta como un usuario para nuestro caso contrario lo rechaza.
sistema

Casos de Uso

Diagrama de Casos de Usos


Actor: Un actor es cualquier entidad que interacta con el sistema (un usuario, otro sistema, el ambiente fsico del sistema).
Caso de uso: Describe qu hace el sistema (i.e., funcionalidad) Escenario : secuencia de interacciones entre el usuario y el sistema Relacin: Extension (or generalization) entre actores Asociacin entre actores y casos de uso Dependencia entre casos de uso: include y extend

Especificacin de Casos de Uso


Los casos de uso se escriben en lenguaje natural
Se describen en tercera persona Permite comunicacin entre los desarrolladores, clientes y usuarios

Describir cada caso de uso con suficiente detalle para entender la funcionalidad requerida.
Registrar en las notas las limitaciones, decisiones de diseo, consideraciones de la interfase con el usuario y polticas de la empresa y roles.

Plantilla para especificacin de Casos de Uso

- Nombre del caso de uso - Descripcin de caso de uso - Notas

Especificacin de Casos de Uso Escenarios


Un caso de uso es una abstraccin que describe todos los escenarios posibles que involucran la funcionalidad que se describe. Un escenario es una instancia de un caso de uso que describe un conjunto de acciones concretas.
Ilustrar casos comunes.

Especificacin de Escenarios de Casos de Uso Plantilla


Caso de Uso: Nombre del caso de uso Escenario: Nombre de escenario Actores participante Suposiciones / Asunciones
Suposiciones que definen el contexto en el cual el sistema puede proveer la funcionalidad descrita por el caso de uso.

Flujo de acciones
Secuencia de acciones del caso del escenario

Resultados
Los resultados garantizados por el escenario.

Especificacin de Escenarios de Casos de Uso


Caso de Uso 1: Rentar Vdeo. Escenario 1.1: Socio renta un vdeo exitosamente. Suposiciones/Asunciones: Socio cancela el dinero del alquiler. Copia del vdeo de la pelcula requerida est disponible. Flujo: 1. El usuario busca el cliente en el sistema 2. El usuario busca el video que el cliente desea rentar y crear una renta registrando video en la cuenta del cliente. Resultados: Socio renta el vdeo satisfactoriamente. Contador de rentas para la pelcula es incrementado.

Diseo del sistema

Modelo de objetos / Modelo dinmico

Identificando clases y relaciones

Modelo de objeto

Diseo Orientado a Objetos

Diagrama de Clases?
Diagrama UML para documentar la estructura esta
Determina las clases del sistemas Determina las relaciones entre las clases del sistema

Libro

Modelo simple de una clase

Diagrama de Clases Identificacin de clases y objetos

Construir un modelo de clases involucra identificar que clases deben existir en el sistema Que hace bueno a un modelo de clases?
Construir tan rpido como barato sea posible Construir un sistema fcil de mantener y que se adapte a futuros requerimientos

Cada pieza de funcionalidad requerida por el sistema debe estar disponible para proveerse por un objeto de las clases que se seleccionen

Diagrama de Clases Identificacin de clases y objetos

Cada pieza de funcionalidad requerida por el sistema debe estar disponible para proveerse por un objeto de las clases que se seleccionen
Un buen modelo de clases el mismo representa los objetos del dominio del problema
No depende de una funcionalidad en particular requerida hoy en da. Para el ejemplo de la biblioteca es razonable tener una clase llamada Libro. No es razonable una clase llamada B o PapelLiterario.

Diagrama de Clases Cmo construir un buen modelo de clases?

Se puede utilizar cualquier tcnica para obtener las clases


Si su modelo de clases resulta ser malo no importa cual maravilloso sea el mtodo que utilizo

El conjunto de clases es una de las cosas que cambiaran dentro de cada iteracin del desarrollo. Usualmente identificamos las clases mas importantes del domino de objetos
El resto de clases que no estn definidas claramente dentro del dominio son mas difciles de identificar.

Diagrama de Clases Identificacin de clases y objetos

Se pueden elegir dos enfoques


Diseo centrado en datos (DDD) Diseo centrado en responsabilidades (RDD) No olvide que las clases contiene datos y responsabilidades.

Diseo basado en datos (DDD)


Identificar los datos en el sistema Dividir los datos identificados en clases Considerar las responsabilidades de las clases
Utilizar la tcnica de identificacin de sustantivos

Diagrama de Clases Identificacin de clases y objetos

Diseo basado en responsabilidades (RDD)


Identificar las responsabilidades del sistema Dividir las responsabilidades identificadas en clases Considerar los datos de las clases

El preferible utilizar una mezcla de estos dos diseos.

Diagrama de Clases Identificacin de clases y objetos

Identificacin de sustantivos
Identificar clases candidatas tomando todos los sustantivos a partir de la especificacin de requerimientos del sistema.

- Considerar las formas singulares - No incluir frases que contienen o como candidatos

Diagrama de Clases Identificacin de clases y objetos

Identificacin de sustantivos
Descartar candidatos que no son apropiados por alguna razn, renombrar las clases restantes si es necesario. - Redundancia - Misma clase con diferente nombre: Prstamo y PrestamoCorto - Seleccionar un nombre de clase que describa todo el contenido - Vago - No se puede decir de manera no ambigua cual es el significado por medio de un sustantivo - Se debe librar de ambigedades para poder determinar si un sustantivo representa una clase. - Evento o operacin - Cuando un sustantivo se refiere algo hecho por o para o en el sistema - No siempre esto esta bien modelado por una clase - Si una instancia de una operacin o evento no tiene estado, comportamiento o identidad descartarlo.

Diagrama de Clases Identificacin de clases y objetos

Identificacin de sustantivos
Descartar candidatos que no son apropiados por alguna razn, renombrar las clases restantes si es necesario. - Meta-lenguaje - Cuando los sustantivos forman parte de la forma como se definen cosas. - Los sustantivos requerimientos y sistema se usan como lenguaje de modelamiento en lugar de representar objetos en el dominio del problema - Fuera de alcance - Los sustantivos son relevantes para describir como el sistema trabaja pero no para referirse algo dentro del sistema. - Un atributo - Un sustantivo que se refiere a algo simple sin comportamiento interesante el mismo que es un atributo de otra clase

Identificacin de clases y objetos Qu tipo de cosas son clases?

Una clase describe un conjunto de objetos con un rol o roles equivalentes en un sistema. Objetos y sus divisiones en clases frecuentemente se derivan de una de las siguientes fuentes
Cosas tangibles o del mundo real
Libro, Copia, Curso, etc.

Roles
Bibliotecario, Estudiante, Director de estudios

Eventos
Llevar, Dejar, Requerir, etc.

Interacciones
Encontrar, Interceptar, etc.

Diagrama de Clases Identificacin de clases y objetos

Recordar que los objetos son cosas reales dentro de un programa de computadora
No grabar informacin que es irrelevante para el sistema No perder de vista el hecho que los objetos son el sistema

El error clsico de las personas es inventarse una clase llamada Sistema


No generan un diseo orientado a objetos sino un diseo monoltico en el que un objeto conoce y hace todo.

ELEMENTOS DE UN DIAGRAMA DE CLASES

Clases
- Una clase se representan como un rectngulo dividido en tres partes - El nombre de la clase. - Los atributos, en la forma:
visibilidad nombreAtributo: tipo

Elementos de un Diagrama de Clases

- Los mtodos, en la forma:


visibilidad nombreMtodo(parmetros): tipoRetorno. Los parmetros van separados por comas y slo se especifica el tipo.
Los constructores no tienen tipo de retorno.

- La visibilidad de atributos y mtodos privado + pblico # protegido ~ de paquete

Asociaciones
- Una asociacin (relacin entre dos clases) - Se representa como una lnea continua entre dos Clases, - Puede tener el nombre de la relacin sobre esta lnea
Cada Carro tiene una relacin con Conductor, pero tambin cada Conductor tiene relacin con Carro. Esta es una relacin en ambos sentidos.

Elementos de un Diagrama de Clases

- La relacin puede ser en un solo sentido para lo cual se muestra con una flecha que indica el sentido de la relacin
Un Pasajero conoce el Carro(o carros) con el cual viaja, pero el Carro no tiene ninguna relacin con los Pasajeros

Multiplicidad
- Es una restriccin que se pone a una asociacin - Limita el nmero de instancias de una clase que pueden tener esa asociacin con una instancia de la otra clase

Elementos de un Diagrama de Clases

- Un chofer tiene relacin con cero o ms autobuses. - Un autobs tiene relacin con uno o dos choferes. - Una terminal de pasajero tiene relacin con cero o muchos autobuses. - Un autobs tiene relacin con un terminal de pasajero.

Roles
- Para indicar el papel que juega una clase en una asociacin se puede especificar un nombre de rol.

Elementos de un Diagrama de Clases

- Se representa en el extremo de la asociacin junto a la clase que desempea dicho rol.

Herencia
La herencia es tomar caractersticas y funcionalidades definidas en otras clases. La relacin de herencia se representa mediante un triangulo en el extremo de la relacin que corresponde a la clase mas general o clase padre.

Elementos de un Diagrama de Clases

La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos pre-existentes.

Agregacin y Composicin
Las relaciones de Agregacin y Composicin son dos tipos de especializacin de la relacin de Asociacin.

Elementos de un Diagrama de Clases

Agregacin - Similar a la relacin de Asociacin solo vara en la multiplicidad ya que en lugar de ser una relacin uno a uno es de uno a muchos. Tenemos una clase Agenda. Tenemos una clase Contacto. Una Agenda agrupa varios Contactos.

Composicin - Es una relacin mas fuerte. Aporta documentacin conceptual ya que es una relacin de vida, es decir, el tiempo de vida de un objeto est condicionado por el tiempo de vida del objeto que lo incluye.

Tenemos una clase Silla. Un objeto Silla est a su vez compuesto por cuatro objetos del tipo Pata. El tiempo de vida de los objetos Pata depende del tiempo de vida de Silla, ya que si no existe una Silla no pueden existir sus Patas.

Diagramas de secuencia, estado y actividad

Modelo dinmico

Diagramas de interaccin

Describen como grupos de objetos colaboran para conseguir algn fin Muestran objetos y mensajes que se envan estos dentro de un Caso de Uso
Capturan el comportamiento de los casos de uso

Tipo de diagramas
Diagramas de colaboracin Diagramas de secuencia

Diagramas de Secuencia
Muestra una interaccin ordenada segn la secuencia temporal de eventos Muestra la interaccin entre los objetos que tiene lugar a travs del intercambio de mensajes Muestra los objetos participantes en la interaccin y los mensajes que se intercambian ordenados segn la secuencia de tiempo

Diagramas de Secuencia
Interacciones expresadas en funcin del tiempo Muestra los objetos participantes y los mensajes que intercambian entre ellos a lo largo del tiempo No muestra los enlaces entre los objetos Especifican restricciones de interaccin en tiempo real Dos dimensiones
Vertical: Representa el tiempo Horizontal: Representa los distintos objetos

Diagramas de Secuencia
El tiempo avanza verticalmente desde el comienzo hasta el final del diagrama El orden en que aparecen los objetos horizontalmente no tiene importancia

Las lneas punteadas bajo los objetos representan la lnea de vida de los mismos
Se coloca una X para indicar que el objeto fue destruido (destroy)

Diagramas de Secuencia

Diagramas de Secuencia
Un mensaje es una comunicacin entre objetos (invocacin a mtodos) que contiene informacin y que espera la realizacin de una accin El orden del envi de mensajes se visualiza de arriba abajo en el diagrama. Un mensaje se representa como una fecha entre las lneas de la vida de los objetos,

Diagramas de Secuencia

Diagrama de Estados
Describen el comportamiento de clases y sistemas que han sido concebidos haciendo uso de un modelo de estados. En un modelo de estados se identifican las situaciones en la que el comportamiento o capacidad de respuesta con cualitativamente diferentes, as como los eventos o condiciones bajos las que se pasa de una situacin a otra (transiciones de estados). Los diagramas de estados son intensivamente utilizados en:
Sistemas de tiempo real y crticos. La descripcin de sistemas reactivos. La descripcin de sistemas basados en protocolos

Diagrama de Estados Calificacin de estado


Calificacin de estado
Estticamente
En funcin del valor que tienen sus atributos.

Dinmicamente
En funcin de la actividad que ejecuta.

El comportamiento describe las acciones que se producen mientras que el sistema se encuentra en un estado:
entry/behavior => Accin que se realiza cuando se llega a un estado. do/behavior => Actividad que se ejecuta mientras se est en un estado. Exit/behavior => Acciones que se ejecuta cuando se abandona un estado. Transiciones internas => Se formulan como trigger[guard]/behavior

Diagramas de estado

Estado Transicin a otro estado

Estado inicial Estado final

Transicin al mismo estado

You might also like