Fdd : Feature Driven Development

Slides:



Advertisements
Presentaciones similares
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Advertisements

FDD.
FDD: Feature Driven Development Desarrollo Basado en Funcionalidades
Fdd : Feature Driven Development Nombre: JORGE RAFAEL COLLORANA MATERIA: CARRERA: INGENIERIA DE SISTEMAS LAPAZ_EL ALTO
Planeación con Planning Tool y DotProject Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Rubby Casallas, Andrés Yie.
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Metodologías de Desarrollo Ágil
CONCEPTO INGENIERÍA DE SOFTWARE  Analiza, diseña y desarrolla productos de sistemas software, proponiendo la plataforma tecnológica más apropiada. Domina.
RUP Vs. XP Sandra Lorena Anaya. Introducción ● Calidad del SW ● Transparencia y control sobre el proceso ● Producir lo esperado en el tiempo esperado.
NORMA ISO DIS 9001:2015 Draft International Standard.
FUNDAMENTOS DEL ANÁLISIS DE SISTEMAS Un sistema es un conjunto de componentes que se unen e interactúan entre si para formar un todo en base a un mismo.
Lcdo. Eddy Cortez Sistemas II. Ingeniería de Requisitos.
ADMINISTRACIÓN DE OBRAS Edna Soto Rojas Ingeniero Civil en Obras Civiles CONSTRUCCIÓN CIVIL  TÉCNICO EN CONSTRUCCIONES CIVILES CCI-020 ADMINISTRACIÓN.
Los requisitos para una planificación eficaz ya que es la tarea más importante en cuanto condiciona el hacer y el actuar. Los objetivos deben ser alcanzables.
Programación Extrema (XP) Alan Quirino Eder Ramírez Edgar García Alberto Borrell Raúl Bribiesca
Análisis de Proyecto de Software.
Proceso de Implantación y Aceptación del Sistema de Información (IAS)
Metodología de Implementación de Sistemas ERP
Ingeniería de Software: Metodologías
Gestión de Proyectos.
Gestión de Proyectos Ágiles
SWEBOK.
Metodología de Sistemas Unidad IV: MÉTODOS ÁGILES
Metodología Desarrollo de Sistemas de Información.
CICLO DE VIDA DEL SOFTWARE
INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS
NORMA INTERNACIONAL DE AUDITORÍA 300
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
PLANEAMIENTO DE LA AUDITORIA FINANCIERA
EL ROL DEL JEFE YAMILE ANDREA ZEA GERENCIA MODERNA
Tema 3. Lenguaje unificado de modelado UML
CICLO DE VIDA DEL SOFTWARE
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Evolución de los sistemas de información.
Metodología de la programación
Ingeniería del Software
Proceso Unificado de Desarrollo de Software
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
Ciclo de Vida del Software
Ciclo de vida del Software
Comprensión y obtención de los requerimientos
Feature-Driven Development Desarrollo basado en funcionalidades (FDD)
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
METODOLOGIAS AGILES VS TRADICIONALES SCRUM - RUP FABIO ARNOBY BEJARANO Q. UNIREMINGTON BUGA (V) INGENIERIA DE SOFTWARE II SEPTIEMBRE 2018.
Aguirre García Héctor Guzmán Jiménez Ana Elizabeth
CICLO DE VIDA DE SOFTWARE
Equipo 2 Arellano Catalán Marco A. Damián Contreras Ma. Guadalupe
EXPOSITOR L.C. EDUARDO M. ENRÍQUEZ G.
Sistema de Información de Recursos Humanos
Planes del Proyecto.
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
METODOLOGIA AGIL XP LIC. ROXANA LAUREL R.. INTRODUCCION  Proceso : conjunto de actividades ordenadas para lograr una serie de objetivos  Proceso Pesado.
EFECTIVIDAD DEL CONTROL INTERNO Un sistema efectivo de control interno proporciona seguridad razonable sobre el logro de los objetivos de la organización.
Metodología de Desarrollo de Sistemas II Ingeniería de Software  DEFINICIÓN La ingeniería del software es el establecimiento y uso de principios de.
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos” Trabajo de título presentado.
1 Introducción al proceso unificado de desarrollo de software.
ASIGNATURA: REINGENIERÍA DEL SOFTWARE CUATRIMESTRE: I DOCENTE: ING. IRENE MARTÍNEZ MEJÍA CORREO: Managua, 26 de Enero 2019
1 SISTEMAS II CICLO DE VIDA. 2 Sistemas II. CICLO DE VIDA DE Los Sistemas de Información “ Es un proceso por el cual los analistas de sistemas, los ingenieros.
INTEGRANTES u Álvarez Palomino David u Salazar Colonia Jesús Felipe u Velásquez Huapaya Ricardo.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Ingeniería de Software: Metodologías
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos” Trabajo de título presentado.
GESTIÓN DE PROYECTOS La gestión de proyectos está conformada por todas aquellas acciones que debes realizar para cumplir con una objetivo definido dentro.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
Plan de Sistemas de Información (PSI). Plan de Sistemas de Información (PSI) Descripción y Objetivos Tiene como objetivo la obtención de un marco de referencia.
PLANIFICACION Diego Hernández.
ICI 502 Procesos de Software
Transcripción de la presentación:

