Вы находитесь на странице: 1из 71

HERRAMIENTAS CASE

Universidad Mariano Glvez


Facultad de Ingeniera en
Sistemas
Clase de Anlisis de Sistemas

Que es la Herramienta
CASE?
(Computer Aided Software Engineering, Ingeniera de Software Asistida
por Ordenador)

Son diversas aplicaciones informticas destinadas a


aumentar la productividad en el desarrollo de software
reduciendo el coste de las mismas en trminos de tiempo y
de dinero. Estas herramientas nos pueden ayudar en todos
los aspectos del ciclo de vida de desarrollo del software en
tareas como el proceso de realizar un diseo del proyecto,
calculo de costes, implementacin de parte del cdigo
automticamente con el diseo dado, compilacin
automtica, documentacin o deteccin de errores entre
otras.

Su Historia
Aunque sos 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.

Tecnologa CASE

La tecnologa CASE supone la automatizacin del desarrollo


del software, contribuyendo a mejorar la calidad y la
productividad en el desarrollo de sistemas de informacin y
se plantean los siguientes objetivos:
Permitir la aplicacin prctica de metodologas
estructuradas, las cuales al ser realizadas con una
herramienta se consigue agilizar el trabajo.
Facilitar la realizacin de prototipos y el desarrollo conjunto
de aplicaciones.
Simplificar el mantenimiento de los programas.
Mejorar y estandarizar la documentacin.
Aumentar la portabilidad de las aplicaciones.
Facilitar la reutilizacin de componentes software.
Permitir un desarrollo y un refinamiento visual de las
aplicaciones, mediante la utilizacin de grficos .

Objetivos
Automatizar
-El desarrollo del software
-La documentacin
-La generacin del cdigo
-El chequeo de errores
-La gestin del proyecto
Permitir
-La reutilizacin del software
-La portabilidad del software
-La estandarizacin de la documentacin

Componentes de una Herramienta


CASE

De una forma esquemtica podemos decir


que una herramienta CASE se compone
de los siguientes elementos:
Repositorio (diccionario) donde se
almacenan los elementos definidos o
creados por la herramienta, y cuya
gestin se realiza mediante el apoyo de
un Sistema de Gestin de Base de Datos
(SGBD) o de un sistema de gestin de
ficheros.
Meta modelo (no siempre visible), que
constituye el marco para la definicin de
las tcnicas y metodologas soportadas
por la herramienta.

Componentes de una Herramienta CASE


(Continuacin)
Carga o descarga de datos, son facilidades que
permiten cargar el repertorio de la herramienta CASE
con datos provenientes de otros sistemas, o bien
generar a partir de la propia herramienta esquemas de
base de datos, programas, etc. que pueden, a su vez,
alimentar otros sistemas. Este elemento proporciona
as un medio de comunicacin con otras herramientas.
Comprobacin de errores, facilidades que permiten
llevar a cabo un anlisis de la exactitud, integridad y
consistencia de los esquemas generados por la
herramienta.
Interfaz de usuario, que constar de editores de texto
y herramientas de diseo grfico que permitan,
mediante la utilizacin de un sistema de ventanas,
iconos y mens, con la ayuda del ratn, definir los
diagramas, matrices, etc. que incluyen las distintas
metodologas.

Componentes de una Herramienta CASE


(Continuacin)
(Piattini et al.
96)

INTERFAZ DE USUARIO

Repositorio

GENERADOR DE
INFORMES

Metamodelo
HERRAMIENTAS
DE CARGA Y
DESCARGA DE
DATOS

FACILIDADES DE COMPROBACI N

Clasificacin de herramientas
CASE
Clasificacin por cobertura
Toolkits
Conjunto de herramientas software (integradas) que
automatizan alguna fase del ciclo de vida (anlisis,
diseo, gestin, ...). Comparten la BD de soporte y la
interfaz de usuario.

Workbenchs
Conjunto de herramientas software integradas que
automatizan el ciclo de vida en ms de una fase,
tpicamente en todas las fases de desarrollo: anlisis +
diseo + implementacin (incluyendo la documentacin
asociada). Es decir, asisten en todo el proceso y
proporcionan un producto documentado y operativo.
Adems de compartir la BD de soporte y la interfaz de
usuario, estn basadas en una misma metodologa.

Segn grado de
Toolkits (Juego
de herramientas)
integracin:
Conjunto de herramientas software que automatizan

