fdd. objetivos sintetizar un programa conforme a los rasgos requeridos en un desarrollo en términos...

21
FDD FDD

Upload: emygdia-borbon

Post on 26-Jan-2015

5 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

FDDFDD

Page 2: 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

OBJETIVOSOBJETIVOS

Sintetizar un programa conforme a los Sintetizar un programa conforme a los rasgos requeridosrasgos requeridos

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

Page 3: 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

FDDFDD (DESARROLLO MANEJADO  (DESARROLLO MANEJADO

POR RASGOS)POR RASGOS)

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

Page 4: 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

no cubre todo el ciclo de vida sino sólo las no cubre todo el ciclo de vida sino sólo las fases de diseño y construcción y se fases de diseño y construcción y se considera adecuado para proyectos considera adecuado para proyectos mayores y de misión crítica. mayores y de misión crítica.

no requiere un modelo específico de no requiere un modelo específico de proceso y se complementa con otras proceso y se complementa con otras metodologías.metodologías.

Page 5: 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

PRINCIPIOS DE FDDPRINCIPIOS DE FDD

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

Page 6: 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

CATEGORIAS DE ROLCATEGORIAS DE ROLroles claves, roles de soporte y roles adicionalesroles claves, roles de soporte y roles adicionales..

Roles clavesRoles clavesa)a) administrador del proyecto: quien tiene la última palabra administrador del proyecto: quien tiene la última palabra

en materia de visión, cronograma y asignación del en materia de visión, cronograma y asignación del personal.personal.

b)b) arquitecto jefe (puede dividirse en arquitecto de dominio arquitecto jefe (puede dividirse en arquitecto de dominio y arquitecto técnico).y arquitecto técnico).

c)c) manager de desarrollo: que puede combinarse con manager de desarrollo: que puede combinarse con arquitecto jefe o manager de proyecto.arquitecto jefe o manager de proyecto.

d)d) programador jefe: que participa en el análisis del programador jefe: que participa en el análisis del requerimiento y selecciona rasgos del conjunto a requerimiento y selecciona rasgos del conjunto a desarrollar en la siguiente iteración. desarrollar en la siguiente iteración.

e)e) propietarios de clases: que trabajan bajo la guía del propietarios de clases: que trabajan bajo la guía del programador jefe en diseño, codificación, prueba y programador jefe en diseño, codificación, prueba y documentación, repartidos por rasgos.documentación, repartidos por rasgos.

f)f) experto de dominio: que puede ser un cliente, experto de dominio: que puede ser un cliente, patrocinador, analista de negocios o una mezcla de todo patrocinador, analista de negocios o una mezcla de todo eso. eso.

Page 7: 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

Los cinco roles de soporteLos cinco roles de soportea)a) administrador de entrega: que controla el progreso del administrador de entrega: que controla el progreso del

proceso revisando los reportes del programador jefe y proceso revisando los reportes del programador jefe y manteniendo reuniones breves con él; reporta al manteniendo reuniones breves con él; reporta al manager del proyectomanager del proyecto

b)b) abogado/guru de lenguaje: que conoce a la perfección abogado/guru de lenguaje: que conoce a la perfección el lenguaje y la tecnología.el lenguaje y la tecnología.

c)c) ingeniero de construcción: que se encarga del control ingeniero de construcción: que se encarga del control de versiones de los builds y publica la documentación.de versiones de los builds y publica la documentación.

d)d) herramientista (toolsmith): que construye herramientas herramientista (toolsmith): que construye herramientas ad hoc o mantiene bases de datos y sitios Web.ad hoc o mantiene bases de datos y sitios Web.

e)e) administrador del sistema: que controla el ambiente de administrador del sistema: que controla el ambiente de trabajo o productiza el sistema cuando se lo entrega. trabajo o productiza el sistema cuando se lo entrega.

Page 8: 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

Los tres roles adicionalesLos tres roles adicionales

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

Page 9: 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

El FDD tiene cinco procesos. El FDD tiene cinco procesos.

Los primeros tres se hacen al principio del Los primeros tres se hacen al principio del proyecto.proyecto.

a)a) Desarrollar un Modelo Global Desarrollar un Modelo Global

b)b) Construir una Lista de los Rasgos Construir una Lista de los Rasgos

c)c) Planear por Rasgo Planear por Rasgo

Los últimos dos se hacen en cada iteración. Los últimos dos se hacen en cada iteración. Cada proceso se divide en tareas y se da un Cada proceso se divide en tareas y se da un criterio de comprobación.criterio de comprobación.d)d) Diseñar por Rasgo Diseñar por Rasgo

e)e) Construir por Rasgo Construir por Rasgo

Page 10: 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

PROCESO FDDPROCESO FDD

Page 11: 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

a)a) Desarrollar un Modelo Global Desarrollar un Modelo Global

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

Page 12: 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

b) b) Construir una Lista de los RasgosConstruir una Lista de los Rasgos

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

Page 13: 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

c)c) Planear por Rasgo 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.

Page 14: 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

d)d) Diseñar por Rasgo y Construcción de rasgos Diseñar por Rasgo y Construcción de rasgos

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

Page 15: 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

CICLO FDDCICLO FDD

Page 16: 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

COMPARACIONCOMPARACION

