ADAM CASE - Gestión de recursos Informáticos del Departamento

Anuncio
ADAM CASE
Utilización de herramientas CASE frontales en las prácticas de
laboratorio de la asignatura de Ingeniería del Software?
Francisco José García Peñalvo, María N. Moreno García, Ángeles Mª Moreno
Montero, Guillermo González Talaván y Belén Curto Diego
Departamento de Informática y Automática - Universidad de Salamanca
{fgarcia, mmg, amoreno, gyermo}@gugu.usal.es; bcurto@abedul.usal.es
Palabras clave: Herramienta CASE, paradigma estructurado, paradigma orientado a objetos,
DFD, diagrama de clase, UML, laboratorio de Ingeniería del Software
Resumen:
Las herramientas CASE en general constituyen un apoyo fundamental para
favorecer y automatizar el proceso de desarrollo de aplicaciones software a lo
largo de las distintas fases del ciclo de vida del proyecto. Visto desde esta
perspectiva, parece necesario que un futuro ingeniero del software sea formado
en las técnicas necesarias para la construcción de software, pero además tenga
la oportunidad de aplicarlas en herramientas que las soporten. Sin embargo, la
disponibilidad de estas herramientas para su uso en docencia no es siempre
factible por dos motivos fundamentales: el alto coste de las licencias de las
mismas y la diversidad de herramientas con las que debe familiarizarse un
estudiante.
En este artículo se presenta la herramienta ADAM CASE que se ha
desarrollado en el Departamento de Informática y Automática de la
Universidad de Salamanca para solventar las carencias existentes en la parte
práctica de la asignatura Ingeniería del Software dentro de la titulación de
Ingeniería Técnica en Informática de Sistemas de dicha Universidad.
?
Este trabajo ha sido parcialmente financiado por el proyecto SA02/00F subvencionado por
la Junta de Castilla y León
1
2
1.
F. J. García Peñalvo et al.
INTRODUCCIÓN
El ordenador se ha convertido en una herramienta de trabajo en
prácticamente la totalidad de sectores socio-culturales, existiendo software
especializado que facilita y automatiza en gran medida las diversas tareas
laborales que en éstos se tienen que llevar a cabo.
El propio sector del desarrollo de software no es ajeno a esta situación,
necesitando herramientas que apoyen al ingeniero del software en todas las
fases y actividades que acontecen en el ciclo de vida de un proyecto
software. Estas aplicaciones suelen recibir el nombre genérico de
herramientas CASE (Computer Aided/Assisted Software/System
Engineering).
Este hecho se tiene perfectamente asumido a la hora de organizar la
docencia de las asignaturas de las Ingenierías en Informática que hacen un
mayor hincapié en las fases de codificación, donde el uso exhaustivo de
entornos de desarrollo integrados en los laboratorios de estas asignaturas es
una práctica común.
Sin embargo, conforme se va ascendiendo en el nivel de abstracción del
software, es menos frecuente la utilización de herramientas automáticas que
den soporte a los procesos y conceptos impartidos.
Diversos argumentos podrían darse para justificar la afirmación anterior,
aunque todos ellos tienen como trasfondo una causa económica: el coste de
dotar los laboratorios con licencias operativas de herramientas de esta
tipología es alto.
Esta situación se hace especialmente grave en las asignaturas
relacionadas con la Ingeniería del Software (IS), donde el uso de
herramientas CASE frontales es muy deseable como soporte automático a
las fases de análisis y diseño.
En este trabajo se presenta la herramienta ADAM CASE v1.0, concebida
para su aplicación principalmente (aunque no de manera única) en el
laboratorio de la asignatura IS de la Ingeniería Técnica en Informática de
Sistemas (ITIS) de la Universidad de Salamanca.
El resto del artículo se organiza como sigue: en la segunda sección se
explica cómo se va a utilizar esta herramienta en la docencia práctica de la
asignatura IS en el contexto de la Universidad de Salamanca. La sección
tercera se centra en exponer las características técnicas y funcionales más
destacadas de ADAM CASE v1.0. La sección cuatro enuncia otros trabajos
relacionados comparándolos con la herramienta desarrollada. Por último, la
quinta sección cierra el artículo con las conclusiones y la evolución prevista
de este trabajo.
ADAM CASE
2.
3
DOCENCIA PRÁCTICA DE IS APOYADA POR
HERRAMIENTAS CASE
Pese al fracaso inicial de la primera generación de la tecnología CASE en
la década de los ochenta, debido fundamentalmente a sus limitaciones y a su
incorrecta asimilación e implantación, ha surgido una nueva generación de
herramientas (muchas de las cuales ya no aparecen bajo el término CASE,
para no revivir viejos fantasmas) que pueden aportar unas mayores
prestaciones en el desarrollo sistemático del software.
No obstante, aunque las ventajas de automatizar el proceso de desarrollo
del software son obvias, diversos informes (Iivari, 1996; Sharma and Rai,
2000) no son muy optimistas con respecto a la utilización masiva de estas
herramientas aplicadas a los sistemas de información de las organizaciones,
destacando un mayor uso de los entornos integrados de programación frente
a las herramientas de apoyo a otras actividades del ciclo de vida, donde el
software se concibe o se maneja desde un mayor nivel de abstracción.
Aun así, desde una perspectiva curricular se recomienda la integración de
la tecnología CASE en los currículos de informática (Granger and Little,
1996). Se busca mejorar la adecuación de los nuevos titulados para el trabajo
con este tipo de herramientas, de forma que redunde en una mayor calidad
del software, así como de su proceso de construcción, en el momento en que
éstos se incorporen a su puesto laboral.
Concretamente, en la asignatura de Ingeniería del Software, impartida en
el entorno de la Universidad de Salamanca en el tercer curso de ITIS, se
intenta que el alumno conozca y utilice herramientas CASE. Evidentemente,
dadas las limitaciones temporales con las que se cuenta, hay que decantarse
por un tipo concreto, y en este caso las elegidas son las herramientas CASE
frontales, es decir, aquéllas que hacen un mayor énfasis en las fases de
análisis y diseño del software. Para una información más detallada sobre la
clasificación de herramientas CASE se recomienda la consulta de (Fuggetta,
1993; Piattini et al., 1996; Pressman, 1997).
La tecnología CASE no aparece en esta asignatura como el centro de la
misma. Más bien se busca que sea una herramienta para aplicar las técnicas
de especificación y modelado, tanto del paradigma estructurado como del
paradigma objetual, estudiadas en la parte teórica. Así, estas herramientas
deberían de servir de apoyo y validación para la creación de los informes de
los supuestos prácticos que los alumnos deben elaborar en el laboratorio de
la asignatura.
En cursos anteriores la consecución de este objetivo se veía
comprometido por la falta de herramientas que facilitar a los alumnos. Estas
carencias estaban motivadas por la siguiente casuística:
4
F. J. García Peñalvo et al.
?? En el terreno comercial existían diferentes alternativas, pero
dotar a un laboratorio con las licencias suficientes de dos
herramientas (una adecuada para el paradigma estructurado y
otra adecuada para el paradigma objetual) era muy costoso,
especialmente cuando el énfasis de la asignatura no estaba
orientado a las mismas.
?? En el campo del software de libre distribución, en el caso del
paradigma objetual existían muchas y diversas posibilidades,
todas ellas con sus peculiaridades y limitaciones. Sin embargo,
en el caso del paradigma estructurado, la oferta era más pobre,
siendo accesibles algunas versiones de demostración
excesivamente limitadas en sus prestaciones.
Ante esta situación, se optó por recomendar algunas versiones de
herramientas con soporte de UML (Unified Modeling Language), como por
ejemplo Rational Rose (Rational, 2000) o ArgoUML (Tigris, 2000), para la
parte de Orientación a Objetos; así como citar algunos editores gráficos que
soportaban notaciones de diferentes metodologías estructuradas.
No siendo esta situación la más propicia para afrontar unas prácticas de
laboratorio acordes con los objetivos docentes que se pretendían conseguir,
se optó por diseñar e implementar un conjunto de herramientas CASE para
su aplicación en docencia y en proyectos de investigación dentro del
Departamento de Informática y Automática de esta Universidad.
Como objetivo inicial se planteó conseguir una primera versión de una
herramienta CASE frontal que fuera capaz de dar soporte a las dos técnicas
de mayor incidencia en la asignatura de IS, esto es, DFDs (Diagramas de
Flujos de Datos) y los diagramas de clase de UML. Todo ello bajo una
misma interfaz de usuario que facilitase la aceptación y formación por parte
de los alumnos y profesores que la iban a emplear.
Resultado de esta iniciativa surge ADAM CASE v1.0, cuya apariencia se
puede apreciar en la Figura 1, que será empleada en la docencia práctica de
la asignatura Ingeniería del Software en el curso 2000-2001.
ADAM CASE
5
Figura 1. Apariencia de la herramienta ADAM CASE
3.
CARACTERÍSTICAS DE LA HERRAMIENTA
ADAM CASE
La herramienta ADAM CASE v1.0 se puede considerar como una
herramienta CASE frontal que, bajo una plataforma Windows 9x, NT o
2000, asiste a un desarrollador bien para la creación de DFDs, utilizando la
notación de Yourdon (Yourdon, 1989) para ello, o bien para la creación de
diagramas de clase de UML (Booch et al., 1999), facilitando en ambos casos
la creación automática de un diccionario de datos y de la documentación
técnica pertinente.
En el presente apartado se van a describir someramente sus
características más sobresalientes, diferenciando los aspectos técnicos que se
han tenido en cuenta para su desarrollo por un lado y los aspectos
funcionales más destacables por otro.
3.1
Aspectos técnicos
La herramienta ha sido desarrollada completamente bajo el paradigma
orientado a objetos, utilizando MS Visual C++ 6.0 para su implementación
final.
6
F. J. García Peñalvo et al.
Una de las primeras restricciones de diseño fue la de integrar en una sola
aplicación la creación de DFDs y de diagramas de clase, para obtener una
única interfaz de usuario que simplificase su manejo.
Para el diseño de la interfaz se tuvieron en cuenta las siguientes
restricciones:
?? La interfaz de usuario debía ser independiente de la
funcionalidad ofrecida por la herramienta, para que de esta
manera pudiera ser más fácilmente portable a otras plataformas.
Con este fin se ha utilizado como base del diseño de la interfaz
de usuario el patrón Modelo-Vista-Controlador (MVC),
ampliamente detallado en (Buschmann et al., 1996).
?? El aspecto de la interfaz no debía variar en exceso de otras
herramientas comerciales, eligiéndose como modelo la interfaz
ofrecida por la herramienta Rational Rose 98 por ser la
herramienta CASE más difundida para el trabajo con UML.
La arquitectura de la herramienta desarrollada, entendiendo como
arquitectura la estructura global con sus subsistemas, sus interrelaciones y su
correspondiente documentación (Sommerville, 1996), está basada en el
modelo propuesto por (Losavio et al., 1999) para un entorno CASE
orientado al objeto. Dicho modelo propone tres capas: interfaz, semántica e
integración.
En la primera versión de ADAM CASE se tienen claramente definidas
las dos primeras capas, estando la capa de integración en un nivel menos
perfilado. En la Tabla 1 se recogen los elementos funcionales que se tienen
actualmente contemplados en cada una de las capas de la arquitectura.
Capa
Interfaz
Funcionalidad
?? Creación de los modelos
?? Interfaz gráfica de usuario
Semántica
?? Análisis y diseño
?? Gestión del proyecto
Integración
?? Mecanismos de exportación de proyectos
Tabla 1. Capas en la herramienta ADAM CASE v1.0
3.2
Características funcionales más sobresalientes
Como ya se ha indicado, el objetivo fundamental de esta primera versión
de ADAM CASE es contar con una herramienta que permita la creación de
DFDs o diagramas de clase de UML, a través de una interfaz gráfica de
usuario común. De forma adicional se incluye una serie de facilidades
destinadas a facilitar las labores de documentación propias de las fases de
análisis y diseño, destacando la gestión del diccionario de datos y la
generación automática de informes.
ADAM CASE
7
Con el objeto de presentar las partes más significativas de ADAM CASE,
se va a organizar este subapartado en dos puntos: la creación de DFDs y la
creación de diagramas de clase de UML.
3.2.1
Creación de DFDs
El DFD es la técnica más representativa dentro de las metodologías
estructuradas para modelar la vista funcional de un sistema software.
Los DFDs se crean dentro de lo que en ADAM CASE se denomina
proyecto estructurado. El proceso de creación es muy intuitivo y está
especialmente pensado para la creación de DFDs por niveles, partiendo del
clásico diagrama de contexto y siguiendo con una nivelación descendente.
La creación de cualquiera de los diversos diagramas que componen un
DFD nivelado sigue unos pasos comunes:
1. Se van añadiendo y estableciendo las propiedades de los diferentes
componentes que forman parte del diagrama (procesos, almacenes y
entidades externas), eligiéndolos de la barra de componentes (ver Figura
2). Como notación de éstos se ha elegido la propuesta por Edward
Yourdon (Yourdon, 1989).
2. Se interconectan los componentes del diagrama mediante flujos de datos.
3. Se asocian los flujos con entradas del diccionario de datos.
4. Si se desea se explosiona un proceso para dar lugar a un nuevo diagrama.
Navegador
del proyecto
Barra de
componentes
Selector
Flujo de
datos
Proceso
Entidad
externa
Almacén
Área de trabajo
Figura 2. Creación de un DFD
8
F. J. García Peñalvo et al.
El seguimiento y mantenimiento del proyecto se facilita gracias al
navegador que incluye la herramienta, que permite el acceso directo a las
propiedades de cada elemento que aparece en el proyecto (ya sean diagramas
o componentes de dichos diagramas).
Una de las características más interesantes que ofrece esta aplicación es
la gestión del Diccionario de Datos (DD), que se va construyendo a la par
que se va desarrollando el DFD, lo que facilita su modificación y su
inclusión en el informe final.
En la Figura 3 se presenta el cuadro de diálogo utilizado para el
especificación de un flujo de datos, donde se puede apreciar la estrecha
relación existente entre las propiedades de éste y el diccionario de datos. En
esta misma figura también se ha incluido el cuadro de diálogo principal
utilizado para realizar la gestión del propio diccionario de datos.
Enlace de un
flujo con el DD
Gestión del DD
Figura 3. Gestión del diccionario de datos
Una vez que se tiene terminado el DFD la herramienta tiene la opción de
generar la documentación con el modelo funcional del sistema en formato
HTML, permitiendo al usuario seleccionar los elementos que desea que se
vean reflejados en el mismo, mediante el formulario que se recoge en la
Figura 4.
ADAM CASE
9
Figura 4. Generación de la documentación del modelo funcional basado en DFDs
3.2.2
Creación de diagramas de clase de UML
Un diagrama de clase presenta, fundamentalmente, un conjunto de clases
junto con sus relaciones. Este tipo de diagramas son los más comunes en el
modelado de sistemas orientados a objetos; utilizándose para describir la
vista de diseño estática de un sistema (Booch et al., 1999).
Un diagrama de clases en ADAM CASE v1.0 se crea dentro de un
proyecto UML.
En los diagramas de clases no se cuenta con diferentes niveles de
refinamiento como sucede en los DFDs (aunque si se pueden anidar
paquetes), no existiendo tampoco un diccionario explícito, aunque como se
puede comprobar en la documentación que se genera con esta herramienta,
se mantiene toda la información relativa a las clases y sus relaciones.
El procedimiento normal para la creación de un diagrama de clases
podría ser el siguiente:
1. Creación de las clases, eligiendo su icono de la barra de
componentes
2. Establecimiento de sus características (atributos y métodos)
3. Establecimiento de las relaciones entre clases
4. Refinamiento de los elementos anteriores
La interfaz de usuario está formada por los mismos componentes que se
presentaron con anterioridad en el caso de los DFDs, esto es,
fundamentalmente un navegador donde se recogen todos los elementos
10
F. J. García Peñalvo et al.
integrantes del proyecto, la barra con los componentes de los diagramas de
clase de UML y un área de trabajo donde desarrollar los diagramas, como se
puede apreciar en la Figura 5.
Navegador
del proyecto
Barra de
componentes
Selector
Clase
Nota
Paquete
Asociación
Dependencia
Agregación
Composición
Generalización/Especialización
Adjunto Nota
Área de
trabajo
Figura 5. Elementos principales de la interfaz gráfica en un proyecto UML
Al igual que con los DFDs, después de la creación de un diagrama de
clases existe la posibilidad de generar un informe en formato HTML, con
opción a configurar los elementos que se desea que aparezcan en dicho
informe.
4.
TRABAJOS RELACIONADOS
Dentro del proyecto Tigris (Tigris, 2000) se está desarrollando una
herramienta de libre distribución para la edición de diagramas UML,
ArgoUML. Esta herramienta, en continuo desarrollo, cuenta con soporte
para más diagramas que la aquí presentada, pero centrada exclusivamente en
UML, no da soporte a los métodos estructurados.
5.
CONCLUSIONES Y TRABAJO FUTURO
En este artículo se ha presentado la versión 1.0 de la herramienta ADAM
CASE, con capacidad para la creación de DFDs y diagramas de clase de
UML, todo ello bajo una misma interfaz que facilita sumamente su
aprendizaje y manejo.
Esta herramienta va a ser utilizada para dar soporte a las asignaturas de
Ingeniería del Software y Programación Orientada a Objetos del tercer curso
de la ITIS en la Universidad de Salamanca a partir del curso 2000-2001.
ADAM CASE
11
Los elementos más destacados de esta versión, a parte de la posibilidad
de crear ambos tipos de diagramas, son la gestión automática de un
diccionario de datos y la generación de informes en formato HTML.
Como trabajo futuro dentro de esta línea de trabajo se pretende:
?? Ampliar los diagramas soportados (los más inmediatos son
diagramas entidad-interrelación y casos de uso, para proyectos
estructurados y de UML respectivamente)
?? Portar la herramienta a otras plataformas, Linux inicialmente
?? Ofrecer mayores posibilidades en la generación de informes,
integrándolos con herramientas ofimáticas
?? Utilizar XML como formato de soporte e intercambio de los
diagramas realizados. Este lenguaje también puede utilizarse para la
creación de versiones multilingües de las herramientas.
6.
BIBLIOGRAFÍA
Booch, G., Rumbaugh, J., Jacobson, I. The Unified Modeling Language User Guide. Object
Technology Series. Addison-Wesley, 1999.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M. Pattern Oriented Software
Architecture: A System of Patterns. John Wiley & Sons, 1996.
Fuggetta A. A classification of CASE technology. IEEE Computer 1993; 26(12):25-38.
Granger M. J., Little J. C. Integrating CASE tools into the CS/CIS curriculum. Proceedings of
the conference on Integrating technology into computer science education, ITiCSE '96;
1996 June 2-6, Barcelona, Spain: ACM 1996: 130-132
Iivari J. Why are CASE tools not used? Communications of the ACM 1996; 39(10):94-103.
Losavio F., Matteo A., Pérez M. An architecture for an object-oriented CASE environment.
Journal of Object-Oriented Programming (JOOP) 1999; 12(6):49-54.
Piattini, M. G., Calvo-Manzano, J. A., Cervera, J., Fernández, L. Análisis y Diseño Detallado
de Aplicaciones Informáticas de Gestión. Ra-ma, 1996.
Pressman, R. S. Software Engineering: A Practitioner’s Approach. 4th Edition. McGraw Hill,
1997.
Rational Rose Inc. Rational Rose Web Site.
http://www.rational.com/products/rose/index.jtmpl. [Última vez visitado, 5-7-2000].
Sharma S., Rai A. CASE deployment in IS organizations. Communications of the ACM 2000;
43(1):80-88.
Sommerville, I. Software Engineering. 5th edition. Addison-Wesley, 1996.
Tigris. ArgoUML Project main site. http://argouml.tigris.org/. [Última vez visitado, 5-72000].
Yourdon, E. Modern Structured Analysis. Prentice Hall, 1989.
Descargar