Fdd : Feature Driven Development UNIVERSIDAD UNION BOLIVARIANA Fdd : Feature Driven Development Nombre: JORGE RAFAEL COLLORANA MATERIA: CARRERA: INGENIERIA DE SISTEMAS LAPAZ_EL ALTO 01-08-2009

FDD Feature Driven Development Desarrollo Basado en Funcionalidades Es un proceso ágil para el desarrollo de sistemas. Fue diseñado por Peter Coad, Eric Lefebvre y Jeff DeLuca. No hace énfasis en la obtención de los requerimientos sino en como se realizan las fases de diseño y construcción. Se preocupa por la calidad, por lo que incluye un monitoreo constante del proyecto.

FDD Ayuda a contrarrestar situaciones como el exceso en el presupuesto, fallas en el programa o el hecho de entregar menos de lo deseado. Propone tener etapas de cierre cada dos semanas. Se obtienen resultado periódicos y tangibles.

FDD Se basa en un proceso iterativo con iteraciones cortas que producen un software funcional que el cliente y la dirección de la empresa pueden ver y monitoriar. Define claramente entregas tangibles y formas de evaluación del progreso del proyecto.

Proceso El proceso consiste de cinco pasos secuénciales durante los cuales se diseña y se construye el sistema: Desarrollo de un modelo global. Construcción de una lista de funcionalidades. Planeación por funcionalidad. Diseño por funcionalidad. Construcción por funcionalidad.

Proceso

Descripción del Proceso(1) Desarrollo de un modelo global: Cuando comienza el desarrollo, los expertos del dominio están al tanto de la visión, el contexto y los requerimientos del sistema a construir. Se divide el dominio global en áreas que son analizadas detalladamente. Los desarrolladores construyen un diagrama de clases o de objetos por cada área. Se construye un modelo global del sistema.

Descripción del Proceso(2) Construcción de una lista de funcionalidades: Una funcionalidad es un ítem útil a los ojos del cliente. Se elabora una lista de funcionalidades que resuma la funcionalidad general del sistema. La lista es elaborada por los desarrolladores y es evaluada por el cliente. Se divide la lista en subconjuntos según la afinidad y la dependencia de las funcionalidades. La lista es finalmente revisada por los usuarios y los responsables para su validación y aprobación.

Descripción del Proceso(3) Planeación por funcionalidad: En este punto se procede a ordenar los conjuntos de funcionalidades conforme a su prioridad y dependencia, y se asigna a los programadores jefes.

Descripción del Proceso(4,5) Diseño por funcionalidades y Construcción por funcionalidades: Se selecciona un conjunto de funcionalidades de la lista. Se procede a diseñar y construir la funcionalidad mediante un proceso iterativo. Una iteración puede tomar de unos pocos días a un máximo de dos semanas. El proceso iterativo incluye inspección de diseño, codificación, pruebas unitarias, integración e inspección de código.

Roles y Responsabilidades

Categorías Key Roles / Roles claves Supporting Roles / Roles de soporte Additional Roles / Roles adicionales

Key Roles / Roles claves Project Manager / Director del Proyecto: * Líder administrativo y financiero del proyecto. * Protege al equipo de situaciones externas. Chief Architect / Arquitecto jefe: * Diseño global del sistema. * Ejecución de todas las etapas. Development Manager / Director de desarrollo * Lleva diariamente las actividades de desarrollo.

* Analiza los requerimientos. * Resuelve conflictos en el equipo. * Resuelve problemas referentes a recursos. Chief Programmer / Programador Jefe * Analiza los requerimientos. * Diseña el proyecto. * Selecciona las funcionalidades a desarrollar de la ultima fase del FDD. Class Owner / Propietario de clases * Responsable del desarrollo de las clases que se le asignaron como propias. * Participa en la decisión de que clase será incluida en la lista de funcionalidades de la próxima iteración.

* Poseen el conocimiento de los requerimientos del sistema. Expertos de dominio * Puede ser un usuario, un cliente, analista o una mezcla de estos. * Poseen el conocimiento de los requerimientos del sistema. * Pasa el conocimiento a los desarrolladores para que se asegure la entrega de un sistema completo.

Supporting roles / Roles de soporte Domain Manager * Lidera al grupo de expertos del dominio. * Resuelve sus diferencias de opinión concernientes a los requerimientos del sistema. Release Manager * Controla el avance del proceso mediante la revisión de los reportes del Chief Programmer. * Reporta resultados obtenidos semanalmente al gerente, al cliente donde incluye el porcentaje de avance de cada feature.

