FDD.

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

ingeniería de software
Ingeniería de Software II
Metodologías ágiles.
Gestión de Recursos Informáticos Unidad Nº 4: Proyectos Informáticos
ANÁLISIS DE REQUERIMIENTOS
Construcción de Páginas WEB
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.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
METODOLOGIAS AGILES DE CONSTRUCCION DE SOFWARE
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.
FDD: Feature Driven Development Desarrollo Basado en Funcionalidades
Proceso de Originación de Crédito: Banco de los Alpes
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Ingeniería del Software
Modelo de Desarrollo XP
Evaluación de Productos
PLANEACION DE UNA ESTRUCTURA ORGANIZACIONAL
ITERASOFT. OBJETIVOS DEL GRUPO Producir un sistema Manejador de Itinerarios de alta calidad y confiabilidad Realizar un proyecto bien administrado y productivo.
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
Ingeniería de Software
Fase Inicial Grupo 6 – PIS – 2013.
Fdd : Feature Driven Development Nombre: JORGE RAFAEL COLLORANA MATERIA: CARRERA: INGENIERIA DE SISTEMAS LAPAZ_EL ALTO
Ingeniería de Software Orientado a Objetos
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
EXtreme Programming.
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería de Software
Ingeniería del Software
Ximena Romano – Doris Correa
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Gestió n de Tiempo Nos pasamos todo el día pendiente de la hora… y sin embargo siempre nos falta tiempo.
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
Especialización en Desarrollo de Software
Alexander Aristizabal Ángelo flores herrera
Ingeniería de Software
Diseño de Sistemas.
Ciclo de vida de un sistema
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 Tatiana Alejandra.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
METODOLOGIAS DE DESARROLLO DE SOFTWARE
IMPLEMENTACIÓN DE ITIL EN 10 PASOS
GESTIÓN DEL EQUIPO HUMANO DEL PROYECTO
PROCESOS DE DESARROLLO DE SOFTWARE
Actividades en el Proceso de desarrollo de Software
Microsoft Office Project INTRODUCCIÓN A LA GESTIÓN DE PROYECTOS Microsoft Office Project 2010.
Estructurar tus ideas para hacerlas realidad
Implementando PSP / TSP
TEMA: RESPONSABILIDAD DE ERRORES
Ciclo de Vida del Software
METODOLOGÍADE DESARROLLO ÁGIL DSDM - FDD
Proceso de desarrollo de Software
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
GDITool. Temario Presentación del ProyectoCiclo de VidaPlanificaciónMetodología de TrabajoAlcanceEstimaciónUML AnálisisUML DiseñoArquitectura del SistemaTecnologías.
Fundamentos de Computación
Identificación de entradas, salidas y herramientas de procesos de gestión del PMI Jairo A. Orozco L.
Autor: Reinozo Cuesta Christian Marcelo
RAPID APPLICATION DEVELOPMENT RAD. Proceso de RAD Involucrar en todos los aspectos al usuario en el desarrollo del sistema Uso continuo y repetitivo de.
Ingeniería de Software Facultad de Ingeniería Septiembre 2010 Fernando Alsuyet Ariel Illio Matias Baldini.
Software de Comunicaciones
Modelo de procesos de software
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Fundamentos de Ingeniería de Software
Sobre el Proceso Racional Unificado RUP es un proceso para el desarrollo de un proyecto de un software que define claramente quien, cómo, cuándo y qué.
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.
Sistemas de calidad en el desarrollo de software.
Entregables del Proyecto
Metodologías de Desarrollo Ágil
Transcripción de la presentación:

FDD

OBJETIVOS Sintetizar un programa conforme a los rasgos requeridos En un desarrollo en términos de FOP (Programación Orientada a rasgos), los objetos se organizan en módulos o capas conforme a rasgos.

FDD (DESARROLLO MANEJADO POR RASGOS) fue desarrollado por Jeff De Luca y el viejo gurú de la OO Peter Coad. es una técnica de programación guiada por rasgos o características y centrada en el usuario, no en el programador. Como las otras metodologías adaptables, se enfoca en iteraciones cortas que entregan funcionalidad tangible. En el caso del FDD las iteraciones duran dos semanas.

