-
Diseo orientado a objetos. Elaboracin de
diagramasestructurales.
En la empresa siguen trabajando en diferentes aplicaciones con
un nivel alto de complejidad, se desarrollapara diferentes
plataformas, en entornos de ventanas, para la web, dispositivos
mviles, etc. Ada lleva untiempo observando a su equipo, y a pesar
de que ya han hablado de las diferentes fases de desarrollo
delsoftware, y que estn descubriendo nuevos entornos de programacin
que han facilitado su trabajoenormemente, se ha dado cuenta de que
todava hay una asignatura pendiente, sus empleados no
utilizanherramientas ni crean documentos en las fases previas del
desarrollo de una aplicacin, a pesar de seralgo tan importante como
el resto de fases del proceso de elaboracin de software. Tampoco
construyenmodelos que ayuden a hacerse una idea de como resultar el
proyecto. Estos documentos y modelos sonmuy tiles para que todo el
mundo se ponga de acuerdo en lo que hay que hacer, y cmo van a
hacerlo.
Como Ada muy bien conoce, un proyecto de software tendr xito slo
si produce un software de calidad,consistente y sobre todo que
satisfaga las necesidades de los usuarios que van a utilizar el
productoresultante.
Para desarrollar software de calidad duradera, hay que idear una
slida base arquitectnica que sea flexible al cambio.
Incluso para producir software de sistemas pequeos sera bueno
hacer anlisis y modelado ya que redunda en la calidad, pero loque
si es cierto, es que cuanto ms grande y complejos son los sistemas
ms importante es hacer un buen modelado ya que nosayudar a entender
el comportamiento del sistema en su totalidad. Y cuando se trata de
sistemas complejos el modelado nos daruna idea de los recursos
necesarios (tanto humanos como materiales) para abordar el
proyecto. Tambin nos dar una visin msamplia de cmo abordar el
problema para darle la mejor solucin.
Ada se da cuenta de que el equipo necesita conocer
procedimientos de anlisis y diseo de software, as como alguna
herramientaque permita generar los modelos y la documentacin
asociada, as que decide reunir a su equipo para empezar a tratar
este tema...
Materiales formativos de FP Online propiedad del Ministerio de
Educacin, Cultura yDeporte.Aviso Legal
Caso prctico
1 de 35 04/04/2015 17:49
-
1.- Introduccin a la orientacin a objetos.
Ya en la sala de reuniones...
Deberamos empezar por revisar cual es la situacin actual. Como
ya sabis existen diferenteslenguajes de programacin que se
comportan de manera diferente, y esto determina en gran medida
elenfoque que se le da al anlisis previo. No es lo mismo un
lenguaje estructurado que uno orientado aobjetos. Tendramos que
conocer las caractersticas de ambos enfoques para entender un poco
mejorcmo se analizan.
Es cierto contesta Juan desde que empec en el mundo de la
informtica esto ha cambiado unpoco, as que he tenido que ir
investigando para adaptarme a los nuevos lenguajes de programacin,
siqueris, os pongo al da brevemente, ...
La construccin de software es un proceso cuyo objetivo es dar
solucin a problemas utilizando una herramienta informtica y tiene
comoresultado la construccin de un programa informtico. Como en
cualquier otra disciplina en la que se obtenga un producto final de
ciertacomplejidad, si queremos obtener un producto de calidad, es
preciso realizar un proceso previo de anlisis y especificacin del
proceso quevamos a seguir, y de los resultados que pretendemos
conseguir.
El enfoque estructurado.
Sin embargo, cmo se hace es algo que ha ido evolucionando con el
tiempo, en un principio se tomaba el problema de partida y se
ibasometiendo a un proceso de divisin en subproblemas ms pequeos
reiteradas veces, hasta que se llegaba a problemas elementales que
sepoda resolver utilizando una funcin. Luego las funciones se
hilaban y entretejan hasta formar una solucin global al problema de
partida. Era,pues, un proceso centrado en los procedimientos, se
codificaban mediante funciones que actuaban sobre estructuras de
datos, por esoa este tipo de programacin se le llama programacin
estructurada. Sigue una filosofa en la que se intenta aproximar qu
hay que hacer,para as resolver un problema.
Enfoque orientado a objetos.
La orientacin a objetos ha roto con esta forma de hacer las
cosas. Con este nuevo paradigma el proceso se centra en simular
loselementos de la realidad asociada al problema de la forma ms
cercana posible. La abstraccin que permite representar estos
elementosse denomina objeto, y tiene las siguientes
caractersticas:
Est formado por un conjunto de atributos, que son los datos que
le caracterizan yUn conjunto de operaciones que definen su
comportamiento. Las operaciones asociadas a un objeto actan sobre
sus atributos paramodificar su estado. Cuando se indica a un objeto
que ejecute una operacin determinada se dice que se le pasa un
mensaje.
Las aplicaciones orientadas a objetos estn formadas por un
conjunto de objetos que interaccionan envindose mensajes para
producirresultados. Los objetos similares se abstraen en clases, se
dice que un objeto es una instancia de una clase.
Cuando se ejecuta un programa orientado a objetos ocurren tres
sucesos:
Primero, los objetos se crean a medida que se necesitan.Segundo.
Los mensajes se mueven de un objeto a otro (o del usuario a un
objeto) a medida que el programa procesa informacin oresponde a la
entrada del usuario.Tercero, cuando los objetos ya no se necesitan,
se borran y se libera la memoria.
Todo acerca del mundo de la orientacin a objetos se encuentra en
la pgina oficial del
Grupo de gestin de objetos.
Caso prctico
Para saber ms
2 de 35 04/04/2015 17:49
-
2.- Conceptos de Orientacin a Objetos.
De acuerdo, buen resumen Juan, sin embargo, los ltimos proyectos
que han entrado a laempresa se han desarrollo en su totalidad
mediante software orientado a objetos, hemos usadoPHP con
Javascript, pero sobre todo Java, que es un lenguaje basado en
objetos, as que seranecesario que analizramos con un poco ms de
detenimiento el enfoque orientado a objetos,que caractersticas
presenta, y que ventajas tiene sobre otros.
Gracias, Ada!, tambin tengo alguna informacin sobre eso...
Como hemos visto la orientacin a objetos trata de acercarse al
contexto del problema lo ms posible por medio de la simulacin de
loselementos que intervienen en su resolucin y basa su desarrollo
en los siguientes conceptos:
Abstraccin: Permite capturar las caractersticas y
comportamientos similares de un conjunto de objetos con el objetivo
de darles unadescripcin formal. La abstraccin es clave en el
proceso de anlisis y diseo orientado a objetos, ya que mediante
ella podemos llegara armar un conjunto de clases que permitan
modelar la realidad, o el problema que se quiere atacar.
Encapsulacin: Significa reunir todos los elementos que pueden
considerarse pertenecientes a una misma entidad, al mismo nivelde
abstraccin. Esto permite aumentar la cohesin de los componentes del
sistema. Algunos autores confunden este concepto conel principio de
ocultacin, principalmente porque se suelen emplear
conjuntamente.Modularidad: Propiedad que permite subdividir una
aplicacin en partes ms pequeas (llamadas mdulos), cada una de las
cualesdebe ser tan independiente como sea posible de la aplicacin
en s y de las restantes partes. En orientacin a objetos es
algoconsustancial, ya que los objetos se pueden considerar los
mdulos ms bsicos del sistema.Principio de ocultacin: Asla las
propiedades de un objeto contra su modificacin por quien no tenga
derecho a acceder a ellas.Reduce la propagacin de efectos
colaterales cuando se producen cambios.
Polimorfismo: Consiste en reunir bajo el mismo nombre
comportamientos diferentes. La seleccin de uno u otro depende del
objetoque lo ejecute.
Herencia: Relacin que se establece entre objetos en los que unos
utilizan las propiedades y comportamientos de otros formandouna
jerarqua. Los objetos heredan las propiedades y el comportamiento
de todas las clases a las que pertenecen.Recoleccin de basura:
Tcnica por la cual el entorno de objetos se encarga de destruir
automticamente los objetos, y por tantodesvincular su memoria
asociada, que hayan quedado sin ninguna referencia a ellos.
Caso prctico
3 de 35 04/04/2015 17:49
-
Permite crear aplicaciones basadas en mdulos de software que
representan objetos del entorno del sistema, por lo queno son
apropiados para dar solucin a otros problemas.
Tiene como objetivo la creacin de aplicaciones basadas en
abstracciones de datos estticas y de difcil ampliacin.
Permite crear aplicaciones cuyo mantenimiento es complicado
porque las modificaciones influyen a todos los objetos
delsistema.
Permite crear aplicaciones basadas en mdulos que pueden
reutilizarse, de fcil modificacin y que permiten suampliacin en
funcin del crecimiento del sistema.
2.1.- Ventajas de la orientacin a objetos.
Adems la orientacin a objetos cuenta con una serie de ventajas
que nos vienen muy bien alos que nos dedicamos a la construccin de
software, sobre todo porque nos facilitan suconstruccin y
mantenimiento al dividir un problema en mdulos claramente
independientes yque, adems, cuando ya tenemos suficientemente
probados y completos podemos utilizar enotras aplicaciones, la
verdad que ahorra bastante tiempo y esfuerzo... argumenta Juan.
Este paradigma tiene las siguientes ventajas con respecto a
otros:
Permite desarrollar software en mucho menos tiempo, con menos
coste y de mayor calidad gracias a la reutilizacin porque al
sercompletamente modular facilita la creacin de cdigo reusable
dando la posibilidad de reutilizar parte del cdigo para el
desarrollo deuna aplicacin similar.
1.
Se consigue aumentar la calidad de los sistemas, hacindolos ms
extensibles ya que es muy sencillo aumentar o modificar
lafuncionalidad de la aplicacin modificando las operaciones.
2.
El software orientado a objetos es ms fcil de modificar y
mantener porque se basa en criterios de modularidad y encapsulacin
enel que el sistema se descompone en objetos con unas
responsabilidades claramente especificadas e independientes del
resto.
3.
La tecnologa de objetos facilita la adaptacin al entorno y el
cambio haciendo aplicaciones escalables. Es sencillo modificar
laestructura y el comportamiento de los objetos sin tener que
cambiar la aplicacin.
4.
Cul es la afirmacin ms adecuada al paradigma de orientacin a
objetos?
Caso prctico
Autoevaluacin
4 de 35 04/04/2015 17:49
-
Verdadero.
Falso.
2.2.- Clases, atributos y mtodos.
De acuerdo, ahora conocemos las caractersticas bsicas y ventajas
de usar la orientacin aobjetos, qu ms nos hara falta? Quiz sus
estructuras bsicas?
Yo puedo contaros algo sobre eso, comenta Juan lo estudi en el
Ciclo Formativo.
Los objetos de un sistema se abstraen, en funcin de sus
caractersticas comunes, en clases. Una clase est formada por un
conjunto deprocedimientos y datos que resumen caractersticas
similares de un conjunto de objetos. La clase tiene dos propsitos:
definir abstracciones yfavorecer la modularidad.
Una clase se describe por un conjunto de elementos que se
denominan miembros y que son:
Nombre.Atributos: conjunto de caractersticas asociadas a una
clase. Pueden verse como una relacin binaria entre una clase y
cierto dominioformado por todos los posibles valores que puede
tomar cada atributo. Cuando toman valores concretos dentro de su
dominio definen elestado del objeto. Se definen por su nombre y su
tipo, que puede ser simple o compuesto como otra clase.Protocolo:
Operaciones (mtodos, mensajes) que manipulan el estado. Un mtodo es
el procedimiento o funcin que se invoca paraactuar sobre un objeto.
Un mensaje es el resultado de cierta accin efectuada por un objeto.
Los mtodos determinan como actan losobjetos cuando reciben un
mensaje, es decir, cuando se requiere que el objeto realice una
accin descrita en un mtodo se le enva unmensaje. El conjunto de
mensajes a los cuales puede responder un objeto se le conoce como
protocolo del objeto.
Por ejemplo, si tenemos un objeto icono, tendr como atributos el
tamao, o la imagen que muestra, y su protocolo puede constar de
mensajesinvocados por el clic del botn de un ratn cuando el usuario
pulsa sobre el icono. De esta forma los mensajes son el nico
conducto queconectan al objeto con el mundo exterior.
Los valores asignados a los atributos de un objeto concreto
hacen a ese objeto ser nico. La clase define sus
caractersticasgenerales y su comportamiento.
Un objeto es una concrecin de una clase, es decir, en un objeto
se concretan valores para los atributos definidos en laclase, y
adems, estos valores podrn modificarse a travs del paso de mensajes
al objeto.
Caso prctico
Autoevaluacin
5 de 35 04/04/2015 17:49
-
Desde cualquier zona de la aplicacin.
Desde la clase y sus clases derivadas.
Solo desde los mtodos de la clase.
2.3.- Visibilidad.
Pues creo que ya lo tenemos todo...
No creas, dice Ada que siempre sabe algo ms, que el resto
desconoce en orientacin a objetos,existe un concepto muy
importante, que es el de visibilidad, permite definir hasta qu
punto son accesibleslos atributos y mtodos de una clase, por regla
general, cuando definimos atributos los ocultamos, paraque nadie
pueda modificar el estado del objeto, y dejamos los mtodos
abiertos, porque son los quepermiten el paso de mensajes entre
objetos...
El principio de ocultacin es una propiedad de la orientacin a
objetos que consiste en aislar el estado de manera que slo se puede
cambiarmediante las operaciones definidas en una clase. Este
aislamiento protege a los datos de que sean modificados por alguien
que no tengaderecho a acceder a ellos, eliminando efectos
secundarios e interacciones. Da lugar a que las clases se dividan
en dos partes:
Interfaz: captura la visin externa de una clase, abarcando la
abstraccin del comportamiento comn a los ejemplos de esa clase.1.
Implementacin: comprende como se representa la abstraccin, as como
los mecanismos que conducen al comportamiento deseado.2.
Existen distintos niveles de ocultacin que se implementan en lo
que se denomina visibilidad. Es una caracterstica que define el
tipo deacceso que se permite a atributos y mtodos y que podemos
establecer como:
Pblico: Se pueden acceder desde cualquier clase y cualquier
parte del programa.Privado: Slo se pueden acceder desde operaciones
de la clase.Protegido: Slo se pueden acceder desde operaciones de
la clase o de clases derivadas en cualquier nivel.
Como norma general a la hora de definir la visibilidad tendremos
en cuenta que:
El estado debe ser privado. Los atributos de una clase se deben
modificar mediante mtodos de la clase creados a tal efecto.Las
operaciones que definen la funcionalidad de la clase deben ser
pblicas.Las operaciones que ayudan a implementar parte de la
funcionalidad deben ser privadas (si no se utilizan desde clases
derivadas) oprotegidas (si se utilizan desde clases derivadas).
Desde dnde se puede acceder al estado de una clase?
Caso prctico
Autoevaluacin
6 de 35 04/04/2015 17:49
-
2.4.- Objetos. Instanciacin.
Antonio ha asistido a esta reunin como parte de su formacin
laboral, pero se encuentraalgo perdido entre tantos conceptos:
A ver, estamos todo el tiempo hablando de que las clases tienen
atributos y mtodos, luego,que los objetos se pasan mensajes, que
son los que modifican los atributos, entonces, noson lo mismo?, qu
diferencia hay?
Una clase es una abstraccin que define las caractersticas
comunes de un conjunto de objetos relevantes para el sistema.
Cada vez que se construye un objeto en un programa informtico a
partir de una clase se crea lo que se conoce como instancia de
esaclase. Cada instancia en el sistema sirve como modelo de un
objeto del contexto del problema relevante para su solucin, que
puede realizarun trabajo, informar y cambiar su estado, y
"comunicarse" con otros objetos en el sistema, sin revelar cmo se
implementan estascaractersticas.
Un objeto se define por:
Su estado: es la concrecin de los atributos definidos en la
clase a un valor concreto.Su comportamiento: definido por los
mtodos pblicos de su clase.Su tiempo de vida: intervalo de tiempo a
lo largo del programa en el que el objeto existe. Comienza con su
creacin a travs delmecanismo de instanciacin y finaliza cuando el
objeto se destruye.
La encapsulacin y el ocultamiento aseguran que los datos de un
objeto estn ocultos, con lo que no se pueden modificar
accidentalmente porfunciones externas al objeto.
Mientras que un objeto es una entidad que existe en el tiempo y
el espacio, una clase representa slo unaabstraccin, "la esencia"
del objeto, si se puede decir as.
Grady Booch
Ejemplo de objetos:
Objetos fsicos: aviones en un sistema de control de trfico areo,
casas, parques.1. Elementos de interfaces grficas de usuario:
ventanas, mens, teclado, cuadros de dilogo.2. Animales: animales
vertebrados, animales invertebrados.3. Tipos de datos definidos por
el usuario: Datos complejos, Puntos de un sistema de coordenadas.4.
Alimentos: carnes, frutas, verduras.5.
Existe un caso particular de clase, llamada clase abstracta,
que, por sus caractersticas, no puede ser instanciada. Se suelen
usar para definirmtodos genricos relacionados con el sistema que no
sern traducidos a objetos concretos, o para definir mtodos de base
para clasesderivadas.
Caso prctico
Citas para pensar
7 de 35 04/04/2015 17:49
-
3.- UML.
Ahora que el equipo conoce los fundamentos de la orientacin a
objetos llega el momento de ver comopueden poner en prctica los
conocimientos adquiridos.
Ada est interesada, sobre todo, en que sean capaces de
representar las clases de los proyectos queestn desarrollando y
como se relacionan entre ellas. Para ello decide comenzar
comentando lascaractersticas de un lenguaje de modelado de sistemas
orientados a objetos llamado UML. Este lenguajepermite construir
una serie de modelos, a travs de diagramas de diferentes visiones
de un proyecto.
Es importante apreciar como estos modelos, nos van a permitir
poner nuestras ideas en comnutilizando un lenguaje especfico,
facilitarn la comunicacin, que como sabis, es algo esencial para
quenuestro trabajo en la empresa sea de calidad.
Una empresa de software con xito es aquella que produce de
manera consistente software de calidad que satisface lasnecesidades
de los usuarios. El modelado es la parte esencial de todas las
actividades que conducen a la produccin de softwarede calidad.
UML (Unified Modeling Language o Lenguaje Unificado de Modelado)
es un conjunto de herramientas que permite modelar, construir
ydocumentar los elementos que forman un sistema software orientado
a objetos. Se ha convertido en el estndar de facto de la industria,
debidoa que ha sido concebido por los autores de los tres mtodos ms
usados de orientacin a objetos: Grady Booch, Ivar Jacobson y
JimRumbaugh, de hecho las races tcnicas de UML son:
OMT - Object Modeling Technique (Rumbaugh et al.)Mtodo-Booch (G.
Booch)OOSE - Object-Oriented Software Engineering (I. Jacobson)
UML permite a los desarrolladores y desarrolladoras visualizar
el producto de su trabajo en esquemas o diagramas
estandarizadosdenominados modelos que representan el sistema desde
diferentes perspectivas.
Porqu es til modelar?
Porque permite utilizar un lenguaje comn que facilita la
comunicacin entre el equipo de desarrollo.Con UML podemos
documentar todos los artefactos de un proceso de desarrollo (
requisitos, arquitectura, pruebas, versiones,...)por lo que se
dispone de documentacin que trasciende al proyecto.Hay estructuras
que trascienden lo representable en un lenguaje de programacin,
como las que hacen referencia a la arquitecturadel sistema,
utilizando estas tecnologas podemos incluso indicar qu mdulos de
software vamos a desarrollar y sus relaciones, o enqu nodos
hardware se ejecutarn cuando trabajamos con sistemas
distribuidos.Permite especificar todas las decisiones de anlisis,
diseo e implementacin, construyndose modelos precisos, no ambiguos
ycompletos.
Adems UML puede conectarse a lenguajes de programacin mediante
ingeniera directa e inversa, como veremos.
Caso prctico
Citas para pensar
8 de 35 04/04/2015 17:49
-
3.1.- Tipos de diagramas UML.
Cuando Mara estudi el ciclo formativo no lleg a ver estas
tecnologas con tantodetenimiento, as que est asimilndolo todo poco
a poco:
De acuerdo, UML describe el sistema mediante una serie de
modelos que ofrecen diferentespuntos de vista. Pero qu tenemos que
hacer para representar un modelo?, en que consisteexactamente?
Utilizaremos diagramas, que son unos grafos en los que los nodos
definen los elementosdel diagrama, y los arcos las relaciones entre
ellos.
UML define un sistema como una coleccin de modelos que describen
sus diferentesperspectivas. Los modelos se implementan en una serie
de diagramas que son representacionesgrficas de una coleccin de
elementos de modelado, a menudo dibujado como un grafo conexo
dearcos (relaciones) y vrtices (otros elementos del modelo).
Un diagramas UML se compone de cuatro tipos de elementos:
Estructuras: Son los nodos del grafo y definen el tipo de
diagrama.Relaciones: Son los arcos del grafo que se establecen
entre los elementos estructurales.Notas: Se representan como un
cuadro donde podemos escribir comentarios que nos ayuden a entender
algn concepto que queramosrepresentar.Agrupaciones: Se utilizan
cuando modelamos sistemas grandes para facilitar su desarrollo por
bloques.
y se clasifican en:
Diagramas estructurales: Representan la visin esttica del
sistema. Especifican clases y objetos y como se distribuyen
fsicamenteen el sistema.Diagramas de comportamiento: muestran la
conducta en tiempo de ejecucin del sistema, tanto desde el punto de
vista del sistemacompleto como de las instancias u objetos que lo
integran. Dentro de este grupo estn los diagramas de
interaccin.
En la imagen aparecen todos los diagramas organizados segn su
categora. Se han destacado aquellos que perteneces al estndar UML
2.0,ms novedosos. En total se describen trece diagramas para
modelar diferentes aspectos de un sistema, sin embargo no es
necesario usarlostodos, depender del tipo de aplicacin a generar y
del sistema, es decir, se debe generar un diagrama slo si es
necesario.
Un 80% de las aplicaciones se pueden modelar con el 20% de los
diagramas UML.
En el siguiente enlace tienes un documento con la descripcin de
los diagramas UML.
Diagramas UML
Caso prctico
Citas para pensar
Debes conocer
9 de 35 04/04/2015 17:49
-
3.2.- Herramientas para la elaboracin de diagramas UML.
Ahora que conocemos los diagramas que podemos generar para
describir nuestro sistema, sera buenaidea buscar alguna herramienta
que nos ayude a elaborarlos. No sera nada prctico andar todo el da
conla libreta a cuestas!
Lo que nos permite conocer a un buen desarrollador es que
siempre hace un buen esquema inicial decada proyecto, y eso puede
hacerse en miles de soportes, desde una libreta a un servilleta,
cualquier cosaque te permita hacer un pequeo dibujo, no obstante
tienes razn. El uso de herramientas, adems defacilitar la
elaboracin de los diagramas, tiene otras ventajas, como la
integracin en entornos dedesarrollo, con lo que podremos generar el
cdigo base de nuestra aplicacin desde el propio diagrama.
-Guau, eso s es facilitar el trabajo!
La herramienta ms simple que se puede utilizar para generar
diagramas es lpiz y papel, hoy da, sin embargo, podemos acceder
aherramientas CASE que facilitan en gran manera el desarrollo de
los diagramas UML. Estas herramientas suelen contar con un entorno
de
ventanas tipo wysiwyg, permiten documentar los diagramas e
integrarse con otros entornos de desarrollo incluyendo la generacin
automticade cdigo y procedimientos de ingeniera inversa.
Podemos encontrar, entre otras, las siguientes herramientas:
Rational Systems Developer de IBM: Herramienta propietaria que
permite el desarrollo de proyectos software basados en lametodologa
UML. Desarrollada en origen por los creadores de UML ha sido
recientemente absorbida por IBM. Ofrece versiones deprueba, y
software libre para el desarrollo de diagramas UML.
Si sientes curiosidad puedes seguir este enlace a la pgina
oficial de Rational Systems Developer.
Visual Paradigm for UML (VP-UML): Incluye una versin para uso no
comercial que se distribuye libremente sin ms que registrarsepara
obtener un archivo de licencia. Incluye diferentes mdulos para
realizar desarrollo UML, disear bases de datos, realizaractividades
de ingeniera inversa y disear con Agile. Es compatible con los IDE
de Eclipse, Visual Studio .net, IntellijDEA y NetBeans.
Multiplataforma, incluye instaladores para Windows y Linux.
Aqu tienes el enlace a la pgina oficial de Visual Paradigm.
ArgoUML: se distribuye bajo licencia Eclipse. Soporta los
diagramas de UML 1.4, y genera cdigo para java y C++. Para
poderejecutarlo se necesita la plataforma java. Admite ingeniera
directa e inversa.
Aqu tienes el enlace a la pgina oficial de ArgoUML.
Caso prctico
Para saber ms
Para saber ms
Para saber ms
10 de 35 04/04/2015 17:49
-
Verdadero.
Falso.
3.2.1.- Visual Paradigm.
Para realizar el ejemplo de desarrollo de diagramas de clases
que veremos a continuacin se hadeterminado usar la herramienta
Visual Paradigm for UML por los siguientes motivos:
Incluye una versin para uso no comercial, aunque se debe aclarar
que viene confuncionalidad limitada, que se distribuye bajo
licencia LGPL. Es posible solicitar una licenciade prueba para
treinta das que utilizaremos cuando veamos la parte de ingeniera
directa einversa y generacin de cdigo.Es multiplataforma.Compatible
con UML 2.0.Admite la generacin de informes en formatos PDF, HTML y
otros.Incluye un mdulo para integrarse con NetBeans.Permite
realizar actividades de ingeniera inversa y directa. Esto junto con
la consideracin anterior permite generar cdigo en unproyecto
NetBeans directamente a partir del diseo de clases, ahorrndonos
trabajo.
En el siguiente enlace encontrars informacin sobre donde
encontrar esta herramienta y su proceso de instalacin.
Descarga e instalacin de Visual Paradigm
Las herramienta CASE para la elaboracin de diagramas UML sirven
solo para la generacin de los diagramas asociadosal anlisis y diseo
de una aplicacin. Verdadero o falso?
Debes conocer
Autoevaluacin
11 de 35 04/04/2015 17:49
-
3.3.- Diagramas de clases.
En la empresa ya han instalado Visual Paradigm, Juan y Mara estn
empezando a investigarsu funcionamiento, y como utilizarlo desde un
proyecto de NetBeans.
Empecemos por los diagramas estructurales, entre ellos el ms
importante es el diagramade clases, fjate, representa la estructura
esttica del sistema y las relaciones entre las clases.
Dentro de los diagramas estructurales, y de todos en general, es
el ms importante porque representa los elementos estticos del
sistema, susatributos y comportamientos, y como se relacionan entre
ellos. Contiene las clases del dominio del problema, y a partir de
ste se obtendrnlas clases que formarn despus el programa informtico
que dar solucin al problema.
En un diagrama de clases podemos encontrar los siguientes
elementos:
Clases: recordemos que son abstracciones del dominio del sistema
que representan elementos del mismo mediante una serie
decaractersticas, que llamaremos atributos, y su comportamiento,
que sern mtodos. Los atributos y mtodos tendrn una visibilidad
quedeterminar quien puede acceder al atributo o mtodo. Por ejemplo
una clase puede representar a un coche, sus atributos sern
lacilindrada, la potencia y la velocidad, y tendr dos mtodos, uno
para acelerar, que subir la velocidad, y otro para frenar que la
bajar.Relaciones: en el diagrama representan relaciones reales
entre los elementos del sistema a los que hacen referencia las
clases.Pueden ser de asociacin, agregacin y herencia. Por ejemplo
si tengo una clase persona, puedo establecer una relacin conduce
entrepersona y coche.Notas: Se representan como un cuadro donde
podemos escribir comentarios que nos ayuden a entender algn
concepto que queramosrepresentar.Elementos de agrupacin: Se
utilizan cuando hay que modelar un sistema grande, entonces las
clases y sus relaciones se agrupan en
paquetes, que a su vez se relacionan entre s.
Crear un diagrama de clases nuevo en Visual Paradigm UML que
incluya su nombre y su descripcin.
Caso prctico
Ejercicio resuelto
12 de 35 04/04/2015 17:49
-
(Object Modelling and Design [Rumbaught et al., 1991])
[Booch G., 1994]
Verdadero.
Falso.
3.3.1.- Creacin de clases.
Una clase se representa en el diagrama como un rectngulo divido
en tres filas, arriba aparece el nombre de la clase,a continuacin
los atributos con su visibilidad y despus los mtodos con su
visibilidad que est representada por elsigno menos "" para los
atributos (privados) y por el signo ms "+" para los mtodos
(pblicos).
"Una clase es una descripcin de un conjunto de objetos que
manifiestan los mismos atributos, operaciones,relaciones y la misma
semntica."
"Una clase es un conjunto de objetos que comparten una
estructura y un comportamiento comunes."
Crear una clase nueva en el diagrama de clases del punto
anterior.
Al crear una clase es obligatorio definir nombre, atributos y
mtodos. Verdadero o falso?
Citas para pensar
Ejercicio resuelto
Autoevaluacin
13 de 35 04/04/2015 17:49
-
Porque aparecen acompaados del smbolo ms +.
Porque aparecen acompaados del smbolo almohadilla #.
Porque aparecen acompaados del smbolo ~.
Porque aparece acompaado del smbolo menos -.
3.3.2.- Atributos.
Forman la parte esttica de la clase. Son un conjunto de
variables para las que es preciso definir:
Su nombre.Su tipo, puede ser un tipo simple, que coincidir con
el tipo de dato que se seleccione en el lenguaje de programacin
final a usar, ocompuesto, pudiendo incluir otra clase.
Adems se pueden indicar otros datos como un valor inicial o su
visibilidad. La visibilidad de un atributo se puede definir
como:
Pblico: Se pueden acceder desde cualquier clase y cualquier
parte del programa.Privado: Slo se pueden acceder desde operaciones
de la clase.Protegido: Slo se pueden acceder desde operaciones de
la clase o de clases derivadas en cualquier nivel.Paquete: Se puede
acceder desde las operaciones de las clases que pertenecen al mismo
paquete que la clase que estamosdefiniendo. Se usa cuando el
lenguaje de implementacin es Java.
Crear una clase de nombre "Mdulo" y que tenga tres
atributos:
Nombre, de tipo string.Duracin de tipo Int.Contenidos de tipo
string.
Cmo sabemos que los atributos tienen visibilidad privada en el
diagrama?
Ejercicio resuelto
Autoevaluacin
14 de 35 04/04/2015 17:49
-
El constructor.
Todos los mtodos devuelven algo, aunque sea void.
~.
3.3.3.- Mtodos.
Representan la funcionalidad de la clase, es decir, qu puede
hacer. Para definir un mtodo hay que indicar como mnimo su
nombre,parmetros, el tipo que devuelve y su visibilidad. Tambin se
debe incluir una descripcin del mtodo que aparecer en la
documentacin quese genere del proyecto.
Existen un caso particular de mtodo, el constructor de la clase,
que tiene como caracterstica que no devuelve ningn valor.
Elconstructor tiene el mismo nombre de la clase y se usa para
ejecutar las acciones necesarias cuando se instancia un objeto de
laclase. Cunado haya que destruir el objeto se podr utilizar una
funcin para ejecutar las operaciones necesarias cuando el
objetodeje de existir, que dependern del lenguaje que se
utilice.
Aadir a la clase creada anteriormente los mtodos:
matricular(alumno : Alumno) : voidasignarDuracin(duracion : int)
: void
Cul es el mtodo que no devuelve ningn tipo de dato?
Ejercicio resuelto
Autoevaluacin
15 de 35 04/04/2015 17:49
-
No se puede, las relaciones se deben extraer de la descripcin
del problema, si no lo hiciramos as nos estaramosinventando
informacin.
S se puede, a veces se infiere informacin o se conocen cosas del
problema que no aparecen en la descripcin de losrequisitos.
3.4.- Relaciones entre clases.
Es fcil, lo ves?, por ejemplo, para la aplicacin de venta por
Internet, tendramos comoclases socio, pedido o artculo, los socios
se caracterizan por sus datos personales, los pedidospor su nmero,
fecha, o localidad de destino y los artculos por el cdigo o su
descripcin.
Si eso lo veo claro, pero, cmo lo ponemos todo junto? Cmo se
conecta el socio con elpedido y el artculo?
Una relacin es una conexin entre dos clases que incluimos en el
diagrama cuando aparece algn tipo de relacin entre ellas enel
dominio del problema.
Se representan como una lnea continua. Los mensajes "navegan"
por las relaciones entre clases, es decir, los mensajes se envan
entreobjetos de clases relacionadas, normalmente en ambas
direcciones, aunque a veces la definicin del problema hace
necesario que se navegueen una sola direccin, entonces la lnea
finaliza en punta de flecha.
La relaciones se caracterizan por su cardinalidad, que
representa cuantos objetos de una clase se pueden involucrar en la
relacin, ypueden ser:
De herencia.De composicin.De agregacin.
Crea una clase nueva llamada Alumno y establece una relacin de
asociacin con el nombre matrcula entre sta y la claseMdulo.
Es posible establecer relaciones unarias de una clase consigo
misma. En el ejemplo se ha rellenado enla especificacin de la
relacin los roles y la multiplicidad.
Para obtener las relaciones de un diagrama nos basamos en la
descripcin de los requisitos del dominio, pero, sepueden crear
relaciones en el diagrama que no aparezcan especificadas en la
lista de requisitos del problema?
Caso prctico
Ejercicio resuelto
Autoevaluacin
16 de 35 04/04/2015 17:49
-
3.4.1.- Cardinalidad o multiplicidad de la relacin
Un concepto muy importante es la cardinalidad de una relacin,
representa cuantos objetos de una clase se van a relacionar con
objetos deotra clase. En una relacin hay dos cardinalidades, una
para cada extremo de la relacin y pueden tener los siguientes
valores:
Significado de lascardinalidades.
Cardinalidad Significado
1 Uno y slo uno
0..1 Cero o uno
N..M Desde N hasta M
* Cero o varios
0..* Cero o varios
1..* Uno o varios (al menos uno)
Por ejemplo, si tengo la siguiente relacin:
quiere decir que los alumnos se matriculan en los mdulos, en
concreto, que un alumno se puede matricular en uno a ms mdulos y
que unmdulo puede tener ningn alumno, uno o varios.
O esta otra:
en la que un profesor puede impartir uno o varios mdulos,
mientras que un mdulo es impartido slo por un profesor.
Establece la cardinalidad de la relacin que has creado en el
punto anterior para indicar que un alumno debe estar matriculado
enal menos un mdulo, o varios y que para cada mdulo se puede tener
ningn alumno, uno o varios.
Ejercicio resuelto
17 de 35 04/04/2015 17:49
-
Pblico.
Privada.
Protegida.
Paquete.
3.4.2.- Relacin de herencia.
La herencia es una propiedad que permite a los objetos ser
construidos a partir de otros objetos, es decir, la capacidad de un
objetopara utilizar estructuras de datos y mtodos presentes en sus
antepasados.
El objetivo principal de la herencia es la reutilizacin, poder
utilizar cdigo desarrollado con anterioridad. La herencia supone
una clase basey una jerarqua de clases que contiene las clases
derivadas. Las clases derivadas pueden heredar el cdigo y los datos
de su clase base,aadiendo su propio cdigo especial y datos, incluso
cambiar aquellos elementos de la clase base que necesitan ser
diferentes, es por estoque los atributos, mtodos y relaciones de
una clase se muestran en el nivel ms alto de la jerarqua en el que
son aplicables.
Tipos:
Herencia simple: Una clase puede tener slo un ascendente. Es
decir una subclase puede heredar datos y mtodos de una nica
clasebase.
1.
Herencia mltiple: Una clase puede tener ms de un ascendente
inmediato, adquirir datos y mtodos de ms de una clase.2.
Representacin:
En el diagrama de clases se representa como una asociacin en la
que el extremo de la clase base tiene un tringulo.
En nuestro diagrama tenemos Alumnos y Profesores. An no hemos
hablado de sudefinicin y estructura, pero en nuestro sistema tanto
un alumno como un profesor tienenunas caractersticas comunes como
el nombre, la fecha de nacimiento o el correoelectrnico por el
hecho de ser personas:
Transforma este diagrama para hacer uso de la herencia aadiendo
una clase "Persona".
He creado una clase persona cuyos atributo son Nombre,
fechaContratacin y numeroCuenta. De esta clase derivan porherencia
la clase Empleado y JefeDepartamento. Cmo debe declararse un mtodo
en la clase Persona que se llameCalculaAntigedad que se usa slo
para calcular el sueldo de los empleados y jefes de
departamento?
Ejercicio resuelto
Autoevaluacin
18 de 35 04/04/2015 17:49
-
3.4.3.- Agregacin y composicin.
Muchas veces una determinada entidad existe como un conjunto de
otras entidades. En este tipo de relaciones un objeto componente
seintegra en un objeto compuesto. La orientacin a objetos recoge
este tipo de relaciones como dos conceptos: la agregacin y la
composicin.
La agregacin es una asociacin binaria que representa una relacin
todo-parte (pertenece a, tiene un, es parte de). Loselementos parte
pueden existir sin el elemento contenedor y no son propiedad suya.
Por ejemplo, un centro comercial tiene clienteso un equipo tiene
unos miembros. El tiempo de vida de los objetos no tiene porqu
coincidir.
En el siguiente caso, tenemos un ordenador que se compone de
piezas sueltas que pueden sersustituidas y que tienen entidad por
si mismas, por lo que se representa mediante relaciones
deagregacin. Utilizamos la agregacin porque es posible que una
caja, ratn o teclado o unamemoria RAM existan con independencia de
que pertenezcan a un ordenador o no.
La composicin es una agregacin fuerte en la que una instancia
parte est relacionada, como mximo, con una instancia todoen un
momento dado, de forma que cuando un objeto todo es eliminado,
tambin son eliminados sus objetos parte. Por ejemplo:un rectngulo
tiene cuatro vrtices, un centro comercial est organizado mediante
un conjunto de secciones de venta...
Para modelar la estructura de un ciclo formativo vamos a usar
las clases Mdulo, Competencia yCiclo que representan lo que se
puede estudiar en Formacin Profesional y su estructura lgica.
Unciclo formativo se compone de una serie de competencias que se le
acreditan cuando supera uno ovarios mdulos formativos.
Dado que si eliminamos el ciclo las competencias no tienen
sentido, y lo mismo ocurre con los mdulos hemos usado relaciones
decomposicin. Si los mdulos o competencias pudieran seguir
existiendo sin su contenedor habramos utilizado relaciones de
agregacin.
Estas relaciones se representan con un rombo en el extremo de la
entidad contenedora. En el caso de la agregacin es de color blanco
y parala composicin negro. Como en toda relacin hay que indicar la
cardinalidad.
19 de 35 04/04/2015 17:49
-
Pblico.
Privado.
Protegido.
Paquete.
3.4.4.- Atributos de enlace.
Es posible que tengamos alguna relacin en la que sea necesario
aadir algn tipo de informacin que la complete de alguna manera.
Cuandoesto ocurre podemos aadir atributos a la relacin.
Cuando un alumno se matricula de un mdulo es preciso especificar
el curso al que pertenece la matrcula, las notas obtenidas enel
examen y la tarea y la calificacin final obtenida. Estas
caractersticas no pertenecen totalmente al alumno ni al mdulo sino
a larelacin especfica que se crea entre ellos, que adems ser
diferente si cambia el alumno o el mdulo. Aade estos atributos
alenlace entre Alumno y Mdulo.
Siguiendo con el ejemplo anterior, para modelar el clculo de la
nota media de un alumno se aade el mtodocalcularNotaMedia a la
clase Alumno que realiza la media de las calificaciones de los
mdulos en los que el alumno seencuentra matriculado para este
curso. Qu visibilidad se debera poner a este mtodo?
Ejercicio resuelto
Autoevaluacin
20 de 35 04/04/2015 17:49
-
3.5.- Paso de los requisitos de un sistema al diagrama de
clases.
Mara y Juan siguen comentando la creacin de diagramas de
clases.
Las reservas se utilizan para relacionar los clientes y las
habitaciones, eso es sencillo de ver,pero si tenemos un enunciado
un poco ms largo, puede no ser tan obvio. Quiz podrasdarme algn
consejo sobre cmo pasar de los requisitos iniciales de una
aplicacin a un primerdiagrama de clases.
Es verdad, la cosa se complica un poco cuando tenemos ms
requisitos, pero la clave esten analizar el texto para obtener
nombres y continuar el desarrollo a partir de ah.
Empezamos identificando objetos que sern las clases del diagrama
examinando el planteamiento del problema. Los objetos se
determinansubrayando cada nombre o clusula nominal e introducindola
en una tabla simple. Los sinnimos deben destacarse. Pero, qu
debemosbuscar una vez que se han aislado todos los nombres?
Buscamos sustantivos que puedan corresponder con las siguientes
categoras:
Entidades externas (por ejemplo: otros sistemas, dispositivos,
personas) que producen o consumen informacin a usar por un
sistemacomputacional.Cosas (por ejemplo: informes, presentaciones,
cartas, seales) que son parte del dominio de informacin del
problema.Ocurrencias o sucesos (por ejemplo: una transferencia de
propiedad o la terminacin de una serie de movimientos en un robot)
queocurren dentro del contexto de una operacin del sistema.Papeles
o roles (por ejemplo: director, ingeniero, vendedor) desempeados
por personas que interactan con el sistema.Unidades
organizacionales (por ejemplo: divisin, grupo, equipo) que son
relevantes en una aplicacin.Lugares (por ejemplo: planta de
produccin o muelle de carga) que establecen el contexto del
problema y la funcin general delsistema.Estructuras (por ejemplo:
sensores, vehculos de cuatro ruedas o computadoras) que definen una
clase de objetos o, en casosextremos, clases relacionadas de
objetos.
Cuando estemos realizando este proceso debemos estar pendientes
de no incluir en la lista cosas que no sean objetos, como
operacionesaplicadas a otro objeto, por ejemplo, "inversin de
imagen" producir un objeto en el mbito del problema, pero en la
implementacin darorigen a un mtodo. Tambin es posible detectar
dentro de los sustantivos atributos de objetos, cosa que tambin
indicaremos en la tabla.
Cuando tengamos la lista completa habr que estudiar cada objeto
potencial para ver si, finalmente, es incluido en el diagrama.
Paraayudarnos a decidir podemos utilizar los siguientes
criterios:
La informacin del objeto es necesaria para que el sistema
funcione.1. El objeto posee un conjunto de atributos que podemos
encontrar en cualquier ocurrencia del objeto. Si slo aparece un
atributonormalmente se rechazar y ser aadido como atributo de otro
objeto.
2.
El objeto tiene un conjunto de operaciones identificables que
pueden cambiar el valor de sus atributos y son comunes a
cualquierocurrencia del objeto.
3.
Es una entidad externa que consume o produce informacin esencial
para la produccin de cualquier solucin en el sistema.4.
El objeto se incluye si cumple todos (o casi todos) los
criterios.
Se debe tener en cuenta que la lista no incluye todo, habr que
aadir objetos adicionales para completar el modelo y tambin,
quediferentes descripciones del problema pueden provocar la toma de
diferentes decisiones de creacin de objetos y atributos.
Caso prctico
21 de 35 04/04/2015 17:49
-
3.5.1.- Obtencin de atributos y operaciones.
Atributos
Definen al objeto en el contexto del sistema, es decir, el mismo
objeto en sistemasdiferentes tendra diferentes atributos, por lo
que debemos buscar en el enunciado o ennuestro propio conocimiento,
caractersticas que tengan sentido para el objeto en elcontexto que
se analiza. Deben contestar a la pregunta "Qu elementos (compuestos
y/osimples) definen completamente al objeto en el contexto del
problema actual?"
Operaciones
Describen el comportamiento del objeto y modifican sus
caractersticas de alguna de estasformas:
Manipulan los datos.Realizan algn clculo.Monitorizan un objeto
frente a la ocurrencia de un suceso de control.
Se obtienen analizando verbos en el enunciado del problema.
Relaciones
Por ltimo habr que estudiar de nuevo el enunciado para obtener
cmo los objetos que finalmente hemos descrito se relacionan entre
s. Parafacilitar el trabajo podemos buscar mensajes que se pasen
entre objetos y las relaciones de composicin y agregacin. Las
relaciones deherencia se suelen encontrar al comparar objetos
semejantes entre s, y constatar que tengan atributos y mtodos
comunes.
Cuando se ha realizado este procedimiento no est todo el trabajo
hecho, es necesario revisar el diagrama obtenido y ver si todo
cumple conlas especificaciones. No obstante siempre se puede
refinar el diagrama completando aspectos del mbito del problema que
no aparezcan en ladescripcin recurriendo a entrevistas con los
clientes o a nuestros conocimientos de la materia.
En el siguiente enlace tienes un ejemplo de obtencin del
diagrama de clases a partir de la descripcin de un problema.
Generacin del diagrama de clases de un problema dado.
El archivo al proyecto VP-UML resultante:
Enlace al proyecto de Visual Paradigm. (0.17 MB)
Para saber ms
22 de 35 04/04/2015 17:49
-
3.6.- Generacin de cdigo a partir del diagrama de clases.
Bueno, ya tenemos el diagrama, es cierto que es bastante til
para aclarar ideas en elequipo y establecer un plan de trabajo
inicial. Adems es ms fcil empezar a programarporque ya tenemos la
lnea a seguir, ahora solo falta que empecemos a crear clases y
arellenarlas, Verdad?
Pues s, pero an no lo sabes todo, el diagrama de clases an te va
a dar ms facilidades...
La Generacin Automtica de Cdigo consiste en la creacin
utilizando herramientas CASE de cdigo fuente de manera
automatizada. Elproceso pasa por establecer una correspondencia
entre los elementos formales de los diagramas y las estructuras de
un lenguaje deprogramacin concreto. El diagrama de clases es un
buen punto de partida porque permite una traduccin bastante directa
de las clasesrepresentadas grficamente, a clases escritas en un
lenguaje de programacin especfico como Java o C++.
Normalmente las herramientas de generacin de diagramas UML
incluyen la facilidad de la generacin, o actualizacin automtica de
cdigofuente, a partir de los diagramas creados.
Traduce el diagrama de clases generado en el punto anterior,
tanto desde el SDE para NetBeans de Visual Paradigm como
desdeVP-UML.
Caso prctico
Ejercicio resuelto
23 de 35 04/04/2015 17:49
-
3.6.1.- Eleccin del lenguaje de programacin. Orientaciones para
el lenguaje java.
El lenguaje final de implementacin de la aplicacin influyen en
algunas decisiones a tomar cuandoestamos creando el diagrama ya que
el proceso de traduccin es inmediato. Si existe algn problema enlos
nombres de clases, atributos o tipos de datos porque no puedan ser
utilizados en el lenguaje final o noexistan la generacin dar un
fallo y no se realizar. Por ejemplo, si queremos utilizar la
herramienta degeneracin de cdigo tendremos que asegurarnos de
utilizar tipos de datos simples apropiados, es decir, siusamos Java
el tipo de dato para las cadenas de caracteres ser String en lugar
de string o char*.
Podemos definir el lenguaje de programacin final desde el men
Herramientas >> Configurar lenguajede programacin. Si
seleccionamos Java automticamente cambiar los nombres de los tipos
de datos allenguaje escogido.
24 de 35 04/04/2015 17:49
-
3.7.- Generacin de la documentacin.
Los chicos siguen estudiando caractersticas de la herramienta
VP-UML...
Sera estupendo que despus de generar un diagrama, en el que
verdaderamente te hasesforzado, pudieras hacer anotaciones sobre la
importancia de cada clase, atributo o relacin,para que,
posteriormente, pudieras compartir esa informacin o recordarlo
rpidamentecuando estuvieras programando el sistema en caso de tener
que consultar algo.
No solo eso, adems de generar documentacin exhaustiva, la
herramienta permite crearinformes con ella, pasndola a un formato
ms cmodo de leer e interpretar en papel por elequipo de
desarrollo.
Como en todos los diagramas UML, podemos hacer las anotaciones
que consideremos necesarias abriendo laespecificacin de cualquiera
de los elementos, clases o relaciones, o bien del diagrama en si
mismo en lapestaa "Specification".
La ventana del editor cuenta con herramientas para formatear el
texto y darle un aspecto bastante profesional,pudiendo aadir
elementos como imgenes o hiperenlaces.
Tambin se puede grabar un archivo de voz con la documentacin del
elemento usando el icono Grabar.
Generar informes
Cuando los modelos estn completos podemos generar un informe en
varios formatos diferentes (HTML, PDF oWord) con la documentacin
que hemos escrito. Para generar un informe hacemos:
Desde VP-UML accedemos a Tools >> Reports >> Report
writer y seleccionamos el tipo de informe quequeremos.
Desde el SDE para NetBeans seleccionamos Modelin >>
Reports >> Report writer.
En ambos casos, una vez que elegimos el tipo de informe,
obtendremos la siguiente ventana en la que seleccionamos entre
otros:
Qu diagramas queremos que intervengan y donde se almacenar el
informe.La pestaa opciones (Options) permite configurar los
elementos que se aadirn al informe,como tablas de contenidos,
ttulos, etc.Las propiedades de la pgina.Si se va a aadir una marca
de agua.
El resultado es un archivo (.html, .pdf o .doc) en el directorio
de salida que hayamos indicado con ladocumentacin de los diagramas
seleccionados.
Caso prctico
25 de 35 04/04/2015 17:49
-
4.- Ingeniera inversa.
Ada est muy satisfecha con el cambio que percibe en su equipo,
ahora, cuando tiene que enfrentarse aun proyecto nuevo se esfuerzan
en escribir los requerimientos antes y comenzar con un proceso
deanlisis y creacin de un diagrama de clases. No obstante, ahora le
surge un reto nuevo, una empresa lesha contratado para reconstruir
una aplicacin que hay que adaptar a nuevas necesidades. As que
loschicos continan investigando si pueden aplicar el uso de
diagramas en este caso tambin.
La ingeniera inversa se define como el proceso de analizar
cdigo, documentacin y comportamiento de una aplicacin
paraidentificar sus componentes actuales y sus dependencias y para
extraer y crear una abstraccin del sistema e informacin deldiseo.
El sistema en estudio no es alterado, sino que se produce un
conocimiento adicional del mismo.
Tiene como caso particular la reingeniera que es el proceso de
extraer el cdigo fuente de un archivo ejecutable.
La ingeniera inversa puede ser de varios tipos:
Ingeniera inversa de datos: Se aplica sobre algn cdigo de bases
datos (aplicacin, cdigo SQL, etc.) para obtener los
modelosrelacionales o sobre el modelo relacional para obtener el
diagrama entidad-relacin.Ingeniera inversa de lgica o de proceso:
Cuando la ingeniera inversa se aplica sobre el cdigo de un programa
para averiguar sulgica (reingeniera), o sobre cualquier documento
de diseo para obtener documentos de anlisis o de
requisitos.Ingeniera inversa de interfaces de usuario: Se aplica
con objeto de mantener la lgica interna del programa para obtener
losmodelos y especificaciones que sirvieron de base para la
construccin de la misma, con objeto de tomarlas como punto de
partida enprocesos de ingeniera directa que permitan modificar
dicha interfaz.
A partir del cdigo que has obtenido en el ejercicio anterior
genera el diagrama de clases correspondiente.
Tienes una buena descripcin terica sobre ingeniera inversa en el
siguiente documento:
Ingeniera Inversa. (0.53 MB)
Caso prctico
Ejercicio resuelto
Para saber ms
26 de 35 04/04/2015 17:49
-
Anexo I.- Diagramas UML.Diagramas estructurales.
Diagramas de clases: Muestra los elementos del modelo esttico
abstracto, y est formado por un conjunto de clases y sus
relaciones.Tiene una prioridad ALTA.Diagrama de objetos: Muestra
los elementos del modelo esttico en un momento concreto,
habitualmente en casos especiales de undiagrama de clases o de
comunicaciones, y est formado por un conjunto de objetos y sus
relaciones. Tiene una prioridad ALTA.Diagrama de componentes:
Especifican la organizacin lgica de la implementacin de una
aplicacin, sistema o empresa, indicandosus componentes, sus
interrelaciones, interacciones y sus interfaces pblicas y las
dependencias entre ellos. Tiene una prioridadMEDIA.Diagramas de
despliegue: Representan la configuracin del sistema en tiempo de
ejecucin. Aparecen los nodos de procesamiento ysus componentes.
Exhibe la ejecucin de la arquitectura del sistema. Incluye nodos,
ambientes operativos sea de hardware o software,as como las
interfaces que las conectan, es decir, muestra como los componentes
de un sistema se distribuyen entre los ordenadoresque los ejecutan.
Se utiliza cuando tenemos sistemas distribuidos. Tiene una
prioridad MEDIA.Diagrama integrado de estructura (UML 2.0): Muestra
la estructura interna de una clasificacin (tales como una clase,
componente ocaso tpico), e incluye los puntos de interaccin de esta
clasificacin con otras partes del sistema. Tiene una prioridad
BAJA.Diagrama de paquetes: Exhibe cmo los elementos del modelo se
organizan en paquetes, as como las dependencias entre esospaquetes.
Suele ser til para la gestin de sistemas de mediano o gran tamao.
Tiene una prioridad BAJA.
Diagramas de comportamiento.
Diagramas de casos de uso: Representan las acciones a realizar
en el sistema desde el punto de vista de los usuarios. En l
serepresentan las acciones, los usuarios y las relaciones entre
ellos. Sirven para especificar la funcionalidad y el comportamiento
de unsistema mediante su interaccin con los usuarios y/u otros
sistemas. Tiene una prioridad MEDIA.Diagramas de estado de la
mquina: Describen el comportamiento de un sistema dirigido por
eventos. En el aparecen los estados quepueden tener un objeto o
interaccin, as como las transiciones entre dichos estados. Se lo
denomina tambin diagrama de estado,diagrama de estados y
transiciones o diagrama de cambio de estados. Tiene una prioridad
MEDIA.Diagrama de actividades: Muestran el orden en el que se van
realizando tareas dentro de un sistema. En l aparecen los procesos
dealto nivel de la organizacin. Incluye flujo de datos, o un modelo
de la lgica compleja dentro del sistema. Tiene una prioridad
ALTA.
Diagramas de interaccin.
Diagramas de secuencia: Representan la ordenacin temporal en el
paso de mensajes. Modela la secuencia lgica, a travs deltiempo, de
los mensajes entre las instancias. Tiene una prioridad
ALTA.Diagramas de comunicacin/colaboracin (UML 2.0): Resaltan la
organizacin estructural de los objetos que se pasan mensajes.Ofrece
las instancias de las clases, sus interrelaciones, y el flujo de
mensajes entre ellas. Comnmente enfoca la organizacinestructural de
los objetos que reciben y envan mensajes. Tiene una prioridad
BAJA.Diagrama de interaccin: Muestra un conjunto de objetos y sus
relaciones junto con los mensajes que se envan entre ellos. Es
unavariante del diagrama de actividad que permite mostrar el flujo
de control dentro de un sistema o proceso organizativo. Cada nodo
deactividad dentro del diagrama puede representar otro diagrama de
interaccin. Tiene una prioridad BAJA.Diagrama de tiempos: Muestra
el cambio en un estado o una condicin de una instancia o un rol a
travs del tiempo. Se usanormalmente para exhibir el cambio en el
estado de un objeto en el tiempo, en respuesta a eventos externos.
Tiene una prioridad BAJA.
27 de 35 04/04/2015 17:49
-
Anexo II.- Descarga e instalacin de Visual Paradigm.Descarga e
instalacin de Visual Paradigm
Obtenemos los archivos desde:
Pgina de Visual Paradigm
Ofrece dos versiones:
Visual Paradigm for UML (VP-UML), versin de prueba de 10 das,
ampliable a 30 das mediante registro.Versin Community-Edition, para
uso no comercial (gratuito).
En cualquier caso necesitamos un cdigo de activacin que
conseguiremos registrndonos. Se enva al correo electrnico que se
indique en elregistro.
La versin Community-Edition incluye algunas de las
funcionalidades de la versin completa, entre las que no se
encuentra la generacin decdigo ni la ingeniera inversa, que se vern
al final de la unidad por lo que se recomienda empezar por la
versin completa de prueba por 30das, para los que se necesita un
cdigo de tipo, conseguiremos el cdigo de activacin, que es un
archivo de tipo zvpl, en este caso llamadovpsuite.zvpl.
Para la siguiente unidad tambin usaremos VP-UML, de modo que si
fuera necesario tendramos que conseguir un nuevo cdigo de
activacin,esta vez de tipo Community-Edition.
Proceso de instalacin
Ejecutaremos el archivo de instalacin, que tendr diferente
extensin si es para Windows o para Linux. En nuestro caso suponemos
que lohacemos en un equipo con Ubuntu Desktop 10.10. Se debe tener
en cuenta que en el nombre se incluye la versin y la fecha en la
queapareci, por lo que estos datos pueden cambiar con el tiempo. Si
hacemos la instalacin en Windows bastar con hacer doble clic sobre
elarchivo .exe.
usuario@equipo:~/VP/ chmod +x
VP_Suite_Linux_5_2_20110611.shusuario@equipo:~/VP/sudo
./VP_Suite_Linux_5_2_20110611.sh
Durante la instalacin tendremos que indicar qu mdulos queremos
instalar, seleccionaremos Visual Paradigm for UML y el SDE
(SmartDevelopment Environment o Entorno de Desarrollo Inteligente),
de NetBeans que es el que vamos a usar.
A continuacin tendremos que indicar que vamos a utilizar la
versin Enterprise de ambas herramientas y en que directorio est
NetBeans:
Es importante destacar que la instalacin debe hacerse sobre una
instalacin limpia de NetBeans, es decir, que solo podremos
instalarlo en eldirectorio que indicamos una vez.
A continuacin se pide un archivo con la licencia de la
herramienta. Al iniciar la descarga nos pedir que nos registremos,
tras hacerlopodremos solicitar este archivo. Lo insertamos ahora,
como hemos instalado dos herramientas nos pedir dos archivos, pero
podemos usar laopcin de archivo de licencia combinado, de modo que
nos sirva para los dos casos. Si nos lo pide, tendremos que volver
a aadirlo despusal iniciar Visual Paradigm, con una copia nueva del
archivo de clave.
Por ltimo indicamos dnde queremos que ponga los archivos con los
proyectos y finalizamos la instalacin indicando que no queremos
queabra ninguna aplicacin.
Iniciar Visual Paradigm
Una vez realizada la instalacin tendremos una entrada en el men
Aplicaciones llamada Otras, si trabajamos con Linux o bien una
entradade men en el botn Inicio para Visual Paradigm, si es que
trabajamos en Windows. En cualquiera de los casos para abrir la
herramientabuscamos la opcin Visual Paradigm for UML, que se
abrevia como VP-UML. Al hacer clic se abrir el programa, y nos
preguntar cual es eldirectorio por defecto para guardar los
proyectos, podemos dejar la opcin por defecto o seleccionar nuestro
propio directorio.
Iniciar VP-UML desde NetBeans
Al hacer la instalacin hemos indicado, marcado, que se instale
tambin el SDE para NetBeans, por lo que tambin tenemos la opcin
deiniciar la herramienta para usarla integrada con NetBeans. Para
abrirlo buscamos dentro del men de Visual Paradigm la opcin SDE
forNetBeans.
Esto abre la aplicacin NetBeans, a la que se ha incorporado una
pequea diferencia, y es que podemos aadir a un proyecto en
desarrolloexistente un proyecto VP-UML. Cmo lo hacemos?
Estando en la ventana de Proyectos, si hacemos clic con el botn
secundario sobre un proyecto vemos una serie de opciones, como
compilaro construir, ahora, adems, abrir el SDE desde Open SDE
EE-NB, que abre el SDE. La primera vez nos pedir que importemos un
archivo de
28 de 35 04/04/2015 17:49
-
clave, que podremos obtener con el botn Request Key desde la
pgina oficial. Para ello necesitaremos el correo de registro que
hemosutilizado al hacer la instalacin.
Los proyectos de Visual Paradigm se podrn almacenar en el
directorio por defecto, que se denomina vpproject y cuelga del
directorio principaldel proyecto NetBeans, o en otra ubicacin.
Nosotros nos quedaremos con la opcin por defecto.
Tambin podemos importar un proyecto VP-UML que tengamos ya
creado seleccionndolo al crear el proyecto existente.
Una vez creado o importado el proyecto, tendremos una serie de
botones en la zona superior derecha que nos permitirn crear los
diferentesdiagramas de UML, y que queden asociados al proyecto
NetBeans.
29 de 35 04/04/2015 17:49
-
Anexo III.- Generacin del diagrama de clases de un problema
dado.Descripcin del problemaEl Ministerio de Educacin ha encargado
a BK Programacin que desarrolle una plataforma de aprendizaje
electrnico para que los alumnosde ciclos formativos a distancia
tengan acceso a los materiales y puedan comunicarse con sus
profesores. Para que los chicos puedanempezar a crear los primeros
diagramas de la aplicacin Ada les pasa la siguiente descripcin del
mbito del problema:
Los alumnos y alumnas de Ciclos Formativos a Distancia se
matriculan de varios mdulos formativos al ao. Los mdulos formativos
sonimpartidos por profesores y profesoras que pondrn los contenidos
del mdulo a disposicin de los alumnos y alumnas. Para superar
unmdulo hay que hacer una tarea y un examen que se calificarn de
uno a diez, y sacar en ambos casos una puntuacin superior a cinco.
Losexmenes se componen de 30 preguntas que se eligen y ordenan al
azar. Las preguntas tienen un enunciado y cuatro posibles
respuestas,slo una de ellas vlida. Un ciclo formativo se compone de
una serie de competencias profesionales, que tienen una descripcin
y que, a suvez, estn formadas por uno o varios mdulos, que tienen
un nombre, y un nmero de horas. Cuando un alumno o alumna supera
los mduloscorrespondientes a una capacidad se le certifica esa
capacidad. Cuando se han superado todos los mdulos (y por tanto se
han adquiridotodas las competencias profesionales) se aprueba el
ciclo. Cuando un alumno o alumna finaliza el ciclo se emite un
certificado decompetencias a su nombre donde aparece la descripcin
de las competencias que forman el ciclo y la nota media obtenida.
Si un alumno oalumna no termina de cursar el ciclo completo puede
pedir un certificado que acredite las competencias que s tenga
adquiridas. El alumnado yel profesorado se identifican con un alias
en el sistema y se comunican a travs de correo electrnico. Por
motivos administrativos es necesarioconocer el nombre y apellidos,
direccin completa y telfono de todas las personas que participan en
el sistema, sea como profesores o comoalumnos. Para el profesorado,
adems, se debe conocer su nmero de registro personal (NRP)
Extraccin de los sustantivos de la descripcin del problema.
Primero subrayamos los sustantivos de la descripcin del problema
(sin repeticiones) y los pasamos a una tabla: (usaremos slo alumnos
yslo profesores para simplificar el diseo)
Los alumnos de Ciclos Formativos a Distancia se matriculan de
varios mdulos formativos al ao. Los mdulos formativos son
impartidos porprofesores que pondrn los contenidos del mdulo a
disposicin de los alumnos. Para superar un mdulo hay que hacer una
tarea y unexamen que se calificarn de uno a diez, y sacar en ambos
casos una puntuacin superior a cinco. Los exmenes se componen de
30preguntas que se eligen y ordenan al azar. Las preguntas tienen
un enunciado y cuatro posibles respuestas, slo una de ellas vlida.
Un cicloformativo se compone de una serie de competencias
profesionales, que tienen una descripcin y que, a su vez, estn
formadas por uno ovarios mdulos, que tienen un nombre, y un nmero
de horas. Al sumar las horas de un ciclo obtenemos las horas del
mdulo. Cuando unalumno supera los mdulos correspondientes a una
competencia se le certifica esa competencia. Cuando se han superado
todos los mdulos(y por tanto se han adquirido todas las
competencias profesionales) se aprueba el ciclo. Cuando un alumno
finaliza el ciclo se emite uncertificado de competencias a su
nombre donde aparece la descripcin de las competencias que forman
el ciclo y la nota media obtenida. Si unalumno no termina de cursar
el ciclo completo puede pedir un certificado que acredite las
competencias que si tenga adquiridas. Los alumnos yprofesores se
identifican con un alias en el sistema y se comunican a travs de
correo electrnico. Por motivos administrativos es necesarioconocer
el nombre y apellidos, direccin completa y telfono de todas las
personas que participan en el sistema, sea como profesores o
comoalumnos. Para los profesores, adems, se debe conocer su nmero
de registro personal (NRP).
Tabla de sustantivos
Clase/objeto potencial Categora
Alumno Entidad externa o rol
Ciclo Formativo a Distancia Unidad organizacional
Modulo Formativo Unidad organizacional
Ao Atributo
Profesor Entidad externa o rol
Contenidos Atributo
Tarea Cosa
Examen Cosa
Uno Atributo
Diez Atributo
Pregunta Cosa
Enunciado Atributo
Respuesta Atributo
Competencia Profesional Unidad organizacional
Descripcin Atributo
Horas Atributo
Certificado de competencias Cosa
30 de 35 04/04/2015 17:49
-
Nombre Atributo
Nota media Atributo
Alias Atributo
Sistema Estructura
Nombre Atributo
Direccin Atributo
Telfono Atributo
Persona Rol o entidad externa
Nmero de registro personal Atributo
Seleccin de sustantivos como objetos/clases del sistema
Ahora aplicamos los criterios de seleccin de objetos. En este
apartado es necesario destacar que aunque algunos de los
sustantivos quetenemos en el anunciado podran llegar a convertirse
en clases y objetos, como los contenidos de un mdulo formativo, se
descartan en estafase porque el enunciado no da suficiente
informacin. El proceso de creacin de diagramas no es inmediato,
sino que est sujeto a revisiones,cambios y adaptaciones hasta tener
un resultado final completo.
Tabla de eleccin de sustantivos comoobjetos o clases del
sistema.
Clase/objeto potencial Criterios aplicables
Alumno 2,3,4
Ciclo Formativo a Distancia 1,2,3
Mdulo Formativo 1,2,3
Profesor 2,3,4
Tarea 1,2,3
Examen 1,2,3
Competencia Profesional 1,2,3
Pregunta 1,2,3
Certificado de competencias Falla 2,3 rechazado
Sistema Falla 1,2,3,4 rechazado
Persona 2,3,4
Obtencin de los atributos de los objetos.
Buscamos responder a la pregunta Qu elementos (compuestos y/o
simples) definen completamente al objeto en el contexto del
problemaactual?
Tabla de relacin de las clases u objetos con sus atributos.
Clase/objeto potencial Atributos
Alumno Nombre, direccin, telfono, alias, correo electrnico.
Ciclo Formativo a Distancia Nombre, descripcin, horas.
Mdulo Formativo Modulo Formativo
Profesor Nombre, direccin, telfono, alias, correo electrnico ,
NRP.
Tarea Descripcin, calificacin.
Examen Descripcin, calificacin.
Competencia Profesional Nombre, descripcin.
Pregunta Enunciado, respuestas, respuesta vlida.
Persona Nombre, direccin, telfono, alias, correo electrnico.
31 de 35 04/04/2015 17:49
-
Obtencin de los mtodos
Buscamos o inferimos en el enunciado verbos, y actividades en
general que describan el comportamiento de los objetos o modifiquen
suestado.
Tabla de clases u objetos del sistema con susposibles
mtodos.
Clase/objeto potencial Mtodos
Alumno CalcularNotaMedia() : voidemitirCertificado() : void
Ciclo Formativo a Distancia
Mdulo Formativo Matricular(Alumno : alumno) :
voidasignarDuracion(horas: int) : void
Profesor
Tarea
Examen
Calificar()aadirPregunta()ordenarPreguntas()crearExamen()
Competencia Profesional
Pregunta
Persona
Obtener relaciones
Con las clases ya extradas y parcialmente definidas (an faltan
por aadir mtodos y atributos inferidos de posteriores refinamientos
y denuestro conocimiento) podemos empezar a construir relaciones
entre ellas.
Comenzaremos por las clases que hacen referencia a la estructura
de los Ciclos, cada Ciclo se compone de una o ms
competenciasprofesionales, que no tienen la capacidad de existir
por si mismas, es decir, la competencia no tiene sentido sin su
ciclo, por lo que vamos acrear una relacin entre ambas clases de
composicin. De igual manera una competencia profesional se compone
de un conjunto de mdulosformativos (1 o ms) por lo que
relacionaremos ambas, tambin mediante composicin.
Un mdulo formativo a su vez, contiene un examen y una tarea, que
tampoco tienen sentido por si mismos, de modo que tambin los vamos
arelacionarlos mediante composicin. El examen por su parte se
compone de 30 preguntas, pero stas pueden tener sentido por si
mismas, ypertenecer a diferentes exmenes, adems, el hecho de
eliminar un examen no va a dar lugar a que las preguntas que lo
forman se borrennecesariamente, si leemos con atencin el enunciado,
podemos deducir que las preguntas se seleccionan de un repositorio
del que puedenseguir formando parte [... [Los exmenes se componen
de 30 preguntas que se eligen y ordenan al azar...], as que en este
caso usaremos larelacin de agregacin para unirlos.
Por otra parte alumnos y profesores comparten ciertas
caractersticas, por necesidad del sistema, como son los datos
personales, o el correoelectrnico, esto induce a pensar que podemos
crear una abstraccin con los datos comunes, que de hecho, ya hemos
obtenido del enunciadoen la clase persona, que recoge las
coincidencias entre alumnos y profesores y aadir una relacin de
herencia de la siguiente manera:
Por ltimo queda relacionar a alumnos y profesores con los mdulos
formativos. Un alumno se matricula de un conjunto de
mdulosformativos, y un profesor puede impartir uno o varios mdulos
formativos.
Ms concretamente, de cara a la cardinalidad, un alumno puede
estar matriculado en uno o varios mdulos, mientras que un mdulo
puedetener, uno o varios alumnos matriculados. Por su parte un
profesor puede impartir uno o varios mdulos, aunque un mdulo es
impartido por unprofesor.
ste anlisis da como resultado lo siguiente:
32 de 35 04/04/2015 17:49
-
Aadir Getters, Setters y constructores
Por ltimo aadimos los mtodos que permiten crear los objetos de
las clases (constructores) as como los que permiten establecer los
valoresde los atributos no calculados y leerlos (getters y
setters), recuerda que para tener stos mtodos completos es
necesario que el atributo tengaestablecido su tipo, para que sea
tenido en cuenta.
Para aadir los getters y setters en Visual Paradigm, basta con
desplegar el men contextual del atributo y seleccionar la opcin
Create Getterand Setter.
Tambin hay que aadir los mtodos que no se infieren de la lectura
del enunciado, por ejemplo los que permiten aadir mdulos a
lascompetencias, o competencias a los ciclos. Para comprobar estos
mtodos puedes descargar el diagrama de clases en un proyecto
VP-UMLun poco ms adelante.
Aadir documentacin
Por ltimo se debe rellenar la documentacin de cada clase,
atributo y mtodo con una descripcin de los mismos que ser necesaria
para lageneracin de informes posterior. A continuacin se listan las
clases con su documentacin:
Persona: Generalizacin para agrupar las caractersticas comunes
de alumnos y profesores como personas que interactan con elsistema.
De una persona interesa conocer su nombre, direccin, telfono, alias
y correo electrnico.Alumno: Es un tipo de persona. Representa a las
personas que se matriculan de un ciclo formativo. Un alumno puede
estar matriculadodurante varios aos en un ciclo. Est matriculado de
un ciclo siempre que est matriculado en algn mdulo que forme parte
del ciclo.Para aprobar un Ciclo hay que superar todos los mdulos
que lo componen. Para superar un mdulo hay que realizar la tarea y
aprobarel examen, que est compuesto de 30 preguntas de tipo test,
con cuatro respuestas posibles una de las cuales es la correcta. De
unalumno interesa almacenar su nota media.Profesor: Es un tipo de
persona. Representa a las personas que imparten los mdulos
formativos. Evalan las tareas que realizan losalumnos y se encargan
de poner los contenidos a disposicin de los alumnos. De un profesor
interesa almacenar su nmero de registropersonal.Ciclo Formativo a
Distancia: Es uno de los ncleos centrales del sistema. Representa
los estudios que se pueden realizar a distancia.Un ciclo formativo
se compone de un conjunto de competencias profesionales que se
componen a su vez de mdulos formativos. Seaprueba un ciclo
formativo cuando se adquieren todas las competencias que lo forman.
De un ciclo formativos se almacena su nombre,descripcin y horas
totales.Competencia Profesional: Representan el conjunto de
conocimientos generales que se adquieren cuando se completa un
cicloformativo. Se componen de mdulos profesionales y se adquiere
una competencia cuando se superan los mdulos que la componen.De una
competencia se almacena su descripcin.Mdulo Formativo: Unidades
formativas que cursa un alumno. Un mdulo formativo tiene una serie
de contenidos que el alumno debeestudiar, y una tarea y un examen
que el alumno debe hacer. Cuando se aprueban la tarea y el examen
se supera el mdulo. De unmdulo se almacena su nombre, duracin y
contenidos.Tarea: Actividad relacionada con los contenidos de un
mdulo que debe realizar un alumno. Tiene una puntuacin de uno a
diez y esevaluada por el profesor. La nota se asigna a cada alumno
para la matrcula del mdulo al que pertenece la tarea. De una tarea
sealmacena su descripcin.Examen: Conjunto de treinta preguntas que
se evala de uno a diez. Un examen puede desordenarse y calificarse
calculando cuantaspreguntas son correctas.Pregunta: Forman los
exmenes de un mdulo. Se compone del enunciado y cuatro posibles
respuestas de las cuales slo una esvlida.
33 de 35 04/04/2015 17:49
-
Anexo.- Licencias de recursos
Licencias de recursos utilizados en la Unidad de Trabajo.
Recurso (1) Datos del recurso (1) Recurso (2) Datos del recurso
(2)
Autora: Visual Paradigm International.Licencia: Copyright
cita.Procedencia: Captura de pantalla de VisualParadigm for
UML.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla de VisualParadigm.
Autora: Visual Paradigm.Licencia: Copyright cita.Procedencia:
Captura de pantalla deVisual Paradigm.
34 de 35 04/04/2015 17:49
-
Autora: NetBeans.Licencia: Copyright cita.Procedencia: Captura
de pantalla deNetBeans.
35 de 35 04/04/2015 17:49