Anda di halaman 1dari 70

Anlisis de Sistemas II

2012

Diseo Orientado a Objetos


Repaso UML. -Tipos de Diagramas.

Diagrama de Casos de Uso.


Objetivo. Conversaciones. Contrato de las operaciones. Diagrama de Secuencia. Objetos y Clases Modelo de Objetos. -Relaciones. Ejercicios Prcticos

Anlisis y Diseo orientado a objetos.


UML es un lenguaje de modelado unificado. Es un lenguaje que permite modelar, construir y documentar

los elementos que conforman un sistema software orientado a objetos. Un modelo representa a un sistema de software desde una perspectiva especfica, es decir cada modelo nos permite fijarnos en un aspecto distinto del sistema.

UML
Combinar y estandarizar una notacin para la descripcin de

sistemas orientados a objetos a partir de los lenguajes de modelado ms conocidos:


Booch - OOD. Rumbaugh - OMT. Jacobson - OOSE y Objectory.

Combina las mejores propiedades de:


Conceptos de modelos de datos (ERD) Modelos de negocios (workflow) Modelos de Objetos Modelos de Componentes

UML
Es un lenguaje grfico para visualizar, especificar, construir y

documentar las partes de un sistema de software desde distintos puntos de vista. Ofrece una forma estndar de modelar sistemas software, pudiendo utilizarse: Con cualquier proceso de desarrollo. A lo largo de todo el ciclo de vida. Con distintas tecnologas de implementacin Puede usarse tambin en otras reas, como la ingeniera de negocio, modelado de procesos, etc.

UML
No es un mtodo ni un proceso ni una metodologa. No establece qu modelos construir. Para un ptimo aprovechamiento, se recomienda ser usado

en un proceso:
guiado por casos de uso,

centrado en la arquitectura,
iterativo e incremental.

UML
UML es una familia de notaciones, tiles para

describir distintos aspectos de un sistema: Esttico. Describe los elementos del sistema y sus relaciones. Dinmico. Describe el comportamiento del sistema a lo largo del tiempo.
Casos de Uso. Desde el punto de vista del usuario.

Tipos de Diagramas

Tipos de Diagramas
Hay dos grupos principales de diagramas: Diagramas de Estructuras: Muestran una vista esttica del modelo. Enfatiza en los elementos que debe existir en el sistema modelado.
Diagramas de Comportamiento:

Muestra una vista dinmica del modelo. Enfatiza en lo que debe suceder en el sistema modelado.

Tipos de Diagramas
DIAGRAMAS DE ESTRUCTURA 1. Diagrama de Clases 2. Diagrama de Componentes 3. Diagrama de Objetos 4. Diagrama de Despliegue o Distribucin 5. Diagrama de Paquetes DIAGRAMAS DE COMPORTAMIENTO 6. Diagrama de Actividad 7. Diagrama de Caso de Uso 8. Diagrama de Estados Diagramas de Interaccin: son un subtipo de los diagramas de comportamiento. 9. Diagrama de Secuencia 10. Diagrama de Comunicacin o Colaboracin

DIAGRAMA DE CASO DE USOS


Un caso de uso es una secuencia de interacciones entre un sistema

y alguien o algo que usa alguno de sus servicios. Los diagramas de casos de uso incluyen actores que representan las diferentes clases de usuarios que pueden interactuar con el sistema. Los actores se comunican con los casos de uso, que representan las actividades que se necesitan para satisfacer los objetivos de los usuarios. El diagrama se centra en lo que debe hacer el proceso de negocio.

COMPONENTES
Frontera del sistema: caja negra rectangular Caso de uso: elipse, el nombre se construye con un verbo y

un objeto, en infinitivo o en gerundio. Actor: hombres de palo, dibujos simplificados de personas.

Ejemplo
Cajero automtico
Realizar/ Realizando Reintegro

Cliente

Actor
Es una agrupacin uniforme de personas, sistemas o

mquinas que interactan con el sistema que estamos construyendo. Es una clase de rol. Si la flecha apunta desde el actor hacia el sistema, esto indica que el actor esta ingresando informacin al sistema. Si la flecha apunta desde el sistema hacia el actor, el sistema est generando informaci para el actor.

Identificacin de un actor
El grupo de usuarios que ingrese pedidos al sistema ser un

