<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>SET (Software Engineering Tutor). Una herramienta para la construcción guiada de modelos de dominio</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Universidad de Salamanca</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Facultad de Ciencias</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Plaza de los Caídos s/n</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Salamanca (España) acepeda@usal.es</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ser@usal.es</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>fgarcia@usal.es</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>This paper presents a CASE tool named Software Engineering Tutor (SET), aimed at improving the student and software engineering formation in order to guide the domain and use case models construction. Besides, this tool offers a repository of case studies, trying to make an effort to share experiences around the user community. 1 Del inglés Computer Aided Software Engineering (Ingeniería del Software Asistida por Ordenador).</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>CASE tool</kwd>
        <kwd>domain model</kwd>
        <kwd>use case</kwd>
        <kwd>software engineering formation</kwd>
        <kwd>educational technologies</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introducción</title>
      <p>La Ingeniería del Software es una disciplina de las ciencias de la computación que
ofrece métodos o técnicas para desarrollar y mantener software de calidad que
resuelven problemas de todo tipo. Cada vez resulta más frecuente la consideración de
esta disciplina como una nueva área de la Ingeniería hasta el punto de que el
Ingeniero del Software se ha hecho imprescindible en el mundo profesional y con
todo el derecho.</p>
      <p>Son muchas las herramientas CASE1 que prestan su apoyo al Ingeniero del
Software y que contribuyen en gran medida a un aumento de la productividad en el
desarrollo de software reduciendo el coste en términos de tiempo y dinero. Estas
herramientas se aplican en todos los aspectos del ciclo de vida de desarrollo del
software como son la planificación, análisis y diseño del proyecto, documentación
(textual y gráfica), cálculo de costes, generación automática de código e incluso
detección de errores entre otras.</p>
      <p>Este artículo presenta una herramienta CASE más, denominada SET, Software
Engineering Tutor, pero especialmente novedosa en el sentido de que centra su
atención en el aspecto formativo y de autoayuda para el Ingeniero del Software, tal y
como se puede deducir ligeramente de su nombre. La herramienta ha sido
desarrollada en el marco de un proyecto fin de carrera de la Ingeniería Técnica en
Informática de Sistemas en la Universidad de Salamanca. De igual forma ha sido
concebida como una herramienta de apoyo a la docencia en general, y en particular
dirigida a los talleres de prácticas de la asignatura de tercer curso Ingeniería del
Software.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Descripción funcional</title>
      <p>Las características funcionales de la herramienta SET se centran fundamentalmente
en los conceptos siguientes:
• Un asistente de modelado como mecanismo de apoyo a la construcción de modelos
del dominio.
• Un repositorio centralizado con casos de estudio de ejemplo.
• Compatibilidad con otras herramientas CASE.
• Interfaz de usuario basada en diferentes vistas del modelo en construcción.</p>
      <sec id="sec-2-1">
        <title>El asistente de modelado</title>
        <p>La idea original de la herramienta busca como objetivo principal iniciar al alumno (y
profesional del software) en la fase del análisis orientado a objetos por medio de la
construcción guiada de Modelos del Dominio (o modelos conceptuales) y Modelos de
Casos de Uso. Ambos modelos se construyen gráficamente por medio de diagramas
UML. Sin embargo, su verdadera aportación dentro del mundo de las herramientas
CASE reside en su orientación al adiestramiento e instrucción en la construcción de
dichos modelos mediante un asistente de modelado integrado. Es precisamente este
asistente inteligente el que la convierte en una herramienta única.</p>
        <p>
          El asistente de modelado consiste en un cuadro de diálogo que permite navegar
