Sunteți pe pagina 1din 30

Algunas Herramientas de Apoyo al Anlisis y Diseo de Software

Agustn J. Gonzlez
ELO329: Diseo y programacin orientados a objetos

Resumen

Para desarrollar software hay varias herramientas de gran utilidad independientemente de la metodologa usada en el desarrollo. Veremos:

Descripcin de casos de uso, Tarjetas CRC (Clase, Responsabilidad y Colaboradores, Diagramas UML (Unified Modeling Language)

Elo329: Diseo y Programacin Orientados a Objetos

Casos de Uso

Recordemos las principales actividades del desarrollo: Definicin de requerimientos, anlisis, diseo, implementacin, pruebas, distribucin. Se requiere de tcnica para capturar informacin sobre cmo un sistema o negocio trabaja (o se comporta), o sobre cmo se desea que trabaje o comporte El estudio de casos de uso es una tcnica de que sirve tanto para definir requerimientos como en el anlisis. Tambin es de utilidad durante las pruebas. Cada caso de uso se concentra en un escenario especfico y describe la interaccin entre un actor principal y el sistema. Caso de uso = Secuencia de acciones Accin = Interaccin entre actor(es) y el sistema bajo desarrollo.
Elo329: Diseo y Programacin Orientados a Objetos

Casos de Uso (cont.)


Actores pueden ser usuarios, otros sistemas, hardware, todos fuera del sistema de software que estamos definiendo. Cada resultado (salida) tiene un valor para uno de los actores Se usa variaciones para situaciones excepcionales. Se construye en base a levantamiento inicial de requerimientos y en reuniones de anlisis con usuarios. Un caso de uso debe ser simple, claro y conciso. No debe dar lugar a especificaciones ambiguas. Se pueden presentar grficamente usando Diagramas de Casos de Uso. Son buenos para capturar requerimientos reflejados en comportamientos del sistema ante determinadas entradas (son los requerimientos funcionales). No son buenos para requerimientos no funcionales. Ej.: Plataforma, desempeo, seguridad, Orientados ade respuesta. Elo329: Diseo y Programacin tiempo Objetos

Plantilla para Casos de Uso


Esta es una de varias posibles. Nombre: Nombre del caso de uso, usar verbo y sustantivo, debe sintetizar el objetivo deseado. Ej. Cambiar nota Propsito: Resume brevemente qu se desea lograr con este caso de uso. Actores: Entes externos que participan en el caso de uso.

Pre-condiciones: Pre-requisitos existentes (que se prevn) para el correcto funcionamiento de la funcionalidad especificada en el caso de uso.
Elo329: Diseo y Programacin Orientados a Objetos

Plantilla para Casos de Uso

Evento: Situacin que gatilla el inicio del caso de uso. Pos-condiciones: Situacin que ocurre despus de usar la funcionalidad especificada en el caso de uso Tipo: Manual o automtico, Ej.: Un timer expira es automtico.

Elo329: Diseo y Programacin Orientados a Objetos

Plantilla para Casos de Uso

Curso Normal de Eventos (o detalle): aqu se describe una secuencia numerada de pasos relatando el flujo bsico o feliz del caso de uso. Se sugiere separar en dos columnas:
Entorno 1) Sistema

2)

Curso Alternativo de eventos: funcionalidad que se requiere en caso de error.

Elo329: Diseo y Programacin Orientados a Objetos

Plantilla para Casos de Uso

Requerimientos no funcionales: Especificacin narrativa de solicitudes no funcionales del usuario que especifican situaciones de rendimiento, volmenes de informacin, seguridad, tiempos de respuesta, etc.

Autor: Persona(s) responsable del anlisis y redaccin del caso de uso.

Elo329: Diseo y Programacin Orientados a Objetos

Ejemplo de caso de uso: Sistema de mensajes de voz en telfono.


