Universidad Yacambú Curso: Teoría y
Administración de Base de Datos Foro 2: UML Participantes: Lennis Zamudio Luís Ramírez Manuel Alvarez Anaíz Rodríguez |
Respuestas_Dinámicas |
Críticas |
UML (Unified Modeling Language)
El Lenguaje Unificado de Modelado (UML) es una
técnica para la especificación de sistemas en todas sus fases. Este ha sido
desarrollado por los más importantes autores en materia de Análisis y Diseño de
Sistemas y ha sido usada con éxito en sistemas hechos para toda clase de
industrias alrededor del mundo: Salud, Bancos, Comunicaciones, Aeronáutica,
Finanzas, etc.
Sin lugar a dudas OOAD (Object
Oriented Analysis and Design), implementado con UML
(Unified Modeling Language), es la metodología más avanzada en la actualidad.
Esta metodología introduce los Casos de Uso, una poderosa herramienta para
reducir los riesgos en la definición de requerimientos
de sistemas nuevos. Los Casos de Uso sirven como columna vertebral del proceso
de desarrollo de aplicaciones y tienen como objetivo garantizar que los
resultados se ajusten completamente a las expectativas de los usuarios finales.
El Lenguaje Unificado de Modelado (UML). Analiza
los diagramas que componen UML y ofrece acercamientos a casos de uso guiados
sobre cómo estos diagramas se usan para modelar sistemas. También trata los
mecanismos de extensibilidad de UML, los cuales permiten ampliar su notación y
su semántica.
UML: Es un lenguaje gráfico para visualizar,
especificar, construir y documentar un sistema de software. UML ofrece un
estándar para describir un "plano" del sistema (modelo), incluyendo
aspectos conceptuales tales como procesos de negocios y funciones del sistema,
y aspectos concretos como expresiones de lenguajes de programación, esquemas de
bases de datos y componentes de software reutilizables.
El punto importante para notar aquí es que UML es
un "lenguaje" para especificar y no un método o un proceso. UML se usa
para definir un sistema de software; para detallar los artefactos en el
sistema; para documentar y construir -es el lenguaje en el que está descrito el
modelo. UML se puede usar en una gran variedad de formas para soportar una
metodología de desarrollo de software (tal como el Proceso Unificado de Rational) -pero no especifica en sí mismo qué metodología o
proceso usar.
¿PARA QUÉ SIRVE
UML?
UML sirve para hacer modelos que permitan:
·
Visualizar como es un sistema o como queremos que
sea.
·
Especificar la estructura y/o comportamiento de
un sistema.
·
Hacer una plantilla que guíe la construcción de
los sistemas
·
Documentar las decisiones que hemos tomado.
El modelado sirve no solamente para los grandes
sistemas; aún en aplicaciones de pequeño tamaño se obtienen beneficios de
modelar, sin embargo, es un hecho que entre más grande y más complejo es el
sistema, el modelado juega un papel más importante. Esto se debe a una razón
simple: “Hacemos modelos de sistemas complejos porque no podemos entenderlos
en su totalidad”
Hay límites para el entendimiento de la
complejidad. A través del modelado reducimos el ámbito del problema de estudio
al enfocar solo un aspecto a la vez.
UML puede ser usado extensivamente en:
Recopilación de requerimientos, Análisis de aplicaciones, Diseño de sistemas,
en pruebas, en implementación, en reingeniería y prácticamente en cualquier
actividad de desarrollo que sea susceptible de ser modelada.
Cabe aclarar que aunque UML es orientado a
objetos preferentemente, es útil en cualquier modelo tecnológico ya que es
independiente de lenguajes de programación o tecnología determinada.
¿PORQUE
ES IMPORTANTE UML?
Esta consolidado como el lenguaje estándar en el
análisis y diseño de sistemas de computo. Mediante UML es posible establecer la
serie de requerimientos y estructuras necesarias para plasmar un sistema de
software previo al proceso intensivo de escribir código.
En otros términos, así como en la construcción de
un edificio se realizan planos previo a su construcción, en Software se deben
realizar diseños en UML previa codificación de un sistema, ahora bien, aunque
UML es un lenguaje, éste posee más características visuales que programáticas,
mismas que facilitan a integrantes de un equipo multidisciplinario participar e
intercomunicarse fácilmente, estos integrantes siendo los analistas,
diseñadores, especialistas de área y desde luego los programadores.
BENEFICIOS DE
ESTA TECNOLOGÍA.
Los beneficios son claros al ocupar este lenguaje
de modelamiento:
Mejores tiempos totales de desarrollo (de 50% o
más). En la mayoría de organizaciones hoy en día el
tiempo que pasa desde que un proyecto arranca hasta que se estabiliza es más
del doble de lo planeado originalmente. Con el uso de UML las fases de análisis
y diseño consumirán mayor tiempo, pero el tiempo de construcción, implantación
y estabilización se reducen drásticamente debido a que no hay correcciones
mayores en las fases de mayor impacto de un proyecto.
Mejor calidad. El uso de UML hace indispensable la
participación del usuario en la definición de requerimientos y por lo tanto
mejora considerablemente el apego del sistema a las necesidades de sus
usuarios. El mantenimiento correctivo se reduce drásticamente (hasta un 80% con
respecto a un sistema hecho sin metodología). Algo similar ocurre en los
proyectos de reingeniería.
Mejor soporte a la planeación y al control de
proyectos. Al
existir entregables definidos y estandarizados en las distintas fases de un
proyecto y al ser éstos revisables y certificables por gente distinta del
autor, tenemos que los planes de trabajo pueden ser fácilmente creados y
corroborados en avance. Lo que permite tomar decisiones a tiempo.
Mayor independencia del personal de desarrollo. Al tener documentadas las aplicaciones en un
lenguaje estándar, podemos mover al personal de una aplicación a otra sin
correr altos riesgos y sin depender del conocimiento personal de las
aplicaciones.
Mayor soporte al cambio organizacional, comercial
y tecnológico. Un
modelo permite cuantificar el impacto de un cambio antes de hacerlo y permite
ensayar distintos enfoques de solución. Con UML un cambio se puede hacer
primero en papel.
Alto reuso. Los productos de un desarrollo pueden ser usados
en otro. Se pueden crear componentes reusables que
con la difusión y administración adecuadas minimizarán costos y errores.
Minimización de costos. Los puntos antes mencionados tienen un impacto
económico que generalmente tiende a ser proporcional al tamaño de la
organización.
SERVICIOS
NECESARIOS PARA IMPLANTAR ESTA TECNOLOGÍA.
Aunque varía un poco de organización a
organización los servicios de apoyo necesarios para la implantación de esta
tecnología, podemos mencionar los siguientes:
Consultoría para
Capacitación. Las técnicas involucradas pueden ser aprendidas
directamente de los libros y manuales de UML, sin embargo el tiempo necesario
puede ser prohibitivo. Un servicio de capacitación de alta calidad generará la
cultura básica para el óptimo aprovechamiento de la tecnología. Capacitación en
UML, Análisis y Diseño de aplicaciones es sugerida.
Mentoring. El desarrollo de proyectos pilotos de Desarrollo, Documentación o
Reingeniería deben ser apoyados por uno o más expertos en el uso de UML que
aseguren que el equipo adquiere el conocimiento práctico del uso de UML y
agilicen su uso.
Control de Calidad. Una vez que un equipo ya ha aprendido el uso de
UML es sano contar con un staff de control de calidad externo (y experto) que
certifique la calidad de los productos y genere gente con éste perfil hacia el
interior de la organización. Este servicio también puede ser útil para
controlar la calidad de los desarrollos efectuados por empresas externas
ELEMENTOS DE UML
Diagrama de casos de uso
Los
diagramas de casos de uso describen las relaciones y las dependencias entre un
grupo de casos de uso y los
actores participantes en el proceso.
Es
importante resaltar que los diagramas de casos de uso no están pensados para
representar el diseño y no puede describir los elementos internos de un
sistema. Los diagramas de casos de uso sirven para facilitar la comunicación
con los futuros usuarios del sistema, y con el cliente, y resultan
especialmente útiles para determinar las características necesarias que tendrá
el sistema. En otras palabras, los diagramas de casos de uso describen qué es lo que debe hacer el sistema, pero
no cómo.
Diagrama de clases
Los
diagramas de clases muestran las diferentes clases que componen un sistema y
cómo se relacionan unas con otras. Se dice que los diagramas de clases son
diagramas “estáticos” porque muestran las clases,
junto con sus métodos y atributos, así como las relaciones estáticas entre
ellas: qué clases “conocen” a qué otras clases o qué
clases “son parte” de otras clases, pero no muestran
los métodos mediante los que se invocan entre ellas.
Diagramas de secuencia
Los diagramas de secuencia muestran el
intercambio de mensajes (es decir la forma en que se invocan) en un momento
dado. Los diagramas de secuencia ponen especial énfasis en el orden y el
momento en que se envían los mensajes a los objetos.
En los diagramas de secuencia, los objetos están
representados por líneas intermitentes verticales, con el nombre del objeto en
la parte más alta. El eje de tiempo también es vertical, incrementándose hacia
abajo, de forma que los mensajes son enviados de un objeto a otro en forma de
flechas con los nombres de la operación y los parámetros.
Diagramas
de colaboración
Los diagramas de colaboración muestran las
interacciones que ocurren entre los objetos que participan en una situación
determinada. Esta es más o menos la misma información que la mostrada por los
diagramas de secuencia, pero destacando la forma en que las operaciones se producen
en el tiempo, mientras que los diagramas de colaboración fijan el interés en
las relaciones entre los objetos y su topología.
En los diagramas de colaboración los mensajes
enviados de un objeto a otro se representan mediante flechas, mostrando el nombre
del mensaje, los parámetros y la secuencia del mensaje. Los diagramas de
colaboración están indicados para mostrar una situación o flujo programa
específicos y son unos de los mejores tipos de diagramas para demostrar o
explicar rápidamente un proceso dentro de la lógica del programa.
Diagrama de
estado
Los diagramas de estado muestran los diferentes
estados de un objeto durante su vida, y los estímulos que provocan los cambios
de estado en un objeto.
Los diagramas de estado ven a los objetos como máquinas de estado o autómatas finitos
que pueden estar en un conjunto de estados finitos y que pueden cambiar su
estado a través de un estímulo perteneciente a un conjunto finito. Por ejemplo,
un objeto de tipo NetServer
puede tener durante su vida uno de los siguientes estados:
·
Listo
·
Escuchando
·
Trabajando
·
Detenido
y los eventos que pueden producir que el objeto
cambie de estado son
·
Se crea el objeto
·
El objeto recibe un mensaje de escucha
·
Un cliente solicita una conexión a través de la red
·
Un cliente finaliza una solicitud
·
La solicitud se ejecuta y ser termina
·
El objeto recibe un mensaje de detención
·
Etc.
Diagrama de
actividad
Los diagramas de actividad describen la secuencia
de las actividades en un sistema. Los diagramas de actividad son una forma
especial de los diagramas de estado, que únicamente (o mayormente) contienen
actividades.
Preguntas
1. ¿Qué
es UML?
2. ¿Por
qué es importante UML?
3.
¿Complejidad de Objetos?
4.
¿Elementos de UML?
5. ¿Qué
son Diagramas de Componentes?
6.
Beneficios de usar UML
7. ¿Para
que sirve UML?
8. ¿Qué
servicios son necesarios para implantar esta tecnología?
9. ¿Qué
son los Diagramas de Actividad?
10. ¿Qué
son los Casos de Uso?
Infografía
1. Guía de UML:
Muestra
de manera general la importancia de UML.
http://www.osmosislatina.com/lenguajes/uml/
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html
3. Ingenieria de Software UML: Link que nos presenta
información relacionada a todo lo referente a UML.
http://www.monografias.com/trabajos5/insof/insof.shtml
4. Lenguaje Unificado de
Modelado (UML): Material muy general donde se explica todo
lo relacionado con UML, como: para que sirve, beneficios, servicios necesarios,
etc.
http://www.inflexa.com/jsp/template.jsp?pag=uml2.htm&mnu=mnu-soluciones.jsp
5. Modelado de Sistemas
con UML: Link donde se encuentra
información detalla de una perspectiva general de UML.
http://es.tldp.org/Tutoriales/doc-modelado-sistemas-UML/multiple-html/