Crear Componentes

Objetivos

El objetivo de este proceso es la creación de los componentes del código fuente desarrollado por los programadores, tanto para los componentes de un proyecto FundeWeb (paginas HTML-XHTML, CSS, Javascript, Java, informes Birt, etc.) como los artefactos de la base de datos (Script de tablas; procedimientos, funciones y paquetes PL/SQL, script de vistas, etc.). Este proceso, es la primera parte de cada iteración que se realiza en la metodología de desarrollo.

Roles

Nombre Descripción
Desarrollador
MDA-TR-1.0-DE-Crear y/o Modificar Componente
MDA-TR-1.0-DE-Crear y Ejecutar Test Unitarios del Componente
MDA-TR-1.0-DE-Subida de los Artefactos del Componente y los Test Unitarios al Repositorio SVN

Tareas

1. Iniciar Progreso

Debe de existir previamente, un JIRA indicando que se va a crear o modificar un componente. El desarrollador, debe indicar en dicho JIRA que se va a trabajar en dicha tarea iniciando su proceso mediante el botón Iniciar Progreso que tienen todas las tareas de JIRA.

También tenemos que tener actualizado el proyecto a la ultima revisión del SVN, para minimizar los posibles conflictos de código.

2. Creación o Modificación del Componente

Antes de empezar a realizar esta tarea, es recomendable tener actualizado el proyecto relativo a la rama del SVN con la que vamos a trabajar (ya sea un branch o el trunk).

Este es el proceso basico de desarrollo de software. Podemos crear o modificar principalmente dos tipos de componentes: los artefactos de la aplicación (clases Java, Paginas XHTML o HTML, ficheros Javascript, CSS, informes Birt, etc.) y los artefactos de la base de datos (Script de definición de tablas, configuración de segments y tablespaces, triggers, funciones, procedimientos y paquetes PL/SQL).

Para realizar esta tarea tendremos que seguir algunas normativas de desarrollo, por ejemplo:

- Para aplicaciones FundeWeb, seguiremos la Normativa de Desarrollo de Aplicaciones FundeWeb (también podemos consultar la antigua Normativa de Desarrollo con FundeWEB v1.0.

- Para artefactos de la Base de Datos, seguiremos la Normativa de Desarrollo de Artefactos de Base de Datos, y crearemos el modelo físico de datos, a partir del modelo lógico, usando también Oracle Data Modeler.

3. Acumulación de tiempo en la tarea

Cada día de trabajo, el desarrollador debe de indicar las horas trabajadas en la tarea.

Lo puede hacer desde JIRA, vamos a la tarea, y en el menú asociado a esta pinchamos en, Más Acciones –> Registrar Horas de Trabajo y en la pantalla que aparece, introduciremos la información sobre el trabajo realizado en dicho periodo de tiempo.

O bien se puede hacer con el plugin de JIRA para el Eclipse.

En ambos casos tendremos que rellenar la siguiente información.

Campo de Formulario Descripción
Tiempo de Trabajo Tiempo trabajo en la tarea en un determinado tiempo. Se acumula al tiempo de trabajo realizado en la tarea Por ejemplo, tiempo trabajado durante 3 horas y 5 minutos, pondremos: 3h 5m.
Date Started La fecha de inicio a partir de la que se calcula el tiempo trabajado
Remaining Estimate Tipo de calculo a utilizar para el tiempo estimado que queda para acabar la tarea
Descripción del Trabajo Descripción del trabajo realizado, y del estado actual de la tarea

Para almacenar la información en JIRA utilizaremos el botón Registrar.

1. Iniciar Progreso

Debe de existir previamente, un JIRA indicando que se va a crear o modificar un test unitario. El desarrollador, debe indicar en dicho JIRA que se va a trabajar en dicha tarea iniciando su proceso mediante el botón Iniciar Progreso que tienen todas las tareas de JIRA.

También tenemos que tener actualizado el proyecto a la ultima revisión del SVN, para minimizar los posibles conflictos de código.

Se creara un test unitario cuando el componente no tenga ningún test unitario. Se modificara un test unitario, cuando exista previamente y haya que modificarlo para soportar la modificación del componente asociado al test.

Podemos crear o modificar test unitarios para los siguientes componentes: los artefactos de la aplicación (clases Java) y los artefactos de la base de datos (triggers, funciones, procedimientos y paquetes PL/SQL).

Hay que realizar una pila de test unitarios por cada componente y además se deben añadir test unitarios para comprobar los errores controlados de la aplicación se lanzan correctamente. Para las aplicaciones FundeWeb, los test unitarios se realizan a nivel de método de la clase. Para los artefactos de base de datos se realizan a nivel de llamada.

Para realizar esta tarea tendremos que seguir algunas normativas de desarrollo, por ejemplo:

2. Ejecutar los Test Unitarios

Para aceptar a una pila test unitarios de un componente, todas los test unitarios tienen que ser satisfactorios. Hay que realizar test que comprueben también los errores. Los test se ejecutaran en las siguientes herramientas:

  • En el IDE Eclipse mediante el plugin TestNG para aplicaciones FundeWeb.
  • En el TOAD para test de los artefactos de Base de Datos.

3. Acumulación de tiempo en la tarea

Cada día de trabajo, el desarrollador debe de indicar las horas trabajadas en la tarea.

Lo puede hacer desde JIRA, vamos a la tarea, y en el menú asociado a esta pinchamos en, Más Acciones –> Registrar Horas de Trabajo y en la pantalla que aparece, introduciremos la información sobre el trabajo realizado en dicho periodo de tiempo.

Tendremos que rellenar la siguiente información.

Campo de Formulario Descripción
Tiempo de Trabajo Tiempo trabajo en la tarea en un determinado tiempo. Se acumula al tiempo de trabajo realizado en la tarea Por ejemplo, tiempo trabajado durante 3 horas y 5 minutos, pondremos: 3h 5m.
Date Started La fecha de inicio a partir de la que se calcula el tiempo trabajado
Remaining Estimate Tipo de calculo a utilizar para el tiempo estimado que queda para acabar la tarea
Descripción del Trabajo Descripción del trabajo realizado, y del estado actual de la tarea

Para almacenar la información, en JIRA, utilizaremos el botón Registrar.

1. Subida al Repositorio SVN

Para finalizar el proceso, tenemos que subir al servidor de control de versiones los componentes creados o modificados y los test unitarios asociados a estos. Dependiendo del tipo de artefacto utilizaremos una herramienta u otra para subir al repositorio SVN:

- Aplicaciones FundeWeb: se puede utilizar tanto el IDE Eclipse con su plugin subeclipse como Tortoise SVN.

- Artefactos de la Base de Datos: utilizaremos Oracle SQL Developer o Tortoise SVN, siguiendo las indicaciones de la Normativa de Control de Versiones de Código PL/SQL.

:!: IMPORTANTE: al subir un cambio al repositorio SVN tenemos que rellenar el “mensaje de log” que nos pide el servidor SVN, incluyendo el código del jira correspondiente al trabajo que estamos haciendo, da igual q pongamos el código del jira al inicio, medio o final del comentario. Podemos indicar varios códigos de jiras distintos en el mismo comentario. De ese modo podremos ver lo que hemos subido al servidor SVN en la pestaña Subversion del jira correspondiente.

Una vez subidos los componentes y los artefactos al repositorio SVN, podemos resolver los JIRAs asociados a las tareas de Crear o Modificar Componente y a Crear y Ejecutar Test Unitarios de los Componentes.

2. Resolución de la Tarea

Para resolver un JIRA, podemos hacerlo desde JIRA, vamos a la tarea, y en el menú asociado a esta pinchamos en, Resolver Incidencia y en la pantalla que aparece, introduciremos la información sobre el trabajo realizado en dicho periodo de tiempo.

Campo de Formulario Descripción
Resolución Indicaremos el tipo de resolución, que normalmente será 'Resuelta' si se ha completado correctamente.
Tiempo de Trabajo Tiempo trabajo en la tarea en un determinado tiempo. Se acumula al tiempo de trabajo realizado en la tarea. Por ejemplo, tiempo trabajado durante 3 horas y 5 minutos, pondremos: 3h 5m.
Date Started La fecha de inicio a partir de la que se calcula el tiempo trabajado
Remaining Estimate Tipo de calculo a utilizar para el tiempo estimado que queda para acabar la tarea
Descripción del Trabajo Descripción del trabajo realizado, y del estado de la resolución de la tarea

Una vez rellenada la información relativa a la imputación en la tarea del trabajo realizado no computado anteriormente tenemos que pinchar el botón Resolver.

De esta forma se resuelve la tarea.

Artefactos

Plantilla del Artefacto SIGLAS Nomenclatura Ubicación
DocumentoDeDiseño DIS XXX-DIS-1.2.3-Documento de Diseño /Proyecto/Documentacion/3.AnalisisYdiseno
DocumentoDeRequisitos REQ XXX-REQ-1.2.3-Documento de Requisitos /Proyecto/Documentacion/2.Requisitos
Plantilla del Artefacto SIGLAS Nomenclatura Ubicación
Código Fuente de los componentes creados y los test unitarios asociados subidos en el repositorio SVN /Proyecto/Fuentes/
Modelo Fisico de Datos MDT XXX-MDT-1.2.3-ModeloDatos 3.AnalisisYDiseno/3.3.BaseDatos

Herramientas

Herramienta Version Utilizada en Descarga
FrameWork FundeWeb >=1.2.3 (Ultima Versión) Creación de Proyectos y Componentes FundeWeb Portal FundeWeb - Descargas
TortoiseSVN >=1.6.x Operaciones con el repositorio SVN TortoiseSVN Downloads
JIRA >=4.2.x Modificación de las tareas para acumular tiempo o resolverlas.
Oracle Data Modeler >=3.0 Modelo Entidad / Relación Novell

Métricas

Las métricas del proyecto se guardarán dentro de la carpeta del proyecto en Proyecto/Documentacion/1.Gestionproyecto/1.4.Metricas. Las métricas de este proceso en concreto se almacenan en la Hoja DE.

NOTA: Todos los tiempos se miden en horas, salvo que se indique expresamente lo contrario.
  1. Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto.
  • project = ClaveDelProyecto
  • Disciplina-Proceso = Desarrollo-DE-Organizar el código

Pulsa el botón Search

Usa la Plantilla de Seguimiento tal y como se indica en el apartado Calcular tiempos con Jira.

Número de Paquetes de Código Fuente

Número de paquetes de código fuente totales al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Entrar en el informe del Sprint, Build o Release.
  4. Ir al informe JavaNCSS, en este informe nos muestra todos los paquetes de código fuente del proyecto, solo hay que contar las filas de la tabla.

Número de Clases de Código Fuente

Número de clases totales al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Entrar en el informe del Sprint, Build o Release.
  4. En el resumen de JavaNCSS aparecen el número total de clases de código fuente.

Número de Métodos o Funciones del Código Fuente

Número de métodos o funciones totales al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Entrar en el informe del Sprint, Build o Release.
  4. En el resumen de JavaNCSS aparecen el número total de funciones en el código fuente.

Número de Javadocs del Código Fuente

Número de Javadocs del código fuente al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Entrar en el informe del Sprint, Build o Release.
  4. En el resumen de JavaNCSS aparecen el número total de javadocs del código fuente.

Número de Lineas de Código Fuente - NCSS

Número de lineas de código fuente totales al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Entrar en el informe del Sprint, Build o Release.
  4. En el resumen de JavaNCSS aparecen el número total de NCSS del código fuente.

El valor del NCSS, no es el del numero de lineas de un fichero de código fuente, sino el número de lineas de código fuente, eliminando comentarios, javadoc y lineas en blanco.

Número de Páginas Web

Número de páginas web totales al final de un Sprint o Release.

  1. Tendremos que contar el número de ficheros con extensión XHTML y HTML del proyecto.

Número de Clases de Test Unitarios

Número de clases de test unitarios totales al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Ir al informe TestNG, en este informe nos muestra los paquetes de código con test.
  4. Seleccionamos en cada enlace referente a un paquete de código de test. En la página a la que se navega, aparecen dos tablas, en la primera aparecen las clases de Test, en la segunda aparecen los test ejecutados en el paquete.
  5. Para el calculo de la métrica, hay que contar las filas de la primera tabla.

Número de Test en las Clases de Test Unitarios

Número de test totales que hay en las clases de test unitarios al final de un Sprint, Build o Release.

  1. Tenemos que dirigirnos al despliegue de la aplicación en Jenkins.
  2. Ir a la página del proyecto comprobar que esta la ejecución del Sprint, Build o Release.
  3. Entrar en el informe del Sprint, Build o Release.
  4. En el resumen de TestNG aparecen el número total de test.

Para el calculo de las métricas de Base de Datos, tenemos que dirigirnos al SVN a la carpeta del proyecto en '/Proyecto/Fuentes/BD' como se indica en el Plan de Gestión de la Configuración. En esta carpeta tendremos diferentes carpetas para organizar los diferentes artefactos de base de datos.

Número de Tablas

Número de tablas totales al final de un Sprint o Release.

  1. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Tablas' y contar el número de ficheros.

Número de Vistas

Número de vistas totales al final de un Sprint o Release.

  1. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Vistas' y contar el número de ficheros.

Número de Funciones y Procedimientos

Número de funciones y procedimientos totales al final de un Sprint o Release.

  1. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Funciones' y contar el número de ficheros.
  2. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Procedimientos' y contar el número de ficheros.
  3. La suma de los dos cálculos anteriores nos da el número de total.

Número de Paquetes

Número de paquetes totales que contienen funciones y procedimientos al final de un Sprint o Release.

  1. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Paquetes' y contar el número de ficheros con extensión 'PKS'.

Número Funciones y Procedimientos de los Paquetes

Número de paquetes totales que contienen funciones y procedimientos al final de un Sprint o Release.

  1. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Paquetes'.
  2. Para cada fichero con extensión 'PKS', tenemos que contar el las funciones y procedimientos.
  3. La suma de los cálculos anteriores nos da el número de total.

Número de Triggers

Número de triggers totales al final de un Sprint o Release.

  1. Nos tenemos a la carpeta '/Proyecto/Fuentes/BD/Vistas'.
  2. Para cada fichero correspondiente a una tabla, lo abrimos y contamos el numero de triggers.
  3. La suma de los cálculos anteriores nos da el número de total.

Instrucciones

Tenemos dos clientes de SVN a disposición de los desarrolladores: Subeclipse en el IDE Eclipse y TortoiseSVN desde el Explorer de Carpetas.

Código Fuente del Proyecto y Test Unitario

Utilizaremos el cliente de SVN que esta disposición de los desarrolladores en el IDE Eclipse llamado Subeclipse. Seguiremos los siguientes pasos:

  1. Lo primero que tenemos que hacer es realizar una sincronización del proyecto con el repositorio SVN para comprobar los posibles conflictos (marcados en rojo) que se pueden producir. Esto lo realizamos Seleccionando el proyecto y abriendo el menú contextual Team –> Syncronize with Repository, que nos llevara a la perspectiva de sincronización.
  2. Una vez solucionados los conflictos, pasamos a realizar el commit, donde seleccionamos los ficheros a subir y abrimos el menú contextual seleccionando la opción Commit.
  3. Nos aparece una ventana donde podemos repasar los ficheros seleccionados y añadir el comentario asociado donde se debe de indicar el JIRA asociado a la tarea.

Artefactos de la Base de Datos

Utilizaremos el cliente de SVN que esta disposición desde el Explorer de Windows llamado TortoiseSVN. Seguiremos los siguientes pasos:

  1. Lo primero que tenemos que hacer es dirigirnos a la carpeta que según el plan de configuración contiene los artefactos de la base de datos en nuestro checkout del proyecto, mediante el Explorador de Carpetas.
  2. Ahora tenemos que realizar una comprobación para ver si se ha modificado algún artefacto y comprobar los posibles conflictos.
  3. Una vez solucionados los conflictos, pasamos a realizar el commit, donde seleccionamos la carpeta raiz que contiene los artefactos de la base de datos y abrimos el menú contextual seleccionando la opción SVN Commit
  4. Nos aparece una ventana donde podemos repasar los ficheros seleccionados y añadir el comentario asociado donde se debe de indicar el JIRA asociado a la tarea.
  • mda/de/mda-pr-1.0-de-crear_componentes.txt
  • Última modificación: 11/01/2018 18:38
  • por JUAN LUIS SERRADILLA AMARILLA