alguna fase del ciclo de vida (anlisis, diseo, gestin, ...).


Comparten la BD de soporte y la interfaz de usuario.
Integracin baja.

Workbenchs (Banco de trabajo)


Conjunto de herramientas software que automatizan el
ciclo de vida en ms de una fase, tpicamente en anlisis
+ diseo + implementacin (incluyendo documentacin
asociada). Asisten en todo el proceso y proporcionan un
producto documentado y operativo. Adems de compartir
la BD de soporte y la interfaz de usuario, estn basadas en
una misma metodologa. Integracin media.

IPSE (Integrated Project Support Environment)

Integracin alta. Cubren todo el ciclo de vida, la gestin de


proyectos y de la configuracin.

Segn las fases del ciclo de vida


que abordan:

CASE frontales (front-end) o Upper CASE: Herramientas de


apoyo a las primeras fases:
Anlisis, diseo.

CASE dorsales (back-end) o Lower CASE: Herramientas de


apoyo a las ltimas fases:
Implementacin (generacin de cdigo).
Pruebas (caja blanca y caja negra).
Mantenimiento.

ICASE (Integrated-CASE)
Contienen elementos de Upper y Lower CASE: contemplan
todo el ciclo de desarrollo.

Reverse Engineering (Ingeniera inversa)


CARE (Computer Aided Requirements Engineering)

Clasificacin por
funcionalidad

Herramientas de gestin de proyectos ayudan a la planificacin y


seguimiento del proyecto

Herramientas de anlisis y diseo.


Herramientas de prototipado y simulacin.
Herramientas de programacin.

Editores dirigidos por la sintaxis (cabeceras de subrutinas, palabras clave,


identacin, nomenclatura de variables, ...)
Generadores de estructuras de programas.
Entornos integrados de desarrollo para soporte de un lenguaje (editor, compilador,
depurador).

Herramientas de integracin y pruebas.

Planificacin: agenda de desarrollo.


Estimacin: costes, duracin, esfuerzo.
Control: productividad, calidad.

Analizadores estticos.
Depuradores.
Generadores de datos.
Comparadores (e.g. de ficheros).

Herramientas de soporte.
Herramientas de mantenimiento.

Ingeniera inversa.
Reingeniera.

Clasificacin por posicin

Upper CASE: Herramientas de apoyo a las primeras


fases
Mtricas del software.
Estimacin de costes.
Planificacin temporal.

Medium CASE: Herramientas de apoyo a las fases


centrales.
Anlisis.
Diseo.

Lower CASE: Herramientas de apoyo a las ltimas fases.

Implementacin (generacin de cdigo).


Pruebas (caja blanca y caja negra).
Mantenimiento.
Documentacin de la implementacin y documentacin para el
usuario final.

Herramientas de anlisis y diseo


Permiten crear y
verificar DFDs,
diagramas E/R, de
clase, de
estructura...
Herramientas de
prototipado:

Diseadores de pantallas
Generadores de mens
Generadores de informes
Lenguajes de
especificacin ejecutables

Ejemplos:

DESIGNER de ORACLE
EASY CASE de Evergreen
Rational ROSE
EXCELERATOR de Intersolv
OBJECT MAKER de Mark IV.
OMTool de GTE.
PARADIGM Plus de Platinum
SILVERRUN de CSA Research
SYSTEM Architect de Popkin
Sofware & Systems

Integracin de las Herramientas CASE en el

futuro
Las herramientas CASE evolucionan hacia tres
tipos de integracin:
La integracin de datos permite disponer de
herramientas CASE con diferentes estructuras de
diccionarios locales para el intercambio de datos.
La integracin de presentacin confiere a todas
las herramientas CASE el mismo aspecto.
La integracin de herramientas permite disponer
de herramientas CASE capaces de invocar a otras
CASE de forma automtica.

Herramientas CASE ms
utilizadas
ERwin
PLATINUM ERwin es una herramienta para el diseo de base
de datos, que Brinda productividad en su diseo, generacin,
y mantenimiento de aplicaciones. Desde un modelo lgico
de los requerimientos de informacin, hasta el modelo fsico
perfeccionado para las caractersticas especficas de la base
de datos diseada, adems ERwin permite visualizar la
estructura, los elementos importantes, y optimizar el diseo
de la base de datos. Genera automticamente las tablas y
miles de lneas de stored procedure y triggers para los
principales tipos de base de datos.
ERwin soporta principalmente bases de datos relacionales
SQL y bases de datos que incluyen Oracle, Microsoft SQL
Server, Sybase. El mismo modelo puede ser usado para
generar mltiples bases de datos, o convertir una aplicacin
de una plataforma de base de datos a otra.