Nombre: Dejar un mensaje Propsito: El llamador desea dejar un mensaje en una casilla de voz. Actor: llamador Pre-condicin: Existe la casilla buscada. Evento: El llamador llama a una casilla. Post-condicin: El mensaje queda grabado en casilla. Tipo: manual

Elo329: Diseo y Programacin Orientados a Objetos

Ejemplo de caso de uso: Sistema de mensajes de voz en telfono.


Curso Normal de Eventos: 1. El llamador marca el nmero principal del sistema de mensaje de voz. 2. El sistema responde con un mensaje hablado pidiendo:

Ingrese el nmero de la casilla seguido por un signo #.

3. El usuario marca el nmero de la extensin. 4. El sistema le habla:

Usted se ha contactado con la casilla xxxx, Por favor deje su mensaje ahora. Elo329: Diseo y Programacin Orientados a Objetos

Ejemplo de caso de uso: Sistema de mensajes de voz en telfono.


Curso Alternativo de eventos Es comn especificar variantes de un caso de uso:

Variante 1:
3A1. El usuario ingresa un nmero de extensin invlido.

4A1. El sistema de mensaje de voz responde:

Usted ha marcado un nmero de casilla invlido.

5A1: Contina con paso 2. Variante 2 5A2. El usuario cuelga en lugar de dejar un Elo329: Diseo y Programacin Orientados a Objetos mensaje.

Tarjeta CRC: Class, Responsibilities, Collaborators.


Es una herramienta principalmente de diseo. Creamos una tarjeta por cada clase (fijarse en sustantivos en casos se uso) El nombre de la clase va en la parte superior. Responsabilidades a la izquierda y

1-3 responsabilidades (fijarse en versos en casos de uso) Colaboradores de la clase, no de cada responsabilidad.
Elo329: Diseo y Programacin Orientados a Objetos

Colaboradores a la derecha.

Ejemplo tarjeta CRC:

Tpicamente los sustantivos de los casos de uso son una buena pista para encontrar candidatos a clases. Los verbos de los casos de uso son candidatos a responsabilidades.
(Casilla)

Elo329: Diseo y Programacin Orientados a Objetos

Recorrido de Caso de Uso

El recorrido de los casos de uso permite identificar otras clases.

Caso de uso: Dejar un Mensaje


Llamador se conecta al sistema de mensajera. Llamador marca extensin. Alguiendebeubicarlacasilla(Mailbox). Ni la casilla ni el mensaje pueden hacer esto.

Surge una nueva clase: SistemaMensajeria (MailSystem).


Responsabilidad: Administrar las casillas.
Elo329: Diseo y Programacin Orientados a Objetos

CRC inicial para: SistemaMensajeria

Usar los casos de uso para llenar las tarjetas CRC. Cambiar las tarjetas a gusto. Es comn hacer cambios al considerar nuevos casos de uso. Lo comn: el primer diseo no es el(SistemaMensajeria) perfecto.

Elo329: Diseo y Programacin Orientados a Objetos

Diagramas UML

UML= Unified Modeling Language Hay varios tipos de diagramas. Nosotros veremos slo cuatro tipos:

Diagrama de Casos de Uso Diagrama de Clases (ya algo conocen) Diagrama de Secuencia (idem) Diagrama de Estados

Elo329: Diseo y Programacin Orientados a Objetos

Tipos de Diagramas UML

Usaremos slo 4

Elo329: Diseo y Programacin Orientados a Objetos

Diagrama de Casos de Uso

Su objetivo es presentar grficamente una funcionalidad provista por el sistema.

Dejar un mensaje

Lmites del sistema


Elo329: Diseo y Programacin Orientados a Objetos

Diagrama de Clases

Cada clase es representada por:


Visibilidad: +: pblico #:protegido -private ~package Nombre Casilla
-newMessages -savedMessages +add() +getCurrentMessage()

Atributos

Mtodos

La representacin vara segn la herramienta usada.


Elo329: Diseo y Programacin Orientados a Objetos

Tipos de Relaciones entre clases

