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.