Herramientas CASE ms
utilizadas
EasyCASE
Esta herramienta permite automatizar las fases
de anlisis y diseo dentro del desarrollo de una
aplicacin, para poder crear las aplicaciones
eficazmente desde el procesamiento de
transacciones a la aplicacin de bases de datos
de cliente/servidor, as como sistemas de tiempo
real.

Herramientas CASE ms
utilizadas
Oracle Designer
Oracle Designer es un conjunto de herramientas
para guardar las definiciones que necesita el
usuario y automatizar la construccin rpida de
aplicaciones cliente/servidor grficas. Integrado
con Oracle Developer, Oracle Designer, que
provee una solucin para desarrollar sistemas
empresariales de segunda generacin.
En el lado del Servidor, Oracle Designer soporta
la definicin, generacin y captura de diseo de
diferentes tipos de bases de datos, por medio de
conexin desde Oracle.

Herramientas CASE mas


utilizadas
System Architect
Esta herramienta posee un repositorio nico que
integra todas las herramientas, y metodologas usadas. En
la elaboracin de los diagramas, 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 balanceamiento entre diagramas
"Padre e Hijo", adems de balanceamiento horizontal, que
trabaja integrado con el diccionario de datos, asegurando
la compatibilidad entre el Modelo de Datos y el Modelo
Funcional.

Ejemplos de Interfaces de
Herramientas CASE

Ejemplos de Interfaces de
Herramientas CASE

Ejemplos de Interfaces de
Herramientas CASE

Conclusin
Sin lugar a dudas las herramientas CASE han venido a revolucionar
la forma de automatizar los aspectos clave en el desarrollo de los
sistemas de informacin, debido a la gran plataforma de seguridad
que ofrecen a los sistemas que las usan y es que stas, brindan toda
una gama de componentes que incluyen todas o la mayora de los
requisitos necesarios para el desarrollo de los sistemas, han sido
creadas con una gran exactitud en torno a las necesidades de los
desarrolladores de sistemas para la automatizacin de procesos
incluyendo el anlisis, diseo e implantacin.
Las Herramientas CASE como se pudo haber visto tienen varias
clasificaciones. Debido a la gran demanda que tienen las CASE su
exigencia en cuanto a su uso ha ido aumentando, por lo que toda
CASE debe entre otras cosas:

Proporcionar topologas de aplicacin flexibles


Proporcionar aplicaciones porttiles
Brindar un Control de versin
Crear cdigo compilado en el servidor
Dar un Soporte multiusuario
Ofrecer Seguridad
Desde que se crearon stas herramientas (1984) hasta la actualidad,
las CASE cuentan con una credibilidad y exactitud que tienen un
reconocimiento universal, siendo usadas por cualquier desarrollador
y / o programador que busca un resultado ptimo y eficiente, pero

Programaci
n Extrema
(XP)

Universidad Mariano Glvez


Facultad de Ingeniera en
Sistemas
Clase de Anlisis de Sistemas

Proceso de desarrollo de
software
El tpico proceso de desarrollo de software
consta de las siguientes fases:

Conceptualizacin y captura de requisitos.


Anlisis y Descripcin funcional
Diseo
Codificacin
Pruebas
Distribucin

El problema de la
productividad
Los documentos y diagramas se producen de las
fases desde la Conceptualizacin hasta el Diseo.
Estos documentos incluyen la descripcin de los
requisitos, diagramas UML como casos de uso,
diagramas de clases, de actividad, etc.
Se produce un montn de papeles considerable.
Este montn de papeles pierde su valor en cuanto
se empieza a crear el cdigo, sobre todo si es un
sistema que va cambiando con frecuencia dado
que no hay tiempo para actualizar toda la
documentacin y los cambios se hacen slo en el
cdigo.
Se pierde la conexin entre documentacin y
cdigo.

Por qu fracasan los proyectos de


software?
Retrasos y desviaciones en la
planificacin.
Coste de mantenimiento elevados.
Alta tasa de defectos.
Requisitos mal comprendidos.
Cambios de negocio.
Falsa riqueza de caractersticas.
Cambios de personal.

Como soluciona XP estos


problemas?