actor. El grupo de usuarios que haga otras operaciones con los pedidos ser un actor. Ej. Autorizarlos, cancelarlos, modificarlos. Todo grupo de usuarios que reciba ciertos informes del sistema ser un actor. Ej. estadsticas de ventas.

Cajero automtico

Realizar/Realizando reintegro

Cambiar o

Cambiando PIN
Cliente Consultar/Consultando saldo

Caso de uso
Describe lo que hace tanto el actor como lo que hace el

sistema cuando interacta con l. Es iniciado por un actor. El nombre del caso de uso siempre est expresado desde el punto de vista del actor. Se documenta con texto informal.

DCU -Ejemplo
Cajero automtico
Realizar/Realizando reintegro

Cambiar o Cambiando PIN Cliente Recibiendo informe de Gerente

movimientos

DCU -Ejemplo

Descripcin del caso de uso o conversacin


1.
2.

Es la documentacin con texto informal de un caso de uso. Es una lista numerada de los pasos que sigue el actor para interactuar con el sistema. Las desviaciones del curso normal del caso de uso se llaman alternativas. Las alternativas tienen dos caractersticas: Representan un error o excepcin en el curso normal del caso de uso. No tienen sentido por s mismos, fuera del contexto del caso en que ocurren.

Caso de uso: realizar reintegro Actor: cliente


Curso Normal 1. El cliente introduce una tarjeta 2. El sistema le solicita la clave de identificacin 3. El cliente introduce la clave 4. El sistema presenta las opciones de operaciones disponibles. 5. El cliente selecciona la operacin de reintegro 6. El sistema solicita la cantidad a retirar. 7. El cliente ingresa la cantidad. 7.1 se informa que la cantidad solicitada supera el saldo. 7.2 se cancela la operacin. 3.1 se informa que la clave es incorrecta 3.2 se cancela la operacin Alternativas

8. El sistema procesa la informacin y da el dinero.


9. El cliente retira la tarjeta 10. Retira el recibo y el dinero.

Relaciones
Comunicacin: representa la relacin entre un actor y un

caso de uso Inclusin o Usa Extensin Generalizacin

Inclusin

1. 2. 3.

Se utiliza cuando un caso de uso es accedido a partir de varios casos de uso. Se representa con una flecha con lneas punteadas desde el caso que usa a al caso que es usado. Caractersticas:
Aparecen como funcionalidad comn. Los casos usados son casos de uso en s mismos. El caso es usado siempre que el caso que lo usa es ejecutado.

Cajero automtico Validando operacin


Caso usado

<<inclusin>> Cambiando PIN


Caso que usa a

Cliente Recibiendo informe de

Gerente

movimientos

Extensin
La funcionalidad de un caso de uso puede incluir un conjunto de pasos que ocurren slo en algunas oportunidades. Es una excepcin que ocurre dentro de un caso de uso. La excepcin consiste en interrumpir el caso de uso y pasar a ejecutar el caso de uso extendido. Caractersticas:

1. 2. 3.

Representan una parte de la funcionalidad del caso que no siempre ocurre. Son un caso de uso en s mismo. No necesariamente proviene de un error o excepcin.

Cajero automtico
Revisando informe de movimientos extranjeros
Caso extendido

<<extensin> >
Caso que extiende a

Recibiendo informe de movimientos

Gerente

Generalizacin
Representa una relacin padre-hijo, donde el hijo puede ser

suplido directamente por el padre en cualquier momento. Puede existir entre dos casos de uso o entre actores.

EA 51 3. 51 3. 51 3. 51 3. 51 3. 51 3. 51

Ejemplo

EA

EA

EA

EA

EA

EA

3. 51

-U -U -U -U -U -U -U -U nr nr nr nr nr nr nr nr eg eg eg eg eg eg eg eg gi is is is is is is is is st te te te te te te te te er re re re re re re re re ed d d d d d d d d TR TR TR TR TR TR TR TR TR T IA IA IA IA IA IA IA IA IA L L L L L L L L L Ve Ve Ve Ve Ve Ve Ve Ve Ve rs rs rs rs rs rs rs rs rs r io io io io io io io io io n n n n n n n n n
Efectiv o Pagar Orden

Tarj eta de crdito

EA 51

-U -U -U -U -U -U -U -U nr nr nr nr nr nr nr nr eg eg eg eg eg eg eg eg gi is is is is is is is is st te te te te te te te te er re re re re re re re re ed d d d d d d d d TR TR TR TR TR TR TR TR TR T IA IA IA IA IA IA IA IA IA L L L L L L L L L Ve Ve Ve Ve Ve Ve Ve Ve Ve r r r r r r r r r r

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

