====== Organizar el Código ====== {{:mda:de:mda-pr-1.0-de-organizar_el_codigo.png|}} ====== Objetivos ====== El objetivo de este proceso es **crear la estructura de directorios que van a contener el código fuente desarrollado por los programadores**, tanto para el proyecto FundeWeb como los artefactos de la base de datos. Esta estructura de directorios vendrá determinada por la arquitectura que se haya diseñado previamente. La estructura de directorios para el código se trasladará también al repositorio SVN del proyecto. ====== Roles ====== ^ Nombre ^ Tareas que interviene ^^^ | **Arquitecto** | | | |MDA-TR-1.0-DE-Seleccionar el Tipo de Proyecto | | |MDA-TR-1.0-DE-Crear el Proyecto en el IDE | | |MDA-TR-1.0-DE-Subida del Proyecto al SVN | ====== Tareas ====== ===== MDA-TR-1.0-DE-Seleccionar el Tipo de Proyecto ===== ==== Proyectos FundeWeb ==== El Arquitecto DEBE crear un **JIRA** con los siguientes datos, y **registrar las horas de trabajo** en ella: ^ Tipo ^ Sumario ^ Disciplina ^ Proceso ^ Version Fijada ^^^ | //Tarea// | //Organizar el código// | //Desarrollo// | //DE-Organizar el código// | //[Versión del proyecto]// | En base al Documento de Arquitectura, el arquitecto del proyecto, seleccionará el tipo de proyecto J2EE a realizar de entre los tipos de proyectos que tenemos posibles en FundeWeb: * Aplicación de Servicios: aplicación que ofrece una serie de servicios a otras aplicaciones cliente, mediante una interfaz de Servicios Web y/o RMI. Este tipo de aplicación, no proporciona una interface web a los clientes. * Aplicación Web: aplicación que proporciona una interface web a los clientes. También puede ofrecer servicios a otras aplicaciones cliente, mediante una interfaz de Servicios Web y/o RMI. ==== Base de Datos ==== Esta tarea solo es relevante para los artefactos J2EE, no para los artefactos relacionados con la BBDD. ===== MDA-TR-1.0-DE-Crear el Proyecto en el IDE ===== ==== 1.Creación del Proyecto ==== Dependiendo de si es un artefacto de aplicación o de BBDD, lo realizaremos de forma diferente. === Proyectos FundeWeb === Para realizar esta tarea, seguiremos la guía técnica que se encuentra en el portal FundeWeb llamada [[fdw2.0:fundeweb2.0&#instalacion_y_configuracion_del_entorno|¿Cómo creo un nuevo proyecto en FundeWeb?]]. === Base de Datos === La organización de carpetas para guardar los artefactos de la BBDD (Script de tablas, etc. y código PL/SQL), se configura como se indica en el [[mda:gc:mda-pr-1.0-gc-establecer_el_sistema_de_gestion_de_configuracion#estructura_de_directorios_del_proyecto | Plan de Gestión de la Configuración]]. Tenemos que crear dentro de la carpeta **/Proyecto/fuentes/** una carpeta llamada **BD**. Esta es la carpeta general donde se guardan todos los artefactos de la BBDD con la siguiente organización: * Para cada esquema de BBDD asociado a la aplicación, tenemos que crear dentro de la carpeta **BD**, otra carpeta que tendrá el mismo nombre del esquema, por ejemplo: **ESQUEMA1**. * Dentro de cada esquema, tendremos las siguientes carpetas: * **Funciones**: donde se almacenan el código de la funciones PL/SQL. * **Paquetes**: donde se almacenan el código de los paquetes con procedimientos y funciones PL/SQL. * **Procedimientos**: donde se almacenan el código de los procedimientos PL/SQL. * **Tablas**: donde se almacenan los scripts de cada tabla del esquema en su propio fichero. * **Vistas**: donde se almacenan los scripts de cada vista del esquema en su propio fichero. Consulta la GT de [[plsql:normativa_desarrollo_bd#control_de_versiones|Control de Versiones de los Objetos de BD]]. ==== 2. Acumulación de Tiempo de la Tarea ==== Cada día de trabajo, el arquitecto debe de indicar las horas trabajadas en la tarea. Lo puede hacer desde [[https://jira.um.es/jira/|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. 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 utilizaremos el botón //Registrar//. ===== MDA-TR-1.0-DE-Subida del Proyecto al SVN ===== ^**NOTA**: No se aconseja que estén juntos en la misma copia de trabajo los fuentes y la documentación de gestión del proyecto.^ En [[mda:gc:mda-pr-1.0-gc-establecer_el_sistema_de_gestion_de_configuracion|Establecer el sistema de gestión de configuración]] puedes ver como quedará la estructura de directorios del repositorio subversion. ==== 1. Subida al Repositorio SVN ==== Dependiendo del tipo de artefacto, utilizaremos un cliente u otro. === Proyectos FundeWeb === Una vez creado el proyecto hay que incorporarlo al repositorio que creamos previamente, tal y como indica la guía técnica [[fdw2.0:fundeweb2.0&#control_de_versiones_de_mi_proyecto|Enlazar un Nuevo Proyecto con el Repositorio SVN]]. === Base de Datos === Consulta la GT de [[plsql:normativa_desarrollo_bd#control_de_versiones|Control de Versiones de los Objetos de BD]]. Para subir la estructura de carpetas que almacenaran los artefactos de la base de datos utilizaremos el TortoiseSVN como cliente SVN. Seleccionaremos la carpeta **BD** en el **Explorador de Carpetas**, abriremos el menú contextual y seleccionamos la opción **//TortoiseSVN --> + Add...//**. Lo siguiente que aparece es una ventana indicando que carpetas queremos añadir al repositorio SVN, seleccionamos todas las carpetas que hemos creado y pinchamos en el botón //Ok//. Una vez añadidas las carpetas tenemos que finalizar la transacción realizando un **commit** mediante TortoiseSVN. Seleccionaremos la carpeta **DB** en el **Explorador de Carpetas**, abriremos el menú contextual y seleccionando la opción **//SVN Commit//**. Nos aparece una nueva ventana, dividida en dos partes. En la parte superior tendremos que indicar el mensaje asociado la transacción del SVN, que sera el siguiente: //Creación de la estructura de carpetas que contendrán los artefactos de la BBDD.//. En la parte inferior, se muestran las carpetas que hemos añadido para subir al repositorio SVN. Para finalizar pincharemos en el botón //Ok//. ==== 2. Solicitud de Creación del Proyecto de Desarrollo ==== Solicita a MNCS la creación de la aplicación FundeWeb (para crear dicha aplicación en el servidor de desarrollo). Pon un [[https://jira.um.es/|JIRA]] al proyecto [[https://jira.um.es/browse/FDW | FundeWeb-Seam (FDW)]] indicando el tipo de aplicación de que se trata: * Para una Aplicación Web, hay que rellenar la [[https://svn.um.es/svn/MNCS/proyectos/fundeweb/documentos%20de%20trabajo/seam/Documentacion/Plantillas%20Aplicaciones%20Fundeweb/Aplicacion_Seam.txt|siguiente plantilla]]. * Para una Aplicación de Servicios, hay que rellenar la [[https://svn.um.es/svn/MNCS/proyectos/fundeweb/documentos%20de%20trabajo/seam/Documentacion/Plantillas%20Aplicaciones%20Fundeweb/Aplicacion_EJBs.txt|siguiente plantilla]] En el enlace de cada una de ellas aparece la información que debes incluir en el JIRA. ==== 3. Cerrar la Tarea ==== Para cerrar un JIRA, podemos hacerlo desde [[https://jira.um.es/jira/|JIRA]], vamos a la tarea, y en el menú asociado a esta pinchamos en, //Flujo de Trabajo --> Cerrar 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 //Cerrar//. De esta forma se cerrar la tarea. ====== Artefactos ====== ===== De entrada ===== ^ Plantilla del Artefacto ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/3.AnalisisYdiseno/DocumentoAnalisis.odm|DocumentoAnálisis]]| ANA | XXX-ANA-1.2.3-Documento de Analisis | ///Proyecto/Documentacion/3.AnalisisYdiseno //|| * **NOTAS**: * XXX: Código del proyecto. * 1.2.3: Número de version del documento. * [NombreMódulo]: Nombre del módulo que se describe en este documento. ===== De salida ===== ^ Plantilla del Artefacto ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |Código Fuente del Proyecto subido en el repositorio SVN asociado al proyecto| COD | | ///Proyecto/Fuentes/[NombreProyecto]///|| |La estructura de carpetas que contendrá los artefactos de la BBDD| COD | | ///Proyecto/Fuentes/BD///|| ====== Herramientas ====== ^ Herramienta ^ Version ^ Utilizada en ^ Descarga ^^^ |FrameWork FundeWeb | 1.2.3 (Ultima Versión) |Creación de Proyectos y Componentes FundeWeb | [[https://fundeweb.um.es/prototipo/paginas/downloads/downloads.seam | Portal FundeWeb - Descargas ]]| |TortoiseSVN | 1.6.x |Operaciones con el repositorio SVN | [[http://tortoisesvn.net/downloads.html|TortoiseSVN Downloads]]| |[[https://jira.um.es/jira/| JIRA]] | 4.2.x | Modificación de las tareas. | | ====== Métricas ====== ===== Tiempo dedicado al Proceso ===== 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.^ - 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 [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/1.GestionProyecto/PlantillaSeguimiento.ots|Plantilla de Seguimiento]] tal y como se indica en el apartado [[mda:Calcular_Tiempos|Calcular tiempos con Jira]].