no cubre todo el ciclo de vida sino sólo las fases de diseño y construcción y se considera adecuado para proyectos mayores y de misión crítica. no requiere un modelo específico de proceso y se complementa con otras metodologías.

PRINCIPIOS DE FDD Se requiere un sistema para construir sistemas si se pretende escalar a proyectos grandes. Un proceso simple y bien definido trabaja mejor. Los pasos de un proceso deben ser lógicos y su mérito inmediatamente obvio para cada miembro del equipo. Vanagloriarse del proceso puede impedir el trabajo real. Los buenos procesos van hasta el fondo del asunto, de modo que los miembros del equipo se puedan concentrar en los resultados. Los ciclos cortos, iterativos, orientados por rasgos son mejores.

CATEGORIAS DE ROL roles claves, roles de soporte y roles adicionales. administrador del proyecto: quien tiene la última palabra en materia de visión, cronograma y asignación del personal. arquitecto jefe (puede dividirse en arquitecto de dominio y arquitecto técnico). manager de desarrollo: que puede combinarse con arquitecto jefe o manager de proyecto. programador jefe: que participa en el análisis del requerimiento y selecciona rasgos del conjunto a desarrollar en la siguiente iteración. propietarios de clases: que trabajan bajo la guía del programador jefe en diseño, codificación, prueba y documentación, repartidos por rasgos. experto de dominio: que puede ser un cliente, patrocinador, analista de negocios o una mezcla de todo eso.

Los cinco roles de soporte administrador de entrega: que controla el progreso del proceso revisando los reportes del programador jefe y manteniendo reuniones breves con él; reporta al manager del proyecto abogado/guru de lenguaje: que conoce a la perfección el lenguaje y la tecnología. ingeniero de construcción: que se encarga del control de versiones de los builds y publica la documentación. herramientista (toolsmith): que construye herramientas ad hoc o mantiene bases de datos y sitios Web. administrador del sistema: que controla el ambiente de trabajo o productiza el sistema cuando se lo entrega.

Los tres roles adicionales son los de verificadores: encargados del despliegue y escritores técnicos. Un miembro de un equipo puede tener otros roles a cargo, y un solo rol puede ser compartido por varias personas.

El FDD tiene cinco procesos. Los primeros tres se hacen al principio del proyecto. Desarrollar un Modelo Global Construir una Lista de los Rasgos Planear por Rasgo Los últimos dos se hacen en cada iteración. Cada proceso se divide en tareas y se da un criterio de comprobación. d) Diseñar por Rasgo e) Construir por Rasgo

PROCESO FDD

Desarrollar un Modelo Global Cuando comienza este desarrollo, los expertos de dominio ya están al tanto de la visión, el contexto y los requerimientos del sistema a construir. Se espera que existan requerimientos tales como casos de uso o especificaciones funcionales. FDD, no cubre este aspecto. Los expertos de dominio presentan un ensayo en el que los miembros del equipo y el arquitecto principal se informan de la descripción de alto nivel del sistema. El dominio general se subdivide en áreas más específicas y se define un ensayo más detallado para cada uno de los miembros del dominio. Luego de cada ensayo, un equipo de desarrollo trabaja en pequeños grupos para producir modelos de objeto de cada área de dominio. Simultáneamente, se construye un gran modelo general para todo el sistema.

b) Construir una Lista de los Rasgos Los ensayos, modelos de objeto y documentación de requerimientos proporcionan la base para construir una amplia lista de rasgos. Los rasgos son pequeños ítems útiles a los ojos del cliente. Son similares a las tarjetas de historias de XP y se escriben en un lenguaje que todas las partes puedan entender. Las funciones se agrupan conforme a diversas actividades en áreas de dominio específicas. La lista de rasgos es revisada por los usuarios y patrocinadores para asegurar su validez y exhaustividad. Los rasgos que requieran más de diez días se descomponen en otros más pequeños.

