Manual del Desarrollador

El objetivo de este Manual del Desarrollador es el de introducir a los nuevos desarrolladores y colaboradores en el estado actual del proyecto eOPSOA, así como de las herramientas y procesos que se deben seguir en el desarrollo.

Consideraciones generales

eOPSOA es una herramienta de Software Libre con licencia Eclipse Public License v1.0. El lenguaje de programación usado en el desarrollo es Java, la aplicación se distribuye como un conjunto de plugins para la plataforma Eclipse.

El objetivo general de eOPSOA es el de proveer al analista y testeador de una herramienta que les facilite la aplicación del marco metodológico OPSOA (OPen SOurce Assessment). Además, están establecidos los siguientes requisitos secundarios: Además del objetivo anterior, eOPSOA debe cumplir además los siguientes requisitos:

  • Se intentarán utilizar frameworks y herramientas propias de la plataforma Eclipse, como por ejemplo EMF, CNF, SWT, JFace… etc.
  • El idioma de desarrollo y del histórico del control de versiones será el inglés, con el fin de abrir el desarrollo al mayor público posible.
  • La interfaz de usuario debe ser fácilmente traducible a otros idiomas.
  • Los ficheros de los proyectos deben guardarse en XML, para que otras herramientas existentes o futuras puedan integrarlos fácilmente.

Herramientas del desarrollador

Durante el desarrollo de eOPSOA se intentarán primar el uso de herramientas Software Libre sobre otras propietarias, aunque dependerá de la calidad y disponibilidad de las primeras.

Las herramientas que se han venido usando hasta ahora para desarrollar eOPSOA son las siguientes:

Documentación del Desarrollador

eOPSOA

Certificación OPSOA

Manuales

Entregables RUP, diagramas UML

Javadoc del proyecto

Enlaces de interés

Buscadores de código

Java

Eclipse

Eclipse Corner Articles

SWT, JFace, Eclipse Forms, Eclipse UI

EMF

SVN

Libros

The Java's Developer's Guid to Eclipse

EMF Eclipse Modeling Framework (Second Edition)

Professional Eclipse 3 for Java Developers

Contributing to Eclipse: Principles, Patterns, and Plug-Ins

Eclipse Plug-ins (3rd Edition)

Forja de eOPSOA

El proyecto se encuentra hospedado en la forja de Molinux, siendo la página principal del proyecto eOPSOA dentro de esta https://forja.molinux.info/projects/eopsoa. Aunque no es necesario estar registrado para usar la mayoría de los servicios, se aconseja registrarse si se participa en el desarrollo de eOPSOA.

Entre otros, eOPSOA utiliza los siguientes servicios de la forja:

Acceso al SVN

En las instrucciones de acceso al repositorio en la Forja de Molinux comentan que se puede acceder al repositorio utilizando los protocolos svn://, svn+ssh://, y https://. Sin embargo, los protocolos svn:// y svn+ssh:// no están en realidad soportados, y es por tanto necesario utilizar obligatoriamente https://.

Dentro de la forja de Molinux, en la página del control de versiones del proyecto hay instrucciones para la configuración del cliente para el acceso al repositorio SVN. Puedes usar cualquier cliente SVN, aunque se recomiendan los proyectos Subversive o Subclipse. Ambos son plugins para Eclipse que se integran dentro de la plataforma, son muy maduros, y están configurados por defecto para no subir al repositorio ficheros binarios.

Hay dos formas de acceso, como usuario anónimo y como desarrollador.

Acceso anónimo

El acceso anónimo al repositorio SVN de la Forja de Molinux no funciona. Los administradores han sido avisados en varias ocasiones, y las única opciones son el acceso como desarrollador, acceder desde la interfaz web o descargar la nightly build del repositorio.

Tiene la ventaja de poder acceder al SVN sin registrarse en la forja, pero el acceso es exclusivamente como solo lectura. Para acceder de forma anónima al repositorio, debes configurar tu cliente para que use la URL https://forja.molinux.info/svnroot/eopsoa y el usuario anonsvn, o escribir en la consola:

svn checkout --username anonsvn https://forja.molinux.info/svnroot/eopsoa

en ambos casos, cuando se pregunte por una contraseña esta es anonsvn.

Acceso como desarrollador

Para poder acceder al repositorio SVN como usuario registrado, primero debes registrarte en la forja y a continuación pedir solicitar participar en el proyecto. Una vez aceptada tu participación, puedes configurar tu cliente SVN para que utilice la URL https://forja.molinux.info/svnroot/eopsoa y el usuario y contraseña que has registrado previamente en la forja. Otra opción es escribir en la consola:

svn checkout --username developername https://forja.molinux.info/svnroot/eopsoa

sustituyendo developername por el nombre de tu usuario en la forja.

Estructura del repositorio SVN

El repositorio SVN se encuentra estructurado según una jerarquía de directorios de la siguiente manera:

  • Código fuente: Contiene el código fuente de los plugins, así como los modelos Ecore utilizados por EMF.
    • La rama trunk es la rama principal del proyecto, y contiene la última versión de desarrollo del programa. Debe intentar mantenerse razonablemente estable.
    • En branches se alojan ramas de desarrollo paralelo que por la razón que sea, no están integradas en trunk. Estas ramas no tienen la restricción de estabilidad que si tiene la rama trunk.
    • En el directorio tags se marcan revisiones de interés, como por ejemplo el punto en el que se liberó una versión determinada del programa.
