ArgoUML: Manual de Usuario
Tutorial y descripci??n de referencia
Alejandro Ramirez
Philippe Vanpeperstraete
Andreas Rueckert
Kunle Odutola
Jeremy Bennett
Linus Tolke
Michiel van der Wulp
Copyright © 2004, 2005, 2006 Michiel van der Wulp
Copyright © 2003 Linus Tolke
Copyright © 2001, 2002 Jeremy Bennett
Copyright © 2001 Kunle Odutola
Copyright © 2000 Philippe Vanpeperstraete
Copyright © 2000 Alejandro Ramirez
Copyright © 2000 Andreas Rueckert
Este material puede ser distribuido solo sujeto a los terminos y
condiciones establecidos en la Open Publication License, v1.0 o
posterior. Una copia de esta licencia est?? incluida en la secci??n Open Publication License. La ??ltima versi??n
est?? actualmente disponible en
http://www.opencontent.org/openpub/.
Abstract
Esta version de el manual est?? planeado para describir la versi??n
${argo.core.version} de ArgoUML.
El dise??o de software es una tarea cognitiva dificil. Los
dise??adores deben construir manualmente dise??os, pero la dificultad
principal es la toma de decisiones en lugar de la entrada de datos. Si los
dise??adores mejoran sus capacidades de toma de decisiones, ello resultar??a
en mejores dise??os.
Las herramientas CASE actuales proporcionan automatizaci??n e
interfaces gr??ficos de usuario que reducen el trabajo manual de construir
un dise??o y transformar un dise??o en codigo. Ayudan a los dise??adores en
la toma de decisiones principalmente proporcionando visualizaci??n de los
diagramas de dise??o y comprobaciones sintacticas simples.. Adenas muchas
herramientas CASE proporcionan beneficios sustanciales en el area de
control de versiones y mecanismos de dise??o concurrente. Un area de
soporte de dise??o que no ha sido bien soportada es el analisis de
decisiones de dise??o.
Las herramientas CASE actuales son utiles en que proporcionan una
GUI (Graphic User Interface; Interfaz Grafica de Usuario) que permite a
los dise??adores acceder a todas las caracteristicas proporcionadas por la
herramienta. Y soportan el proceso de dise??o en que permiten al dise??ador
construir diagramas en el estilo de metodologias de dise??o populares. Pero
tipicamente no porporcionan soporte de proceso para guiar al dise??ador a
traves de la tarea de dise??o. En su lugar, los dise??adores tipicamente
comienzan con una p??gina en blanco y deben recordar cubrir todos los
aspectos del dise??o.
ArgoUML es un entorno de dise??o orientado a dominio que proporciona
soporte cognitivo de dise??o orientado a objetos. ArgoUML proporciona
algunas de las mismas caracteristicas de automatizaci??n de una herramienta
CASE comercial, pero esta enfocado en caracteristicas que soportan las
necesidades cognitivas de los dise??adores. Estas necesidades cognitivas
estan descritas por tres teorias cognitivas.
reflection-in-action;
opportunistic design; and
comprehension and problem solving.
ArgoUML esta basado en la especificaci??n UML 1.4 . El nucleo del
modelo de repositorio es una implementaci??n de el Java Metadata Interface
(JMI) que directamente soporta MOF y usa la versi??n legible por maquina de
la especificaci??n UML 1.4 proporcionada por OMG.
Ademas, es nuestra meta proporcionar soporte exhaustivo para OCL (el Object Constraint Language) y XMI (el formato
XML Model Interchange).
ArgoUML fue originariamente desarrollado por un peque??o grupo de
gente como un proyecto de investigaci??n. ArgoUML tiene muchas
caracteristicas que lo hacen especial, pero no implementa todas las
caracteristicas que una herramienta CASE comercial proporciona.
La publicaci??n V0.20 actual de ArgoUML, implementa todos los tipos
de diagramas de UML 1.4
standard (versiones de ArgoUML anteriores a 0.20 implementaban la
UML 1.3
standard). Est?? escrito en Java y funciona en todo sistema que
proporcione una plataforma Java 2 de Java 1.4 o posterior. Usa formatos de
archivo abiertos XMI (formato
XML Metadata Interchange) (para la informaci??n de modelos) y PGML (Precision
Graphics Markup Language) (para informaci??n gr??fica) para almacenamiento.
Cuando ArgoUML implemente UML 2.0, PGML sera sustituido por la
especificaci??n UML Diagram Interchange.
Este manual es el trabajo acumulativo de muchas personas y ha estado
evolucionando durante muchos a??os. Conectado con la publicaci??n 0.10 de
ArgoUML, Jeremy Bennett, escribi?? gran cantidad de nuevo material que fue
a??adido a las vestiones anteriores por Alejandro Ramirez, Philippe
Vanpeperstraete y Andreas Rueckert. El ademas a??adi?? cosas de algunos de
los otros documentos como el libro de cocina de los desarrolladores por
Markus Klink y Linus Tolke, la Guia R??pida por Kunle Odutola, y el FAQ
(Preguntas frecuentes) por Dennis Daniels. Conectado con la publicaci??n
0.14 se realizaron cambios por Linus Tolke, y Michiel van der Wulp. Estos
cambios fueron mayoritariamente adaptar el manual a las nuevas funciones y
apariencia de la version 0.14 de ArgoUML, y la introducci??n del indice.
Los usuarios y desarrolladores que han contribuido proporcionando ayuda
valiosa, como revisiones, comentarios y observaciones mientras leen y usan
este manual son demasiados para ser nombrados.
ArgoUML esta disponible gratuitamente y puede ser usado en entornos
comerciales. Para los terminos de uso, mira el acuerdo de licencia
presentado cuando tu descargas ArgoUML. Estamos proporcionando el codigo
fuente de ArgoUML para que puedas revisarlo, adecuarlo a tus necesidades y
mejorarlo. Pasado el tiempo, esperamos que ArgoUML evolucione en una
poderosa y util herramienta que todos puedan usar.
Este Manual de Usuario esta orientado al dise??ador, quien desea
hacer uso de ArgoUML. El manual esta escrito asumiendo familiaridad con
UML, pero eventualmente puede ayudar a aquellos nuevos en UML.
El manual esta escrito en DocBook/XML y esta disponible como
HTML y PDF.
El proyecto ArgoUML da la bienvenida a aquellos que quieren estar
mas involucrados. Mira en project
website para encontrar mas informaci??n.
??Dinos que piensas sobre este Manual de Usuario! Tus comentarios nos
ayudaran a mejorar cosas. Mira Section 1.3.3, “Retroalimentaci??n por el Usuario”
.
Chapter 2. Introducci??n (escribiendose)
Este tutorial te llevar?? a traves de un tour sobre el uso de
ArgoUML para modelar un sistema.
Un proyecto de ATM (automated teller machine; cajero automatico) ha
sido escogido como caso de estudio para demostrar los varios aspectos de
modelado que ArgoUML ofrece. En subsiguientes secciones vamos a
desarrollar el ejemplo de Cajero Automatico en una descripci??n completa
en UML. El tutorial, sin embargo, solo te guiar?? a traves de parte de
ello.
En este punto deberias crear un directorio para contener tu
proyecto. Nombra el directorio de forma consistente con el resto de tu
sistema de archivos. Deberias nombrar los contenidos y cualquier
subdirectorio de forma equivalente por razones que se haran
evidentes.
El estado del modelo al final de las secciones clave estar??
disponible en archivos .zargo . Estos est??n disponibles de forma que
puedes jugar con varias alternativas y restaurar al estado apropiado del
modelo en tu area de trabajo. Estos archivos .zargo ser??n identificados
al final de las secciones cuyo trabajo representan.
El caso de estudio ser?? un sistema de Cajero Automatico. Tu
compa??oa es FlyByNight Industries. T?? vas a jugar dos papeles. El de
Gestor de Proyecto (Project Manager) y el de Analista Dise??ador (Designer
Analyst).
No vamos a construir ning??n Cajero Automatico fisicamente, por
supuesto.
Primero te familiarizaras con el producto y luego iremos a traves
de un proceso de analisis y desarrollo para un caso de prueba.
La forma en como tu compa??ia organiza su trabajo en proyectos est??
determinada normalmente por asuntos de politicas y demas cosas por el
estilo, por tanto, fuera del ??mbito de este documento. Iremos dentro de
como estructuras el proyecto en s?? mismo una vez que ha sido
definido.
Chapter 3. OOA&D basada en UML
En este capitulo, miramos como UML como notaci??n es usado dentro
de OOA&D.
3.1. Antecedentes para UML
La orientacion a Objeto como concepto ha
existido desde la decada de 1960, y como concepto de dise??o desde 1972.
Sin embargo fu?? en la decada de 1980 que empez?? a desarrollarse como
una alternativa creible a el enfoque funcional en
analisis y dise??o. Podemos idientificar un numero de factores.
La aparici??n como corriente dominante de lenguajes de
programaci??n OO como SmallTalk y particularmente C++. C++ fu?? un
lenguaje OO pragmatico derivado de C, ampliamente usado por causa
de su asociaci??n con Unix.
El desarrollo de potentes estaciones de trabajo
(workstations), y con ellas la aparici??n dentro de la corriente
dominante de entornos de ventanas para los usuarios. Los Interfaces
Graficos de Usuario (Graphical User Interfaces; GUI) tienen una
estructura de objetos inherente.
Un n??mero de proyectos fallidos muy publicitados, sugiriendo
que el enfoque actual no era satisfactorio.
Un numero de investigadores propusieron procesos OOA&D, y con
ellos notaciones. Aquellas que alcanzaron cierto exito incluyen
Coad-Yourdon, Booch, Rumbaugh OMT, OOSE/Jacobson, Shlaer-Mellor, ROOM
(para dise??o de tiempo real) y el hibrido Jackson Structured
Development.
Durante los tempranos 1990 se hizo claro que estos enfoques
tenian muchas buenas ideas, a menudo muy similares. Un gran obstaculo
fu?? la diversidad de notaci??n, significando que los ingenieros tendian
a tener familiaridad con una metodologia OOA&D, en lugar de el
enfoque en general.
UML fu?? concevido como una notacion com??n, que ser??a de interes
para todos los involucrados. El estandar original fu?? gestionado por
Rational Software (
www.rational.com, en el cual tres de los investigadores clave
en el campo (Booch, Jacobson y Rumbaugh estuvieron involucrados).
Produjeron documentos describiendo UML v0.9 y v0.91 durante 1996. El
esfuerzo fu?? tomado ampliamente por la industria a traves del Object
Management Group (OMG), ya bien conocido por el estandar CORBA. Una
primera propuesta, 1.0 fu?? publicada al comienzo de 1997, con una
mejorada versi??n 1.1 aprobada ese oto??o.
ArgoUML est?? basado en UML v1.4, la cual fu?? adoptada por OMG en
Marzo del 2000. La versi??n oficial actual es UML v1.5 fechada en Marzo
del 2003, para ser reemplazada pronto por una revisi??n mayor, UML v2.0,
la cual esta en sus etapas finales de estandarizaci??n y se espera
completa en 2006.