Proyecto Implementacin de un software orientado a la
















































- Slides: 48
Proyecto Implementación de un software orientado a la web que gestione la aplicación de la técnica de calidad Seis Sigma al Proceso de Desarrollo de Software, sobre la Plataforma “Java EE 5. 0” empleando un framework integrador “JBoos Seam Framework 2. 2. 0” Realizado Por: Yacchirema Espín Luis Miguel Tutores: Ing. Cecilia Hinojosa – Directora Ing. Edison Lascano – Codirector
Agenda • Resumen • Metodología • Tecnologías, Herramientas • Desarrollo del Software • Conclusiones y Recomendaciones
Resumen • En el presente proyecto se desarrolló un software orientado a la web que sirva como herramienta de apoyo en el control del proceso de desarrollo de software, y complemente la “Guía Básica para la Aplicación de la Técnica de Calidad Seis Sigma al Proceso de Desarrollo de Software”. • Este proyecto también está enfocado en dar a conocer algunas alternativas de tecnologías que pueden ser utilizadas en desarrollos web, es así, que se trabajó sobre la plataforma Java EE 5. 0, y se empleó un framework web llamado JBoss Seam. Además, para cubrir todo el ciclo de vida de desarrollo del software, se aplicó una metodología ágil denominada ICONIX.
Objetivo General �Implementar un software orientado a la web que gestione la aplicación de la técnica de calidad SEIS SIGMA al proceso de desarrollo de software, sobre la plataforma “Java Enterprise Edition 5. 0” empleando un framework integrador “JBoss Seam 2. 2. 0”.
Objetivos Específicos Definir los requerimientos que debe cumplir el software, empleando la Guía de aplicación de la técnica de calidad Seis Sigma al proceso de desarrollo de software. � Analizar y Diseñar el software utilizando lenguaje UML. � Desarrollar el software, sobre la plataforma Java EE 5. 0, y empleando el framework integrador JBoss Seam 2. 2. 0. � Ejecutar pruebas funcionales y correcciones. � Implantar el software, instalando las herramientas necesarias para su correcto despliegue, a fin de probar el cumplimiento de todos sus requerimientos. �
Metodología �Para cubrir todo el ciclo de desarrollo del software se aplicó una metodología ágil denominada ICONIX. �ICONIX fue elaborada a partir de una síntesis del Proceso Unificado de los “Three Amigos” (Booch, Rumbaugh y Jacobson). �Ofrece el soporte de UML, dirigida por casos de uso como RUP.
Metodología � ICONIX se divide en dos flujos de trabajo: Estático y Dinámico.
Metodología �ICONIX de fundamenta en cuatro fases que son: q. Análisis de Requerimientos q. Análisis y Diseño Preliminar q. Diseño Detallado q. Implementación
Metodología METODOLOGÍA ICONIX Fase Actividad Definir requerimientos funcionales Modelar el dominio Análisis de Requerimientos Modelar los casos de uso Técnica / Notación Entrevistas, encuestas, con las personas interesadas en el Proyecto. Modelo de Dominio. Lenguaje UML. Entregable/Artefacto Documento: Listado de Requerimientos. Modelo de Domino Inicial. Prototipo GUI. Diagramas de Casos de Uso. Diagrama de Paquetes. Especificación de casos de uso (Borrador). Diagrama de Robustez por cada caso de uso. Especificación de casos de uso. Modelo de dominio actualizado. Diagrama de secuencia por cada caso de uso. Diagrama de Clases. Modelo de Datos. Prototipado. Diagrama de casos de uso. Diagrama de paquetes. Lenguaje UML. Análisis y Diseño Preliminar Diseño Detallado Implementación Diagrama de robustez. Lenguaje UML. Asignar comportamiento Diagrama de secuencia. Lenguaje UML. Generar código Utilizar seam-gen 2. 2. 0. GA. Realizar pruebas funcionales Interacción con usuario final. Realizar análisis de robustez Código fuente. Software funcionando correctamente.
Tecnologías �La mayoría de tecnologías son especificaciones de la Plataforma Java EE 5. 0 �Además se empleó un Framework web de implementación denominado JBoss Seam en su versión
Tecnologías Plataforma Java EE 5. 0 �Java EE es un entorno de programación, que define un conjunto de especificaciones de APIs Java, para el desarrollo de aplicaciones distribuidas multicapa (3 -capas, ncapas) basadas en web, empleando el lenguaje de programación java.
Tecnologías Plataforma Java EE 5. 0 � Generalmente las aplicaciones Java EE están hechas a base de componentes que se encuentran corriendo en diferentes máquinas.
Tecnologías Especificaciones Java EE 5. 0 utilizadas JDBC Java Database Connectivity
Tecnologías Especificaciones Java EE 5. 0 utilizadas JPA Java Persistence API
Tecnologías Especificaciones Java EE 5. 0 utilizadas JSF Java. Server Faces
Tecnologías JBoss Seam Framework � Seam es un framework open source que reúne los estándares de Java EE para que puedan trabajar como una solución integrada. � Integra tecnologías como Java. Script asíncrono y XML (AJAX), Java. Server Faces (JSF), Java Persistence API (JPA)/Hibernate, Enterprise Java Beans (EJB 3. 0) y Business Process Management (BPM).
Tecnologías JBoss Seam Framework � Tecnologías que Seam es capaz de reunir en una aplicación típica
Tecnologías JBoss Seam Framework � Framework de Clases de Seam implementadas para JPA
Tecnologías JBoss Seam Framework � Características principales: üBásicamente Seam facilita que EJB 3. 0 y JSF (componentes principales de Java EE) trabajen juntos. üIntegración con AJAX, mediante el soporte de tecnologías como ICEfaces o Rich. Faces. üElimina el exceso descriptores XML. de uso de archivos
Tecnologías JBoss Seam Framework � Características principales: üSeam introduce el concepto de contextos (manejo de estados), es así que cada componente seam existe dentro de un contexto.
Tecnologías JBoss Seam Framework � Características üSeam principales: define un archivo descriptor denominado pages. xml que ofrece una gama mucho amplia de controles de navegación de lo que el archivo facesconfig. xml de JSF puede soportar.
Herramientas Enterprise Architect 7. 5
Herramientas Enterprise Architect 7. 5 � Características principales: üEA está basada en la especificación UML 2. 1, ofreciendo soporte para diferentes tipos de diagramas de UML como: diagramas estructurales (clase, objeto, compuesto, paquete, componente, y despliegue. ), diagramas de comportamiento (casos de uso, comunicación, secuencia, descripción de la interacción, actividad, estado, y tiempo), y diagramas extendidos como: análisis (actividad simple), personalizado (para requisitos, cambios, y UI).
Herramientas Enterprise Architect 7. 5 � Características principales: üPermite la generación e ingeniería inversa de código fuente. üSoporte para casos de prueba (JUnit y NUnit). üControl de versiones (empleando CVS o SCC). üGeneración de documentación en formatos HTML y RTF.
Herramientas Netbeans 6. 7. 1
Herramientas Netbeans 6. 7. 1 � Características principales: üEs un producto libre y gratuito sin restricciones de uso. üEstá escrito en Java, pero puede servir para cualquier otro lenguaje de programación. ü Soporta el desarrollo de todos los tipos de aplicaciones Java. üTodas las funciones del IDE son provistas por módulos. Cada módulo provee una función bien definida, tales como el soporte de Java, edición, o soporte para el sistema de control de versiones.
Herramientas Subversion 1. 6. 6
Herramientas Subversion 1. 6. 6 � Características principales: üEs un producto libre y de código fuente abierto. üSe utiliza en cualquier lenguaje de Programación y para cualquier tipo de proyecto. üImplementa un sistema de ficheros versionado “virtual” que sigue los cambios sobre árboles de directorios completos a través del tiempo. üSubversion expresa las diferencias del fichero usando un algoritmo de diferenciación binario. üSubversion puede acceder al repositorio a través de redes.
Herramientas My. SQL Server 5. 1
Herramientas My. SQL Server 5. 1 � Características principales: üEs un producto de licencia dual (gratuita y comercial). üEl servidor de base de datos My. SQL es muy rápido, fiable y fácil de usar. üMy. SQL Server trabaja en entornos cliente/servidor. üFunciona en diferentes plataformas.
Herramientas JBoss Application Server 5. 1. 0
Herramientas JBoss Application Server 5. 1. 0 � Características principales: üProducto de licencia de código abierto sin costo adicional. üCumple los estándares. üJBoss implementa todo el paquete de servicios de Java EE (EJB, JMS, JTS/JTA, Servlets/JSP, JNDI).
� El software desarrollado en el presente proyecto de tesis, se fundamenta en una “Guía Básica para la Aplicación de la Técnica de Calidad Seis Sigma al Proceso de Desarrollo de Software”. � Esta Guía (elaborada por estudiantes de la ESPE como proyecto de graduación) busca mejorar el nivel de eficiencia en el control de calidad del proceso de desarrollo de software, a través de la aplicación de la técnica de calidad SEIS SIGMA.
Seis Sigma � Seis Sigma es una metodología de mejora de procesos. � Analiza la variabilidad de los procesos utilizando mediciones basadas en datos de productos, procesos y servicios y que es administrada a través de serie de indicadores, consiguiendo reducir o eliminar los defectos o fallas en la entrega de un producto o servicio al cliente. � Se apoya en herramientas estadísticas y de análisis y propone el desarrollo de grupos de trabajo dinamizadores, creando una estructura propia de trabajo dentro de la organización de la empresa.
Fundamentos de Seis Sigma
Modelos � Seis Sigma alcanza sus objetivos mediante el uso de dos modelos secundarios: Fases Modelos Define (Definir) DMAIC (Utilizada para mejorar procesos ya existentes) Measure (Medir) Analyze (Analizar) Improve (Mejorar) Control (Controlar) Define (Definir) DMADV o DFSS (Utilizada en el rediseño de procesos) Measure (Medir) Analyze (Analizar) Design (Diseñar) Verify (Verificar)
Automatización de la Guía � Tomando en cuenta el modelo DMAIC de Seis Sigma se elaboró la Guía empleada en el presente proyecto. Guía Fases de Desarrollo Iniciación del Proyecto Análisis del Sistema Diseño del Sistema Construcción Evaluación y Aseguramiento de Calidad Implementación Por cada fase la guía considera la siguiente estructura: • Objetivo(s) de la fase. • Listado de Actividades de la fase • Contenido de cada actividad: • Tarea(s) • Entregable(s) • Consideraciones Seis Sigma • Formato(s)
Fase – Iniciación del Proyecto Objetivos • Definir con claridad el problema. Actividades Identificar el problema. • Elaborar un RFS (Requerimiento de Servicios IT), que será usado como notificación inicial por parte del cliente sobre el sistema requerido. Conformar el equipo de desarrollo. • Conformar el equipo de desarrollo de acuerdo a las características y particularidades de cada proyecto. Identificar requerimientos preliminares. • • Validar los requerimientos. • Validar los requerimientos de alto nivel previamente obtenidos. Desarrollar un estudio de fiabilidad. • Estructurar un estudio de fiabilidad para el proyecto. Obtener la aprobación del proyecto. • Obtener aprobación de todos los clientes, departamentos y/o entidades, que tengan relación directa o indirecta con el nuevo sistema. • Definir el alcance del proyecto. • Proponer una solución. • Determinar los costos y beneficios de la solución. • Obtener la aprobación del proyecto. Tareas Iniciar el proceso de desarrollo a través del mapa de procesos. Desarrollar un bosquejo inicial de proyecto. Definir las metas del proyecto. Identificar los clientes. Identificar salidas claves. Documentar los procesos actuales. Definir los requerimientos de alto nivel.
Fase – Análisis del Sistema Objetivos • Completar la identificación de los requerimientos que comenzó en la fase de Iniciación del Proyecto. • Transformar los requerimientos de alto nivel en especificaciones detalladas del sistema. • Crear un diseño conceptual del sistema a través del estudio de fiabilidad detallado. Actividades Tareas Entender los procesos actuales. • Desarrollar una línea base con los procesos actuales que permitan justificar el propósito de las mejoras a obtenerse con el sistema. Identificar los requerimientos. • Definir requerimientos detallados del sistema. • Desarrollar el Criterio de Evaluación de Requerimientos. Priorizar los requerimientos. • Priorizar los requerimientos detallados conjuntamente con el cliente. Identificar mejoras potenciales en los procesos. • Identificar soluciones potenciales para los requerimientos detallados, catalogados como prioritarios. Determinar las mejoras que tendrán el mayor impacto sobre los requerimientos prioritarios. • Determinar cuáles de los procesos de mejora propuestos, deberán ser implantados en el sistema para asegurar el mayor impacto sobre los requerimientos prioritarios. Crear un mapa de estado detallado. • Generar un mapa funcional de procesos detallado (de estados) sobre los requerimientos prioritarios. Evaluar el impacto y riesgos de las propuestas de mejora de los procesos. • Evaluar el impacto y los riesgos sobre las mejoras de procesos propuestas, y su repercusión en el sistema. Completar el desarrollo del diseño conceptual del sistema. • Completar el diseño conceptual del nuevo sistema. Completar el documento de especificación de requerimientos. • Agrupar la información obtenida en las tareas precedentes bajo una estructura definida, para conformar el documento de referencia final de requerimientos del proyecto. Obtener aprobación • Presentar el documento de especificación de requerimientos elaborado al cliente para obtener aprobación.
Fases de Desarrollo en base a ICONIX Generar listado de requerimientos Elaborar Modelo de Dominio inicial
Fases de Desarrollo en base a ICONIX Crear Prototipos de interfaz de usuario Realizar el Modelo de Casos de Uso
Fases de Desarrollo en base a ICONIX Realizar el Diagrama de Paquetes Elaborar las Especificaciones de Casos de uso
Fases de Desarrollo en base a ICONIX Reescribir las Especificaciones de casos de uso Crear los Diagramas de Robustez Actualizar el Modelo de Dominio inicial
Fases de Desarrollo en base a ICONIX Diseñar la Arquitectura del Software Elaborar los Diagramas de Secuencia Finalizar el Modelo de Dominio – Modelo de Clases
Fases de Desarrollo en base a ICONIX Crear el Modelo de Datos Generar proyecto Seam, utilizando seamgenerator
Fases de Desarrollo en base a ICONIX Codificar a través de Netbeans IDE Desplegar el Software en JBoss (archivo. ear)
Software en funcionamiento
GRACIAS
















