Construccin de casos de uso


1.Identificar los Actores Identificar todos los tipos de usuarios diferentes que tiene el sistema. Identificar las reas afectadas que usarn o actualizaran la informacin 2.Identificar los principales casos de uso de cada actor.

Construccin de casos de uso


3. Identificar nuevos casos a partir de los existentes: Es una tcnica que se basa en el anlisis de cuatro situaciones posibles a partir de los casos ya identificados. Variaciones de casos de uso Casos de uso opuestos Casos de uso que preceden a casos: Qu es lo que tiene que ocurrir antes de este caso de uso? Casos de uso que suceden a casos: Qu es lo que tiene que ocurrir despus de este caso de uso?

Diagrama de Secuencia
Para cada caso de uso que se est tratando se realiza un

diagrama para el curso tpico de eventos, y adems se realiza un diagrama para los cursos alternativos. Describe como interactan grupos de objetos y colaboran entre s para alcanzar un objetivo. Captura el comportamiento de un caso de uso. Muestra los objetos que participan en la interaccin y los mensajes que se intercambian.

Componentes
Objeto/Actor: es la instancia de una clase. Se dibuja con un

rectngulo con el nombre del objeto y la clase. Clase: es un grupo de objetos con la misma estructura de datos (atributos) y comportamiento (operaciones). Lnea de vida: representa la vida de un objeto y la existencia del mismo durante el perodo de la interaccin. Se dibuja con una lnea vertical discontinua.

Componentes
Activacin/Proceso: muestra el perodo de tiempo durante

el que un objeto est realizando una accin. Se representa con un rectngulo. Mensaje: es la comunicacin de un objeto a otro. Se representa con una flecha continua horizontal desde la lnea de vida de un objeto a otro.

Ejemplo

EA 3. 51 3. 51 3. 51 3. 51 3. 51 3. 51 3. 51
Cliente

EA

EA

EA

EA

EA

EA

EA

-U -U -U -U -U -U -U -U -U -U U nr nr nr nr nr nr nr nr nr nr nr eg eg eg eg eg eg eg eg eg eg eg is is is is is is is is is is is te te te te te te te te te te te er re re re re re re re re re re re ed d d d d d d d d d d d TR TR TR TR TR TR TR TR TR TR TR TR IA IA IA IA IA IA IA IA IA IA IA IA AL L L L L L L L L L L L L Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve rs rs rs rs rs rs rs rs rs rs rs rs rs io io io io io io io io io io io io io n n n n n n n n n n n n n n
tarjeta vlida clave valida ingresar clave(clave) ingresarTarjeta(nmero) Seleccionar reintegro ingresar reintegro(cantidad) expulsar tarjeta Imprimir recibo

3. 51

EA

3. 51

EA

3. 51

EA 3. 51

EA

-U -U -U -U -U -U -U -U -U -U U nr nr nr nr nr nr nr nr nr nr nr eg eg eg eg eg eg eg eg eg eg eg is is is is is is is is is is is te te te te te te te te te te te er re re re re re re re re re re re ed d d d d d d d d d d d TR TR TR TR TR TR TR TR TR TR TR TR IA IA IA IA IA IA IA IA IA IA IA IA AL L L L L L L L L L L L L Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve Ve rs rs rs rs rs rs rs rs rs rs rs rs rs io io io io io io io io io io io io io n n n n n n n n n n n n n n

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA

3. 51

EA
Sistema

3. 51

Donde se realiza??

Ejemplo

Contrato de operaciones
se describe mediante contratos el comportamiento esperado

del sistema en cada operacin. Es un documento que describe qu es lo que se espera de una operacin. Tiene una redaccin en estilo declarativo, se expresa en forma de pre y post condiciones en torno a cambios de estado.

Partes de un contrato
Nombre: nombre de la operacin y parmetros. Responsabilidades: una descripcin informal de las

responsabilidades que la operacin debe desempear. Excepciones: situaciones que debemos tener en cuenta que pueden pasar, se indica qu se hace cuando ocurre una excepcin. Pre-condiciones: suposiciones acerca del estado del sistema antes de ejecutar la operacin. Post-condiciones: es estado del sistema despus de completar la operacin.