/code/
/code/trunk
/code/branches
/code/tags
  • Gestión de configuración: Contiene los entregables producidos por RUP en cada iteración, a su vez separados en subdirectorios.
    • /management/analysis_design almacena los ficheros del modelo de Rational Rose. En este modelo se almacenan los diagramas UML utilizados durante la implementación.
    • /management/planning contiene la planificación del proyecto en el fichero planning.planner. Debe ser editado con la última versión de Planner.
    • /management/requirements almacena el modelo de requisitos en formato de Rational RequisitePro. Durante las distintas iteraciones del proyecto se han ido identificando una serie de requisitos funcionales, a partir de los cuales se realiza el diseño UML y posteriormente su implementación. El modelo de requisitos de RequisitePro y Rose están enlazados, de tal forma que los requisitos funcionales están asociados con su correspondiente documentación.
    • /management/templates plantillas propias, diseñadas para ser utilizadas con RequisitePro.
    • /management/ui_sketches almacena un proyecto Eclipse, conteniendo ficheros del tipo fichero.screen. Son los prototipos de la interfaz que se van desarrollando al principio de cada iteración, los cuales son sometidos a revisión y cuando están maduros son utilizados como plantilla para programar finalmente la interfaz.
/management/
/management/analysis_design
/management/planning
/management/requirementse
/management/templates
/management/ui_sketches
  • Pruebas de concepto: Contiene principalmente proyectos Eclipse de prototipos que se han ido construyendo a lo largo del desarrollo. Aunque no son útiles, y la mayoría han sido posteriormente integrados en la rama de desarrollo principal, pueden ser útiles para probar como funcionan componentes muy concretos.
/proof-of-concept/

Estructura del Proyecto

Las guías de estilo que se procuran seguir durante la codificación son:

En todo el desarrollo se procura seguir el patrón Modelo Vista Controlador, así como gran cantidad de Patrones de diseño.

Al día de hoy, la feature eOPSOA está compuesta por 6 plugins:

org.uclm.eopsoa.core
org.uclm.eopsoa.core.edit
org.uclm.eopsoa.core.editor
org.uclm.eopsoa.core.tests
org.uclm.eopsoa.ui
org.uclm.eopsoa.ui.navigator

org.uclm.eopsoa.core (core)

Es el núcleo de la feature eOPSOA, responsable del modelo de datos de la aplicación, y de la gestión de los ficheros del proyecto.

Fundamentalmente se trata de un metamodelo Ecore, a partir del cual se ha generado un modelo GenModel, usado a su vez para generar código Java, que representa el modelo. Además con el modelo GenModel se generan los plugins org.uclm.eopsoa.core.edit, org.uclm.eopsoa.core.editor y org.uclm.eopsoa.core.tests que proveen a su vez de una serie de clases, adapters y editores para el modelo.

Los modelos Ecore y GenModel, que se pueden encontrar respectivamente en los ficheros model/eopsoa.ecore y model/eopsoa.genmodel, pueden ser usados en futuras aplicaciones de forma fácil, y de esta forma facilitar la integración de aquellas herramientas que quieran usar los proyectos eOPSOA.

Aunque la serialización/deserialización está delegada a EMF, es de interés la interfaz IOPersistenteManager que gestiona la creación, el acceso y la destrucción de los recursos de los proyectos eOPSOA.

org.uclm.eopsoa.ui (ui)

Provee de las clases necesarias para las vistas, editores, cuadros de diálogo y asistentes que se puedan encontrar en eOPSOA. Hace uso del modelo de datos que provee core. El toolkit gráfico utilizado en eOPSOA es exclusivamente SWT. Además se emplean una gran cantidad de JFace Viewers que emplean el patrón MVC. Se ha intentado seguir en todo momento las recomendaciones de las Eclipse User Interface Guidelines.

Se ha usado ampliamente el patrón de Eclipse Master/Details en el diseño de los editores de los distintos tipos de documentos.

También ha sido necesario utilizar el widget experimental CDateTime del proyecto Nebula, en el cual se desarrollan una serie de widgets SWT experimentales que no se han incluido en la distribución oficial de SWT.

org.uclm.eopsoa.ui.navigator (navigator)

Provee de la vista eOPSOA Explorer, basada en Common Navigation Framework, así mismo como de las acciones con las cuales el usuario puede interactuar con el modelo y con los ficheros del proyecto. Al igual que en ui, se hace un uso intensivo de JFace Viewers con el objetivo de seguir el patrón MVC. Se apoya en core para las tareas relacionadas con la manipulación de ficheros y del modelo EMF, y en ui para los asistentes, cuadros de diálogo, editores… etc.

Anatomía de un nuevo proyectos eOPSOA

Uno de los requisitos de eOPSOA era la interoperabilidad entre las aplicaciones, y que los datos que pudiera generar fueran fácilmente exportables a otras aplicaciones. La decisión que se tomó para cumplir este requisito fue la de usar XML para almacenar los datos que pudiera generar la aplicación. El framework http://www.eclipse.org/emf es el responsable de la serialización/deserialización del modelo eOPSOA en XMI.

Cuando creas un nuevo proyecto eOPSOA, su directorio está compuesto por los siguientes ficheros:

  • .project: descriptor del proyecto de Eclipse.
  • project.checklist: contiene los datos del documento Cuestionario.
  • project.glossary: contiene los datos del documento Glosario.
  • project.usecase: contiene los datos de los documentos de especificación de Casos de Uso.
  • project.vision: contiende los datos del documento de Visión.
  • root.testcase: contiene referencias a Conjuntos de Tests de Prueba.
  • test-cases/: contiene directorios que contienen Conjuntos de Tests de Prueba.
    • TCXX/set.testcase: datos del conjunto de Tests de Prueba con identificador XX.
 
manual_desarrollador.txt · Última modificación: 2011/11/04 12:18 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki