ED05 Elaborcion de diagramas estructurales

35
Diseño orientado a objetos. Elaboración de diagramas estructurales. En la empresa siguen trabajando en diferentes aplicaciones con un nivel alto de complejidad, se desarrolla para diferentes plataformas, en entornos de ventanas, para la web, dispositivos móviles, etc. Ada lleva un tiempo observando a su equipo, y a pesar de que ya han hablado de las diferentes fases de desarrollo del software, y que están descubriendo nuevos entornos de programación que han facilitado su trabajo enormemente, se ha dado cuenta de que todavía hay una asignatura pendiente, sus empleados no utilizan herramientas ni crean documentos en las fases previas del desarrollo de una aplicación, a pesar de ser algo tan importante como el resto de fases del proceso de elaboración de software. Tampoco construyen modelos que ayuden a hacerse una idea de como resultará el proyecto. Estos documentos y modelos son muy útiles para que todo el mundo se ponga de acuerdo en lo que hay que hacer, y cómo van a hacerlo. Como Ada muy bien conoce, un proyecto de software tendrá éxito sólo si produce un software de calidad, consistente y sobre todo que satisfaga las necesidades de los usuarios que van a utilizar el producto resultante. Para desarrollar software de calidad duradera, hay que idear una sólida base arquitectónica que sea flexible al cambio. Incluso para producir software de sistemas pequeños sería bueno hacer análisis y modelado ya que redunda en la calidad, pero lo que si es cierto, es que cuanto más grande y complejos son los sistemas más importante es hacer un buen modelado ya que nos ayudará a entender el comportamiento del sistema en su totalidad. Y cuando se trata de sistemas complejos el modelado nos dará una idea de los recursos necesarios (tanto humanos como materiales) para abordar el proyecto. También nos dará una visión más amplia de cómo abordar el problema para darle la mejor solución. Ada se da cuenta de que el equipo necesita conocer procedimientos de análisis y diseño de software, así como alguna herramienta que permita generar los modelos y la documentación asociada, así que decide reunir a su equipo para empezar a tratar este tema... Materiales formativos de FP Online propiedad del Ministerio de Educación, Cultura y Deporte. Aviso Legal Caso práctico 1 de 35 04/04/2015 17:49

description

Como eleborar diagramas de clases

Transcript of ED05 Elaborcion de diagramas estructurales

  • 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