Escolar Documentos
Profissional Documentos
Cultura Documentos
ORIENTADO A OBJETOS
La divisin entre el anlisis y diseo es poco clara, el trabajo de los dos se mezcla
continuamente (ver figura 4.1) y los profesionales de los mtodos del anlisis y diseo no
clasifican igual estas actividades. "Debatir sobre la definicin no resulta constructivo en
absoluto y no se emplean con el mismo sentido en los mtodos: lo importante es saber
resolver el problema de crear software y darle mantenimiento con mayor eficiencia, con
mayor rapidez y anlisis a un menor precio" [Larman, 99].
Ms orientado al anlisis
Ms orientado al diseo
- qu
- requerimientos
- cmo
- solucin lgica
a. modelo esttico
Modelo de anlisis
b. modelo dinmico
Modelo de casos de
Modelo conceptual
(a)
(b)
Casos de uso
sistema (b)
(b)
Diagramas de
- de alto nivel
- esenciales
Modelo del
comportamiento del
Diagramas de
secuencia del
estructura esttica
sistema
Diagramas de
casos de uso
Diagramas de
estado para
conceptos y casos
Contratos para
de uso
operaciones del
sistema
a. modelo esttico
Modelo de diseo
Modelo de casos de
uso del anlisis
(b)
b. modelo dinmico
Modelo conceptual
(a)
Modelo del
comportamiento del
anlisis
anlisis
sistema (b)
(b)
(b)
Casos de uso
Diagramas de
Diagramas de
- reales
paquetes
interaccin
Diagramas de
Diagramas de
Contratos para
casos de uso
despliegue
mtodos y
Diagramas de clase
de diseo
Diagramas de
(diagramas de
estructura estticos)
operaciones
El anlisis orientado a objetos no comienza con una preocupacin por los objetos,
ms bien de la manera en la que se usar el sistema. Una vez que se ha definido el
escenario, comienza el modelado del software.
Los casos de uso modelan el sistema desde el punto de vista del usuario. Se basan
en los requerimientos del sistema mostrando las distintas operaciones que se esperan de una
aplicacin o sistema y cmo se relaciona con su entorno (usuario u otras aplicaciones). Los
casos de uso deben cumplir los siguientes objetivos [Pressman, 01]:
Existen distintos tipos de clasificacin para los casos de uso, pero todos se basan
en el detalle que proporcionan de la interaccin de los actores con el sistema. Un caso de
uso de alto nivel describe un proceso muy brevemente, casi siempre en dos o tres
enunciados; en cambio, un caso de uso expandido describe un proceso ms a fondo
contemplando el curso normal de los eventos [Larman, 99].
Los casos esenciales de uso son casos expandidos que se expresan en una forma
Propsito:
Resumen:
Un Cliente llega a la caja registradora con artculos que desea comprar. El Cajero registra los productos y
recibe un pago en efectivo. Al terminar la operacin, el Cliente se marcha con los productos comprados.
Tipo:
Primario y esencial.
Referencias
Cruzadas:
recibo impreso.
12. El Cliente se marcha con los artculos comprados.
Cursos Alternos
- Lnea 2: introduccin de identificador invlido. Indica error.
- Lnea 7: el cliente no tena suficiente dinero. Cancelar la transaccin de venta.
terica que contiene poca tecnologa; las decisiones de diseo se posponen y se abstraen de
la realidad. Si se desea enfocarse ms al diseo del sistema se utiliza un caso real de uso,
pues describe concretamente el proceso a partir de su diseo actual, sujeto a las tecnologas
especficas de entrada y salida.
Existen varias formas de documentar un caso de uso. Una gua muy utilizada por la
industria del software es la plantilla de Rational Software (incluida en el apndice I).
Fig. 4.5 Proceso de desarrollo de software dirigido por los casos de uso [Booch et al, 99]
Fig. 4.6 Casos de uso y su relacin con las fases del proceso unificado de
desarrollo de software [Booch et al, 99]
figuras estilizadas (ver figura 4.7). "Hay lneas de comunicaciones entre los casos y los
actores, las flechas indican el flujo de informacin o el estmulo" [Larman, 99].
Caso de Uso
Actor
Comunicacin
Caso de uso
Inclusin
Origen
<<include>>
Destino
Extensin
Origen
<<extend>>
Destino
Herencia
Hijo
Padre
<<include>>
Identificacin
Transferencia
<<extend>>
Transferencia
en Internet
Caso de uso
Conceptos
Atributos de conceptos
entre dos conceptos que indica alguna conexin significativa e interesante entre ellos (ver
figura 4.11 y 4.12). "Las asociaciones que vale la pena mencionar suelen
incluir el
conocimiento de una relacin que ha de preservarse durante algn tiempo: puede tratarse de
milisegundos o aos segn el contexto" [Larman, 99].
En un modelo conceptual slo se muestran los atributos del concepto (objeto), los
mtodos (o responsabilidades) no se modelan porque se relacionan con entidades de
software (ver figura 4.13 y 4.14). "Durante la fase de diseo es muy importante tener en
cuenta las responsabilidades" [Larman, 99].
Cero o ms
5
1 .. *
Uno o ms
3, 5, 8
1 .. 40
Exactamente 5
Exactamente tres,
cinco u ocho
De uno a cuarenta
Fig. 4.13 Un modelo conceptual muestra conceptos del mundo real [Larman, 99]
Lnea area
1
Emplea
1 .. *
1
1
Vuelo
Asignado a
Persona
*
Fecha
Asignado a
Hora
Avin
*
Descrito por
Supervisa
1
Descripcin de vuelo
Nmero
Aeropuerto
Describe vuelo a
*
Nombre
Fig. 4.14 Modelo conceptual (muy simple) de una lnea area [Larman, 99]
Trace una lnea que represente el sistema como una caja negra.
2.
3.
A partir del curso normal de los eventos del caso de uso identifique los
eventos (externos) del sistema que son generados por los actores.
Mustrelos grficamente en el diagrama.
4.
Fig. 4.16 Diagrama de secuencia del sistema para un caso de uso [Larman, 99]
El diseo de objetos tiene que ver con el diseo detallado de los objetos y sus
interacciones. El diseo del objeto est relacionado en particular con la especificacin de
los tipos de atributos, cmo funcionan las operaciones y cmo los objetos se enlazan con
otros objetos [Pressman, 01].
Los objetos interactan para realizar colectivamente los servicios ofrecidos por las
aplicaciones. Los diagramas de interaccin muestran cmo se comunican los objetos en una
interaccin. El UML define dos tipos de diagramas de interaccin; el Diagrama de
Colaboracin y el Diagrama de Secuencia (ver Fig. 4.17).
En la fase de diseo son muy importantes los diagramas de colaboracin porque nos
permiten decir ms en menos espacio (comparndolos con los de secuencia) y expresar,
como consecuencia, ms informacin contextual; por ejemplo, el tipo de visibilidad
(capacidad que tiene un objeto de ver o tener referencia a otro objeto). Tambin resulta ms
fcil expresar la lgica condicional y la concurrencia [Larman, 99].
Diagrama de colaboracin
1:mensaje2( )
mensaje1( )
:ClaseAInstancia
2:mensaje3( )
:ClaseBInstancia
Diagrama de secuencia
mensaje1( )
:ClaseAInstancia
:ClaseBInstancia
mensaje2( )
mensaje3( )
Para crear un diagrama de colaboracin utilizando UML hay que entender algunos
conceptos bsicos de su notacin. UML ha adoptado un mtodo simple y uniforme para
describir visualmente una instancia (objeto) y poder
instancia utiliza el mismo smbolo grfico usado para representar una clase, pero se subraya
el texto y al nombre de la clase (a la que pertenece) siempre se le antepone dos puntos (ver
Fig. 4.18).
Clase
Venta
Instancia (objeto)
Instancia con
Slo el nombre
Multi objeto, o
de la clase Venta
nombre
de la instancia
conjunto de instancias
:Venta
vent:Venta
vent:
ventas:Venta
Fig. 4.18 Notacin de UML para clases, instancias y conjunto de instancias [Larman, 99]
2: mostrar(x, y)
1.3.1: p: = encontrar(espec)
[x<0] 4: invertir(x, color)
1*:[i:=1..10] mensaje2()
mensaje
llamada
mensaje
mensaje
simple
anidada con valor de retorno
condicional
iterativo
Los atributos de una clase no deben ser manipulados directamente por el resto de
objetos. Por esta razn se crearon los siguientes niveles de visibilidad:
(-) Privado:
(#) Protegido: Los atributos y operaciones protegidos estn visibles para las
clases
(+) Publico:
derivadas de la original.
clases.
Nombre de la clase
atributo
atributo : tipo
atributo : tipo = valor inicial
atributoDeClase
metodo1( )
metodo2( lista de parmetros): tipo de
retorno
metodoAbstracto ( )
+metodoPublico( )
-metodoPrivado( )
#metodoProtegido
metodoDeClase( )
Una asociacin es una conexin entre dos clases, dicha asociacin expresa una
conexin bidireccional entre objetos. La relacin de generalizacin consiste en factorizar
las propiedades comunes de un conjunto de clases en una clase ms general. La agregacin
representa una relacin parte de entre objetos. Existe una forma especial de agregacin,
conocida como composicin. sta se usa cuando se tiene una situacin en la que un objeto
contiene un nmero de otros objetos, y cuando el objeto contenedor se elimina todas las
instancias de los objetos que estn contenidos desaparecen [Pressman, 01].
Asociacin
Administrador
Administra
1 .. *
Empleado
Generalizacin
Cuenta
CuentaCorriente
Depsito
Agregacin
ProductoManufacturado
Componente
Composicin
Cliente
ColeccinCuentas
4.4 Conclusiones
Esta gua describe como realizar anlisis y diseo OO utilizando UML. La clave
est en discriminar cuales son aquellos procedimientos esenciales que nos permiten evitar
costosas confusiones conceptuales. No es mediante el descubrimiento de nuevos objetos y
de sus mltiples conexiones que avanzamos en las respuestas a nuestros interrogantes
cuando modelamos un dominio, sino mediante la disolucin de las contradicciones que
existen entre los trminos (conceptos) ya conocidos y, en ltimo caso, mediante la
reduccin de su nmero despejando aquellos conceptos que no aaden valor a la
comprensin de dicho dominio. Reconsiderar lo obvio, desenmascarar presunciones,
desambigar conceptos conocidos, todo en busca de la simplicidad y la usabilidad.