Retrasos y desviaciones:
versiones cortas.
Cancelan el proyecto:
entregas peridicas.
Sistemas deteriorados y
defectos: pruebas continuas.
Requisitos mal comprendidos:
cliente dentro del equipo.
Cambios de negocio:
versiones cortas.
Falsa riqueza de
caractersticas: realizar tareas
prioritarias.
Cambios de personal: anima
el contacto y la integracin.

Metodologas giles de desarrollo de


software (i)
Conocidos anteriormente como
Metodologas Livianas, los procesos
giles de desarrollo de software
evitan los tortuosos y burocrticos
caminos de las metodologas
tradicionales y se enfocan en la
gente y los resultados.

Metodologas giles de desarrollo de


software (ii)
Minimizar la cantidad de esfuerzo y
tiempo gastados en construir
modelos que slo servirn como
documentacin.
Asegurar que el software entregado
funciona para los usuarios.
Permitir que el proyecto se adapte de
manera flexible e inmediata a los
cambios originados por tecnologas
y/o requisitos.

Metodologas giles de desarrollo de


software (iii)

Programacin extrema (XP)


Metodologas Crystal
SCRUM
Desarrollo de software adaptativo
Desarrollo guiado por caractersticas (FDD)
Metodologa de desarrollo de sistemas
dinmicos (DSDM)

Qu es XP?
Un proceso ligero, de bajo riesgo,
flexible, predecible, cientfico y
divertido de desarrollar software.
Kent Beck (Extreme Programming
Explained)
Naci en 1996
Proyecto C3 de DaimlerChrysler

Caractersticas de XP
Metodologa creada a base de prueba y
error.
Surge considerando 4 valores que pueden
mejorar cualquier proyecto de software:
Simplicidad, Comunicacin,
Realimentacin, Coraje.
Expresada en forma de 12 prcticas
(algunas existentes desde hace aos), que
se soportan las unas a las otras y
conforman un conjunto completo.

Los 4 valores (i)


Simplicidad: XP propone el principio de
hacer la cosa ms simple que pueda
funcionar, en relacin al proceso y la
codificacin. Es mejor hacer algo simple
hoy, que hacerlo ms complicado hoy y
probablemente nunca usarlo.
Comunicacin: Algunos problemas en los
proyectos tienen su origen en que alguien
no dijo algo a alguien ms sobre algo
importante en algn momento. XP hace
casi imposible la falta de comunicacin.

Los 4 valores (ii)


Realimentacin: retroalimentacin concreta y
frecuente del cliente, del equipo y de los usuarios
finales da una mayor oportunidad de dirigir el
esfuerzo.
Coraje: se requiere coraje para confiar en que la
retroalimentacin durante el camino es mejor que
tratar de adivinar todo con anticipacin. Se
requiere valor para comunicarse con los dems
cuando eso podra exponer la propia ignorancia.
Se requiere valor para mantener el sistema
simple, dejando para maana las decisiones de
maana. Y, sin un sistema simple, comunicacin
constante y retroalimentacin, es difcil ser
valeroso.

XP en la prctica (i)
Retroalimentacin a escala fina:
Desarrollo guiado por pruebas
Planificacin iterativa
Cliente como parte del equipo
Programacin en pares

Proceso continuo:

Integracin continua
Refactorizacin
Liberacin pequea, entregas frecuentes

XP en la prctica (ii)
Entendimiento compartido:
Diseo simple
Metforas del sistema
Propiedad colectiva del cdigo
Estndares de codificacin

Bienestar del programador:


Ritmo sostenible (Semanas de 40 horas)

Ciclo de la XP

Proceso de desarrollo de software


con XP (i)

Proceso de desarrollo de
software con XP (ii)

Proceso de desarrollo de software


con XP (iii)

Proceso de desarrollo de software


con XP (iv)

Relatos (historias) de
Usuario (i)

Una Historia de usuario es un relato acerca de qu


problema debe resolver el sistema. Cada relato se escribe
en una tarjeta y representa una parte de la funcionalidad
que es coherente para el cliente.
Son escritos por el cliente o usuario, con la ayuda de los
desarrolladores, para permitir estimar los tiempos y asignar
prioridades.
Los clientes ayudan a asegurar que la mayora de la
funcionalidad deseada para el sistema est cubierta con las
historias.
Constan de 3 4 lneas escritas por el cliente en un
lenguaje no tcnico sin hacer mucho hincapi en los
detalles; no se debe hablar ni de posibles algoritmos para
su implementacin, ni de diseos de base de datos
adecuados, etc.