Ejemplo
Contrato Nombre: Ingresar tarjeta (nmero) Responsabilidades: comprobar que el nmero de tarjeta es correcta y presentar las opciones disponibles. Excepciones: si la tarjeta es ilegible o no pertenece a los tipos de tarjetas aceptadas, indicar que surgi un error. Pre-Condiciones: no hay una operacin activa. Post-Condiciones: una nueva operacin se ha creado.

Construccin de un contrato
1.

2.
3. 4. 5.

6.

Identificar las operaciones del sistema a partir del D. de secuencia. Para cada operacin del sistema construir un contrato. Empezar escribiendo las responsabilidades, describiendo informalmente el propsito de la operacin. Completar el apartado de post-condiciones. Para describir las post-condiciones, usar las siguientes categoras: creacin y borrado de instancias. modificacin de atributos. Completar el resto de los apartados.

Objetos y Clases
Objeto:
Concepto, abstraccin o cosa con fronteras definidas y

significado para nuestro problema. Permite una mejor comprensin del mundo y proporciona la base para una implementacin sobre el ordenador. No existe una representacin exacta. Todos los objetos tienen una identidad y son distinguibles.

Del Anlisis al Diseo


El modelo de anlisis describe el sistema desde el punto de

vista de los actores. No contiene informacin de la estructura interna del sistema, esto es del cmo. Diseo del sistema:
Objetivos de diseo que se deben optimizar (derivados de los

requisitos no funcionales). Una arquitectura software: descomposicin en subsistemas, dependencias entre ellos, etc.
Diseo detallado (de objetos).
Refinamiento del diseo del sistema. Diseo de las clases de la solucin, interfaces.

Objetos y Clases
Clase:
Describe grupos de objetos con propiedades (atributos)

similares, comportamiento (operaciones) comunes, relaciones con otros objetos y semntica comn. Cada objeto sabe cul es su clase, ya que es una instancia de la misma.

Definicin de una clase


Identificar y nombrar la clase Identificar sus componentes Identificar sus atributos Identificar los errores Identificar las conexiones funcionales (qu clases sirve/exige)

Definir conexiones con superclase y subclases


Identificar propiedades especiales (persistencia,

concurrencia) Probar la clase en un prototipo.

Identificar atributos
El conjunto de atributos de una clase debe ser: Completo (contienen toda la informacin pertinente) General (se aplican a todos los objetos de la clase) Diferenciado (cada atributo representa un aspecto

diferente de la clase)

Definir atributos
Tipos de atributos
Atmicos predefinidos (entero, real, carcter, pixel...) Atmico enumerativo (color, da de la semana...) Coleccin Composicin (referencias objetos)

Valor del atributo


Comn a muchos objetos (variable de clase) Propio de un objeto ( variable de objeto)

Modelo de Objetos
El Modelo de Objetos utiliza un Diagrama de Configuracin

de Clases (DCC) para definir y mostrar la estructura y comportamiento de todas las clases identificadas en el dominio del problema, as como sus relaciones. El DCC es un modelo semntico extendido.

Ejemplo

Modelo de Clases
Una clase se representa grficamente como una caja dividida en tres reas:

Cabecera: contiene la declaracin del nombre de la clase. Parte Esttica: contiene la definicin de los atributos que representan el estado de los objetos de la clase. Los atributos podrn ser constantes, variables y derivados. Aquellos atributos utilizados para identificar objetos se subrayan. Parte Dinmica: contiene la declaracin de los servicios de la clase. Cada servicio se declara especificando su nombre y argumentos (con sus tipos respectivos). Se distinguir (grficamente) entre los eventos de creacin, borrado y los eventos compartidos con otras clases.

Operaciones y Mtodos
Funcin o transformacin que se aplica a o por los objetos en

una clase. Tienen un objeto destino como argumento implcito (el objeto actual). Polimorfismo: la misma operacin puede aplicarse a clases diferentes dentro de una jerarqua de herencia. Mtodo: implementacin de una operacin para una clase. Las operaciones con mtodos en varias clases deben compartir la misma signatura (tipos de sus argumentos y valor que devuelven).

Identificar Mtodos
Mtodo: algoritmo que utiliza y modifica los atributos de

una clase Un mtodo es desencadenado por un mensaje Funcionalidad de la clase: conjunto de sus mtodos El conjunto de mtodos debe ser:
Completo (realizan toda la funcionalidad de la clase) General (se aplican a todos los objetos de la clase) Diferenciado (cada mtodo debe ser simple y realizar una sola

funcin)

Definir Mtodos
Tipos de mtodos
Modificador (asigna valor a un atributo) Selector (devuelve el valor de un atributo) Aplicable a la clase (constructor) Aplicable al objeto

Parmetros del mtodo


Qu informacin necesita? (argumentos de entrada) Qu debe devolver? (resultado y argumentos salida)

Identificar Errores
Qu puede salir mal durante la ejecucin de un

mtodo?
Qu comprobaciones debe hacer cada mtodo? Cmo interceptar y corregir las condiciones de

error?

Enlaces y Asociaciones
Enlace: conexin fsica o conceptual entre objetos. Asociacin: grupo de enlaces con la misma estructura y

semntica comn. Sentido de una asociacin:


Inherentemente son bidireccionales.

directa (forward) e inversa (inverse).

Ejemplo

Asociaciones
Las asociaciones pueden ser binarias, ternarias o de rdenes

superiores. Los nombres de las asociaciones son opcionales en la notacin (se escriben en cursiva).

Multiplicidad
Especifica cuntos objetos de una clase pueden relacionarse con un nico objeto

de una clase asociada. Se especifica mediante: Un subconjunto (posiblemente infinito) de enteros no negativos: 0..n, o bien uno o varios intervalos no conexos: 1..4, 7. No debemos preocuparnos de ajustar la multiplicidad demasiado pronto en nuestro Modelo de Objetos. En los Diagramas de Objetos la multiplicidad se especifica mediante smbolos especiales en los extremos de las lneas de las asociaciones.

Multiplicidad

Relaciones
Las acciones son servicios que un objeto puede activar

(actuando como agente) para consultar o modificar el estado de otro objeto. Las relaciones estructurales que podemos modelar son la agregacin (parte-de) y la herencia (es- un).

Agregacin
Se presenta la relacin de Agregacin entre clases,

incluyendo informacin sobre cardinalidades (mnimas y mximas) que determinan cuntos objetos componentes forman parte de un objeto compuesto e inversamente, cuntos objetos compuestos pueden estar compuestos de un objeto en particular.

Ejemplo Agregacin

Herencia
La Herencia se define grficamente trazando una flecha

desde la subclase hacia la superclase correspondiente. Esta flecha de especializacin puede etiquetarse con una condicin de especializacin o con los eventos correspondientes de activacin/cancelacin de la especializacin temporal (rol).

Herencia / Generalizacin
Generalizacin: relacin entre una clase (superclase) y una o ms

versiones refinadas de ella (subclases). Relacin "es-un". Las subclases heredan las caractersticas, atributos y operaciones de su superclase. Una instancia de una subclase es una instancia de sus clases antecesoras o ascendientes. Distincin entre generalizacin y herencia: Generacin: relacin entre clases. Herencia: mecanismo para compartir caractersticas.

Ejemplo Herencia

Patrones de Diseo
Catlogo de soluciones que han probado ser buenas para

ciertos problemas comunes de diseo. Evita reinventar la rueda continuamente. Reutilizacin de buenas prcticas, comn en otras ingenieras. Un patrn es una descripcin del problema y la esencia de su solucin, que se puede reutilizar en casos distintos. Los estudiaremos en el Tema 5.

Ejercicio Prctico.
Sistema de Expedientes

Bibliografa
Modelado y Diseo Orientados a Objetos, (Metodologa OMT), 1996, James

Rumbaugh, Prentice Hall El Lenguaje Unificado de Modelado, James Rumbaugh, 2000, Prentice Hall Anlisis y Diseo de Sistemas, Kendall y Kendall, 1997, Prentice Hall UML y Patrones, Craig Larman; Segunda Edicin. Editorial: Prentice Hall. Ingeniera de software un enfoque prctico, Roger S. Pressman, 6th ed. Editorial MC Graw Hill. 2005 Ingeniera del Software, Ian Sommerville. 7th ed. Editorial Prentice Hall. Apuntes Ctedra Anlisis de Sistemas II, Facena UNNE. http://exa.unne.edu.ar/informatica/anasistem2/public_html/home.htm http://astreo.ii.uam.es/~jlara/TACCII/4_ADOO.pdf

Muchas Gracias
Consultas. La prxima clase..