Planear por Rasgo Incluye la creación de un plan de alto nivel, en el que los conjuntos de rasgos se ponen en secuencia conforme a su prioridad y dependencia, y se asigna a los programadores jefes. Las listas se priorizan en secciones que se llaman paquetes de diseño. Luego se asignan las clases definidas en la selección del modelo general a programadores individuales, o sea propietarios de clases. Se pone fecha para los conjuntos de rasgos.

d) Diseñar por Rasgo y Construcción de rasgos Se selecciona un pequeño conjunto de rasgos del conjunto y los propietarios de clases seleccionan los correspondientes equipos dispuestos por rasgos. Se procede luego iterativamente hasta que se producen los rasgos seleccionados. Una iteración puede tomar de unos pocos días a un máximo de dos semanas. Puede haber varios grupos trabajando en paralelo. El proceso iterativo incluye inspección de diseño, codificación, prueba de unidad, integración e inspección de código. Luego de una iteración exitosa, los rasgos completos se promueven al build principal. Este proceso puede demorar una o dos semanas en implementarse.

CICLO FDD

COMPARACION RUP, XP y FDD tienen pocas similitudes entre si, aunque XP y FDD poseen algunas más al ser ambos ligeros, orientados al cliente y de iteraciones cortas y rápidas. También hay que decir que debido al carácter general de RUP, algunos autores consideran todos los demás procesos de desarrollo como casos particulares de este. En cuanto equipos FDD y XP se implementan mejor para proyectos cortos y equipos más pequeños, siendo quizás FDD más escalable que XP, ya que a mayor tamaño de código y/o equipo mayor es la necesidad de cierta organización y RUP esta pensado para proyectos y equipos grandes, en cuanto a tamaño y duración.

DESARROLLO FDD se centran más en la organización global, y muchas de esas actividades, como ejecución de pruebas, las asumen como obligatorias aunque sin definirlas completamente, dejando libertad a las distintas subunidades del proyecto para implementarlas a su manera (por ejemplo usar la programación por parejas en partes complejas), aunque las directrices de la empresa suelen marcar el camino a seguir.

En cuanto a carga de trabajo FDD es por su parte un proceso intermedio, en el sentido de que genera más documentación que XP (donde apenas existe fuera del código fuente) pero menos que RUP (que intenta documentar todo). Se entrega bastante libertad a los desarrolladores, pero siempre bajo cierto orden marcado por una jerarquía (arquitecto, programador jefe, etc.), que representa también en nivel de responsabilidad existente en cada caso.

EVALUACION 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, pero la tarea del reporting recae solo en los jefes de proyecto, mientras que en FDD esta más distribuida en la jerarquía. 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.

DESVENTAJAS FDD presenta su debilidad 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. Es en todo caso este requisito una necesidad en cualquier proyecto si queremos llevarlo a buen puerto con éxito. Su punto intermedio entre la libertad de XP y la rigurosidad de RUP lo hacen sin duda un proceso interesante, pero a pesar de cambiar la forma de afrontar el problema, la jerarquía existente puede hacer que las dependencias de esa gente experimentada sean grandes.

CONCLUSION FDD es un método de desarrollo de ciclos cortos que se concentra en la fase de diseño y construcción. En la primera fase, el modelo global de dominio es elaborado por expertos del dominio y desarrolladores; el modelo de dominio consiste en diagramas de clases con clases, relaciones, métodos y atributos. Los métodos no reflejan conveniencias de programación sino rasgos funcionales. Algunos agilistas sienten que FDD es demasiado jerárquico para ser un método ágil, porque demanda un programador jefe, quien dirige a los propietarios de clases, quienes dirigen equipos de rasgos. Otros críticos sienten que la ausencia de procedimientos detallados de prueba en FDD es llamativa e impropia. Los promotores del método aducen que las empresas ya tienen implementadas sus herramientas de prueba, pero subsiste el problema de su adecuación a FDD. Un rasgo llamativo de FDD es que no exige la presencia del cliente.