Documente Academic
Documente Profesional
Documente Cultură
Objetos
Clave 43100007
Maestra en Sistemas Computacionales
Convenio SEP - UPAEP
Mdulo 01
Introduccin al
Unified Modeling Language (UML)
Mayo Junio, 2008
Vista Rpida
Anlisis y Diseo Orientado a Objetos
Antes de empezar con el estudio de UML como metodologa orientada a objetos,
es necesario aclarar algunos conceptos necesarios para su entendimiento, as,
empezaremos teniendo claro algunos preceptos que la anteceden; en este sentido,
sabemos que el anlisis y diseo son dos actividades fundamentales para el
desarrollo de software; esto es una introduccin al A/DOO, nos centraremos en el
dominio y comprensin de los fundamentos, de esta manera para empezar
formlese a manera de reflexin las siguientes preguntas:
Por tanto, ahora que esta considerando usar UML, es importante preguntarse
porque lo har y como le ayudar a usted en el momento de escribir el cdigo. No
existe una evidencia emprica adecuada que demuestre que estas tcnicas son
buenas o malas.
Son muchos los beneficios logrados con estas actividades cuando se trata de
desarrollar software, en contrapunto con la curva de aprendizaje asociada a la OO;
no es difcil aprender a programar en un lenguaje OO; el problema es que es
necesario cierto tiempo para aprovecha sus ventajas. Como dice Tom Hadfield: los
leguajes OO permiten ventajas pero no las proporcionan; para aprovechar estas
ventajas hay que realizar el infame cambio de paradigma.
Qu son el anlisis y el diseo orientado a objetos?
Durante el anlisis orientado a objetos se presta especial atencin en encontrar y
describir los objetos en el dominio del problema. Por ejemplo en el sistema de
informacin de una biblioteca algunos de los conceptos objetos- con libros,
biblioteca, socio.
El proceso de anlisis para identificar objetos y clases de stos es una de las reas
ms difciles en el desarrollo OO; este proceso comprende el desarrollo de un
modelo OO del dominio de la aplicacin. Los objetos identificados reflejan las
entidades y operaciones que se asocian con el problema a resolver.
Sin importar el ciclo de vida, un desarrollo OO requiere varios pasos para describir
requerimientos, disear el sistema, codificar y probar. El anlisis de requerimientos
OO es usualmente hecho en lenguaje natural e incluye los conceptos y escenarios
que tiene que ver con el dominio de la aplicacin. Los conceptos incluyen
informacin, servicios y responsabilidades. El conocimiento del dominio hace que
los desarrolladores entiendan el contexto en el cual el sistema ser usado y
describe los requerimientos en la manera que el usuario los entender; en este
sentido, esta expresin de los requerimientos ser la misma, sin importar como los
desarrolladores decidan implementar el sistema.
Durante el diseo orientado a objetos se presta especial atencin a la definicin de
los objetos de software, y en como colaboran para satisfacer los requisitos. Por
ejemplo en el sistema de la biblioteca, un objeto software libro podra tener un
atributo titulo y un mtodo obtenerCapitulo.
El proceso de diseo OO comprende la creacin de clases de objetos y las
relaciones entre estas clases; este proceso comprende el desarrollo de un modelo
OO de un sistema de software para implementar los requisitos identificados. Los
objetos del diseo OO estn relacionados con la solucin del problema a resolver.
Hay dos lneas gua que aplicar para representar el diseo de un sistema OO.
Primera, es importante identificar y representar clases y objetos. Debemos conocer
no solo los objetos del mundo real del dominio de la aplicacin, tambin los
detalles de los atributos y comportamiento de los objetos. Segunda. Debemos
identificar las interacciones y relaciones de los objetos y clases: Sus asociaciones,
composiciones, agregaciones y relaciones inherentes.
Abstraccin
Herencia
Polimorfismo
Encapsulamiento
Envo de mensajes
Asociaciones
Agregacin
UML
Antecedentes
Inicialmente surgieron los LOO (lenguajes Orientados a Objetos), el primero
reconocido como tal es SIMULA 67, desarrollado en 1967; aunque no tuvo un
seguimiento significativo influyo en desarrollos posteriores de LOO, como Smalltalk
a principios de los 80s, adems de Objective C, C++, Eiffel y CLOS; el uso de
dichos lenguajes fue limitado, pero lo que mas atrajo la atencin fue el Paradigma
OO surgiendo as los primeros mtodos de desarrollo OO.
Aparecieron muchos libros de MOO, cada uno con su propio conjunto de
conceptos, definiciones, notacin, terminologa y procesos; pero en general hubo
gran similitud ente los conceptos propuestos por los diferentes autores. Todos los
mtodos eran similares, sin embargo, tenan entre s una gran cantidad de
diferencias menores, con frecuencia muy incmodas. Los mismos conceptos
bsicos aprecian con denominaciones muy diferentes, lo cual confunda a los
clientes y desarrolladores.
Metodologas OO
-
Booch (OOAD)
CASEIode (CCM)
Coad-Yourdon- Nicola (OOA,OOD)
NE University (Demeter)
Object Engin. (Fresco)
HP Coleman94 (Fusion)
Graham (SOMA)
Texas Instruments (IE\O)
ICL (MTD)
ParcPlace (OBA)
Jacobson (OOSE)
Olivetti (OGROUP)
Martin-Odell (OOIE)
TASKON (OORAM)
Winter (OSMOSYS)
Rumbaugh (OMT)
LBMS (SE/OT)
Shlaer/Mellor (OOSA)
CCTA (SSADM)
Wirfs-Brock (RDD)
Lloyds Register (Z++)
10
11
12
Comportamiento dinmico
Hay dos formas de modelar el comportamiento. Una es mediante la historia de la
vida de un objeto y otra son los patrones de comunicacin de un conjunto de
objetos, que muestra como interactan para implementar un comportamiento.
-
Construcciones de implementacin
UML ofrece modelos que tiene significado para el anlisis lgico y para la
implementacin fsica. Un nodo es un recurso computacional que define una
localizacin durante la ejecucin del sistema, pueden contener componentes y
objetos. La vista de despliegue describe la configuracin de los nodos de un sistema
en ejecucin y la organizacin de los componentes y objetos en l.
Mecanismos de extensin
No importa que tan basto sea un lenguaje, siempre se querrn hacer extensiones;
dichas extensiones en UML se realizan mediante los estereotipos, sin que haya un
cambio en el leguaje bsico. Un estereotipo es una nueva clase de elemento de
modelado con la misma estructura de un elemento existente pero con restricciones
adicionales.
13
Conceptos de UML
rea
Estructural
Dinmica
Gestin de
modelo
Extensin de
UML
Vista
Vista esttica
Diagramas
diagramas de clases
diagramas de casos de
uso
Vista de
implementacin
Vista de despliegue
diagramas de
comportamiento
diagrama de despliegue
Vista de maquina de
estados
Vista de actividad
diagrama de estados
Vista de interaccin
diagrama de secuencia
Vista de gestin de
modelos
Todas
diagrama de actividad
diagrama de
colaboracin
diagrama de clases
Todos
Conceptos Principales
Clase, asociacin,
generalizacin, realizacin,
interfaz.
Caso de uso, actor,
asociacin, extensin,
inclusin, generalizacin de
casos de uso.
Componente, interfaz,
dependencia, realizacin.
Nodo, componente,
dependencia, localizacin.
Estado, evento, transicin,
accin.
Estado, actividad, transicin
de terminacin, divisin,
unin.
Interaccin, objeto, mensajes,
activacin.
Colaboracin, interaccin, rol
de colaboracin, mensaje.
Paquete, subsistema, modelo
Restriccin, estereotipo,
valores etiquetados.
14
15
Diagramas de UML
La siguiente seccin muestra una descripcin general de los diversos diagramas de
UML; incluyendo los 3 diagramas de la versin 2.0; en las sesiones siguientes
abordaremos los diagramas ms usados y conoceremos su notacin; para que
mediante diversos ejemplos prcticos veamos su uso.
Estructura
1. Diagrama de Paquetes: En un diagrama que muestra como un sistema
est dividido en agrupaciones lgicas mostrando las dependencias entre
esas agrupaciones.
2. Diagrama de Clases: Describe la estructura de un sistema mostrando sus
clases, atributos y las relaciones entre ellos. Los diagramas de clases son
utilizados durante el proceso de anlisis y diseo de los sistemas
informticos, donde se crea el diseo conceptual de la informacin que se
manejar en el sistema, y la relacin entre uno y otro.
16
17
18
Bibliografa
1. Shari Lawrence Pfleeger, Joanne M. Atlee Software Engineering ,Theory and
Practice, Thrid Edition, Pearson, Prentice Hall
2. Craig Larman, UML y Patrones, Una introduccin al anlisis y diseo orientado a
objetos y al proceso unificado, Segunda Edicin, Pearson, Prentice Hall.
3. Eric j. Fraude, Ingeniera de Software, Una perspectiva orientada a objetos,
Alfaomega.
4. James Rumbaugh, Ivar Jacobson y Grady Booch, El lenguaje Unificado de
Modelado, Manual de Referencia, Addison Wesley
5. Martin Flower con Kendall, UML gota a gota, Pearson Addison Wesley
6. Ian Sommerville, Ingeniera de Software, Sexta Edicin, Addison Wesley, 2002,
ISBN:970-26-0206-8.
7. Joseph Schmuller, Apendiendo UML en 24 horas, Prentice may
Nota
El contenido de este documento fue recopilado por el catedrtico de las diversas
fuentes bibliogrficas detalladas en la seccin anterior; si detecta que algn contenido
no esta referenciado en las fuentes sealadas, mucho le agradecer enve la
observacin a josejuan.avina@gmail.com (An se sigue trabajando en la
especificacin puntual de cada referencia)
19