RUP, XP y FDD tienen pocas similitudes entre si, RUP, XP y FDD tienen pocas similitudes entre si, aunque XP y FDD poseen algunas más al ser ambos aunque XP y FDD poseen algunas más al ser ambos ligeros, orientados al cliente y de iteraciones cortas y ligeros, orientados al cliente y de iteraciones cortas y rápidas. También hay que decir que debido al carácter rápidas. También hay que decir que debido al carácter general de RUP, algunos autores consideran todos los general de RUP, algunos autores consideran todos los demás procesos de desarrollo como casos particulares demás procesos de desarrollo como casos particulares de este. de este.

En cuanto equipos En cuanto equipos FDD y XP se implementan mejor para proyectos cortos y FDD y XP se implementan mejor para proyectos cortos y equipos más pequeños, siendo quizás FDD más 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 escalable que XP, ya que a mayor tamaño de código y/o equipo mayor es la necesidad de cierta organización y equipo mayor es la necesidad de cierta organización y RUP esta pensado para proyectos y equipos grandes, RUP esta pensado para proyectos y equipos grandes, en cuanto a tamaño y duración. en cuanto a tamaño y duración.

Page 17: 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

DESARROLLODESARROLLO

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

Page 18: 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

En cuanto a carga de trabajoEn cuanto a carga de trabajo

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

Page 19: 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

EVALUACION DEL ESTADO DEL EVALUACION DEL ESTADO DEL PROYECTOPROYECTO

FDD es posiblemente el proceso más adecuado FDD es posiblemente el proceso más adecuado para definir métricas que definan el estado del para definir métricas que definan el estado del proyecto, puesto que al dividirlos en unidades proyecto, puesto que al dividirlos en unidades pequeñas es bastante sencillo hacer un pequeñas es bastante sencillo hacer un seguimiento de las mismas. XP también define seguimiento de las mismas. XP también define esos componentes pequeños, pero la tarea del esos componentes pequeños, pero la tarea del reporting recae solo en los jefes de proyecto, reporting recae solo en los jefes de proyecto, mientras que en FDD esta más distribuida en la mientras que en FDD esta más distribuida en la jerarquía. RUP por su parte, es tan grande y jerarquía. RUP por su parte, es tan grande y complejo en este sentido como en el resto, por complejo en este sentido como en el resto, por lo que manejar el volumen de información que lo que manejar el volumen de información que puede generar requiere mucho tiempo. puede generar requiere mucho tiempo.

Page 20: 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

DESVENTAJASDESVENTAJAS

FDD presenta su debilidad en la necesidad de tener FDD presenta su debilidad en la necesidad de tener en el equipo miembros con experiencia que marquen en el equipo miembros con experiencia que marquen el camino a seguir desde el principio, con la el camino a seguir desde el principio, con la elaboración del modelo global, puesto que no es tan elaboración del modelo global, puesto que no es tan ágil como podría serlo XP. Es en todo caso este ágil como podría serlo XP. Es en todo caso este requisito una necesidad en cualquier proyecto si requisito una necesidad en cualquier proyecto si queremos llevarlo a buen puerto con éxito. Su punto queremos llevarlo a buen puerto con éxito. Su punto intermedio entre la libertad de XP y la rigurosidad de intermedio entre la libertad de XP y la rigurosidad de RUP lo hacen sin duda un proceso interesante, pero a RUP lo hacen sin duda un proceso interesante, pero a pesar de cambiar la forma de afrontar el problema, la pesar de cambiar la forma de afrontar el problema, la jerarquía existente puede hacer que las dependencias jerarquía existente puede hacer que las dependencias de esa gente experimentada sean grandes. de esa gente experimentada sean grandes.

Page 21: 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

CONCLUSIONCONCLUSIONFDD es un método de desarrollo de ciclos cortos que se 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 concentra en la fase de diseño y construcción. En la primera fase, el modelo global de dominio es elaborado por expertos del fase, el modelo global de dominio es elaborado por expertos del dominio y desarrolladores; el modelo de dominio consiste en dominio y desarrolladores; el modelo de dominio consiste en diagramas de clases con clases, relaciones, métodos y diagramas de clases con clases, relaciones, métodos y atributos. Los métodos no reflejan conveniencias de atributos. Los métodos no reflejan conveniencias de programación sino rasgos funcionales.programación sino rasgos funcionales.

Algunos agilistas sienten que FDD es demasiado jerárquico Algunos agilistas sienten que FDD es demasiado jerárquico para ser un método ágil, porque demanda un programador jefe, para ser un método ágil, porque demanda un programador jefe, quien dirige a los propietarios de clases, quienes dirigen quien dirige a los propietarios de clases, quienes dirigen equipos de rasgos. equipos de rasgos.

Otros críticos sienten que la ausencia de procedimientos Otros críticos sienten que la ausencia de procedimientos detallados de prueba en FDD es llamativa e impropia. Los detallados de prueba en FDD es llamativa e impropia. Los promotores del método aducen que las empresas ya tienen promotores del método aducen que las empresas ya tienen implementadas sus herramientas de prueba, pero subsiste el implementadas sus herramientas de prueba, pero subsiste el problema de su adecuación a FDD. Un rasgo llamativo de FDD problema de su adecuación a FDD. Un rasgo llamativo de FDD es que no exige la presencia del cliente.es que no exige la presencia del cliente.