Professional Documents
Culture Documents
El Problema!
Usted ha sido contratado para desarrollar un
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
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
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.
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
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.
Flujo de acciones
Secuencia de acciones del caso del escenario
Resultados
Los resultados garantizados por el escenario.
Modelo de objeto
Diagrama de Clases?
Diagrama UML para documentar la estructura esta
Determina las clases del sistemas Determina las relaciones entre las clases del sistema
Libro
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
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.
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.
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
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.
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
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.
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
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
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.
- 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
- 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.
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.
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.
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.
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
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