Relatos (historias) de Usuario


(ii)

Planificacin
En el juego de
planificacin, el
cliente y los
programadores
negocian el alcance
del proyecto para
cada iteracin.
El factor crtico es
permitir al cliente
tomar las decisiones
de negocio y al equipo
de desarrollo tomar
las decisiones
tcnicas.

Diseo simple
El diseo debe ser lo ms simple
posible: no introducir estructura, ni
funcionalidad antes de tiempo.
Se puede aadir complejidad ms
adelante.
Inconveniente: Vencer la tendencia al
gran diseo previo

Pruebas automatizadas (i)


Todo cdigo que puede fallar debe tener una
prueba.
Hacer la prueba an antes de la implementacin.
Inconveniente: Obliga a imponer una forma de
trabajar y puede ser necesaria
formacin/experiencia.
Dos tipos: Prueba de Unidad (o del Programador)
y Prueba de Aceptacin (o Funcional, o del
Cliente).
La Prueba de Aceptacin es una prueba formal
conducida para determinar si un sistema
satisface los criterios de aceptacin y permite al
cliente determinar si acepta o no el sistema.

Pruebas automatizadas (ii)


Para cada lenguaje de programacin hay
herramientas de Prueba de Unidad que permiten
automatizar la ejecucin de las mismas, como
JUnit para Java. (ver
http://www.xprogramming.com/software.htm)
Frecuentemente una Prueba de Unidad es mejor
que un comentario para ayudar a entender por
qu una determinada funcin es necesaria, para
demostrar cmo es llamada una funcin y cuales
son los resultados esperados, y para documentar
defectos en versiones previas del programa que
queremos asegurarnos de que no vuelvan.

Integracin continua
Todos los cambios deben ser integrados a
la base del cdigo al menos diariamente.
Las pruebas deben correr al 100% antes y
despus de la integracin.
Cada nueva versin debe tener la mnima
funcionalidad extra que tiene sentido.
Encaja con release early, release often
Ventajas: tener realimentacin de los
usuarios y ofrecer pronto nueva
funcionalidad (+xito).

Programacin en pares

La Programacin en Pares requiere que


dos desarrolladores participen en un
proyecto en una misma estacin de
trabajo.
Cada miembro lleva a cabo la accin que
el otro no est haciendo en ese
momento: Mientras uno redacta Pruebas
de Unidad el otro piensa acerca de la
clase que satisfar a dicha prueba, por
ejemplo.
Los estudios demuestran que, tras
aprender Habilidades Personales dos
programadores son ms que doblemente
productivos que uno slo para una tarea
determinada.

Refactorizacin (i)
Es una tcnica
disciplinada de
reestructurar
cualquier cdigo
existente, alterando
su estructura interna
sin modificar su
comportamiento
externo.

Si su software fuera un
edificio, se parecera mas a
uno de la izquierda o de la
derecha?

Refactorizacin (ii)

Si un programa funciona pero est mal diseado, pronto


surgirn problemas a la hora de actualizarlo. Los problemas
ms comunes pueden ser catalogados como olor de
cdigo (ya que la acumulacin de los mismos provocan
que el cdigo apeste).
Existen listas de refactorizaciones. Ejemplo:

Add Parameter
A method needs more information from its caller.

Add a parameter for an object that can pass on this information.

Caso de Estudio (i)


Tomado de Universidad Politcnica de Valencia
(Espaa)

http://www.dsic.upv.es/asignaturas/facultad/lsi/ejemploxp/

El proyecto consiste en el desarrollo de un


sistema de gestin para una empresa de
confecciones. En dicha gestin de la empresa se
incluyen gestin de pedidos, gestin de clientes
(tanto principal como los de temporada),
facturacin, gestin de productos, gestin de
materias primas, etc...

Caso de Estudio (ii)


Gestin del
proyecto:
Planificacin del
proyecto
Diario de
Actividades

Pres entacin de

Pres entacin de

Documento de

Documento de Micros oft PowerPointMicros oft PowerPoint Micros oft Word


Micros oft Word

Documento de
Micros oft Word

Documento de
Micros oft Word

Documento de
Micros oft Word

Implementacin:
Base de Datos
Interfaces de
Usuario
Cdigo Fuente

Pruebas

Documento de
MHTML Document Micros oft Word

Documento de
Micros oft Word

Documento de
Micros oft Word

ltimas ideas

El mtodo de desarrollo empleado por la programacin


extrema y el que suele llevarse a cabo en la generacin de
Software Libre tienen grandes parecidos.
Hay algunas prcticas de la programacin extrema que no
se usan de manera mayoritaria (pruebas de unidad y de
aceptacin, metfora y refactorizacin) y que son muy
interesantes y provechosas.
XP y bases de datos: cuidar que tanto BDs relacionales
como orientadas al objeto sean flexibles, de manera de
migrar fcilmente los datos en caso de cambios.
En cuanto al lanzamiento de cada mini-versin, usar una
estacin de integracin que permite a los desarrolladores
observar quin y cundo se est realizando, manteniendo
estabilidad en el sistema.

Arquitectura de software
dirigida por modelos
(Model-Driven Architecture)

HERRAMIENTAS CASE
CASE-UML
Rational Rose, Argo/UML, Together, UModel,
MagicDraw, MetaEdit+, Poseidon
CASE-Tiempo Real
Rapsody, Rational Rose Real Time, RapidRMA
CASE-MDA
OptimalJ, AndroMDA, Ameos, Together Architect,
Codagen, ArcStyler, MDE Studio, Objecteering

Herramientas CASE-MDA
Unas 120 herramientas CASE se basan en UML y
slo un 10% soporta parcialmente MDA.
Limitaciones en procesos de:
ingeniera directa (forward engineering)
ingeniera reversa (reverse engineering)
transformaciones (refinamientos, refactoring)
anlisis de consistencia
No proveen asistencia en reenginera de
sistemas legacy

MDA y Reingeniera
Domain Model

CIM

PIM Metamodel
Classifi er

PIM Metamodel

Associati on

Relations hip

Class

Generalizat ion

Generalization

0..*
Assoc EndAdaptee

1..*
Target Adapter

0. .*

AdapteeAdapter

Target

OCL
Constraints

Adaptee

Target

Adapter

{or}

0..*

Attribute

0..*
1
1

1
AssocEndAdapter

0..*

Adaptees

GetAdaptees

O
perat ion
1

AssociationEnd

Class

<instance of>

OCL
Constraints

AdapteeAdapter

1..*
1
Adapter

0..*
1

0..*

1..*
T
argetAdapter

1
AdapterAdapt ee

1..*

Adaptee

SetAdaptees

<instance of>

PIM

Refactoring
Patterns

Rules + Strategies
Components
PSM Metamodel
Nam
edEle
ment

+sup
plier
1..*
+clien
t
1..*

Op
aqueExpression
0..1
(fro
m Kernel)

DirectedRelationship

Depende
ncy

+supplier

Abstractio
n

NamedElement

OCL
Constraints

U
sa
ge

+m
apping

1.. *

1.. *

0..1 0..1
OpaqueExpression
(from Ker nel)

ct
* +contra

Dependency

OCL
Constraints

+client

Realiza
tio
n

Su
bstitutio
n

Rules

(from Kernel )

*
*

0..1

PSM Metamodel
*

Abstraction

Usage

Realization

Classifier

1
1

<instance of>

<instance of>

PSM

Refactoring

Rules + Strategies
Components
ISM Metamodel

ISM Metamodel
Rules

+declari ngClass
0..1
Interface

+declari ngInterface

0..*

+declaredClass

JavaClass
isPublic
isAbstract
isFi nal

+jav
aExceptions

TypedElement

+client

+declarin gClass

OCL
Constraints

DataType
(Jav
a_Li br ary)

+declaringClass
+declaringInterface

Interface

0..*
+declaredClass

JavaClass
isPubli c
isAbstract
isFinal

+declaringClass
+declaredClass
*

*
Member
isFi nal
isStatic

*
NewClass

1..*
Method
i sAbst ract
i sNative
i sSyncronized
i sConstr uctor

0..1

+declaringInterfac e
+declaredInterface

+localAtt

Field

*
{ordered}

OCL
Constraints

+client

*
Member
i Final
s
is Static

Method
isAbstract
isNative
isSyncronized
isConstructor

JavaParameter

<instance of>

<instance of>
Refactoring

Rules + Strategies

ISM

Herramientas CASE y
tecnologas MDA
Tecnologas MDA
UML (Unified Modeling Language)
UML Profiles
MOF (Meta Object Facility)

XMI ( XML Metadata Interchange)


CWM (Common Warehouse Model)

Herramientas CASE y
tecnologas MDA
XMI
Es un estndar de OMG para intercambio de modelos
UML. Es usado para mapear MOF a XML (eXtensible
Markup Language). Especifica cmo los modelos MOF
pueden ser representados en la forma de XML tags; los metamodelos MOF se traducen a XML Document Type Definition
(DTD) y los modelos se traducen a XML documentos que se
corresponden con los DTDs.
Este XML basado en XMI permite el intercambio entre
varias herramientas y repositorios: UML, software(Java, C#)
tecnologas de components (EJB, IDL) y bases de datos.

Herramientas CASE y
tecnologas MDA
CWM
Define un formato comn de intercambio para
metadatos en data warehouse. Provee un lenguaje
comn y definiciones de metamodelos para datos en
datawarehouse. El metamodelo tiene mucho en
comn con el metamodelo UML y agrega metaclases,
por ejemplo, para modelar bases de datos
relacionales. En el contexto de MDA, la
especificacin CWM es til para la integracin
legacy.

CASE basadas en MDA


OptimalJ
OptimalJ (Compuware) es una herramienta que soporta
MDA a nivel de PIM (Plattform Independent Model) para dos
plataformas J2EE y.NET.
Modelos
Modelo de dominio
Modelo de clases
Modelo de servicio
Modelo de la aplicacin
Modelo de presentacin
Modelo de negocio
DBMS
Modelo de cdigo

CASE basadas en MDA


OptimalJ
Transformaciones
Basadas en TPL ( Template Pattern Language)
Patrones de tecnologa
Transformacin de modelos de dominio a
modelos de aplicacin
Patrones de implementacin
Transformacin de modelo de aplicacin a
cdigo

CASE basadas en MDA


OptimalJ
Proceso de desarrollo
Generacin automtica a partir del PIM de
los modelos PSM de la capa de presentacin
(web), capa de negocio (EJB) y bases de datos
Distincin entre bloques libres y protegidos en
el cdigo para impedir la modificacin del
cdigo generado.
La interfaz web generada proporciona una
navegacin por defecto para cada objeto de
negocio.

CASE basadas en MDA


ArcStyler
ArcStyler( Interactive Objects) soporta UML
1.4, OCL y diseo centrado en modelos.
Modelos
Un PIM es representado en trminos de modelos de
clase. No distingue entre PIM y PSM. El modelo
de cdigo es representado como un subsistema donde
diferentes paquetes de cdigo son representados como
componentes.

CASE basadas en MDA


ArcStyler
Transformaciones
Es un sistema basado en uso de cartuchos
(cartridges) para descripcin de
transformaciones
que permite generar aplicaciones de n capas
codificadas en java/J2EE y C#/.NET a partir de
diagramas UML y la especificacin de los
procesos de negocio

CASE basadas en MDA


ArcStyler
Transformaciones
Integra herramientas de modelado (UML) y
desarrollo (ingeniera directa, inversa,
construccin y despliegue de modelos basados
en MOF) con la arquitectura CARAT que
permite la creacin, edicin y mantenimiento de
cartuchos MDA que definen transformaciones

CASE basadas en MDA


ArcStyler
Transformaciones
Arquitectura CARAT
Un cartucho contiene un conjunto de reglas de
transformacin. Existen numerosos cartuchos
para numerosas plataformasJ2EE, .NET, web,..
Utilizan Profiles UML para incluir en los
modelos aspectos especficos de una plataforma.
Una propiedad es la herencia que permite definir
un cartucho a partir de otro existente.

CASE basadas en UML/MDA


Limitaciones
En general, representan extensiones de CASE
UML, muchas estn basadas en UML 1.X que
no estn alineadas on MOF.
Limitada o inexistente integracin de niveles
de CIM y PIM.
Los procesos de ingeniera directa( forward
engineering) no integran especificaciones
OCL. Generan esqueletos de cdigo.
Escaso o nulo soporte para la validacin de
modelos y transformaciones.

CASE basadas en UML/MDA


Limitaciones
No existen rigorosos fundamentos para definir
transformaciones entre modelos.
Escasa trazabilidad
Escaso soporte de ingeniera inversa y en
general de round-trip ingeniera.
Soporte nulo para la reingeniera de sistemas
legacy.
No integran tcnicas de refactoring en distintos
niveles.

Вам также может понравиться