Objetivos
1. Mejorar la productividad en el desarrollo y mantenimiento del software.
2. Aumentar la calidad del software.
3. Reducir el tiempo y costo de desarrollo y mantenimiento de los sistemas informticos.
4. Mejorar la planificacin de un proyecto
5. Aumentar la biblioteca de conocimiento informtico de una empresa ayudando a la
bsqueda de soluciones para los requisitos.
6. Automatizar el desarrollo del software, la documentacin, la generacin de cdigo, las
pruebas de errores y la gestin del proyecto.
7. Ayuda a la reutilizacin del software, portabilidad y estandarizacin de la
documentacin
8. Gestin global en todas las fases de desarrollo de software con una misma
herramienta.
9. Facilitar el uso de las distintas metodologas propias de la ingeniera del software.
Clasificacin
Aunque no es fcil y no existe una forma nica de clasificarlas, las herramientas CASE se
pueden clasificar teniendo en cuenta los siguientes parmetros:
1. Las plataformas que soportan.
2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
3. La arquitectura de las aplicaciones que producen.
4. Su funcionalidad.
La siguiente clasificacin es la ms habitual basada en las fases del ciclo de desarrollo que
cubren:
Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificacin
excluyente entre s, ni con la anterior:
repositorio y pueden ser usados por otros analistas, es decir, es como si definiramos
nuestro propio UML, con nuestros elementos, restricciones y relaciones posibles.
Editores UML.
NetBeans
Es una potente
Eduardo Galicia /
herramienta pero no para Gerardo Valencia
el desarrollo UML ya que
no genera cdigo por si
solo hay que instalar una
seria de plugins que no
son compatibles con las
diferentes versiones por
hay seria un poco el
problema. creo que una
ves instalado el
complemento podra
posicionarse como una
herramienta optima para
poder desarrollar
diagrama de clases de una
manera muy eficaz
Microsoft Visio
Visio
Herramienta de
diagramacin avanzada
con gran variedad de
plantillas que permiten
simplificar las tareas
complejas con elementos
En general es una
Herramienta potente con
grandes caractersticas
aunque limitan-tes en
cuanto a generar cdigo e
Ingeniera inversa por
visuales dinmicos
basados en datos, UML
Bases de Datos
Arquitectura ect con
SharePoint con ms
facilidad sin generar
cdigo Pero bastante
atractiva para hacer
distintos diagramas
compatibilidad y
bsicamente seria solo
para hacer diagramas
simples de DFD
principalmente
Eclipse/Omondo
Eclipse/ Omondo
Eclipse dispone de un
Editor de texto . La
compilacin es en tiempo
real. Tiene pruebas
unitarias con JUnit,
control de versiones con
CVS, Como ya sabemos
cdigo abierto Sobre el
cual se pueden montar
herramientas de
desarrollo para cualquier
lenguaje mediante la
implementacion de los
plugins adecuados como
omondo para la
realizacin de diagramas
UML generando cdigo
OmniGraffle
OmniGraffle
Es una herramienta de
diagramacin disponible
para OS, muy prctica y
fcil de usar, con muchos
elementos que facilitan la
creacin de DFD. Esta
herramienta brinda la
posibilidad de exportar en
varios formatos, es
accesible y se puede
adquirir directamente en
el Appstore
Gabriela Gonzlez y
Ernesto Urritia
Serena Composer
Serena Composer
Gabriela Gonzlez y
Ernesto Urrutia
Erwin
Erwin
Muy eficiente , es un
software bsico.
Gabriela Gonzlez y
Ernesto Urrutia
realmente sencilla
GUI Design Studio
Es una herramienta
enfocada solamente en el
diseo de interfaces
grficas para
aplicaciones, es muy
sencillo de usar y
contiene muchos
elementos para modelar
pantallas de aplicaciones
botones, cajas de texto,
contraseas, tablas,
iconos y es capaz de
simular el paso de
ventanas.
UML 2 Tools
Para la generacin de
diagramas de clases en
Ecplise se necesita un
plug-in, este tiene una
facilidad de uso muy
buena y es fcil de
realizar diagramas de
Clases con todos los
atributos necesarios.
El Plug-in se adapta
perfectamente a Eclipse,
permitiendo ademas del
diagrama de clases, hacer
diagramas de secuencia,
casos de uso, etc., es muy
eficiente ya que no es
muy pesado y no
consume mucha
memoria.
Expression Web 4
Expression Web 4
Esta herramienta de
Microsoft permite hacer
paginas web muy fcil ya
que no es necesario
meterse al codigo HTML,
si no permite seleccionar
los elementos de una
paleta y solo arrastrarlos
para crear nuestra pgina.
Permite el uso de cdigo
PHP para hacer
aplicaciones Web
poderosas.
Microsoft Expression
Web 4 Es una herramienta
muy eficiente ya que
cuenta con todo lo
necesario para hacer un
diseo de una pagina Web
incluyendo las
caractersticas de servidor
FTP y cdigo del lado del
servidor, ademas que es
capaz de verificar la
compatibilidad con los
navegadores
Edraw
Edraw
Es un programa muy
completo para realizar
diferentes tipos de
diagramas de varias
metodologas, Es muy
sencillo de usar ya que
tiene una interfaz muy
parecida a la de Microsoft
Visio.
ERwin
ERwin
ERwin es una
herramienta muy
poderosa que permite
hacer de todo en cuanto a
diseo de BD se refiere,
ademas que soporta la
colaboracin de usuarios
y servicio en la nube
pasar el diseo a un
manejador.
MOCKFLOW
MOCKFLOW
Herramienta CASE
enfocada a la etapa de
diseo ya sea web, mvil
o desktop. Tiene servicio
en la nube.
Mishelle Eduardo
Bermudez Domnguez,
Miguel ngel Flores
Saldvar, Ivn Garca
Messner
yUML
yUML
Herramienta CASE
enfocada a diagramacin
de UML, servicio de la
nube, con diagramas de
clase, actividad y casos de
uso.
La herramienta es muy
interesante ya que ofrece
muchas formas de
diagramar y tiene servicio
de la nube.
Mishelle Eduardo
Bermudez Domnguez,
Miguel ngel Flores
Saldvar, Ivn Garca
Messner
Herramienta CASE
especializada en Base de
Datos, tiene varios
mdulos de modelado de
datos entre otras y tiene
compatibilidad con
distintos manejadores de
Base de Datos.
Es muy prctica y
sabindola usar se tienen
una gran herramienta
potente no solo a la base
de datos de ORACLE, si
no que a otros
manejadores de base de
datos.
Mishelle Eduardo
Bermudez Domnguez,
Miguel ngel Flores
Saldvar, Ivn Garca
Messner
DIA
DIA
Mishelle Eduardo
Bermudez Domnguez,
Miguel ngel Flores
Saldvar, Ivn Garca
Messner
CASE Studio 2
Case studio2
En si la herramients es
muy buena ya que te
permite realizar
facilmente los diagramas
y es poderosa ya que
cuenta con una buena
barra de herramientas que
la hacen una buena
herramienta para
presentarte los resultados
esperados
SQL server
sql server
EASY CASE
easy case
es buena la herramienta
Pedro Antonio Gonzlez
por que te permite obtener Rivas/Manuel Alejandro
los resultados esperados y Avalos Aviles
que es facil de manejar ya
que esta bien definida su
barra de herramientas y es
especifica a lo que se
realiza para el analisis y
diseo
Poseidon
Poseidon
la herramienta no es muy
buena ya que es
Sharepoint workflow
sharepoint
plataforma de microsoft
de colaboracin
empresarial, funciones de
colaboracin, basado en
el explorador web,
mdulos de
administracin de
proceso, mdulos de
bsqueda y una
plataforma de
administracin de
documento.
Avalos Aviles
Se muestra que la
herramienta es poderosa,
pero te pide muchos
complementos y no sabes
cuantos son en total, ya
que hast te llega a pedir
un server, y que tengas
instalado varios enlaces
de versiones anteriore. En
lo minimo que se utilizo
la herramienta se mostro
que se entrelazan muy
bien y si se puede
desarrollar buenos
diagramas.
Mostrando 20 elementos
Historia
Ya en los aos 70, un proyecto llamado ISDOS dise un lenguaje y por lo tanto un producto que analizaba la
relacin existente entre los requisitos de un problema y las necesidades que stos generaban, el lenguaje en
cuestin se denominaba PSL (Problem Statement Language) y la aplicacin que ayudaba a buscar las
necesidades de los diseadores PSA (Problem Statement Analyzer).
Aunque esos son los inicios de las herramientas informticas que ayudan a crear nuevos proyectos
informticos, la primera herramienta CASE fue Excelerator que sali a la luz en el ao 1984 y trabajaba bajo
una plataforma PC.
Las herramientas CASE alcanzaron su techo a principios de los aos 90. En la poca en la que IBM haba
conseguido una alianza con la empresa de software AD/Cycle para trabajar con sus mainframes, estos dos
gigantes trabajaban con herramientas CASE que abarcaban todo el ciclo de vida del software. Pero poco a
poco los mainframes han ido siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto
completamente abriendo el mercado de diversas herramientas ms especficas para cada fase del ciclo de
vida del software.
CASE de alto nivel son aquellas herramientas que automatizan o apoyan las fases finales o superiores del
ciclo de vida del desarrollo de sistemas como la planificacin de sistemas, el anlisis de sistemas y el diseo
de
sistemas.
CASE de bajo nivel son aquellas herramientas que automatizan o apoyan las fases finales o inferiores del
ciclo de vida como el diseo detallado de sistemas, laimplantacin de sistemas y el soporte de sistemas.
CASE cruzado de ciclo de vida se aplica a aquellas herramientas que apoyan actividades que tienen lugar a
lo largo de todo el ciclo de vida, se incluyen actividades como la gestin de proyectos y la estimacin.
Clasificacin
Aunque no es fcil y no existe una forma nica de clasificarlas, las herramientas CASE se pueden clasificar
teniendo en cuenta los siguientes parmetros:
1. Las plataformas que soportan.
2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
3. La arquitectura de las aplicaciones que producen.
4. Su funcionalidad.
La clasificacin basada en las fases del ciclo de desarrollo cubre:
Upper CASE (U-CASE), herramientas que ayudan en las fases de planificacin, anlisis de requisitos
y estrategia del desarrollo, usando, entre otros diagramas UML.
Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificacin excluyente
entre s, ni con la anterior:
Integrated CASE (I-CASE), herramientas que engloban todo el proceso de desarrollo software, desde
anlisis hasta implementacin.
MetaCASE, herramientas que permiten la definicin de nuestra propia tcnica de modelado, los
elementos permitidos del metamodelogenerado se guardan en un repositorio y pueden ser usados por
otros analistas, es decir, es como si definiramos nuestro propio UML, con nuestros elementos,
restricciones y relaciones posibles.
Editores UML.
EasyCASE
EasyCASE Profesional, el centro de productos para procesos, modelamiento de datos y eventos, e Ingeniera
de Base de Datos, es un producto para la generacin de esquemas de base de datos e ingeniera reversa,
trabaja para proveer una solucin comprensible para el diseo, consistencia y documentacin del sistema en
conjunto.
Oracle Designer
Oracle Designer es un juego de herramientas para guardar las definiciones que necesita el usuario y
automatizar la construccin rpida de aplicaciones cliente/servidor flexibles y grficas. Integrado con Oracle
Developer, Oracle Designer provee una solucin para desarrollar sistemas empresariales cliente/servidor
de segunda generacin.
PowerDesigner
PowerDesigner es una suite de aplicaciones de Powersoft para la construccin, diseo y modelado de datos a
travs de diversas aplicaciones. Es la herramienta para el anlisis, diseo inteligente y construccin slida de
una base de datos y un desarrollo orientado a modelos de datos a nivel fsico y conceptual, que dan a los
desarrolladores de aplicaciones Cliente/Servidor la ms firme base para aplicaciones de alto rendimiento.
System Architect
System Architect posee un repositorio nico que integra todas las herramientas, y metodologas usadas. En la
elaboracin de los diagramas, el System Architect conecta directamente al diccionario de datos, los elementos
asociados, comentarios,reglas de validaciones, normalizacin, etc. Posee control automtico de diagramas y
datos, normalizaciones y balanceo entre diagramas "Padre e Hijo", adems de balanceo horizontal, que
trabaja integrado con el diccionario de datos, asegurando la compatibilidad entre el Modelo de Datos y el
Modelo Funcional.
SNAP
SNAP es un CASE para el desarrollo de aplicaciones en Sistemas AS/400 de IBM. Proporciona el ambiente
integral de trabajo, brindando la posibilidad de construir sistemas de inmejorable calidad, adheridos a los
estndares S.A.A de IBM., totalmente documentados y ajustados a los requerimientos especficos de la
organizacin, en una fraccin del tiempo y coste del que se invertira, si se utilizaran herramientas
tradicionales.
de
proyecto,
HERRAMIENTA CASE: Una herramienta del software que automatiza (por lo menos en parte) una
parte del ciclo de desarrollo de software.
SISTEMA CASE: Un conjunto de herramientas CASE integradas que comparten una interface del
usuario comn y corren en un ambiente computacional comn.
KIT de HERRAMIENTAS CASE: Un conjunto de herramientas CASE integradas que se han diseado
para trabajar juntas y automatizar (o proveer ayuda automatizada al ciclo de desarrollo de software,
incluyendo el anlisis, diseo, codificacin y prueba).
PUESTO DE TRABAJO para CASE: Una estacin de trabajo tcnica o computadora personal
equipada con Herramientas Case que automatiza varias funciones del Ciclo de desarrollo de software.
PLATAFORMA de HARDWARE para CASE: Una arquitectura de hardware con uno, dos o tres
sistemas puestos en lnea, que proveen unaplataforma operativa para las Herramientas Case.
UML es una tcnica para la especificacin sistemas en todas sus fases. Naci en
1994 cubriendo los aspectos principales de todos los mtodos de diseo
antecesores y, precisamente, los padres de UML son Grady Booch, autor del
mtodo Booch; James Rumbaugh, autor del mtodo OMT e Ivar Jacobson, autor
de los mtodos OOSE y Objectory. La versin 1.0 de UML fue liberada en Enero
de 1997 y ha sido utilizado con xito en sistemas construidos para toda clase de
industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronutica,
finanzas, etc.
Los principales beneficios de UML son:
figura 1
Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista
no es una grfica, pero s una abstraccin que consiste en un nmero de
diagramas y todos esos diagramas juntos muestran una "fotografa" completa del
sistema. Las vistas tambin ligan el lenguaje de modelado a los mtodos o
procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son:
Vista Use-Case: Una vista que muestra la funcionalidad del sistema como
la perciben los actores externos.
Diagramas: Los diagramas son las grficas que describen el contenido de una
vista. UML tiene nueve tipos de diagramas que son utilizados en combinacin para
proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de
objetos, de estados, de secuencia, de colaboracin, de actividad, de componentes
y de distribucin.
Smbolos o Elementos de modelo: Los conceptos utilizados en los diagramas
son los elementos de modelo que representan conceptos comunes orientados a
objetos, tales como clases, objetos y mensajes, y las relaciones entre estos
conceptos incluyendo la asociacin, dependencia y generalizacin. Un elemento
Programacin
En esta fase las clases del diseo son convertidas a cdigo en un lenguaje de
programacin orientado a objetos. Cuando se crean los modelos de anlisis y
diseo en UML, lo ms aconsejable es trasladar mentalmente esos modelos a
cdigo.
Pruebas
Normalmente, un sistema es tratado en pruebas de unidades, pruebas de
integracin, pruebas de sistema, pruebas de aceptacin, etc. Las pruebas de
unidades se realizan a clases individuales o a un grupo de clases y son
tpicamente ejecutadas por el programador. Las pruebas de integracin integran
componentes y clases en orden para verificar que se ejecutan como se especific.
Las pruebas de sistema ven al sistema como una "caja negra" y validan que el
sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de
aceptacin conducidas por el cliente verifican que el sistema satisface los
requerimientos y son similares a las pruebas de sistema.
El
perspectiva
estudio
de
una
Proceso
lenguaje
general
fondo
herramienta
de
de
de
de
Introduccin
UML
UML
UML
modelado
desarrollo
Conclusiones
Introduccin
En el presente mdulo se permite entregar un material de apoyo que le permita al
alumno poder definir diagramas propios como tambin poder entender el
modelamiento de diagramas ya existentes, y finalmente se analiza los diagramas que
componen UML y ofrece acercamientos a casos de uso guiados sobre cmo estos
diagramas se usan para modelar sistemas, toda vez que el Lenguaje de
Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje
grfico para visualizar, especificar y documentar cada una de las partes que
comprende el desarrollo de software. UML entrega una forma de modelar cosas
conceptuales como lo son procesos de negocio y funciones de sistema, adems de
El lenguaje UML
Cualquier rama de ingeniera o arquitectura ha encontrado til desde hace mucho
tiempo la representacin de los diseos de forma grfica. Desde los inicios de la
informtica se han estado utilizando distintas formas de representar los diseos de
una forma ms bien personal o con algn modelo grfico. La falta de
estandarizacin en la manera de representar grficamente un modelo impeda que
los diseos grficos realizados se pudieran compartir fcilmente entre distintos
diseadores.
Se necesitaba por tanto un lenguaje no slo para comunicar las ideas a otros
desarrolladores sino tambin para servir de apoyo en los procesos de anlisis de un
problema. Con este objetivo se cre el Lenguaje Unificado de Modelado (UML:
Unified Modeling Lan-guage).
UML se ha convertido en ese estndar tan ansiado para representar y modelar la
informacin con la que se trabaja en las fases de anlisis y, especialmente, de
diseo.
El lenguaje UML tiene una notacin grfica muy expresiva que permite representar
en mayor o menor medida todas las fases de un proyecto informtico: desde el
anlisis con los casos de uso, el diseo con los diagramas de clases, objetos, etc.,
hasta la implementacin y configuracin con los diagramas de despliegue.
1.1. MODELADO VISUAL
Tal como indica su nombre, UML es un lenguaje de modelado. Un modelo es una
simplificacin de la realidad. El objetivo del modelado de un sistema es capturar las
partes esenciales del sistema. Para facilitar este modelado, se realiza una abstraccin
y se plasma en una notacin grfica. Esto se conoce como modelado visual.
El modelado visual permite manejar la complejidad de los sistemas a analizar o
disear. De la misma forma que para construir una choza no hace falta un modelo,
cuando se intenta construir un sistema complejo como un rascacielos, es necesario
abstraer la complejidad en modelos que el ser humano pueda entender.
UML sirve para el modelado completo de sistemas complejos, tanto en el diseo de
los sistemas software como para la arquitectura hardware donde se ejecuten.
Otro objetivo de este modelado visual es que sea independiente del lenguaje de
implementacin, de tal forma que los diseos realizados usando UML se pueda
implementar en cualquier lenguaje que soporte las posibilidades de UML
(principalmente
lenguajes
orientados
a
objetos).
UML es adems un mtodo formal de modelado. Esto aporta las siguientes
ventajas:
Mayor
rigor
en
la
especificacin.
Permite realizar una verificacin y validacin del modelo realizado.
Se pueden automatizar determinados procesos y permite generar cdigo a partir de
los modelos y a la inversa (a partir del cdigo fuente generar los modelos). Esto
permite que el modelo y el cdigo estn actualizados, con lo que siempre se puede
mantener la visin en el diseo, de ms alto nivel, de la estructura de un proyecto.
1.2. HISTORIA DE UML
El lenguaje UML comenz a gestarse en octubre de 1994 [1], cuando Rumbaugh se
uni a la compaa Rational fundada por Booch (dos reputados investigadores en el
rea de metodologa del software). El objetivo de ambos era unificar dos mtodos
que haban desarrollado: el mtodo Booch y el OMT (Object Mode-lling Tool ). El
primer borrador apareci en octubre de 1995. En esa misma poca otro reputado
investigador, Jacobson, se uni a Rational y se incluyeron ideas suyas. Estas tres
personas son conocidas como los "tres amigos". Adems, este lenguaje se abri a la
colaboracin de otras empresas para que aportaran sus ideas. Todas estas
colaboraciones condujeron a la definicin de la primera versin de UML.
Esta primera versin se ofreci a un grupo de tra-bajo para convertirlo en 1997 en
un estndar del OMG (Object Management Grouphttp://www.omg.org). Este grupo,
que gestiona estndares relacionados con la tecnologa orientada a objetos
(metodologas, bases de datos objetuales, CORBA, etc.), propuso una serie de
modificaciones y una nueva versin de UML (la 1.1), que fue adoptada por el OMG
como estndar en noviembre de 1997. Desde aquella versin han habido varias
revisiones que gestiona la OMG Revision Task Force. La ltima versin aprobada es
la 1.4. En estos momentos se est desarrollando una nueva versin en la que se
incluirn cambios importantes (principalmente aadir nuevos diagramas) que
conducirn a la versin 2.0 planificada para fines del 2002.
1.3. Qu es UML?
El Lenguaje Unificado de Modelado preescribe un conjunto de notaciones y
diagramas estndar para modelar sistemas orientados a objetos, y describe la
Relaciones:
relacionan
los
elementos
entre
s.
Diagramas: Son colecciones de elementos con sus relaciones.
1.4. DIAGRAMAS UML
Un diagrama es la representacin grfica de un conjunto de elementos con sus
relaciones. En concreto, un diagrama ofrece una vista del sistema a modelar. Para
poder representar correctamente un sistema, UML ofrece una amplia variedad de
diagramas para visualizar el sistema desde varias perspectivas 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
Componentes
para
modelar
componentes.
Diagramas de Implementacin para modelar la distribucin del sistema.
Los diagramas ms interesantes (y los ms usados) son los de casos de uso, clases y
secuencia, por lo que nos centraremos en stos. Pare ello, se utilizar ejemplos de un
sistema
de
venta
de
entradas
de
cine
por
Internet.
El diagrama de casos de usos representa grficamente los casos de uso que tiene un
sistema. Se define un caso de uso como cada interaccin supuesta con el sistema a
desarrollar, donde se representan los requisitos funcionales. Es decir, se est
diciendo lo que tiene que hacer un sistema y cmo. En la figura 3 se muestra un
ejemplo de casos de uso, donde se muestran tres actores (los clientes, los taquilleros
y los jefes de taquilla) y las operaciones que pueden realizar (sus roles).
El diagrama de clases muestra un conjunto de clases, interfaces y sus relaciones.
ste es el diagrama ms comn a la hora de describir el diseo de los sistemas
orientados a objetos. En la figura 4 se muestran las clases globales, sus atributos y
las relaciones de una posible solucin al problema de la venta de entradas.
En el diagrama de secuencia se muestra la interaccin de los objetos que componen
un sistema de forma temporal. Siguiendo el ejemplo de venta de entradas, la figura 5
muestra la interaccin de crear una nueva sala para un espectculo.
El resto de diagramas muestran distintos aspectos del sistema a modelar. Para
modelar el comportamiento dinmico del sistema estn los deinteraccin,
colaboracin, estados y actividades. Los diagramas de componentes y
despliegue estn enfocados a la implementacin del sistema.
Jacobson.
Shlaer/Mellor: El mtodo para disear sistemas de tiempo real, puesto en marcha
por Sally Shlaer y Steven Mellor en dos libros de 1991, Ciclos de vida de Objetos,
modelando el Mundo en Estados y Ciclos de vida de Objetos, Modelando el mundo
en Datos (Prentice Hall). Shlaer/Mellor continan actualizando su mtodo
continuamente (la actualizacin ms reciente es el OOA96 report), y recientemente
publicaron una gua sobre cmo usar la notacin UML con Shlaer/Mellor.
Fusion: Desarrollado en Hewlett Packard a mediados de los noventa como primer
intento de un mtodo de diseo orientado a objetos estndar. Combina OMT y
Booch
con
tarjetas
CRC
y
mtodos
formales.
(www.hpl.hp.com/fusion/file/teameps.pdf)
OMT: La Tcnica de Modelado de Objetos fue desarrollada por James Rumbaugh
y otros, y publicada en el libro de gran influencia "Diseo y Modelado Orientado a
Objetos" (Prentice Hall, 1991). Un mtodo que propone anlisis y diseo 'iterative',
ms
centrado
en
el
lado
del
anlisis.
Booch: Parecido al OMT, y tambin muy popular, la primera y segunda edicin de
"Diseo Orientado a Objetos, con Aplicaciones" (Benjamin Cummings, 1991 y
1994), (Object-Oriented Design, With Applications), detallan un mtodo ofreciendo
tambin diseo y anlisis 'iterative', centrndose en el lado del diseo.
Adems, muchas organizaciones han desarrollado sus propias metodologas internas,
usando diferentes diagramas y tcnicas con orgenes varios. Ejemplos son el mtodo
Catalyst por Computer Sciences Corporation (CSC) o el Worlwide Solution Design
and Delivery Method (WSDDM) por IBM. Estas metodologas difieren, pero
generalmente combinan anlisis de flujo de trabajo, captura de los requisitos, y
modelado de negocio con modelado de datos, con modelado de objetos usando
varias notaciones (OMT, Booch, etc), y algunas veces incluyendo tcnicas
adicionales de modelado de objetos como Casos de Uso y tarjetas CRC. La mayora
de estas organizaciones estn adoptando e incorporando el UML como la notacin
orientada
a
objetos
de
sus
metodologas.
Algunos modeladores usarn un subconjunto de UML para modelar 'what they're
after', por ejemplo simplemente el diagrama de clases, o solo los diagramas de clases
y
de
secuencia
con
Casos
de
Uso.
Otros usarn una suite ms completa, incluyendo los diagramas de estado y
actividad para modelar sistemas de tiempo real, y el diagrama de implementacin
para modelar sistemas distribuidos. Aun as, otros no estarn satisfechos con los
diagramas ofrecidos por UML, y necesitarn extender UML con otros diagramas
como modelos relacionales de datos y 'CRC cards'.
Icono: VLPSOH7\SH
Asociacin Compose
Asociacin BelongTo
Un caso de uso se modela para todos los procesos que el sistema debe llevar a cabo.
Los procesos se describen dentro de el caso de uso por una descripcin textual o una
secuencia de pasos ejecutados. Los Diagramas de Actividad se pueden usar tambin
para modelar escenarios grficamente. Una vez que el comportamiento del sistema
est captado de esta manera, los casos de uso se examinan y amplian para mostrar
qu objetos se interrelacionan para que ocurra este comportamiento. Los Diagramas
de Colaboracin y de Secuencia se usan para mostrar las relaciones entre los objetos.
2.3. Clases y Diagramas de Implementacin
Conforme se van encontrando los objetos, pueden ser agrupados por tipo y
clasificados en un Diagrama de Clase. Es el diagrama de clase el que se convierte en
el diagrama central del anlisis del diseo orientado a objetos, y el que muestra la
estructura esttica del sistema. El diagrama de clase puede ser dividido en capas:
aplicacin, y datos, las cuales muestran las clases que intervienen con la interfaz de
usuario, la lgica del software de la aplicacin, y el almacenamiento de datos
respectivamente. Los Diagramas de Componentes se usan para agrupar clases en
componentes o mdulos. La distribucin general del hardware del sistema se modela
usando el Diagrama de Implementacin.
2.4. Tarjetas CRC (CRC cards) - Una extensin informal de UML
Como una extensin informal a UML, la tcnica de las tarjetas CRC se puede usar
para guiar el sistema a travs de anlisis guiados por la responsabilidad. Las clases
se examinan, se filtran y se refinan en base a sus responsabilidades con respecto al
sistema, y las clases con las que necesitan colaborar para completar sus
responsabilidades.
2.5. Diagramas de Estado
El comportamiento en tiempo real de cada clase que tiene comportamiento dinmico
y significativo, se modela usando un Diagrama de Estado. El diagrama de actividad
puede ser usado tambin aqu, esta vez como una extensin del diagrama de estado,
para mostrar los detalles de las acciones llevadas a cabo por los objetos en respuesta
a eventos internos. El diagrama de actividad se puede usar tambin para representar
grficamente las acciones de mtodos de clases.
Organizando
tu
sistema
con
paquetes
Modelando con Casos de Uso, y usndolos para averiguar los requisitos del
sistema
Modelando
con
Diagramas
de
Secuencia
y
Colaboracin
Analizando y diseando con el Diagrama de Clase, y extendiendo UML con la
tcnica
de
las
tarjetas
CRC
Modelando comportamiento con Diagramas de Actividad y de Estado
Modelando componentes de software, distribucin e implementacin
Extendiendo UML con el diseo de Bases de Datos relacionales
Una de las tareas clave para modelar un sistema de sofware de grandes dimensiones
es dividirlo primero en reas manejables. Aunque estas reas se llaman dominios,
categoras o subsistemas, la idea es la misma: dividir el sistema en reas que tengan
competencias
parecidas.
UML introduce la nocin de un paquete como el tem universal para agrupar
elementos, permitiendo a los modeladores subdividir y categorizar sistemas. Los
paquetes pueden ser usados en cualquier nivel, desde el nivel ms alto, donde son
usados para subdividir el sistema en dominios, hasta el nivel ms bajo, donde son
usados para agrupar casos de uso individuales, clases, o componentes.
Cada caso de uso se documenta por una descripcin del escenario. La descripcin
puede ser escrita en modo de texto o en un formato paso a paso. Cada caso de uso
puede ser tambin definido por otras propiedades, como las condiciones pre- y postdel escenario --- condiciones que existen antes de que el escenario comience, y
condiciones que existen despus de que el escenario se completa. Los Diagramas de
Actividad ofrecen una herramienta grfica para modelar el proceso de un Caso de
Uso. stos son descritos en una seccin posterior de este documento.
Definicin
4:
Extensin
de
Casos
de
Uso
Un Caso de Uso UC es la extensin de UC1 por UC2 a travs de una relacin
"extend" ext; es decir, UC = UC1 ext UC2 si se cumple:
a- Aplicabilidad: El Caso de Uso UC1 es extendible por ext si se cumple la
siguiente
condicin:
Para cada punto de extensin de ext debe existir una accin que coincida con l
dentro
de
las
secuencias
de
acciones
del
Caso
de
Uso:
i OE ext. extensionPoint. $uo OE UC1.operation . $uotOE uo.actionSequence .
i.location
OE
uot
b- UC1-Completitud: cada secuencia de acciones en UC1 es extendida en todas las
formas
posibles:
o1
OE
UC1.operation
.
$o
OE
UC.operation
.
( o.name=o1.name ("s1OEo1.actionSequence. extensions(s1,ext,UC2)
o.actionSequence
)
)
c- UC1-Correccin: cada secuencia de acciones en UC es una extensin de alguna
secuencia
de
acciones
en
UC1.
oOEUC.operation .$o1OE UC1.operation . (o.name=o1.name (
sOEo.actionSequence.
$s1OEo1.actionSequence.
sOEextensions(s1,ext,UC2)
)
)
Definicin
5:
isExtensible:
ActionSequence
x
Extend
El predicado es verdadero si la secuencia de acciones contiene algn punto de
extensin de la relacin extend y est definido de la siguiente forma:
s:ActionSequence
ext:Extend
.
isExtensible(s,ext)
$
iOEext.extensionPoint
.
i.locationOEs
Definicin
6:
extensions: ActionSequence x Extend x UseCase -> Set(ActionSequence)
La funcin extensions(s,ext,uc) retorna el conjunto de todas las posibles extensiones
de la secuencias dadas por la relacin ext y el Caso de Uso uc. La funcin se define
por
casos
de
la
siguiente
forma:
Case
1:
isExtensible(s,ext)
extensions(s,ext,uc)={s}
Case
2:
isExtensible(s,ext)
extensions(s,ext,uc)={before(s,i.location);
s2;
after(s,
i.location)
/
iOEext.extensionPoint
i.locationOEs
s2OEuc.actionSequence
}
Definicin 7: UC extiende a UC1 si existe un Caso de Uso UC2 tal que UC es la
extensin de UC1 por UC2 a travs de una relacin ext:
UC extendsext UC1 $ UC2:UseCase . ( UC = UC1 ext UC2 )
o.actionSequence
)
)
c- Correccin: todas las secuencias de acciones de UC provienen de incluir a UC2
dentro
de
alguna
secuencia
de
acciones
de
UC1.
oOEUC.operation . $o1OE UC1.operation . (o.name=o1.name (
sOEo.actionSequence.
$s1OEo1.actionSequence.
sOEinclusions(s1,UC2)
)
)
Definicin
2:
isIncluible:
ActionSequence
x
UseCase
El predicado isIncluible(s,uc) es verdadero si la secuencia de acciones s contiene
alguna invocacin al Caso de Uso uc y est definido de la siguiente forma:
s:ActionSequence uc:UseCase . isIncluible(s,uc) uc.name OEs
Definicin
3:
inclusions:
ActionSequence
x
UseCase
->
Set(ActionSequence)
La funcin inclusions(s, uc) retorna el conjunto de todas las posibles inclusiones del
Caso de Uso uc en la secuencia s y esta definida por casos, de la siguiente forma.
Case
1:
isIncluible(s,
uc)
inclusions(s,
uc)={s}
Case 2: isIncluible(s, uc) inclusions(s, uc)={ before(s,a);s2;after(s,a) / a=uc.name
s2OEuc.actionSequence }
Figura 4: Relacin caso de uso Extiende (extends) frente a relacin de caso Usa
(uses=Include).
3.1.6. Ayuda en casos de uso probando el sistema frente a los requisitos
Los Casos de Uso tambin se utilizan para construir scripts de prueba que se usan a
su vez para comprobar que la aplicacin satisface los requisitos de negocio y de
sistema.
Cuando has llegado al caso de uso del nivel ms bajo, podras crear un Diagrama de
Secuencia para el Caso de Uso. Con los Diagramas de Secuencia y de Colaboracin
puedes modelar la implementacin del escenario.
Figura 8: Extensin informal de UML -- Tarjetas CRC para anlisis guiados por la
responsabilidad.
3.4.2. Diseo del sistema con Diagramas de Clase
Durante el diseo, el Diagrama de Clase se elabora para tener en cuenta los detalles
concretos de la implementacin del sistema.
3.4.2.1. Arquitecturas Multicapas
Una vez concienciados del diseo, estableceremos la arquitectura del sistema. Esto
incluye establecer si ser un sistema simple diseado para correr en una sola
mquina, un sistema 'two-tiered' consistente en un cliente y un servidor, o un sistema
'multi-tiered' con objetos interfaz de usuario separados de los objetos 'business',
separado de la base de datos, cada uno corriendo en plataformas distintas.
Una aproximacin a dirigir el diagrama de clase para un sistema complejo es separar
Soporte
para
toda
la
notacin
y
semntica
de
UML
Soporte para una cantidad considerable de tcnicas de modelado y diagramas para
complementar UML - incluyendo tarjetas CRC, modelado de datos, diagramas de
flujo, y diseo de pantallas de usuario. Posibilidad de reutilizar informacin
obtenida por otras tnicas todava usadas, como modelado tradicional de procesos.
Facilitar la captura de informacin en un repositorio subyacente - permitiendo la
reutilizacin
entre
diagramas.
Posibilidad de personalizar las propiedades de definicin de elementos subyacentes
de
modelos
UML.
Permitir a varios equipos de analistas trabajar en los mismos datos a la vez.
Posibilidad de capturar los requisitos, asociarlos con elementos de modelado que
los satisfagan y localizar cmo han sido satisfechos los requisitos en cada uno de los
pasos
del
desarrollo.
Posibilitar la creacin de informes y documentacin personalizados en tus diseos,
y la salida de estos informes en varios formatos, incluyenod HTML para la
distribucin
en
la
Internet
o
Intranet
local.
Posibilidad para generar y 'reverse' cdigo (por ejemplo C++, Java, etc) para
facilitar el anlisis y diseo 'iterative', para volver a usar cdigo o libreras de clase
existentes, y para documentar el cdigo.
Proceso de desarrollo
Aunque UML es bastante independiente del pro-ceso de desarrollo que se siga, los
mismos creadores de UML han propuesto su propia metodologa de desarrollo,
denominada
el
Proceso
Unificado
de
Desarrollo.
El Proceso Unificado est basado en componentes, lo cual quiere decir que el
sistema software en construccin est formado por componentes software
interconectados a travs de interfaces bien definidos. Adems, el Proceso Unificado
utiliza el UML para expresar grficamente todos los esquemas de un sistema
software. Pero, realmente, los aspectos que definen este Proceso Unificado son tres:
es iterativo e incremental, dirigido por casos de uso y centrado en la arquitectura :
Dirigido por casos de uso: Basndose en los casos de uso, los desarrolladores crean
una serie de modelos de diseo e implementacin que los llevan a cabo. Adems,
estos modelos se vali-dan para que sean conformes a los casos de uso. Finalmente,
los casos de uso tambin sir-ven para realizar las pruebas sobre los componentes
desarrollados.
Centrado en la arquitectura: En la arquitectura de la construccin, antes de
construir un edificio ste se contempla desde varios puntos de vista: estructura,
conducciones elctricas, fontanera, etc. Cada uno de estos aspectos est
representado por un grfico con su notacin correspondiente. Siguiendo este
ejemplo, el concepto de arquitectura software incluye los aspectos estticos y
dinmicos
ms
significativos
del
sistema.
Iterativo e incremental: Todo sistema informtico complejo supone un gran
esfuerzo que puede durar desde varios meses hasta aos. Por lo tanto, lo ms
prctico es dividir un proyecto en varias fases. Actualmente se suele hablar de ciclos
de vida en los que se realizan varios recorridos por todas las fases. Cada recorrido
por las fases se denomina iteracin en el proyecto en la que se realizan varios tipos
de trabajo (denominados flujos). Adems, cada iteracin parte de la anterior
incrementado o revisando la funcionalidad implementada. Se suele denominar
proceso. Ver figura 17
Conclusiones
Es fcil predecir que UML ser el lenguaje de modelado de software de uso
universal.
Las
principales
razones
para
ello
son:
En el desarrollo han participado investigadores de reconocido prestigio.
Ha sido apoyado por prcticamente todas las empresas importantes de informtica.
Se
ha
aceptado
como
un
estndar
por
la
OMG.
Prcticamente todas las herramientas CASE y de desarrollo la han adaptado como
lenguaje
de
modelado.
En resumen, UML resuelve de forma bastante satisfactoria un viejo problema del
desarrollo de software como es su modelado grfico. Adems, se ha llega-do a una
solucin unificada basada en lo mejor que haba hasta el momento, lo cual lo hace
todava ms excepcional.