ESCUELA DE INFORMATICA UNIVERSIDAD NIACIONAL DE TRUJILLO METODOLOGIAS AGILES PARA EL DESARROLLO DEL SOFTWARE Son una colección de métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios. Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces llamadas "plataformas de lanzamiento”. El Manifiesto Ágil El manifiesto ágil es un documento que resume la filosofía ágil, el cual valora: Al individuo y las interacciones del Desarrollar software equipo de desarrollo que funciona más que sobre el proceso y las conseguir una buena documentación. herramientas
La colaboración con el Responder a los
cliente más que la cambios más que negociación de un seguir estrictamente contrato. un plan. Diferencias entre Metodología Ágil y Metodología Tradicional Metodologías Agiles Metodologías Tradicionales Basadas en heurísticas provenientes de Basadas en normas provenientes de estándares prácticas de producción de código seguidos por el entorno de desarrollo Especialmente preparados para cambios Cierta resistencia a los cambios durante el proyecto Impuestas internamente (por el equipo) Impuestas externamente Proceso mucho más controlado, con numerosas Proceso menos controlado, con pocos principios políticas/normas No existe contrato tradicional o al menos es Existe un contrato prefijado bastante flexible El cliente interactúa con el equipo de desarrollo El cliente es parte del equipo de desarrollo mediante reuniones Grupos pequeños (<10 integrantes) y trabajando Grupos grandes y posiblemente distribuidos en el mismo sitio Pocos artefactos Mas artefactos Pocos roles Mas roles La arquitectura del software es esencial y se Menos énfasis en la arquitectura del software expresa mediante modelos Esquema General de una Metodología Ágil ALGUNAS METODOLOGIAS AGILES Programación Extrema (XP) Es una metodología ágil formulada por Kent Beck, centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software. Se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. FASES DE LA PROGRAMACION EXTREMA SCRUM Es una metodología ágil de gestión de proyectos cuyo objetivo primordial es elevar al máximo la productividad de un equipo, es decir, que reduce al máximo la buro- cracia y actividades no orien- tadas a producir software que funcione y produce resultados en periodos muy breves de tiempo (cada 30 dias), por medio de iteraciones o Sprints; Scrum es ideal para proyecto con un rápido cambio de requerimientos. Beneficios de SCRUM Flexibilidad a cambios. Reducción del Time to Market. Mayor calidad del software. Mayor productividad. Maximiza el retorno de la inversión (ROI). Predicciones de tiempos. Reducción de riesgos . METODOLOGIAS PARA EL DESARROLLO WEB El avance de Internet y las comunicaciones ha provocado en los últimos años el nacimiento de nuevas propuestas metodológicas para la web, estas nuevas metodologías buscan un fin común, que es entregar software de calidad, confiable y bien estructurado, además que sean benéficas en cuestión del tiempo de trabajo, estas metodologías suelen comprender: formulación, planificación, análisis(contenido, iteración funcional, configuración), Diseño(arquitectónico, navegación, interfaz, base de datos), implementación y pruebas. EVOLUCION DE LAS METODOLOGIAS PARA EL DESARROLLO WEB Las distintas metodologías se pueden dividir en tres generaciones en base a su sofisticación, estas son: - Primera Generación:(Principios de los 90) Se sientan las base de la ingeniería Web, en los que se incluyen conceptos como construcción de navegación, separación entre estructuras y el contenido durante el ciclo de desarrollo. - Segunda Generación: (Segunda mitad de los 90) Se refinan los primeros modelos y se añaden los soportes de funcionalidad básica y se llevan a cabo los primeros esbozos de proceso donde se delimitan los modelos conceptual, lógico y físico. - Tercera generación: (A partir del 2000): Se lleva a cabo la profundización en el soporte para la funcionalidad, enfatizacion de la figura del usuario en los métodos, y se avanza hacia la estandarización de notaciones, procesos y lenguajes de especificación. IMPORTANCIA DE UNA METODOLOGÍA WEB Los principales problemas que nos encontramos es la falta de fiabilidad, seguridad, escalabilidad, mantenimiento, integración y la alta dependencia para su desarrollo e implantación junto con la falta de estándares. Lo que deseamos es controlar el caos que han provocado en el pasado procesos creativos de desarrollo con el fin de proporcionar un proceso sistemático orientado a la mejora de la calidad de la aplicación final. Para todo esto se han desarrollado metodologías que permiten estructurar comunicar, entender, simplificar y formalizar tanto el dominio como las decisiones de diseño, así como disponer de documentación detallada para posibles cambios del software. ALGUNAS METODOLOGIAS PARA EL DESARROLLO WEB UWE(UML-BASED WEB ENGINEERING) Es una metodología detallada para el proceso de autoría de aplicaciones con una definición exhaustiva del proceso de diseño que debe ser utilizado. Este proceso, iterativo e incremental, incluye flujos de trabajo y puntos de control, y sus fases coinciden con las propuestas en el Proceso Unificado de Modelado, UWE está especializada en la especificación de aplicaciones adaptativas. FASES DEL DESARROLLO WEB CON UWE Por lo que respecta al proceso de autoría de la aplicación, UWE hace un uso exclusivo de estándares reconocidos como UML y el lenguaje de especificación de restricciones asociado OCL. Para simplificar la captura de las necesidades de las aplicaciones web, UWE propone una extensión que se utiliza a lo largo del proceso de autoría. Este proceso de autoría está dividido en cuatro pasos o Actividades: • Análisis de Requisitos: Fija los requisitos funcionales de la aplicación Web para reflejarlos en un modelo de casos de uso. • Diseño Conceptual: Materializado en un modelo de dominio, considerando los requisitos reflejados en los casos de uso. • Diseño Navegacional: Lo podemos subdividir en : Modelo del Espacio de Navegacional. Modelo de la Estructura de navegación: Muestra la forma de navegar ante el espacio de navegación. • Diseño de Presentación: Representa las vistas del interfaz del usuario mediante modelos estándares de interacción UML. OOHDM ( Método de Diseño de Hipermedia Orientado a Objetos) OOHDM es una metodología orientada a objetos. OOHDM propone el desarrollo de aplicaciones hipermedia a través de un proceso compuesto por cuatro etapas: diseño conceptual, diseño navegacional, diseño de interfaces abstractas e implementación. Los modelos utilizados en esta metodología proveen de todos los mecanismos de agrupamiento y herencia que se necesitan a lo largo del modelado. Fases de OOHDM Diseño Conceptual Durante esta actividad se construye un esquema conceptual representado por los objetos del dominio, las relaciones y colaboraciones existentes establecidas entre ellos. En OOHDM, el esquema conceptual está construido por clases, relaciones y subsistemas. Diseño Navegacional La estructura de navegación de una aplicación hipermedia está definida por un esquema de clases de navegación específica, que refleja una posible vista elegida. En OOHDM hay una serie de clases especiales predefinidas, que se conocen como clases navegacionales: nodos, enlaces, estructuras de accseso. Diseño de Interfaz Abstracta Una vez que las estructuras navegacionales son definidas, se deben especificar los aspectos de interfaz. Esto significa definir la forma en la cual los objetos navegacionales pueden aparecer, cómo los objetos de interfaz activarán la navegación y el resto de la funcionalidad de la aplicación, qué transformaciones de la interfaz son pertinentes y cuándo es necesario realizarlas. Implementación En esta fase, el diseñador debe implementar el diseño. Hasta ahora, todos los modelos fueron construidos en forma independiente de la plataforma de implementación; en esta fase es tenido en cuenta el entorno particular en el cual se va a correr la aplicación. REFERENCIAS BIBLIOGRAFICAS http://es.wikipedia.org/wiki/Desarrollo_%C3%A1gil_de_software. Ingeniería Software Orientada a Objetos, bernd bruegge, cap: Ingenieria Web. http://es.wikipedia.org/wiki/Programaci%C3%B3n_Extrema http://es.wikipedia.org/wiki/Scrum http://universotela.blogspot.com/2011/05/scrum-y-programacion-extrema.html http://maestria-modulo7.blogspot.com/2012/04/procesos-de-desarrollo-ligeros- vs.html http://www.slideshare.net/coesiconsultoria/4-desarrollo-gil-del-software http://www.javiergarzas.com/metodologias-agiles Articulo Métodologías Ágiles en el Desarrollo de Software José H. Canós, Patricio Letelier yMª Carmen Penadés. Construyendo aplicaciones web con una metodología de diseño orientada a objetos, Darío Andrés Silva* Bárbara Mercerat. http://www.slideshare.net/JosafatMtz/metodologias-para-el-desarrollo-de- aplicacones-web http://es.scribd.com/doc/49354262/Metodologias-para-el-desarrollo-de- Aplicaciones-Web http://www.ecured.cu/index.php/Metodolog%C3%ADas_para_el_dise%C3%B1o_d e_aplicaciones_multimedia