Professional Documents
Culture Documents
UML
(Unified Modeling Language)
Descripcin: El Unified Modelling Languaje (UML) provee a los analistas y arquitectos de sistemas que trabajan en el diseo y anlisis de objetos de un lenguaje consistente para especificar, visualizar, construir y documentar los artefactos de un sistema de software, as tambin es til para hacer modelos de negocios.
ndice
Introduccin.................................................................................................................. 3 Ventajas .................................................................................................................... 3 Desventajas ............................................................................................................... 3 Fundamentacin terica: ............................................................................................... 4 Modelos .................................................................................................................... 4 Objetivos ...................................................................................................................... 5 Generales .................................................................................................................. 5 Especficos ................................................................................................................ 5 Historia del UML .......................................................................................................... 6 Funcionamiento ........................................................................................................ 7 Definicin de Dependencias .......................................................................................... 8 UML Tools ............................................................................................................... 8 ArgoUML ................................................................................................................. 8 Aplicacin ................................................................................................................. 9 Poseidon ................................................................................................................. 10 BOUML.................................................................................................................. 13 Ejemplos Prcticos ...................................................................................................... 15 Cajero automtico ................................................................................................... 15 El Ascensor ............................................................................................................. 16 Conclusiones ............................................................................................................... 20 Tutorial desarrollado por: ........................................................................................ 21 Marco Antonio Pereira Girn .................................................................................. 21 2007-14786 ............................................................................................................. 21 Bibliografa ................................................................................................................. 22 Recomendaciones ....................................................................................................... 23
INTRODUCCIN
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 mtodos ms usados de orientacin a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la empresa Rational Software Co. para crear una notacin unificada en la que basar la construccin de sus herramientas CASE. En el proceso de creacin 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 es una consolidacin de muchas de las notaciones y conceptos ms usadas orientados a objetos.
Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas El uml se basa en Booch, OMT y OOSE:
Varios nuevos conceptos existen en UML, incluyendo: Procesos y ramas de procesamiento Distribucin y concurrencia Patrones y colaboracin Diagramas de actividad Refinamiento (para manejar las relaciones entre los niveles de abstraccin) Interfaces y componentes y Un lenguaje para restricciones Mecanismos de extensin (estereotipos, valores marcados y restricciones),
OBJETIVOS
Generales
Proporcionar una notacin y semnticas suficientes para poder alcanzar una gran cantidad de aspectos del modelado contemporneo de una forma directa y econmica. Proporcionar las semnticas suficientes para alcanzar aspectos del modelado que son de esperar en un futuro, como por ejemplo aspectos relacionados con la tecnologa de componentes, el cmputo distribuido, etc. Proporcionar mecanismos de extensin de forma que proyectos concretos puedan extender el meta-modelo a un coste bajo. Proporcionar mecanismos de extensin de forma que aproximaciones de modelado futuras podran desarrollarse encima del UML. Permitir el intercambio de modelos entre una gran variedad de herramientas. Proporcionar semnticas suficientes para especificar las interfaces a bibliotecas para la comparticin y el almacenamiento de componentes del modelo.
Especficos
Proporcionar a los usuarios un lenguaje de modelado visual expresivo y utilizable para el desarrollo e intercambio de modelos significativos. Proporcionar mecanismos de extensin y especializacin. Ser independiente del proceso de desarrollo y de los lenguajes de programacin. Proporcionar una base formal para entender el lenguaje de modelado. Fomentar el crecimiento del mercado de las herramientas OO. Soportar conceptos de desarrollo de alto nivel como pueden ser colaboraciones, frameworks, patterns, y componentes. Integrar las mejores prcticas utilizadas hasta el momento.
El desarrollo de UML comenz a finales de 1994 cuando Grady Booch y Jim Rumbaugh de Rational Software Corporation empezaron a unificar sus mtodos. A finales de 1995, Ivar Jacobson y su compa na Objectory se incorporaron a Rational en su unificacin, aportando el mtodo OOSE. De las tres metodologas 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 relacin y colaboracin. Por otro lado, la metodologa de Jacobson es ms centrada a usuario, ya que todo en su mtodo se deriva de los escenarios de uso. UML se ha ido fomentando y aceptando como estndar desde el OMG, que es tambin el origen de CORBA, el estndar lder en la industria para la programacin de objetos distribuidos. En 1997 UML 1.1 fue aprobada por la OMG convirtindose en la notacin estndar de facto para el anlisis y el diseo orientado a objetos. UML es el primer mtodo en publicar un meta-modelo en su propia notacin, incluyendo la notacin para la mayora de la informacin de requisitos, anlisis y diseo. Se trata pues de un meta-modelo auto-referencial (cualquier lenguaje de modelado de propsito general debera ser capaz de modelarse a s mismo).
http://www.vico.org/ www-gris.det.uvigo.es/~avilas/UML/node7.html
Funcionamiento
Sirve para representar visualmente las reglas de creacin, estructura y comportamiento de un grupo relacionado de objetos y procesos. Para visualizar de forma eficiente la complejidad de un sistema u organizacin en un reducido numero de diagramas. Para mantener mucho mas gilmente las especificaciones ante los cambios y nuevas actualizaciones de arquitectura. Matricular proyectos o o o o o Definir misin, objetivos y alcance Elaborar modelos de referencia Estimar los recursos Analizar los riesgos Establecer un plan director
Tomar decisiones o o o o o Configurar un equipo de proyecto Seleccionar la tecnologa y estndares Definir estrategias de subcontratacin Definir estrategia de licencias Definir criterios de certificacin
Planificar proyectos o o o Plan de produccin de software basado en casos de uso Plan de pruebas de testing basado en casos de test Plan de certificacin de entregables en un ciclo de iteraciones
DEFINICIN DE DEPENDENCIAS
Es una relacin semntica entre dos elementos, en la cual un cambio a un elemento (el elemento independiente) puede afectar a la semntica del otro elemento (el dependiente). Las dependencias generalmente representan relaciones de uso que declara que un cambio en la especificacin 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 diseo a un elemento de implementacin. La mayora de las veces se utilizan en el contexto de las clases o paquetes, aunque tambin son habituales en la vinculacin de notas.
UML Tools
En esta investigacin fueron seleccionadas nicamente herramientas de cdigo abierto y por lo mismo libres. Se tomo esta decisin debido a que el software libre esta aumentando su uso y calidad a un paso muy acelerado, adems que con ello colaboramos a evitar el monopolio de las grandes empresas y ayudamos a los pequeos empresarios de esta rea.
ArgoUML
(Descargar) Es una aplicacin de diagramado de UML escrita en Java y publicada bajo la Licencia BSD open source. Dado que es una aplicacin Java, est disponible en cualquier plataforma soportada por Java.
Nuevas Caractersticas en V0.20: UML 1.4 - Caractersticas de extensibilidad mejoradas de UML 1.4 Diagramas de Secuencia Compatibilidad AndroMDA Calidad - Cientos de bugs han sido arreglados La mayora de las funciones ahora soportan la seleccin mltiple de los elementos del modelo Arrastrar y soltar desde el rbol de exploracin al diagrama y dentro del rbol de exploracin Otras caractersticas: Construido en diseos crticos suministra una revisin no obstructiva del diseo y sugerencias para mejoras interfaz de mdulos Extensible Soporte de Internacionalizacin para Ingls, Alemn, Francs, Espaol y Ruso Restricciones OCL para Clases Soporte para el lenguaje de generacin de Cdigo: Java, PHP, Python, C++ y Csharp (C#) ingeniera inversa disposicin(layout) automtica del diagrama de clases Generacin de ficheros PNG, GIF, JPG, SVG, EPS desde diagramas Soporte para comentarios para mltiples elementos todos los diagramas 1.4 estn soportados
Aplicacin
Este es el aspecto de ArgoUML puro. Una de las cosas ms interesantes es que podemos exportar como XMI el trabajo realizado e importarlo en otras herramientas.
Poseidon
(Descargar) Sobre la base de ArgoUML se ha creado Poseidon
Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas Este es el aspecto de poseidon.
Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas La herramienta es muy creativa.
BOUML
(Descargar) Permite trabajar con UML 2 (ArgoUML todava no lo permite). Soporta gran cantidad de diagramas (incluidos los de secuencia que en el ArgoUML funcionan una versin si y otra no, a ver si terminan de estabilizarlo). Es rpida y apenas consume memoria. Es sencilla de utilizar. Puedes generar cdigo para Java, C++ e IDL (y controlar bastante la generacin), y puedes hacer reingeniera inversa (a partir del cdigo sacar el modelo). Tambin es capaz de generar documentacin en varios formatos (HTML, XMI, ...) Puedes trabajar en grupo con sus mdulos "Project Control" y "Project Synchro".
Y adems, aunque no es Java, tambin es multiplataforma: Linux, MacOS y Windows. En definitiva, todas estas caractersticas 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. Segn 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).
EJEMPLOS PRCTICOS
Cajero automtico
Un banco necesita ayuda para modelar el sistema que har funcionar sus nuevos cajeros automticos porttiles. stos, del porte de un telfono pblico, le permitirn al usuario realizar slo las operaciones ms simples: retirar, depositar y consultar saldo. Considerar que: Se pide ingresar la clave del usuario posteriormente al paso de la tarjeta por la ranura. No se puede retirar ms fondos de los que realmente hay, notificando de esta situacin al usuario.
Ingresar clave
<<extends>>
Clave no vlida
Retirar
<<extends>>
Saldo no alcanza
<<uses>>
Consultar Saldo
<<uses>>
Depositar
El Ascensor
Para el problema del ascensor se han dibujado los diagramas de estado y clase que se muestran a continuacin. Se le pide a usted implementar el cdigo en java. DIAGRAMA DE ESTADOS
Subiendo subir(piso) Detenido en 1 Piso tiempo espera viajar Detenido en Piso do / Ir al piso
DIAGRAMA DE CLASE
Ascensor direccion: boolean piso_actual mover() detener() status()
1 m
Boton iluminar: boolean=false
Boton_Piso Boton_Ascensor piso_num:int iluminar() cancelar_iluminar() status() piso num: int direccion: boolean
Solucin class Ascensor{ public int direccion; public int piso_actual; 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; } public void iluminar(){ iluminar =true; } public void cancelar_iluminar(){ iluminar=false; } public boolean status(){ return iluminar; } } class Boton_Ascensor extends Boton{ public int piso_num; public Boton_Ascensor(int p_num){
Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas piso_num= p_num; } } class Boton_Piso extends Boton{ public int piso_num; boolean direccion; public Boton_Piso(int p_num, boolean dir){ super(); piso_num=p_num; direccion =dir; } }
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();
static public void main(String args[]){ 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; } //recorremos los pisos while(!cola.vacia()){ while(a.piso_actual!=c.sacar()){ a.mover() } puerta.abrir(); //se suben/bajan puerta.cerrar();
T_ultimo=TiempoAhora(); } a.detener(); } } }
CONCLUSIONES
El lenguaje Unificado de modelado UML es una notacin que es el resultado de la evolucin de las notaciones previas en ingeniera de software, toma los aspectos fuertes de tres metodologas anteriores: OMT, Booch y OOSE. La notacin UML se fundamenta en principios de modelado, lo cual es importante para toda implementacin de un sistema de informacin. El UML debe adoptar el Proceso Unificado de Desarrollo para modelar las actividades de un proyecto. Los diagramas a utilizar en las diferentes etapas del desarrollo de los sistemas de informacin, pueden variar dependiendo del tamao y tipo de sistema, por lo que es necesario organizarlos segn las fases del Proceso Unificado.
BIBLIOGRAFA
Desarrollo Orientado a Objetos con UML C.E.C.yT. Juan de Dios Btz Paredes IPN
UML: Toda una ventaja Andrade Castaeda Hugo Alberto TICs 5toA
RECOMENDACIONES
Con la finalidad de dar cumplimiento al Decreto 3390, se recomienda el desarrollo del sistema bajo herramientas de desarrollo de Software Libre.
El xito y vida til de los sistemas depende de la documentacin antes y despus de desarrollarlo, para poder adaptarlo a los requerimientos de los clientes antes de su puesta en marcha y sea fcil de migrarlo a cualquier lenguaje de programacin. Esto contribuir a realizar modificaciones y/o nuevas versiones en forma ms oportuna y eficiente.