Language Lawyer / Guru del Lenguaje * Responsable de poseer un vasto conocimiento en, por ejemplo, un lenguaje específico de programación o tecnología. * Es muy importante cuando se trabaja una nueva tecnología. Build Engineer / Ingeniero de construcción * Responsable de preparar, mantener y correr el proceso de construcción. * Realiza el mantenimiento de las versiones y la publicación de la documentación.

Toolsmith / Herramentista * Rol para la construcción de herramientas específicas para el desarrollo, conversión de datos y testeo. * Puede trabajar en la preparación y mantenimiento tanto de bases de datos o sitios web destinados al proyecto. System Administrator / Administrador del sistema * Configura, administra y repara los servidores, estaciones de trabajo y equipos de desarrollo y testeo utilizados por el equipo.

Additional roles / Roles adicionales Tester * Verifica que el sistema recién creado cumpla con los requerimientos del cliente. * Puede llegar a ser una persona independiente del equipo del proyecto. Deployer * Es el encargado de convertir la información existente requerida por el nuevo sistema. * Participa en el lanzamiento de los nuevos productos. Technical Writer / Escritores de documentos tecnicos * Prepara la documentación para los usuarios, que pueden formar parte o no del equipo del proyecto.

Comparación Puesto que todos los procesos se centran en la producción de software es deseable una comparación, no en su conjunto, sino según los medios que emplean y sus resultados. Realizamos una comparación entre FDD, RUP y XP.

Tamaño de los equipos: RUP esta pensado para proyectos y equipos grandes, en cuanto a tamaño y duración. FDD y XP se implementan mejor para proyectos cortos y equipos más pequeños, siendo quizás FDD más escalable que XP. Obtención de requisitos: RUP y XP crean como base UseCases y UserStories, por lo contrario FDD no define explícitamente esa parte del proyecto sobre la adquisición de requisitos. Evaluación del estado del proyecto: FDD es posiblemente el proceso más adecuado para definir métricas que definan el estado del proyecto, puesto que al dividirlos en unidades pequeñas es bastante sencillo hacer un seguimiento de las mismas.

XP también define esos componentes pequeños XP también define esos componentes pequeños. RUP por su parte, es tan grande y complejo en este sentido como en el resto, por lo que manejar el volumen de información que puede generar requiere mucho tiempo. Carga de trabajo: XP es un proceso ligero, esto es, que los creadores del proceso han tenido cuidado de no poner demasiadas tareas organizativas sobre los desarrolladores. RUP es un proceso pesado, basado mucho en la documentación, en la que no son deseables todos esos cambios volátiles. FDD es por su parte un proceso intermedio, en el sentido de que genera más documentación que XP pero menos que RUP.

Relación con el cliente:Con RUP se presentarán al cliente los artefactos del final de una fase, en contrapartida, la aseguración de la calidad en XP y FDD no se basa en formalismos en la documentación, si no en controles propios y una comunicación fluida con el cliente. Conocimiento sobre la arquitectura: En RUP se intentará reducir la complejidad del software a producir a través de una planificación intensiva. En XP se conseguirá a través de la programación a pares que ya en la creación del código se puedan evitar errores y malos diseños. En FDD sin embargo se usan las sesiones de trabajo conjuntas en fase de diseño para conseguir una arquitectura sencilla y sin errores

Puntos flacos: FDD presenta su talón de Aquiles en la necesidad de tener en el equipo miembros con experiencia que marquen el camino a seguir desde el principio, con la elaboración del modelo global, puesto que no es tan ágil como podría serlo XP. Para el desarrollo de software por medio de equipos pequeños (hasta unas diez personas) es RUP definitivamente muy grande y practicamente inalcanzable. Se deben repartir 31 roles y generar más de 100 artefactos distintos. XP es un proceso muy orientado a la implementación. Lo que es muy poco deseable en XP es el hecho de evitar cualquier tipo de documentación fuera del código fuente (UML juega un papel prácticamente nulo, por ejemplo).

Conclusiones FDD, es una metodología de desarrollo ágil, que disminuye el riesgo de los proyectos, pues gracias a sus entregas tangibles y a el constante monitoreo de su calidad, se asegura el firme avance del mismo. FDD, permite dejar satisfechos a los desarrolladores, gerentes y clientes sin afectar el proyecto. Esto gracias a un buen manejo de las actividades, a la disminución del riesgo del proyecto y al aseguramiento de la calidad del mismo, respectivamente.

En conclusión FDD: Ayuda al equipo a producir resultados periódicos y tangibles. Esta metodología utiliza pequeños bloques llamados features, los cuales contienen la funcionalidad del sistema. Organiza los bloques que están relacionados entre sí, en una lista llamada feature set. Hace énfasis en la obtención de resultados cada dos semanas. Asegura en gran parte la calidad del software entregado. Es adaptativo, pues permite realizar cambios de último momento debido a nuevos requerimientos y a las necesidades del negocio.