Agenda 1. Introducción 2. Aspectos Metodológicos del Desarrollo de Software 3. Aplicación Web (Modelo del Producto) 4. Modelo del proceso 5. Dos enfoques Metodológicos 6. Métodos Seleccionados 7. Evaluación de los Métodos 8. Aspectos Comunes y Diferentes de los Métodos para Desarrolla Aplicaciones Web 9. Conclusiones 10. Presentación de una Experiencia Real de Adaptación de RUP a la Organización.
Desarrollo de software COM NET Watch OOWS RMM RNA DESARROLLO DE SITIOS WEB INSTRUCCIONALES DSDM UML TWIM VBSCRIPT KANBAN MODELO ESPIRAL DE BOEHM SCRUM JSP MEDSI HFPM Marco de Referencia Basado en Componentes para e-commerce OOHDM JAVASCRIPT CGI RUP HTML XP J2EE SERVLETS OPEN SOURCE UWE XML MIDAS SWM HTML WSDM ASP ENFOQUE DE INGENIERÍA DE LOWE-HALL S METODO PARA DESARROLLAR SIW APPLETS DE JAVA BROWSER MODELLING WEB- BASED INSTRUCTIONAL SYSTEMS
Aspectos Metodológicos de Desarrollo de software Los tres elementos esenciales de un proyecto de desarrollo de software: el producto que se desarrolla el proceso utilizado para desarrollar el producto los recursos humanos requeridos para desarrollar el producto determinan los tres componentes fundamentales de un método: El modelo del producto El modelo del proceso Modelo del Producto El modelo del grupo de desarrollo Qué producto elaborar Modelo del Proceso Quién ejecuta Qué propiedades tiene el producto? Modelo del Grupo Qué y Cómo hacer el producto
Características 1. Intensivas de red 2. Controlada por el contenido Aplicación Web (Modelo del Producto) 3. Evolución continua 4. Inmediatez Atributos de Calidad 5. Operatividad en Internet Calidad de una aplicación web Usabilidad Funcionalidad Fiabilidad Eficiencia Capacidad de comprensión del sitio global. Servicios de ayuda y retroalimentación en línea. Capacidades estéticas y de interfaz Servicios especiales Capacidad de recuperación y búsqueda Servicios de búsqueda y navegación Servicios relacionados con el dominio de aplicación Proceso correcto de enlace Recuperación de errores Validación y recuperación de la entrada del usuario Rendimiento del tiempo de respuesta Velocidad de generación de paginas Velocidad de generación de gráficos Capacidad de Mantenimiento Facilidad de corrección Adaptabilidad Extensibilidad
Modelo de Producto Presentación Solicita Despliega Lógica del Negocio Datos Páginas HTML JavaScript Navegador Programas Intérpretes VBScript Objetos del Negocio Repositorio de datos HTTPW ML XML Programas Compilados Applets de JAVA Objetos Web Bases de Datos Servidor Web Servidor de Páginas dinámicas Control Active X COM Datos XML J2EE Servlets CGI JSP ASP Capa de Presentación Capa de Lógica del Negocio.NET Capa de Datos
Modelo de Proceso Representación gráfica de las fases, pasos, actividades o tareas que el método propone para desarrollar software Existe una gran variedad de modelos de procesos que podemos clasificar en función del enfoque o paradigma utilizado por el modelo: Enfoque de ingeniería Enfoque evolutivo Enfoque formal o disciplinado Enfoque orientado a objetos Enfoque ágil Enfoque de reutilización de software
DOS ENFOQUES METODOLOGICOS METODOS AGILES Basados en el Manifiesto Ágil que da mayor valor a: Individuos y su interacción Código que funcione Colaboración con el cliente Respuesta al cambio METODOS DISCIPLINADOS Basados en la Calidad Total que da mayor valor a: El proceso de desarrollo Los productos incluyendo el código Contrato con el cliente Seguimiento de un plan
DOS ENFOQUES METODOLOGICOS METODOS AGILES Centrados en las personas *Énfasis en el código y la cooperación *Procesos mínimos con poca documentación *Formalidad del proceso reducida a un mínimo *Procesos no repetibles *Resultados dependen del equipo de trabajo *Conocimiento tácito METODOS DISCIPLINADOS Centrados en los procesos *Énfasis en los productos y la organización *Procesos bien definidos y documentados *Alta formalidad en el proceso de desarrollo *Procesos repetibles *Resultados predecibles *Conocimiento explícito
Métodos Seleccionados 1. Método Basado en Componentes para el Desarrollo de Aplicaciones Web (Montiva Jonas y Barrios Judith) (Enfoque Balanceado) 2. Marco de Referencia Basado en componentes para e-commerce de Fingar Peter (Enfoque Balanceado) 3. Rational Unified Process (RUP) (Enfoque Disciplinado) 4. Métodos Agiles (SCRUM y XP) (Enfoque Ágil)
Descripción de Método Basado en Componentes para el Desarrollo de Aplicaciones Web (MontilvaJonasy Barrios Judith)
Marco de Referencia Basado en componentes para e- commerce de Fingar Peter Estrategia del Negocio e-commerce Fortalezas, Oportunidades, Debilidades, Amenazas METAS, REQUERIMIENTOS, RESTRUCCIONES Repositorio Negocios Modelo de objetos Casos de Uso Procesos del Negocio Inter-Empresarial Interno y Externo MODELOS DE DATOS, PROCESOS Y ORGANIZACIONALES Repositorio de Componentes Aplicaciones Basadas en Componentes Gestión del Vendedor Cadena de Suministro Extendida I-Market, Atención al Cliente Infraestructura Tecnológica Infraestructura de Objetos Distribuidos Sistemas Legados y Activos
Rational Unified Process(RUP)
Rational Unified Process(RUP) Core RUP Customizar Configurar Personalizar Large J2EE Project Plug-In for J2EE Plug-In for XP Plug-In for.net Small Team Project.NET Project Desarrollo de la organización Ingenieros de Procesos Gerentes de proyecto Miembros del equipo Metodología Común Autoría Configuración Producción
Rational Unified Process(RUP) RUP pretende implementar las mejores prácticas en ingeniería de software: Desarrollo iterativo del software Administración de requerimientos Uso de arquitecturas basadas en componentes Modelamiento visual del software Verificación de la calidad del software Control de cambios
Métodos Agiles (SCRUM y XP)
Evaluación de los métodos El marco de referencia diseñado está basado en los trabajos de Jarke Mathias y Barrios Judith. Este marco considera cuatro aspectos fundamentales para evaluar un método: 1. La vista del dominio 2. La vista de uso 3. La vista del producto 4. La vista del proceso. Dentro de estas vistas se consideran a su vez las facetas y los atributos que las describen. Cada faceta representa un aspecto a evaluar dentro de una vista. La misma está compuesta por un conjunto de atributos y sus valores correspondientes, los cuales fueron adaptados con el fin de caracterizar los métodos para el desarrollo de aplicaciones web.
Vista de Dominio Para qué sirve? Para qué es concebido? Faceta Atributos Valores 1) 2) 3) 4) Alcance Área de aplicación Publicidad Educativo e-commerce e-business Portales Sistemas de Información web e-goverment Aspectos Técnicos Gerenciales Inherentes al área de Aplicación.
Vista de Uso (objetivos del que los Usa) Faceta Atributos Valores 1) 2) 3) 4) Aplicabilidad Ciclo de vida Análisis Diseño Desarrollo Evaluación Mantenimiento Orientación Académico Comercial Publicitario Servicios Uso Visibilidad Siempre muestra qué hacer Siempre muestra cómo hacerlo Estandarización Uso de técnicas estándares Uso de notaciones estándares Eficiencia de uso Adaptable y expandible Simple y fácil de usar Bien documentado Participación del usuario Tipo de usuario Desarrolladores de software Diseñadores de páginas web Publicistas Personal directivo de grandes organizaciones Grado de Participación Total Parcial Ninguno
Vista del producto (Resultado de Aplicar el Método) Faceta Atributos Valores 1) 2) 3) 4) Descripción del producto Modelo del producto Explicito Implícito No existe Notación del modelo Formal (Fórmulas matemática) Semiformal (Gráficos, imágenes) Informal (Textual) Orientación del modelo Orientado a objetos Orientado a procesos Basado en ejemplos Indefinido Perspectiva del producto Perspectiva funcional Perspectiva tecnológica Perspectiva estructural Descripción Conceptual Conceptos usados por el modelo Conceptos Técnicos Conceptos estéticos
Vista del Proceso (Desarrollo del Producto) Faceta Atributos Valores 1) 2) 3) 4) Modelo de Orientación Orientada al producto proceso de Orientada a la actividad desarrollo Orientada a la decisión Enfoque Ad-hoc Predictivo (cascada) Características del proceso Gerencia de proyecto Claridad Evolutivo (adaptativo) Estructura del proceso bien definido Fases/pasos/tareas Estructura del proceso (qué hacer) Modo de ejecución del proceso Iterativo Secuencial estricto Incremental Visibilidad Definición clara del flujo de trabajo Progreso visible externamente Dependencia tecnológica Independiente de las herramientas Adaptabilidad Modularidad Procesos modificables Guía explícita Completa Implícita Planificación y control Definición del plan del proyecto Estimación de recursos Monitoreo y evaluación del progreso Equipo de trabajo Estructura del equipo Tamaño del equipo Individual Equipos pequeños (<= 5 personas) Aseguramiento de calidad Gestión de la configuración Equipos Grandes (> 5 personas) Calidad en la planificación y control Calidad del equipo Revisión de técnicas de validación y verificación Planificación y ejecución de la gestión de configuración del software Documentación Documentación de plantillas Entrenamiento Entrenamiento equipo Entrenamiento de usuario
Vista del Proceso (Desarrollo del Producto) Cobertura del ciclo de desarrollo Proceso de post-desarrollo Análisis Representación del conocimiento del dominio Análisis de objetos del dominio. Definición de requerimientos Definición de requerimientos informal Técnicas de especificación Diseño Diseño de arquitecturas Diseño de interfaces Implementación Producción de multimedia Creación del sitio web Construcción de la Base de Datos Implementación de las reglas del negocio Programación del lado del cliente Programación del lado del servidor Implementación de políticas de seguridad (SSL,etc). Comunicación de objetos distribuidos. Pruebas Prueba de cada uno de los componentes Pruebas de integración Prueba de la aplicación web. Validación y verificación de la aplicación web. Instalación Implantación de la aplicación web Mantenimiento Soporte de mantenimiento
Aspectos Comunes y Diferentes entre los Métodos para Desarrollar Aplicaciones Web Modelado del Negocio Requerimientos Diseño de la Aplicación web Implementación Planificación Validación y Verificación Pruebas Lanzamiento Nuevos Requerimientos Mantenimiento
Concluciones Contemplan la fase de análisis de requerimientos (con diferentes denominaciones). Contemplan un estudio detallado de la organización donde se desarrollará la aplicación web El método para el desarrollo de e-commerce no contempla la construcción de un prototipo. Plantean actividades orientadas a cumplir con los atributos de calidad del producto desarrollado.
Conclusiones Los métodos para el desarrollo de e-commerce no presentan actividades orientadas al mantenimiento de la aplicación web. El método para desarrollo de e-commerce contempla el reuso de componentes y de modelos de objetos de negocio y casos de uso en las fases de diseño e implementación. Son un conjunto de pasos secuenciales que indican explícitamente las actividades a ejecutar, más no indican en qué situaciones particulares se debe hacer. No relacionan las actividades a ejecutar en el ciclo de desarrollo con los modelos de producto asociados a cada una de las aplicaciones web. Todos los métodos deben ser adaptados al contexto, dependiendo experiencia del Grupo de Desarrollo siempre de la
Contacto