ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Sergio Valero Orea, svalero@utim.edu.mx, UTIM, Izúcar de Matamoros, Puebla. Resumen El desarrollo de sistemas de software no es una tarea fácil. Históricamente nos hemos visto perjudicados al desarrollar este tipo de proyectos por no seguir una metodología de desarrollo, y al intentar implementar el software, caemos en el mismo error de los trabajadores de la construcción al no planificar y seguir las órdenes de los arquitectos y optan por pegar tabiques o crear cimientos al por mayor y sin un orden. Al proponer una metodología de desarrollo, se intenta generar una cultura de calidad para el desarrollo de sistemas, siguiendo una serie de prácticas bien definidas para que podamos medir el avance de nuestro trabajo desde que éste se concibe. Este documento pretende eso, se presenta al lector la metodología propuesta para el desarrollo de software basándose en RUP. Introducción El Proceso Unificado de Rational (RUP, por sus siglas en inglés) propone una serie de prácticas para el desarrollo de proyectos de software basado en fases, a través de una serie de disciplinas que nos permitirán ir generando artefactos en cada una de las iteraciones por fases. Esta metodología es cíclica, es decir, por cada ciclo se generan documentos entregables que nos permitirán medir el avance de nuestros proyectos, inclusive desde las etapas iniciales. Teoría Una metodología de desarrollo de sistemas, nos permitirá desarrollar software de calidad, de la misma manera en que un arquitecto construye sus planos para edificar una vivienda o edificio, el desarrollo de sistemas se beneficia al utilizar una serie de pasos estructurados y metodológicos para que se pueda medir el avance de nuestro proyecto. El ciclo de vida propuesto se desarrollará con base en RUP. Esta metodología de desarrollo propone una serie de fases que se muestran a continuación. Desarrollo Comenzaremos por definir cada una de las disciplinas de esta metodología, para adecuarla a la nuestra, indicando los documentos entregables que se generan en cada una de ellas. Modelado del negocio. El objetivo de esta disciplina es entender a la organización donde se va a implementar el software, pensando en el que software sea algo útil y no un obstáculo consiguiendo que el sistema se adapte de la mejor forma posible. Las actividades de esta disciplina serán las siguientes: - Describir el negocio actual - Desarrollar el modelo del dominio Los documentos entregables de esta disciplina serán el documento de visión, el modelo del dominio y los mapas conceptuales. Ingeniería de requerimientos. El objetivo de esta disciplina es dejar claramente especificado qué es lo que quiere y no quiere que haga el sistema que se va a construir. Para obtener los requerimientos se deben aplicar prácticas de licitación a los involucrados en el proyecto, anotar y validar todas sus solicitudes. Las actividades de esta disciplina serán las siguientes: - Realizar entrevistas con el cliente - Analizar el problema - Clasificar y priorizar los requerimientos Los documentos entregables de esta disciplina serán el documento de especificación de requerimientos y el documento de entrevistas con el cliente. Análisis y Diseño. El objetivo de esta disciplina es transformar los requerimientos en una especificación que diga cómo se va a implementar el sistema. El análisis se ocupa de los requerimientos funcionales e implica obtener una visión general de ver qué hace el sistema que se va a desarrollar. El diseño es un refinamiento que toma en cuenta los requerimientos no funcionales, por lo cual se centra en cómo el sistema cumple los objetivos. Las actividades de esta disciplina serán las siguientes: - realizar diagramas de casos de uso - realizar la especificación de casos de uso - realizar diagramas de clase - realizar diagramas de secuencia - realizar el modelo de datos - realizar el prototipo Los documentos entregables de esta disciplina serán: Análisis: modelo de casos de uso, especificación de casos de uso y realización de casos de uso (diagramas de secuencia) Diseño: modelo de diseño (diagramas de clase), modelo de datos (base de datos), pantallas (prototipos). Implementación. El objetivo de esta disciplina es convertir los elementos del diseño en elementos de implementación, dichos elementos son códigos fuentes, ejecutables, etc. De esta disciplina, se obtiene un sistema ejecutable estable, constituido por los resultados producidos por los programadores. Las actividades de esta disciplina serán: - Implementar componentes - Integrar el sistema Los artefactos entregables de esta disciplina son el sistema ejecutable y la base de datos (en caso de generarse). Pruebas. El objetivo de esta disciplina es evaluar la calidad del producto que se está desarrollando a través de las diferentes fases por las cuales este pasa, mediante la aplicación de pruebas concretas para validar que las suposiciones hechas en el diseño y los requerimientos se estén cumpliendo satisfactoriamente, esto quiere decir que se verifica que el producto funcione como se diseñó y que los requerimientos son satisfechos cabalmente. Esta disciplina debe estar presente en todo el ciclo de vida del desarrollo del sistema para ir refinándolo y no al final del mismo. Las actividades de esta disciplina serán: - Elaboración de un plan de pruebas - Realizar un estudio de los resultados de pruebas El documento entregable de esta disciplina será el plan de pruebas, en el que se especificarán las conclusiones a las cuales se llegan unas ves ejecutadas y previas a la implantación del sistema. Administración de configuración y cambios. El objetivo de esta disciplina es mantener la integridad de todos los objetos que se crean en el proceso y controlar los cambios. Se debe identificar elementos de configuración, restringir y auditar los cambios a esos elementos, y definir y dirigir la distribución de los mismos. Las actividades de esta disciplina serán: - Gestionar los cambios de requerimientos - Planear la configuración del proyecto y el control de cambios - Registrar y almacenar los cambios Los documentos entregables de esta disciplina son el plan de gestión de configuración y el documento solicitud de cambio, este último, en caso de aplicar. El plan de gestión de configuración describe todas las actividades de gestión de configuración y cambios que serán realizadas durante todo el ciclo de vida del proyecto. Gestión del proyecto. El objetivo de esta disciplina es alcanzar las metas propuestas con el desarrollo del sistema, administrar el riesgo y superar las restricciones para desarrollar un producto que sea acorde con los requerimientos de los clientes y usuarios. Las actividades principales de esta disciplina son: - Planear el proyecto - Evaluar el alcance y los riesgos - Monitorear y controlar el proyecto El documento entregable de esta disciplina es la planificación del proyecto (plan de desarrollo). Este documento está compuesto por toda la información necesaria para llevar a cabo la dirección del proyecto. Es utilizado para dirigir las actividades a realizar durante todo el proceso. Comprende un conjunto de artefactos que son desarrollados durante la fase de inicio y que son utilizados durante todo el ciclo de vida del proyecto. Resultados y conclusiones La implementación de ITZOFT se encuentra a discusión y es debatible, existen otra metodologías de desarrollo denominadas ‘agiles’ en las que se intentar evitar a toda costa el diseño, pero en lo personal, y dadas las ventajas que ofrece el análisis y diseño orientado a objetos (entre ellas la reutilización) considero una buena base que nos permitirá generar software de calidad, y sobre todas las cosas: se puede medir. Es altamente recomendable también, generar un plan de aseguramiento de calidad para evaluar cada una de las fases propuestas en la metodología y así, complementar el trabajo propuesto en este documento. Seguir al pie de la letra la metodología propuesta anteriormente, garantiza realizar los pasos básicos para desarrollar sistemas, y de alguna manera realizar ‘los planos’ de la construcción, como lo hacen los arquitectos. Bibliografía [1] Metodología de la Red Nacional de Integración y Desarrollo de Software Libre, Gobierno Bolivariano de Venezuela, [en línea]; 2009 [consulta 10 Febrero 2009] Disponible: http://merinde.rinde.gob.ve/ [2] Ejemplo de desarrollo software utilizando la metodología RUP, Universidad Politécnica de Valencia, [en línea]; 2009 [consulta 10 http://www.dsic.upv.es/asignaturas/facultad/lsi/ejemplorup/ Febrero 2009] Disponible: