martes, 28 de agosto de 2018

UML JAVA 

DEFINICIÓN DE UML
UML son las siglas de “Unified Modeling Language” o “Lenguaje Unificado de Modelado”. Se trata de un estándar que se ha adoptado a nivel internacional por numerosos organismos y empresas para crear esquemas, diagramas y documentación relativa a los desarrollos de software (programas informáticos).

logo uml

Historia de UML 
UML respaldado por el OMG (Object Management Group), es un lenguaje de modelado de sistemas de software. Diseñado como una herramienta gráfica donde se puede construir, especificar, visualizar y documentar sistemas. Permite representar el modelo de un escenario, donde se describen las entidades intervinientes y sus relaciones. También podemos al describir cada entidad, especificar las propiedades y el comportamientos de las mismas.
Rational Software Corporation contrato en 1994 a James Rumbaugh y la compañia se convirtió en la fuente de los dos esquemas de modelado orientado a objetos más populares de la época: - OMT (Object-modeling technique) de Rumbaugh, que era mejor para análisis orientado a objetos. - Método Booch de Grady Booch, que era mejor para el diseño orientado a objetos. 
Poco después se les une Ivar Jacobson, el creador del método de ingeniería de software orientado a objetos. Jacobson se unió a Rational en 1995, después de que su compañía Objectory AB fuera comprada por Rational.
En 1996 Rational concluyó que la abundancia de lenguajes de modelado estaba alentando la adopción de la tecnología de objetos, y para orientarse hacia un método unificado, encargaron a estos especialistas que desarrollaran un Lenguaje Unificado de Modelado abierto
¿QUÉ ES Y PARA QUÉ SIRVE UML?
El término “lenguaje” ha generado bastante confusión respecto a lo que es UML. En realidad el término lenguaje quizás no es el más apropiado, ya que no es un lenguaje propiamente dicho, sino una serie de normas y estándares gráficos respecto a cómo se deben representar los esquemas relativos al software. Mucha gente piensa por confusión que UML es un lenguaje de programación y esta idea es errónea: UML no es un lenguaje de programación. Como decimos, UML son una serie de normas y estándares que dicen cómo se debe representar algo.
UML es una herramienta propia de personas que tienen conocimientos relativamente avanzados de programación y es frecuentemente usada por analistas funcionales (aquellos que definen qué debe hacer un programa sin entrar a escribir el código) y analistas-programadores (aquellos que dado un problema, lo estudian y escriben el código informático para resolverlo en un lenguaje como Java, C#, Python o cualquier otro). Por tanto si estás dando tus primeros pasos en programación, te recomendaríamos que te olvides de UML hasta que tengas unos conocimientos mínimos como uso de condicionales, bucles, y conocimiento de la programación orientada a objetos. Esto es solo una recomendación, en realidad prácticamente cualquier persona puede usar UML, incluso podría usarse para realizar esquemas o documentación de procesos que no tengan que ver con la informática.
Un esquema que cumple las normas UML podría tener este aspecto:
ejemplo diagrama uml
O también este otro:
ejemplo diagrama de clases uml

¿Por qué si ambos esquemas cumplen con UML tienen un aspecto tan distinto? Porque UML define normas para construir muchos tipos de esquemas, no esquemas de un solo tipo.
¿Quién usa UML? UML lo suelen usar las empresas o medianos o grandes equipos de desarrollo software con el objetivo de planificar y documentar cómo se construyen los programas informáticos complejos. Los usuarios individuales o pequeños equipos de desarrollo de 2 ó 3 personas no suelen usar herramientas UML. UML es un término que se relaciona mucho con “Ingeniería del software”. Al igual que un proyecto de edificio requiere la participación de un arquitecto y unos plantos, un proyecto software requiere la participación de ingenieros informáticos y una planificación y documentación.
Existen dos clases principales de tipos de diagramas: diagramas estructurales y diagramas de comportamiento. Estos últimos incluyen varios que representan diferentes aspectos de las interacciones. Estos diagramas pueden ser categorizados jerárquicamente como se muestra en el siguiente diagrama de clases:
Jerarquía de diagramas de UML 2.2, como diagrama de clases. En UML 2.5 hay otro diagrama estructural más, el diagrama de perfiles
Usando UML se pueden construir numerosos tipos de diagramas. Vamos a citar algunos:
Diagramas de casos de uso: representan a los actores y casos de uso (procesos principales) que intervienen en un desarrollo de software.
Image result for diagrama de caso de uso












Diagramas de clases:para UML una clase es una entidad, no una clase software. Un diagrama de clases UML puede ser un diagrama del dominio o representación de conceptos que intervienen en un problema, o también un diagrama de clases software. El sentido de un diagrama UML se lo da la persona que lo construye.
Resultado de la imagen para diagrama de clase
Diagramas de secuencia:suelen usarse para representar objetos software y el intercambio de mensajes entre ellos, representando la aparición de nuevos objetos de izquierda a derecha.
Resultado de la imagen para diagrama de secuencia
Diagramas de colaboración:suelen usarse para representar objetos o clases y la forma en que se transmiten mensajes y colaboran entre ellos para cumplir un objetivo.
Resultado de la imagen para diagrama de colaboracion
Diagramas de estados:suelen usarse para representar cómo evoluciona un sistema (cómo va cambiando de estado) a medida que se producen determinados eventos.
Resultado de la imagen diagrama del estado

Antes de UML 1.x

Después de que la Rational Software Corporation contratara a James Rumbaugh de General Electric, en 1994, la compañía se convirtió en la fuente de los dos esquemas de modelado orientado a objetos más populares de la época: Object-Modeling Technique (OMT) de Rumbaugh, que era mejor para análisis orientado a objetos, y el Método Booch (de Grady Booch) que era mejor para el diseño orientado a objetos. Poco después se les unió Ivar Jacobson, el creador del método de ingeniería de software orientado a objetos. Jacobson se unió a Rational, en 1995, después de que su compañía Objectory AB fuera comprada por Rational. Los tres metodologistas eran conocidos como los Tres Amigos, porque se sabía de sus constantes discusiones sobre las prácticas metodológicas.
En 1996 Rational concluyó que la abundancia de lenguajes de modelado estaba alentando la adopción de la tecnología de objetos, y para orientarse hacia un método unificado, encargaron a los Tres Amigos que desarrollaran un "lenguaje unificado de modelado" abierto. Se consultó con representantes de compañías competidoras en el área de la tecnología de objetos durante la OOPSLA '96; eligieron "cajas" para representar clases en lugar de la notación de Booch que utilizaba símbolos de "nubes".
Bajo la dirección técnica de los Tres Amigos (Rumbaugh, Jacobson y Booch) fue organizado un consorcio internacional llamado UML Partners en 1996 para completar las especificaciones del UML, y para proponerlo como una respuesta al OMG RFP. El borrador de la especificación UML 1.0 de UML Partners fue propuesto a la OMG en enero de 1997. Durante el mismo mes, la UML Partners formó una Fuerza de Tarea Semántica, encabezada por Cris Kobryn y administrada por Ed Eykholt, para finalizar las semánticas de la especificación y para integrarla con otros esfuerzos de estandarización. El resultado de este trabajo, el UML 1.1, fue presentado ante la OMG en agosto de 1997 y adoptado por la OMG en noviembre de 1997.

UML 1.x

Como notación de modelado, la influencia de la OMT domina UML (por ejemplo, el uso de rectángulos para clases y objetos). Aunque se quitó la notación de "nubes" de Booch, sí se adoptó la capacidad de Booch para especificar detalles de diseño en los niveles inferiores. La notación de "Casos de Uso" del Objectory y la notación de componentes de Booch fueron integrados al resto de la notación, pero la integración semántica era relativamente débil en UML 1.1, y no se arregló realmente hasta la revisión mayor de UML 2.0.
Conceptos de muchos otros métodos orientados a objetos (MOO) fueron integrados superficialmente en UML con el propósito de hacerlo compatible con todos los MOO. Además, el grupo tomó en cuenta muchos otros métodos de la época, con el objetivo de asegurar amplia cobertura en el dominio de los sistemas en tiempo real. Como resultado, UML es útil en una gran variedad de problemas de ingeniería, desde procesos sencillos y aplicaciones de solamente un usuario a sistemas concurrentes y distribuidos.

UML 2.x

UML ha madurado considerablemente desde UML 1.1, varias revisiones menores (UML 1.3, 1.4 y 1.5) han corregido defectos y errores de la primera versión de UML. A estas le ha seguido la revisión mayor UML 2.0 que fue adoptada por el OMG en 2005.
Aunque UML 2.1 nunca fue lanzado como una especificación formal, las versiones 2.1.1 y 2.1.2, aparecieron en 2007, seguidas por UML 2.2 en febrero de 2009. UML 2.3 fue lanzado oficialmente en mayo de 2010. UML 2.4.1 fue lanzado oficialmente en agosto de 2011. UML 2.5 fue lanzado en octubre de 2012 como una versión "En proceso" que fue formalmente liberada en junio de 2015.

NetBeans permite programación orientada a objetos como Java y C++. Ahora bien, siendo un IDE muy bueno, debería permitirnos manejar UML para modelar nuestros objetos ¿cierto?

Pues bien, aquí les muestro como instalar un plugin en NetBeans que nos permita escribir UML de una manera no convencional. (Mejor que arrastrar y soltar los artefactos en el lienzo.. ya verán)


Instalación del plugin

Debemos instalar en nuestro IDE el plugin "PlantUML-NB" que lo podrás descargar desde esta dirección:

https://sourceforge.net/projects/plantumlnb/

Al dar clic en "Download" obtendremos el archivo PlantUML-NB-XX.nbm (donde XX es la versión del plugin).

Luego, en nuestro IDE entramos a la opción "Tools > Plugins".

Seleccionamos la ficha "Downloaded" y hacemos clic en el botón "Add plugins..."


Y seleccionamos el archivo .nbm que acabábamos de descargar.


Clic en "open". Y listo, ya está el Plugin para instalar....



... solo necesitamos hacer clic en "Install". Confirmamos todas las ventanas que vienen después. Y si nos pide reiniciar, le decimos que "sí".


Bien, con esto solo hemos instalado el Plugin.


Diagramando en UML

Bien, ya estamos listos para crear nuestro primer diagrama. Para comenzar, debemos tener cualquier proyecto creado. Luego, seleccionamos File > New File (o Control+N) y en "Categorías" seleccionamos "PlantUML" y a la derecha "New PlantUML Diagram"



Clic en "Next", indicarle un nombre de archivo... el que sea... y clic en "Finish".

Listo, ya tenemos nuestro IDE listo para poder crear nuestro diagrama.


En el panel izquierdo podremos editar todo nuestro lenguaje de UML, y cada vez que grabemos, en el lado derecho se mostrará el gráfico interpretado de nuestras anotaciones.

@startuml
autonumber
Usuario -> UI: Ingresa producto, cantidad
UI -> CCProductos: Busca
CCProductos --> UI: Cantidad de productos disponible
UI --> Usuario: Cantidad disponible

@enduml


Al grabar la anotación, el motor nos generará este gráfico.


Más ejemplos de Diagrama de secuencia, podemos encontrar aquí: http://plantuml.com/sequence.html


También podemos hacer Diagramas de Caso de Uso (http://plantuml.com/usecase.html)


Diagramas de Clase (http://plantuml.com/classes.html)



Diagrama de actividades (http://plantuml.com/activity.html):



... y más. Por ahí leí que también se podían hacer diagramas para BPM.

Tutorial de Diagramas de Clase UML






Tutorial Violet UML Editor


Diagrama de clases UML JAVA

 (Ejemplo y desarrollo)


CURSO RECOMENDADO DE UML JAVA

Dar click en el siguiente enlace