You are on page 1of 23

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

Curso: Introduccin a La programacin Plataforma: Windows

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.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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.

Entre sus principales ventajas tenemos:


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. Diagramas de Casos de Uso para modelar los procesos 'business'. Diagramas de Secuencia para modelar el paso de mensajes entre objetos. Diagramas de Colaboracin para modelar interacciones entre objetos. Diagramas de Estado para modelar el comportamiento de los objetos en el sistema. Diagramas de Actividad para modelar el comportamiento de los Casos de Uso, objetos u operaciones. Diagramas de Clases para modelar la estructura esttica de las clases en el sistema. Diagramas de Objetos para modelar la estructura esttica de los objetos en el sistema. Diagramas de Componentes para modelar componentes. Diagramas de Implementacin para modelar la distribucin del sistema.

UML es una consolidacin de muchas de las notaciones y conceptos ms usadas orientados a objetos.

Entre sus principales desventajas tenemos:


UML no es un mtodo de desarrollo. No te va a decir cmo pasar del anlisis al diseo y de este al cdigo. No son una serie de pasos que te llevan a producir cdigo a partir de unas especificaciones. UML al no ser un mtodo de desarrollo es independiente del ciclo de desarrollo que vayas a seguir, puede encajar en un tradicional ciclo en cascada, o en un evolutivo ciclo en espiral o incluso en los mtodos giles de desarrollo. Diversos desarrolladores tambin dan nota de que UML es algo impreciso dentro de su notacin, por ejemplo, al hacer referencias a un diagrama con servidores, no se sabe si los servidores simbolizados se encuentran operativos, restringidos, pasivosetc. Por eso se le califica de un poco inexacto. Otro problema de UML es que no se presta con facilidad al diseo de sistemas distribuidos. En tales sistemas cobran importancia factores como transmisin, serializacin, persistencia, etc. UML no cuenta con maneras de describir tales factores. No se puede, por ejemplo, usar UML para sealar que un objeto es persistente o remoto.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas El uml se basa en Booch, OMT y OOSE:

FUNDAMENTACIN TERICA: Modelos


Un modelo representa a un sistema software desde una perspectiva especfica. Al igual que la planta y el alzado de una figura en dibujo tcnico 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: Diagrama de Estructura Esttica. Diagrama de Casos de Uso. Diagrama de Secuencia. Diagrama de Colaboracin. Diagrama de Estados. Diagrama de Paquetes.

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),

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

HISTORIA DEL UML


La notacin UML se deriva y unifica las tres metodologas de anlisis y diseo OO ms extendidas: Metodologa de Grady Booch para la descripcin de conjuntos de objetos y sus relaciones. Tcnica de modelado orientada a objetos de James Rumbaugh (OMT: Object-Modeling Technique). Aproximacin de Ivar Jacobson (OOSE: Object- Oriented Software Engineering) mediante la metodologa de casos de uso (use case).

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

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

Poseidon
(Descargar) Sobre la base de ArgoUML se ha creado Poseidon

La primera de las versiones (Community Edition) es gratuita.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas Este es el aspecto de poseidon.

Podemos importar muchos tipos de formatos, incluidos XMI.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas La herramienta es muy creativa.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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).

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

El cdigo puede generarse con esta herramienta.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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

Universidad de San Carlos de Guatemala Facultad de Ingeniera 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 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

viajar subir(piso) bajar(piso) Bajando

Bajando a 1 Piso [tiempo espera] viajar do / Ir al piso

DIAGRAMA DE CLASE
Ascensor direccion: boolean piso_actual mover() detener() status()

Control_Ascensor piso_id: int posicin: int direccion: boolean

Puerta cerrada: boolean=true cerrar() abrir()

1 m
Boton iluminar: boolean=false

Boton_Piso Boton_Ascensor piso_num:int iluminar() cancelar_iluminar() status() piso num: int direccion: boolean

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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();

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

T_ultimo=TiempoAhora(); } a.detener(); } } }

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

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.

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

Tutorial desarrollado por: Marco Antonio Pereira Girn 2007-14786

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas

BIBLIOGRAFA

Historia del UML o www-gris.det.uvigo.es/~avilas/UML/node7.html o http://www.vico.org/

El Unified Modelling Languaje (UML) o http://www.geocities.com/txmetsb/UML-Use-cases.htm

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

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 Ingeniera 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.

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.

You might also like