Blog de Antonio Manuel Muñiz

Desarrollo, Ingeniería y Calidad del Software

Archivos mensuales: enero 2009

Encuentro tecnológico: Medidas y calidad del software

Ayer estuve en el encuentro tecnológico «Medidas y calidad del software».

Las charlas fueron bastante interesantes. Destaco dos:

«Situación de la calidad del software en España: Estudios e Indicadores»

En esta charla Ignacio Caño (Inteco) Luna nos mostraba el último estudio realizado desde Inteco: un sondeo basado en encuestas a PYMES y grandes empresas. De él se desprendía el bajo conocimiento de las normas en cuanto a calidad, y proponía el conocimiento a través de certificaciones (en otras charlas se dijo exactamente lo contrario, en fin, son puntos de vista, veremos que depara el futuro), en cualquier caso el estudio realizado era bastante interesante.

«Métricas de la calidad del software»

Esmeralda Mancheño (Matchmind) nos presentó a uno de sus clientes, ISBAN. La responsable de calidad de ISBAN nos hizo partícipes del criticismo de la calidad en los productos orientados a la banca, donde los errores son tan caros que no pueden permitirse. Proponía la medición de todo tipo de parámetros como una forma de mejorar el producto tomando decisiones en función del resultado de estas mediciones. Me sorprendió una frase: «En ISBAN no tenemos presupuesto para la gestión de la calidad, el director dice que está todo pagado». Supongo que un fallo en algún sistema informático del banco puede hacerles perder más dinero del que hayan invertido en 10 años en calidad…

Javascript como un módulo Maven

¿Es posible aislar todo el código javascript de nuestra aplicación web en un proyecto a parte?

Si, lo es. Con javascript-maven-tools, en concreto con javascript-maven-plugin. Este plugin nos permite tratar con proyectos de tipo javascript, es decir, esto sería válido:

...
<dependencies>
    ...
    <dependency>
        <gruopId>example.javascript</groupId>
        <artifactId>my-javascript</artifactId>
        <version>1.0.0</version>
        <type>javascript</type>
    </dependency>
    ...
</dependencies>
...

Este plugin habilita el uso del tipo «javascript» en nuestras dependencias. Sólo debemos configurarlo:

<build>
    <plugin>
        <groupId>org.codehaus.mojo.javascript</groupId>
        <artifactId>javascript-maven-plugin</artifactId>
        <version>1.0-alpha-1-SNAPSHOT</version>
        <extensions>true</extensions>
        <executions>
            <execution>
                <id>js-copy-deps</id>
                <goals>
                    <goal>war-package</goal>
                </goals>
                <phase>package</phase>
            </execution>
        </executions>
    </plugin>
</build>

¿Y el artefacto javascript, cómo se crea?

Pues definiendo un proyecto maven de tipo «javascript». Es decir, el «packaging» será de tipo «javascript» en el POM:

<packaging>javascript</packaging>

Y definiremos la siguiente extensión:

...
<build>
    <extensions>
        <extension>
            <groupId>org.codehaus.mojo.javascript</groupId>
            <artifactId>javascript-maven-plugin</artifactId>
            <version>1.0-alpha-1-SNAPSHOT</version>
         </extension>
    </extensions>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo.javascript</groupId>
            <artifactId>javascript-maven-plugin</artifactId>
            <version>1.0-alpha-1-SNAPSHOT</version>
            <extensions>true</extensions>
         </plugin>
     </plugins>
</build>
...

Maven tratará nuestro proyecto como un projecto más, y tenemos a nuestra disposición toda la potencia de la gestión de dependencias de Maven.

Para configurar el comportamiento del plugin debemos indicarle un proporcionar un par de parámetros, basta con incluir las propiedades en el POM:

<properties>
    <scripts>public/scripts</scripts>
    <lib></lib>
    <useArtifactId>true</useArtifactId>
</properties>

Eso es todo. Solo un detalle más, el plugin tiene algunos bugs, he reportado un parche a sus desarrolladores, aún no lo han incluido en la versión actual. Siempre podemos descargar el código y parchearlo nosotros mismos ;)