Ingeniería de Software

Practica 6: Construcción

A partir de esta practica, se entra en la etapa de construcción. El proyecto ha sido re-estructurado para tener una separación clara entre los distintos modulos (o subsistemas) y para permitir que se lleve a cabo el desarrollo concurrente. En la versión más reciente, el proyecto se estructura de la manera siguiente:

trunk
  • build.xml
  • doc
  • lib
    • compile
    • runtime
  • modules
    • AdminPlugins
      • build.xml
      • src
      • lib
      • doc
    • Comun
    • Editor
    • InterfazUsuario
    • ManejoProyecto
    • Nucleo
  • src
Cada uno de los módulos es en si un proyecto que contiene un build.xml y que puede ser compilado de manera independiente.

A la raiz, las fuentes contienen el código asociado a la clase Principal, que se encarga de instanciar y conectar entre ellos los distintos modulos.

El build.xml a la raiz contiene los targets habituales, asociados con las fuentes de la clase Principal. Sin embargo cada uno de los targets realiza una llamada a todos los targets del mismo nombre en todos los modulos presentes en el directorio módulo. Esto resulta en un script de compilación jerárquico que permite realizar facilmente la integración, que incluye la compilación, prueba y empaquetamiento del proyecto entero.

El build principal contiene dos targets adicionales:
  • finaldist: crea una distribución final poniendo todos los JARs utiles al proyecto en un directorio comun "finaldist"
  • runfinaldist: ejecuta a partir de los jars en el directorio comun (para verificar que todo está ahi)
Finalmente, hay que notar que dentro de los directorios lib se ha hecho una separación entre las librerias necesarias a la compilación y las que son necesarias a la ejecución. Al compilar se requiere de incluir ambos tipos de librerías pero al ejecutar no (por ejemplo, junit.jar no es necesario para ejecutar).

Checkout

Lo primero que vamos a hacer es un checkout de la ultima versión del proyecto:

$svn ls http://www.humbertocervantes.net/svn/ingsoft --username NOMEQUIPO
Password for 'NOMEQUIPO':
evilteam/
ingsoft1/
integrantes/
mmnrv/
syscomp/

$svn checkout http://www.humbertocervantes.net/svn/ingsoft/NOMEQUIPO --username NOMEQUIPO


Despues del checkout ya puedes entrar al directorio del proyecto dentro del trunk que tiene el contenido siguiente:

$ls -l

total 28
-rw-r--r--  1 humberto developers 6320 Feb 22 19:57 build.xml
drwxr-xr-x  3 humberto developers 4096 Feb 22 19:57 doc
drwxr-xr-x  4 humberto developers 4096 Feb 22 19:57 lib
drwxr-xr-x  9 humberto developers 4096 Feb 22 19:57 modules
drwxr-xr-x  3 humberto developers 4096 Feb 22 19:57 plugins
drwxr-xr-x  4 humberto developers 4096 Feb 22 19:57 src


Si en este momento ejecutas ant, el proyecto entero se compila y se ejecuta.

Ya puedes comenzar a trabajar en tu módulo!

Verificación de cambios y commit

Despues de que hayas trabajado en tus archivos, puedes verificar los cambios que están pendientes de subir al repositorio, ubicandote en la raiz de tu modulo, o del proyecto en si (aunque normalmente esto último no se debe hacer más que si todo el equipo está deacuerdo).
El ejemplo siguiente muestra un cambio pendiente en el build.xml:

$svn status
M      build.xml


Para hacer el commit , hay que pasar un mensjar que informa el cambio que se ha hecho:

$svn commit -m "cambio en el build.xml"
Sending        AdminPlugins/build.xml
Transmitting file data .
Committed revision 49.

$svn status
$

Si vuelves a utilizar svn status, ya no habrá cambios pendientes.

Ultima actualización: 23 Febrero 2005
contacto: hcm@xanum.uam.mx
Homepage