Asociacin: es la relacin ms general representa una familia de relaciones, la asociacin puede ser unidireccional o bidireccional. Puede tener roles, algunos la usan a cambio de agregacin. Relacin de asociacin es ms general. Multiplicidad

Persona 0..*
Suscribe

0..* Revista
Tiene suscriptores

0..1 1 0..* (o *) 1..*

Para indicar direccionalidad se usan flechas

Message Queue

Message

Por ejemplo un mensaje no sabe en qu cola de mensajes est.


Elo329: Diseo y Programacin Orientados a Objetos

Tipos de Relaciones entre Clases (cont)

Agregacin:relacintieneocontiene,la parte puede existir fuera del todo.


Message 1 Queue
0..*

Message

Composicin: Caso especial de agregacin. Mailbox 1 0..* Message Contenido no existe fuera de la clase. La parte Queue slo existe en la medida que el todo exista.
Elo329: Diseo y Programacin Orientados a Objetos

Diferencia entre Agregacin y Composicin


La composicin es ms especfica. Por ejemplo:

Un comit tiene miembros. Es agregacin porque los miembros existen por s solos incluso fuera de ese comit o en otro comit.

Una trabajador tiene nombre y salario. Es composicin porque el nombre o salario por s solos no tienen sentido. Cuando el trabajador se destruye, desaparece tambin su nombre y salario.
Elo329: Diseo y Programacin Orientados a Objetos

Tipos de Relaciones entre Clases (cont)

Herencia: Cuando se cumple la relacin es-un y adems hay una relacin de sub-tipo vlida. Una clase extiende la otra.
Alumno Persona

Interfaces: Describe un conjunto de mtodos. No hay estado ni implementacin.


Message Comparable

Elo329: Diseo y Programacin Orientados a Objetos

Tipos de Relaciones entre clases (cont)

Dependencia: Es la ms dbil de las asociaciones. Indica que una clase usa otra en algn momento. Existe dependencia si una clase aparece en un parmetro o variable local de un GSpring Graphics mtodo de la otra.

Recomendaciones Usar UML para informar, no para impresionar. No dibujar un nico diagrama sobrecargado. Cada diagrama debe Programacin Orientados a Objetos Elo329: Diseo y tener un propsito

Diagrama de clases para sistema de mensajera

A esto se llega luego de analizar varios casos de uso y construir las tarjetas CRC para cada clase.

contiene

Depende de
Elo329: Diseo y Programacin Orientados a Objetos

Diagrama de Secuencia

Cada diagrama muestra la dinmica de un escenario.

Incorporacin de un nuevo mensaje.

Objeto :Clase

Ubicacin de casilla

Creacin de una casilla

Elo329: Diseo y Programacin Orientados a Objetos

Diagramadesecuenciapara:Dejarun Mensaje

Elo329: Diseo y Programacin Orientados a Objetos

Diagrama de Estados

Son utilizados en las clases cuyos objetos tiene estados de inters. Similares a los diagrama de estados que vern o vieron en SistemasDigitales.

Elo329: Diseo y Programacin Orientados a Objetos

Diagrama de Estado para la conexin del dueo de la casilla


Estado Inicial

Elo329: Diseo y Programacin Orientados a Objetos

Herramientas de software

Varios IDE (Integrated Development Environment) incluyen facilidades para crear estos diagramas; por ejemplo: Jgrasp lo provee, en su versin estndar. Eclipse no lo provee directamente, pero se puede incluir agregando un plug-in para ese propsito (yo no lo he probado an) NetBeans incluye un mdulo que lo permite, para ello se debe bajar la versin completa e instalar lo necesario. Cuando las clases ya se tienen, se usa Botn derecho en proyecto->reverse engineer

Luego en Model: seleccionar las clases a diagramar Botn derecho en las clases->Create diagram from selected elements.

Tambin pueden revisar Umbrello (no lo he estudiado completamente)


Elo329: Diseo y Programacin Orientados a Objetos

S-ar putea să vă placă și