UML
UML
UML
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
UML
(Unified Modeling Language)
Descripción:
El “Unified Modelling Languaje” (UML) provee a los analistas y arquitectos de sistemas
que trabajan en el diseño y análisis de objetos de un lenguaje consistente para especificar,
visualizar, construir y documentar los artefactos de un sistema de software, así también es útil
para hacer modelos de negocios.
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Índice
Introducción.................................................................................................................. 3
Ventajas .................................................................................................................... 3
Desventajas ............................................................................................................... 3
Modelos .................................................................................................................... 4
Objetivos ...................................................................................................................... 5
Generales .................................................................................................................. 5
Específicos ................................................................................................................ 5
Funcionamiento ........................................................................................................ 7
Conclusiones ............................................................................................................... 20
Bibliografía ................................................................................................................. 22
Recomendaciones ....................................................................................................... 23
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
INTRODUCCIÓN
UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar
los elementos que forman un sistema software orientado a objetos. Actualmente es el mas
estandarizado por la industria, debido a que ha sido elaborado por los autores de los tres
métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh.
Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación
unificada en la que basar la construcción de sus herramientas CASE. En el proceso de
creación de UML han participado, no obstante, otras empresas de gran peso en la industria
como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y
desarrolladores.
UML se puede usar para modelar distintos tipos de sistemas: sistemas de software,
sistemas de hardware, y organizaciones del mundo real. UML ofrece nueve diagramas
en los cuales modelar sistemas.
FUNDAMENTACIÓN TEÓRICA:
Modelos
Un modelo representa a un sistema software desde una perspectiva específica. Al igual que la
planta y el alzado de una figura en dibujo técnico nos muestran la misma figura vista desde
distintos ángulos, cada modelo nos permite fijarnos en un aspecto distinto del sistema.
Los modelos de UML con los que vamos a trabajar son los siguientes:
OBJETIVOS
Generales
Proporcionar una notación y semánticas suficientes para poder alcanzar una gran
cantidad de aspectos del modelado contemporáneo de una forma directa y económica.
Proporcionar las semánticas suficientes para alcanzar aspectos del modelado que son
de esperar en un futuro, como por ejemplo aspectos relacionados con la tecnología de
componentes, el cómputo distribuido, etc.
Proporcionar mecanismos de extensión de forma que proyectos concretos puedan
extender el meta-modelo a un coste bajo.
Proporcionar mecanismos de extensión de forma que aproximaciones de modelado
futuras podrían desarrollarse encima del UML.
Permitir el intercambio de modelos entre una gran variedad de herramientas.
Proporcionar semánticas suficientes para especificar las interfaces a bibliotecas para la
compartición y el almacenamiento de componentes del modelo.
Específicos
La notación UML se deriva y unifica las tres metodologías de análisis y diseño OO más
extendidas:
El desarrollo de UML comenzó a finales de 1994 cuando Grady Booch y Jim Rumbaugh de
Rational Software Corporation empezaron a unificar sus métodos. A finales de 1995, Ivar
Jacobson y su compa nía Objectory se incorporaron a Rational en su unificación, aportando el
método OOSE.
De las tres metodologías de partida, las de Booch y Rumbaugh pueden ser descritas como
centradas en objetos, ya que sus aproximaciones se enfocan hacia el modelado de los objetos
que componen el sistema, su relación y colaboración. Por otro lado, la metodología de
Jacobson es más centrada a usuario, ya que todo en su método se deriva de los escenarios de
uso. UML se ha ido fomentando y aceptando como estándar desde el OMG, que es también el
origen de CORBA, el estándar líder en la industria para la programación de objetos distribuidos.
En 1997 UML 1.1 fue aprobada por la OMG convirtiéndose en la notación estándar de facto
para el análisis y el diseño orientado a objetos.
http://www.vico.org/
www-gris.det.uvigo.es/~avilas/UML/node7.html
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Funcionamiento
Para mantener mucho mas ágilmente las especificaciones ante los cambios y nuevas
actualizaciones de arquitectura.
Matricular proyectos
Tomar decisiones
Planificar proyectos
DEFINICIÓN DE DEPENDENCIAS
Es una relación semántica entre dos elementos, en la cual un cambio a un elemento (el
elemento independiente) puede afectar a la semántica del otro elemento (el dependiente). Las
dependencias generalmente representan relaciones de uso que declara que un cambio en la
especificación de un elemento puede afectar a otro elemento que la utiliza, pero no
necesariamente a la inversa. Por ejemplo un refinamiento de un elemento de diseño a un
elemento de implementación. La mayoría de las veces se utilizan en el contexto de las clases o
paquetes, aunque también son habituales en la vinculación de notas.
UML Tools
En esta investigación fueron seleccionadas únicamente herramientas de código abierto y por lo
mismo libres. Se tomo esta decisión debido a que el software libre esta aumentando su uso y
calidad a un paso muy acelerado, además que con ello colaboramos a evitar el monopolio de
las grandes empresas y ayudamos a los pequeños empresarios de esta área.
ArgoUML
(Descargar)
Es una aplicación de diagramado de UML escrita en Java y publicada bajo la Licencia BSD
open source. Dado que es una aplicación Java, está disponible en cualquier plataforma
soportada por Java.
Otras características:
Aplicación
Una de las cosas más interesantes es que podemos exportar como XMI el trabajo realizado e
importarlo en otras herramientas.
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Poseidon
(Descargar)
BOUML
(Descargar)
En definitiva, todas estas características y su bajo precio la convierten en una alternativa por lo
menos digna de evaluar.
Vemos como arriba tenemos una "paleta" con los posibles elementos que podemos pintar en
nuestro diagrama. Según vamos dibujamos los diferentes elementos, estos aparecen
representados en el modelo de la izquierda (con doble click sobre ellos, ya sea en el modelo o
en el diagrama, podemos editar sus propiedades).
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
EJEMPLOS PRÁCTICOS
Cajero automático
Un banco necesita ayuda para modelar el sistema que hará funcionar sus nuevos cajeros
automáticos portátiles. Éstos, del porte de un teléfono público, le permitirán al usuario realizar
sólo las operaciones más simples: retirar, depositar y consultar saldo. Considerar que:
<<extends>> Saldo
Retirar
no alcanza
<<uses>>
Consultar
Saldo
<<uses>>
Depositar
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
El Ascensor
Para el problema del ascensor se han dibujado los diagramas de estado y clase que se
muestran a continuación. Se le pide a usted implementar el código en java.
DIAGRAMA DE ESTADOS
Subiendo
subir(piso)
do / Ir al piso
Detenido en 1º Piso
Bajando
Bajando a 1º Piso
viajar do / Ir al piso
[tiempo espera]
DIAGRAMA DE CLASE
n 1 Control_Ascensor
Ascensor
piso_id: int Puerta
direccion: boolean posición: int
direccion: boolean cerrada: boolean=true
piso_actual
mover() 1 cerrar()
abrir()
detener() m
status()
Boton
iluminar: boolean=false
Boton_Piso
iluminar()
Boton_Ascensor cancelar_iluminar() piso num: int
status() direccion: boolean
piso_num:int
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Solución
class Ascensor{
public Ascensor(){
}
public void mover(){
piso_actual+=direccion;
}
public void detener(){
direccion=0;
}
public int status(){
return direccion;
}
}
class Puerta{
boolean cerrada;
public Puerta(){
cerrada=true;
}
public void cerrar(){
cerrada=true;
}
public void abrir(){
cerrada=false;
}
}
class Boton{
boolean iluminar;
public Boton(){
iluminar=false;
}
piso_num= p_num;
}
class c_a{
int n= 10;
long T_ultimo;
Boton[] bp=new Boton_Piso[n];
Boton[] ba=new Boton_Ascensor[n];
Cola c= new Cola();
Ascensor a =new Asensor();
for(int i=0;i<n;i++){
bp[i]=new Boton_Piso(i);
ba[i]=new Boton_Piso(i);
}
while(true){
//vemos que pisos han sido apretaods y los agregamos a la cola
for(int i=0;i<n;i++){
if(bp[i].status()&(bp[i].piso_num-a.piso_actual)/a.direccion=1){
cola.encolar(bp[i]);
bp[i].cancelar_linuminar();
}
if(ba[i].status()& (ba[i].piso_num-a.piso_actual)/a.direccion=1){
cola.encolar(bp[i]);
ba[i].cancelar_linuminar();
}
}
if (cola.vacia() && TimeAhora()-T_ultimo< T_espera){
cola.encolar(1);
direccion = -1;
}
T_ultimo=TiempoAhora();
}
a.detener();
}
}
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
CONCLUSIONES
BIBLIOGRAFÍA
Desarrollo Orientado a Objetos con UML C.E.C.yT. “Juan de Dios Bátíz Paredes” –
IPN
UML: Toda una ventaja Andrade Castañeda Hugo Alberto TIC’s 5to”A”
Objetivos y Analisis
o http://www-gris.det.uvigo.es/~avilas/UML/node8.html
ArgoUML
o http://es.wikipedia.org/wiki/ArgoUML
Descarga
o http://argouml.tigris.org/v08/dc2.html
Poseidon
o http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=argouml
Descarga
o http://www.gentleware.com/
Bouml
o http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=bouml
Descarga
o http://www.softpedia.com/progDownload/BOUML-Download-90499.html
Universidad de San Carlos de Guatemala
Facultad de Ingeniería
Escuela de Ciencias y Sistemas
RECOMENDACIONES
Con la finalidad de dar cumplimiento al Decreto 3390, se recomienda el desarrollo del
sistema bajo herramientas de desarrollo de Software Libre.