libremente a través de los diferentes pasos que guían el proceso de construcción de los
modelos. La mayoría de las estrategias utilizadas para la construcción del asistente,
como por ejemplo, la identificación de clases conceptuales basada en listas de
categorías, están extraídas de la bibliografía [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ][
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>Para cada uno de los pasos se muestra de forma somera en qué consiste, así como
los controles necesarios para que el usuario pueda llevar a cabo su cometido; además,
existe la opción de ampliar la información relativa al paso en curso, con instrucciones
detalladas (y con ejemplos) sobre cómo completarlo.</p>
        <p>SET (Software Engineering Tutor). Una herramienta para la construcción guiada de
modelos de dominio 3</p>
        <p>El asistente está totalmente asociado con el entorno principal, de forma que ambos
elementos van a trabajar sobre los mismos datos. Así, los efectos que produzcan las
acciones realizadas en el asistente serán visibles de forma instantánea en el entorno.</p>
      </sec>
      <sec id="sec-2-2">
        <title>El repositorio de plantillas</title>
        <p>Toda herramienta que preste un cierto carácter docente precisa de una base de
conocimiento útil y de apoyo al aprendizaje. En nuestro caso, Software Engineering
Tutor dispone de casos de estudio bien conocidos que sirven de ejemplo para el
alumno. De acuerdo con este planteamiento, se utiliza el concepto de plantilla como
un caso de estudio predefinido (o modelo de dominio estándar), que dota a la
herramienta con la facilidad de construir nuevos modelos a partir de otros ya
existentes.</p>
        <p>Con la finalidad de generalizar el uso de la herramienta, y por supuesto, el de las
plantillas, se ha creado un espacio virtual en Internet, en la línea de un repositorio
centralizado, desde el que se ofrece un conjunto de plantillas estándar con soluciones
a casos de estudio bien conocidos. Dichas plantillas se pueden consultar y descargar
directamente del repositorio sin necesidad de tener que salir del marco de la
aplicación. Además, el repositorio está preparado para que sólo aquellos usuarios que
estén registrados puedan interaccionar con él.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Compatibilidad con otras herramientas CASE</title>
        <p>La herramienta dispone de formatos propios para mejorar el rendimiento y eficiencia
en el trabajo con los documentos. Se diferencian dos tipos:
• Archivos de proyecto (con extensión .spr).
• Archivos de plantilla (con extensión .stp).</p>
        <p>
          Por otro lado, tanto las plantillas predefinidas como los modelos construidos con
la herramienta pueden ser exportados de acuerdo a la especificación XMI (XML
Metadata Interchange) para el intercambio de diagramas [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. De esta forma, la
herramienta no se convierte en una aplicación cerrada, sino que se complementa con
el resto de herramientas CASE que prestan su apoyo al resto de fases en el ciclo de
vida del software.
        </p>
        <p>Cabe destacar que, aunque la herramienta ofrece al usuario todo lo necesario para
la construcción de los diagramas asociados a los modelos de dominio y casos de uso,
la finalidad principal de la aplicación no es la de diagramar, sino tutorizar y asistir en
la elaboración de dichos modelos.</p>
      </sec>
      <sec id="sec-2-4">
        <title>La interfaz de usuario</title>
        <p>
          El marco de la aplicación está dividido en cuatro vistas que ofrecen perspectivas
diferentes del modelo en construcción:
• Vista del Modelo: Se muestran todos los elementos del modelo en el que se está
trabajando en forma de árbol, de manera que están perfectamente clasificados y
jerarquizados. Asociada a esta vista hay una barra de herramientas en la cual el
usuario tiene disponibles algunas opciones de gestión del modelado, como la
creación y eliminación de elementos [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
• Vista del Diagrama: Contiene la superficie de dibujado en la que se muestra una
representación del modelo en uso en forma de diagrama. Algunos parámetros
pueden ser ajustados directamente mediante la vista de diagrama, como la posición
de los elementos [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
• Ventana de Propiedades: En esta vista aparecerán en todo momento las
propiedades del elemento seleccionado, ya sean modificables o no. Se listará la
totalidad de las propiedades junto a sus respectivos valores actuales en una tabla
con dos columnas. Todos los parámetros cuyos valores sean susceptibles de ser
modificados podrán ser ajustados manualmente en la vista de propiedades. La
selección de un elemento puede realizarse tanto en la vista de modelo como en la
vista de diagrama.
• Consola de operaciones: Consiste en una consola texto de sólo lectura en la cual se
va dejando constancia de cada acción relevante relacionada con el proyecto en uso.
        </p>
        <p>SET (Software Engineering Tutor). Una herramienta para la construcción guiada de
modelos de dominio 5</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Descripción técnica</title>
      <p>• Potencia para la construcción de interfaces gráficas así como disponibilidad de una
completa biblioteca de dibujado, GDI+, utilizada para el sistema de diagramación.
• Integración entre aplicaciones de Windows Forms y Web Services de ASP.NET.
• Gran potencia y versatilidad en la fase de pruebas (especialmente unitarias).</p>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusiones</title>
      <p>Software Engineering Tutor pretende ser el germen de un nuevo tipo de herramientas
CASE destinadas a la formación de futuros Ingenieros del Software. El claro enfoque
docente está marcado por un completo y contrastado asistente que guía la
construcción de modelos de dominio y casos de uso.</p>
      <p>Una de las ventajas en la incorporación de la herramienta a los talleres de prácticas
de la asignatura Ingeniería del Software será la unificación del proceso de
documentación gracias a la generación automática de informes.</p>
      <p>Por otro lado, la iniciativa del repositorio de casos de estudio, amplía no sólo las
posibilidades de uso de la herramienta sino también, poder compartir otros casos de
estudios construidos por otros miembros de la comunidad de usuarios y profesionales
del sector.</p>
      <p>También cabe destacar la posibilidad de trabajar con la aplicación cliente en modo
offline (gracias a su naturaleza distribuida).</p>
      <p>Por último, la compatibilidad con los estándares UML y XMI, permite aprovechar
los modelos que han sido desarrollados utilizando SET en otras aplicaciones.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Referencias</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Larman</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          “
          <string-name>
            <surname>Applying</surname>
            <given-names>UML</given-names>
          </string-name>
          and
          <article-title>Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process”</article-title>
          . 2nd Ed. Prentice Hall,
          <year>2002</year>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Shlaer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mellor</surname>
            <given-names>S. J.</given-names>
          </string-name>
          “
          <article-title>Object-Oriented Analysis: Modeling the World in Data”</article-title>
          . Yourdon Press,
          <year>1988</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. OMG.
          <source>“MOF 2</source>
          .0/XMI Mapping,
          <year>v2</year>
          .
          <fpage>1</fpage>
          .1”. Object Management Group Inc. Document formal//2007-12-01 [en línea]. Disponible en: http://www.omg.org/docs/formal/07-12- 01.pdf [Última vez visitado, sep-2008]
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. OMG. “
          <source>Unified Modeling Language: Superstructure. Version 2</source>
          .0”. Object Management Group Inc. Document formal/
          <fpage>05</fpage>
          -07-04 [en línea]. http://www.omg.org/cgibin/doc?formal/05-07-04 [Última vez visitado, sep-2008]
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Rumbaugh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Booch</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          “
          <article-title>The Unified Modeling Language</article-title>
          .
          <source>Reference Manual”. 2nd Ed. Addison-Wesley</source>
          ,
          <year>2005</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>