Vous êtes sur la page 1sur 40

Visin ejecutiva de procesos y prcticas para desarrollo de software

Juan Palacio Baeres Juan Palacio Baeres Dic. 2005 Dic. 2005

Procesos y tcnicas para desarrollo de software Modelos de procesos y prcticas

Modelos genricos
Adaptaciones para softw.
1997

Modelos para software


TickIT
1991

Modelos y estndares de calidad

ISO 9000-3
Trillium Bootstrap 1995

1959

1979

1987

MIL-Q 9858

BS 5750

ISO 9000
Modelos especficos para software.

ISO 12207
1995

Proy. SPICE
1993

TR 15504 Modelos CMM

2003-05

ISO 15504
2001

CMM-SW
DSDM SCRUM CRYSTAL XP

CMMI

Tcnicas y mtodos giles

ASD PP ISD AM 2000 Manifiesto gil

1995

Procesos y tcnicas para desarrollo de software ISO/IEC 12207


Ciclo de vida

5. Procesos primarios
5.1 Adquisicin 5.1 Adquisicin

5. Procesos de soporte
6.1 Documentacin 6.1 Documentacin

Concepto Retirada

5.2 Suministro 5.2 Suministro

6.2 Gestin de la configuracin 6.2 Gestin de la configuracin

6.3 Control de calidad 6.3 Control de calidad 5.3 5.3 Operacin Operacin

Proceso 1

6.4 Verificacin 6.4 Verificacin

5.3 5.3 Desarrollo Desarrollo

6.5 Validacin 6.5 Validacin

6.6 Reuniones 6.6 Reuniones 5.3 5.3 Mantenimiento Mantenimiento 6.7 Auditora 6.7 Auditora 6.8 Resolucin de problemas 6.8 Resolucin de problemas

Proceso N

7. Procesos organizacionales
7.1 Gestin 7.1 Gestin 7.2 Infraestructura 7.2 Infraestructura

7.3 Mejora 7.3 Mejora

7.4 Formacin 7.4 Formacin

Actividad 1 Tarea 1 Tarea 2 Tarea n

Actividad n Tarea 1 Tarea 2 Tarea n 3

Procesos y tcnicas para desarrollo de software CMM: Modelo de madurez de las capacidades Idea principal: Organizaciones maduras/inmaduras En una organizacin inmadura:
Procesos de software: improvisados o no respetados (si existen) Planificacin en funcin de los problemas Presupuestos y planificacin incumplidos Sin base objetiva para evaluar la calidad o para resolver problemas Inexistencia o reduccin de las actividades de mejora de la calidad

En una organizacin madura:


-

Capacidad de gestin: desarrollo de software y procesos de mantenimiento Proceso de software difundido al equipo y planificado Procesos modificables: pruebas piloto controladas y anlisis de coste/beneficio Roles y responsabilidades establecidos en el proyecto y la organizacin Gestores: monitorizacin la calidad de los productos y de los procesos Planificaciones y presupuestos realistas: rendimientos histricos Proceso disciplinado en el que todos los participantes entienden su valor, existiendo adems la infraestructura necesaria para soportar el proceso

Procesos y tcnicas para desarrollo de software CMM: Modelo de madurez de las capacidades

Alta
Eficiencia de los procesos Capacidad de los procesos Madurez de los procesos

5 4
Gestionado.

Optimizado

Baja

3 2
Repetible

Baja
Definido

Escalabilidad Repetibilidad

Inicial

Alta
5

Procesos y tcnicas para desarrollo de software CMM: Modelo de madurez de las capacidades
Departamento de Defensa Americano(DoD), Instituto de Ingeniera del Software (SEI) 1987: Publicacin de la descripcin inicial del marco de madurez y de cuestionarios de evaluacin de organizaciones (proveeodores DoD) 1992: CMM for software 1.0 Nivel de madurez
1.- Inicial

Descripcin
Entorno catico o de programacin heroica. El desarrollo del software no se basa en procesos sino en esfuerzo personal ad hoc para cada situacin. Se emplean procesos bsicos de gestin de proyectos para trazar costes, agendas y funcionalidad. La organizacin repite las prcticas que se van revelando exitosas. Los procesos de software, tanto de ingeniera como de gestin, se encuentran documentados, integrados como actuacin estndar de la organizacin; y se emplean en todos los proyectos Se obtienen mediciones detalladas de todos los procesos y se mide cuantitativamente tantos los procesos como sus productos.

2.- Repetible

3.- Definido

4.- Gestionado

5.- Optimizado

La retro-informacin cuantitativa que se obtiene a travs de la ingeniera de procesos se emplea para mejora continua e innovacin.

Procesos y tcnicas para desarrollo de software CMMI: Integracin de modelos para la mejora de procesos
Integracin en un modelo nico de varias disciplinas. CMMI-SW : Software (Agosto 2002) CMMI-SE/SW : + Ingeniera de sistemas (Enero 2002)
+ IPD-CMM 0.98 + CMM-SA Queda en desuso CMM-SW CMM-SW 2.0 Draft C + SECM (Systems Engineering Capability Model, tambin llamado EIA 731)

CMMI-SE/SW/IPPD : + Desarrollo integrado de procesos y productos (Enero 2002) CMMI-SE/SW/IPPD/SS : + Gestin de proveedores (Marzo 2002)

Principales diferencias con CMM


Adems de la inclusin e integracin de tres nuevas disciplinas:

Pone un mayor nfasis en el uso continuo de mtricas Insiste en la necesidad de la trazabilidad desde los requerimientos al producto final Desglosa y detalla las reas de proceso relativas a la ingeniera Los niveles 2 y 4 se llaman ahora "gestionado" y "gestionado cuantitativamente".

Se ha desarrollado tambin un nuevo mtodo de para la evaluacin de las organizaciones denominado SCAMPI.
7

Procesos y tcnicas para desarrollo de software CMMI: Representaciones continuas y escalonadas


MADUREZ Atributo de la organizacin: cmo de previsible y repetible es la calidad de sus resultados, y su capacidad para aprender de la experiencia. CAPACIDAD Atributo de los procesos: eficacia y eficiencia para obtener el resultado.

SE/SW CMMIStaged tion enta Repres

/SW CMMI-SE
ous Continu tion nta Represe

NM 5

capacidad

NM 4 NM 3 NM 2 NM 1

rea de proceso
8

Procesos y tcnicas para desarrollo de software Niveles de capacidad


Nivel de Capacidad
0.- Incompleto

Descripcin
No se realizan procesos, o con stos no se alcanzan los objetivos del rea de proceso.

1.- Ejecutado

El proceso o la actividad consigue su objetivo.

2.- Gestionado

El proceso consigue el objetivo, y adems es planificado, revisado y evaluado para conseguir que cumpla los requisitos que se desean.

3.- Definido

Proceso gestionado que adems est incorporado y ajustado al estndar normalizador de la organizacin, y alineado con su estrategia.

4.- Cuantitativamente gestionado

Proceso definido que adems se mide cuantitativamente (con tcnicas estadsticas u otras) Proceso cuantitativamente gestionado que a travs de la informacin que proporciona y de procesos de innovacin, se adapta y cambia, mejorando su convergencia con los objetivos de negocio.

5.-Optimizado

Procesos y tcnicas para desarrollo de software reas de procesos en la representacin escalonada


NIVEL DE MADUREZ 5 OPTIMIZADO 4 GESTIONADO CUANTITATIVAMENTE REAS DE PROCESO
Innovacin y desarrollo

Gestin cuantificada de proyectos Rendimiento de los procesos de la organizacin Desarrollo de requisitos Solucin tcnica Verificacin Validacin

3 DEFINIDO

Integracin de producto Procesos orientados a la organizacin Definicin de los procesos de la organizacin Formacin Gestin integrada de proyecto Gestin de riesgos Anlisis y resolucin de decisiones Gestin de requisitos Planificacin de proyecto Monitorizacin y control de proyectos

2 GESTIONADO

Gestin y acuerdo con suministradores Medicin y anlisis Gestin de la calidad de procesos y productos Gestin de la configuracin

1 INICIAL
10

Procesos y tcnicas para desarrollo de software reas de procesos en la representacin continua


CATEGORA REAS DE PROCESO
Planificacin de proyecto Monitorizacin y control de proyecto

GESTIN DE PROYECTOS

Gestin y acuerdo con proveedores Gestin integrada de proyecto Gestin de riesgos Gestin cuantificada de proyecto Gestin de la configuracin Gestin de la calidad de procesos y productos

SOPORTE

Medicin y anlisis Anlisis y resolucin de decisiones Anlisis y resolucin de problemas Desarrollo de requisitos Gestin de requisitos

INGENIERA

Soluciones tcnicas Integracin de producto Verificacin Validacin Definicin de los procesos de la organizacin

GESTIN DE PROCESOS

Procesos orientados a la organizacin Formacin Rendimiento de los procesos de la organizacin Innovacin y desarrollo

11

Procesos y tcnicas para desarrollo de software ISO/IEC TR 15504


1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 Estudio M. Defensa U.K. Informe Improve I.T. Anlisis ISO Proyecto SPICE SPICE 1.0 SPICE 2.0 ISO/IEC TR 15504
PUBLICACIN ISO/IEC Std. 15504

CMM SW 1.0 CMM SW 1.1 CMMI

12

Procesos y tcnicas para desarrollo de software ISO/IEC Std. 15504: estructura del estndar
Conceptos y gua de introduccin P8

P1 P7 Gua para mejora de procesos

P9

Vocabulario

Guia para det. capacidad de proveedores

P6

Guia de capacitacin de evaluadores

P3

Realizacin de evaluacin Modelo de evaluacin y gua de indic.

Gua de evaluacin

P4

Modelo de ref. para procesos y capacidad

P2

P5

13

Procesos y tcnicas para desarrollo de software ISO/IEC TR 15504: Caractersticas



Marco para mtodos de evaluacin, no es un mtodo o modelo en s. Finalidad: Evaluacin de procesos Mejora de procesos Modelo continuo. Alineado con ISO/IEC 12207 Information Technology Software Life Cycle Processes

Dimensiones del modelo


El modelo tiene una arquitectura basada en dos dimensiones:

Dimensin de proceso Caracterizada por las declaraciones del propsito de un proceso, que son objetivos esenciales mensurables de un proceso. Dimensin de capacidad de proceso Caracterizada por una serie de atributos de proceso, aplicables a cualquier proceso, que representan caractersticas mensurables necesarias para gestionar un proceso y mejorar su capacidad.

14

Procesos y tcnicas para desarrollo de software ISO/IEC TR 15504: Dimensin de proceso (alineado 12207)
CUS.1 Adquisicin
Preparacin de la Adquisicin Seleccin del suministrador Seguimiento del suministrador Aceptacin del cliente

CUS.2 Suministro CUS.4 Operacin


Operacin Soporte a cliente

SUP.1 Documentacin SUP.2 Gestin de la configuracin SUP.3 Aseguramiento de la calidad SUP.4 Verificacin SUP.5 Validacin

CUS.3 Obtencin de requisitos ENG.1 Desarrollo


Requisitos del sistema Anlisis y diseo Anlisis requ. Software Diseo del software Construccin del software Integracin del software Pruebas del software Pruebas e integ. del sistema

SUP.6 Revisin conjunta SUP.7 Auditora SUP.8 Resolucin de problemas

ENG.2 Mantenimiento del sistema y del software

ORG.1 Alineamiento organizacional ORG.2 Mejora


Definicin de procesos Evaluacin de procesos Mejora de procesos

MAN.1 Gestin

MAN.1 Gestin de proyecto

ORG.3 Gestin de las personas ORG.4 Infraestructura ORG.5 Medicin ORG.6 Reutilizacin

MAN.1 Gestin de la calidad

MAN.1 Gestin de riesgos

15

Procesos y tcnicas para desarrollo de software ISO/IEC TR 15504: Dimensin de capacidad


Niveles de capacidad y atributos

Nivel 0: Proceso Incompleto Nivel 1: Proceso Realizado PA 1.1 Se produce el resultado Nivel 2: Proceso Gestionado PA 2.1 Gestin de la ejecucin PA 2.2 Gestin de las caractersticas del producto Nivel 3: Proceso Establecido PA 3.1 Definicin del proceso PA 3.2 Recursos de lproceso Nivel 4: Proceso Predecible PA 4.1 Medicin del proceso PA 4.2 Control del proceso Nivel 5: Proceso en optimizacin PA 5.1 Cambio del proceso PA 5.2 Mejora continua

Medicin de atributos
No alcanzado (0% a 15%). No alcanzado (0% 15%). Escasa o ninguna evidencia de la Escasa o ninguna evidencia de la consecucin del atributo. consecucin

N N

P P

Parcialmente alcanzado (16% a 50%). Parcialmente alcanzado (16% a 50%). Evidencia de un enfoque sistemtico y de Evidencia de un enfoque sistemtico y de la consecucindel atributo. la consecucindel atributo. Algunos aspectos de la consecucin Algunos aspectos de la pueden ser impredecibles. pueden ser impredecibles. Ampliamente alcanzado (51% a 85%). Ampliamente alcanzado (51% a 85%). Evidencia de un enfoque sistemtico y de Evidencia de un una consecucin significativa del atributo. una consecucin significativa del atributo. La realizacin del proceso puede variar en La realizacin del proceso puede variar en algunas reas. algunas reas. Totalmente alcanzado (86% a 100%). Totalmente alcanzado (86% a 100%). Evidencia de un enfoque completo y Evidencia de un enfoque completo y sistemtico y de la consecucin plena del sistemtico y de la consecucin plena del atributo. atributo.

L L

F F

16

Procesos y tcnicas para desarrollo de software Manifiesto gil (2001)


Origen de los mtodos giles
En marzo de 2001, 17 crticos de estos modelos, convocados por Kent Beck, que acababa de definir una nueva metodologa denominada Extreme Programming, se reunieron en Salt Lake City para discutir sobre los modelos de desarrollo de software. En la reunin se acu el trmino Mtodos giles para definir a aquellos que estaban surgiendo como alternativa a las metodologas formales, (CMM-SW, PMI, SPICE) a las que consideraban excesivamente pesadas y rgidas por su carcter normativo y fuerte dependencia de planificaciones detalladas, previas al desarrollo. Los integrantes de la reunin resumieron en cuatro postulados lo que ha quedado denominado como Manifiesto gil, que compendia el espritu en el que se basan estos mtodos. Aunque como se ver ms adelante, en la actualidad hay aproximaciones que combinan lo mejor de ambos enfoques (formal y gil), hasta 2005, en cada lado sus defensores adoptaron posturas radicales, quiz ms ocupadas en descalificar a la contraria que en estudiarla y conocerla para mejorar la propia.

17

Procesos y tcnicas para desarrollo de software Manifiesto gil (2001)


Estamos poniendo al descubierto mejores mtodos para desarrollar software, hacindolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar: A los individuos y su interaccin El software que funciona La colaboracin con el cliente La respuesta al cambio por encima por encima por encima por encima de los procesos y las herramientas de la documentacin exhaustiva la negociacin contractual seguimiento de un plan

Aunque hay valor en los elementos de la derecha, valoramos ms los de la izquierda

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

http://agilemanifesto.org/
18

Procesos y tcnicas para desarrollo de software Mtodos giles

Modelos genricos
Adaptaciones para softw.
1997

Modelos para software


TickIT
1991

Modelos y estndares de calidad

ISO 9000-3
Trillium Bootstrap 1995

1959

1979

1987

MIL-Q 9858

BS 5750

ISO 9000
Modelos especficos para software.

ISO 12207
1995

Proy. SPICE
1993

TR 15504 Modelos CMM

2003-05

ISO 15504
2001

CMM-SW
DSDM SCRUM CRYSTAL XP

CMMI

Tcnicas y mtodos giles

ASD PP ISD AM 2000 Manifiesto gil

1995

19

Procesos y tcnicas para desarrollo de software Mtodos giles


5. Procesos primarios
5.1 Adquisicin 5.1 Adquisicin

5. Procesos de soporte
6.1 Documentacin 6.1 Documentacin

Recogen tcnicas, buenas prcticas contrastadas por profesionales reconocidos. Cada una tiene sus caractersticas propias y cubre un rango de reas de procesos ms o menos amplia: Tendencia a combinarlas para dar mayor cobertura en el ciclo de vida Han surgido de entornos reales de desarrollo de software Responden mejor a la realidad del software y las diferencias con produccin industrial.

5.2 Suministro 5.2 Suministro

6.2 Gestin de la configuracin 6.2 Gestin de la configuracin

6.3 Control de calidad 6.3 Control de calidad 5.3 5.3 Operacin Operacin

6.4 Verificacin 6.4 Verificacin

5.3 5.3 Desarrollo Desarrollo

6.5 Validacin 6.5 Validacin

6.6 Reuniones 6.6 Reuniones 5.3 5.3 Mantenimiento Mantenimiento 6.7 Auditora 6.7 Auditora 6.8 Resolucin de problemas 6.8 Resolucin de problemas

7. Procesos organizacionales
7.1 Gestin 7.1 Gestin 7.2 Infraestructura 7.2 Infraestructura

7.3 Mejora 7.3 Mejora

7.4 Formacin 7.4 Formacin

20

Procesos y tcnicas para desarrollo de software eXtreme Programming (XP)


Este es el mtodo que ms popularidad ha alcanzado entre las metodologas giles, y posiblemente sea tambin el ms transgresor de la ortodoxia basada en procesos. Su creador, Kent Beck fue el alma mater del Manifiesto gil. Extreme Programming (XP) se irgue sobre la suposicin de que es posible desarrollar software de gran calidad a pesar, o incluso como consecuencia del cambio continuo. Su principal asuncin es que con un poco de planificacin, un poco de codificacin y unas pocas pruebas se puede decidir si se est siguiendo un camino acertado o equivocado, evitando as tener que echar marcha atrs demasiado tarde.

Valores que inspiran XP


SIMPLICIDAD FEEDBACK CORAJE COMUNICACIN

21

Procesos y tcnicas para desarrollo de software eXtreme Programming (XP)


Comunicacin
XP pone en comunicacin directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance da a da, y es posible ajustar la agenda y las funcionalidades de forma consecuente

Feedback rpido y continuo


Una metodologa basada en el desarrollo incremental de pequeas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro-informacin valioso para detectar los problemas o desviaciones.

De esta forma fallos se localizan muy pronto. La planificacin no puede evitar algunos errores, que slo se evidencian al desarrollar el sistema. La retro-informacin es la herramienta que permite reajustar la agenda y los planes.

22

Procesos y tcnicas para desarrollo de software eXtreme Programming (XP)


Simplicidad
La simplicidad consiste en desarrollar slo el sistema que realmente se necesita. Implica resolver en cada momento slo las necesidades actuales. Los costes y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro. Con este principio de simplicidad, junto con la comunicacin y el feedback resulta ms fcil conocer las necesidades reales

Coraje
El coraje implica saber tomar decisiones difciles. Reparar un error cuando se detecta. Mejorar el cdigo siempre que tras el feedback y las sucesivas iteraciones se manifieste susceptible de mejora. Tratar rpidamente con el cliente los desajustes de agendas para decidir qu partes y cundo se van a entregar.

23

Procesos y tcnicas para desarrollo de software eXtreme Programming (XP)


Las 12 prcticas de XP
XP no es un modelo de procesos ni un marco de trabajo, sino un conjunto de 12 prcticas que se complementan unas a otras y deben implementarse en un entorno de desarrollo cuya cultura se base en los cuatro valores citados PRCTICAS DE CODIFICACIN 1.- Simplicidad de cdigo y de diseo para producir software fcil de modificar. 2.- Reingeniera continua para lograr que el cdigo tenga un diseo ptimo. 3.- Desarrollar estndares de codificacin, para comunicar ideas con claridad a travs del cdigo. 4.- Desarrollar un vocabulario comn, para comunicar las ideas sobre el cdigo con claridad.

PRCTICAS DE DESARROLLO 1.- Adoptar un mtodo de desarrollo basado en las pruebas para asegurar que el cdigo se comporta segn lo esperado. 2.- Programacin por parejas, para incrementar el conocimiento, la experiencia y las ideas. 3.- Asumir la propiedad colectiva del cdigo, para que todo el equipo sea responsable de l. 4.- Integracin continua, para reducir el impacto de la incorporacin de nuevas funcionalidades.
24

Procesos y tcnicas para desarrollo de software eXtreme Programming (XP)


Las 12 prcticas de XP
PRCTICAS DE NEGOCIO 1.- Integracin de un representante del cliente en el equipo, para encauzar las cuestiones de negocio del sistema de forma directa, sin retrasos o prdidas por intermediacin. 2.- Adoptar el juego de la planificacin para centrar en la agenda el trabajo ms importante. 3.- Entregas regulares y frecuentes para satisfacer la inversin del cliente. 4.- Ritmo de trabajo sostenible, para terminar la jornada cansado pero no agotado.

25

Procesos y tcnicas para desarrollo de software Scrum


No es propiamente un mtodo o metodologa de desarrollo, e implantarlo como tal resulta insuficiente. Scrum define mtodos de gestin y control para complementar la aplicacin de otros mtodos giles como XP que, centrados en prcticas de tipo tcnico, carecen de ellas. Los principios de Scrum son:

Equipos autogestionados. Una vez dimensionadas las tareas no es posible agregarles trabajo extra. Reuniones diarias en las que los miembros del equipo se plantean 3 cuestiones:

Qu has hecho desde la ltima revisin? Qu obstculos te impiden cumplir la meta? Qu vas a hacer antes de la prxima reunin?

Iteraciones de desarrollo de frecuencia inferior a un mes, al final de las cuales se presenta el resultado a los externos del equipo de desarrollo, y se realiza una planificacin de la siguiente iteracin, guiada por cliente.

26

Procesos y tcnicas para desarrollo de software Scrum

27

Procesos y tcnicas para desarrollo de software Otros mtodos giles


Familia de mtodos Crystal
La familia de metodologas Crystal ofrece diferentes mtodos para seleccionar el ms apropiado para cada proyecto. Crystal identifica con colores diferentes cada mtodo, y su eleccin debe ser consecuencia del tamao y criticidad del proyecto, de forma que los de mayor tamao, o aquellos en los que la presencia de errores o desbordamiento de agendas implique consecuencias graves, deben adoptar metodologas ms pesadas. Los mtodos Crystal no prescriben prcticas concretas

ASD (Adaptative Software Development)


Mtodo que como alternativa a los procedimientos formales, aborda el desarrollo de grandes sistemas con el uso de tcnicas propias de las metodologas giles. No se trata de una metodologa, sino de la implantacin de una cultura en la empresa, basada en la adaptabilidad.

28

Procesos y tcnicas para desarrollo de software Otros mtodos giles


PP (Pragmatic Programming)
Pragmatic Programming es la coleccin de 70 prcticas de programacin, comunes a otros mtodos giles, cuya aplicacin resulta til para solucionar los problemas cotidianos. Surge del libro The Pragmatic Programmer de Dave Thomas y Andres Hunt.

AM (Agile Modeling)
Agile Modeling es la presentacin de un nuevo enfoque para realizar el modelado de sistemas, (diseo) y basado en los principios de los mtodos giles remarca la conveniencia de reducir el volumen de la documentacin. (Amber S. Agile Modeling: Effective Practices for Extreme Programming and the Unified Process)

ISD Internet Speed Development


Surge de las conclusiones del coloquio celebrado en Octubre de 2001, promovido por SEI que reuni a especialistas de las universidades Carneige Mellon, Georgia y Copenhagen. Sienta bases de gestin para abordar el desarrollo de sistemas de software, de tamao pequeo que requieren tiempos de desarrollo muy rpidos.

FDD (Feature Driven Development)


Prescribe un proceso iterativo de 5 pasos, con iteraciones de dos semanas. El punto de referencia son las caractersticas que debe reunir el software, y se centra en las fases de diseo e implementacin del sistema
29

Procesos y tcnicas para desarrollo de software Modelos de propiedad Comercial: MSF


MSF es la metodologa empleada por Microsoft para el desarrollo de software. Hasta su versin 3 (principios de 2005) MSF se defina como un marco de desarrollo flexible para adaptarse a las necesidades de cada proyecto, en oposicin a lo que sera una metodologa prescriptiva; porque parte de la base de que no hay una estructura de procesos ptima para las necesidades de todos los entornos de desarrollo posibles. El marco MSF se asienta sobre unos Principios Fundamentales que definen la cultura del entorno de desarrollo:

MSF: PRINCIPIOS FUNDAMENTALES

Fomento de la comunicacin abierta. Trabajo en torno a una visin compartida. Apoderar a los integrantes del equipo (empowerment) Establecimiento de responsabilidades claras y compartidas. Centrar el objetivo en la entrega de valor para el negocio. Permanecer giles y esperar e cambio. Invertir en calidad. Aprender de la experiencia.

30

Procesos y tcnicas para desarrollo de software Modelos de propiedad Comercial: MSF


Elementos que componen el modelo
Principios fundamentales Modelos Disciplinas Conceptos clave Prcticas contrastadas Recomendaciones
Principios bsicos en los que se basa todo el modelo (los 8 de la pg. ant.)

Mapas mentales de organizacin. Hay 2: De equipo y de procesos reas de trabajo en las que se usan mtodos determinados (Gestin de proyecto, de riesgos y de la mejora del talento) Ideas que dan soporte a los principios y disciplinas de MSF y se muestran a travs de prcticas especficas contrastadas. Prcticas que han demostrado su efectividad en proyectos en diferentes condiciones de entornos reales Prcticas opcionales, sugeridas por el modelo.

31

Procesos y tcnicas para desarrollo de software Modelos de propiedad Comercial: MSF


Relacin entre los componentes del modelo
Este diagrama es un ejemplo para mostrar la interconexin y relacin entre los componentes de Microsoft Solutions Framework Principio Fundamental
Aprender de las experiencias Permanecer gil y esperar el cambio

Modelo o Disciplina
Modelo de procesos

Concepto Clave

Prctica Contrastada

Recomendac.
Uso de facilitadores externos Creacin de una BD de riesgos Est relacionado

Disposicin al aprendizaje

Hitos de revisin Definir y monitorizar disparadores de riesgos

Gestin de riesgos

Evaluacin continua de riesgos

En 2005, el desarrollo del nuevo producto de Microsoft Visual Studio 2005 Team System ha ganerado la evolucin de MSF hacia la nueva versin 4.0 con dos lneas paralelas:

Microsoft Solutions Framework (MSF) for Agile Software Development. Microsoft Solutions Framework (MSF) for CMMI Process Improvement.
32

Procesos y tcnicas para desarrollo de software Modelos de propiedad Comercial: RUP


Rational Unified Process
Es un proceso de Ingeniera del Software que proporciona una visin disciplinada para la asignacin de tareas y responsabilidades en las organizaciones de desarrollo de software. RUP es un modelo-producto desarrollado y mantenido por Racional Software, integrado en su conjunto de herramientas de desarrollo, y distribuido por IBM. RUP integra un conjunto de buenas prcticas para el desarrollo de software en un marco de procesos vlido para un rango amplio de tipos de proyectos y organizaciones.

RUP: Buenas Prcticas

Desarrollo iterativo. Gestin de requisitos. Uso de arquitecturas basadas en componentes. Uso de tcnicas de modelado visual. Verificacin continua de la calidad. Gestin y control de cambios.

33

Procesos y tcnicas para desarrollo de software Modelos de propiedad Comercial: RUP


Rational Unified Process: Visin esttica
En su visin esttica, el modelo RUP est compuesto por:

Roles: analista de sistemas, diseador, diseador de pruebas, roles de gestin y roles de administracin. Actividades: RUP determina el trabajo de cada rol a travs de actividades. Cada actividad del proyecto debe tener un propsito claro, y se asigna a un rol especfico. Las actividades pueden tener duracin de horas o de algunos das; y son elementos base de planificacin y progreso. Artefactos: Son los elementos de entrada y salida de las actividades. Son productos tangibles del proyecto. Las cosas que el proyecto produce o usa para componer el producto final (modelos, documentos, cdigo, ejecutables) Disciplinas: son contenedores empleados para organizar las actividades del proceso. RUP comprende 6 disciplinas tcnicas y 3 de soporte. Tcnicas: modelado del negocio, requisitos, anlisis y diseo, implementacin, pruebas y desarrollo. Soprte: gestin de proyecto, gestin de configuracin y cambio, y entorno. Flujos de trabajo: son el pegamentode los roles, actividades, artefactos y disciplinas, y constituyen la secuencia de actividades que producen resultados visibles.

34

Procesos y tcnicas para desarrollo de software Modelos de propiedad Comercial: RUP


Rational Unified Process: Visin dinmica
En su visin dinmica, la visin de la estructura del ciclo de vida RUP se basa en un desarrollo iterativo, jalonado por hitos para revisar el avance y planear la continuidad o los posibles cambios de rumbo. Cuatro son las fases que dividen el ciclo de vida de un proyecto RUP:

1.- Inicio. Es la fase de la idea, de la visin inicial de producto, su alcance. El esbozo de una arquitectura posible y las primeras estimaciones. Concluye con el hito de objetivo. 2.- Elaboracin. Comprende la planificacin de las actividades y del equipo necesario. La especificacin de las necesidades y el diseo de la arquitectura. Termina con el hito de Arquitectura. 3.- Construccin. Desarrollo del producto hasta que se encuentra disponible para su entrega a los usuarios. Termina con el hito del inicio de la capacidad operativa. 4.- Transicin. Traspaso del producto a los usuarios. Incluye: manufactura, envo, formacin, asistencia y el mantenimiento hasta lograr la satisfaccin de los usuarios. Termina con el hito de entrega del producto.

35

Procesos y tcnicas para desarrollo de software FACTORES CLAVE EN LOS PROYECTOS


Factor Discriminadores giles Dependencia y escalabilidad limitada por el porcentaje alto de conocimiento tcito. Apropiado para equipos y productos pequeos. La simplicidad en la documentacin y el diseo dificulta los planes de pruebas. No aconsejado para sistemas con niveles de criticidad altos (IEEE 1012) Re-factorizar desde un diseo bsico hasta el producto final es un mtodo ideal para entornos dinmicos e in-novadores, pero muy caro por el re-trabajo para entornos estables o conocidos Los mtodos de trabajo giles requieren una masa crtica de tcnicos con niveles de experiencia medios-altos, capaces de comprender y adaptar los mtodos y las tcnicas empleadas. Ms apropiado para culturas de empowerment responsabilidad y horquilla de decisin y libertad personal. Discriminadores formales Escalabilidad y conocimiento explcito. Apropiado para productos y equipos grandes. Duro de mantener en pequeos proyectos. Rigor de requisitos y diseo adecuados para procesos de pruebas, verificacin y validacin. Duros de gestionar en proyectos de escasa criticidad En sistemas estables y conocidos, partir de requisitos completos y diseos detallados permite trazar y seguir un plan completo y hacerlo bien a la primera. Aunque es aconsejable contar con personas expertas en las fases de definicin del proyecto, luego pueden ejecutarse con menor masa crtica de expertos. Ms apropiado en culturas en las que las personas se sienten seguras con un marco de tareas y responsabilidades bien definido.
Adaptado de Barry Bohem y Richard Turner Balancing Agility and Discipline

Tamao

Criticidad

Dinamismo

Personal

Cultura

36

Procesos y tcnicas para desarrollo de software Enfoque formal o gil?


Personal
% Junior 40 30 20 10 0
sutili da

% Senior y Master 15 20 25 30 35 30 50 90 70 5 10

Criticidad
Prdidas posibles

Dinamismo
% Modific. Requisitos / mes 1

Vida s Bien e

10 30 100 300

gi l

For ma l

50 30 10

Tamao
Nmero de personas

Cultura
% adaptacin a entornos caticos

37

Procesos y tcnicas para desarrollo de software Para ampliar informacin


Modelos basados en procesos Pgina oficial CMMI del Software Engineering Institute. (http://www.sei.cmu.edu/cmmi/cmmi.html) Pgina para descarga de los modelos CMMI. (http://www.sei.cmu.edu/cmmi/models/models.html) SWEBOK: reas de conocimiento de la Ingeniera del software (http://www.swebok.org/) Gestin de proyectos PMI (http://www.pmi.org) IPMA (http://www.ipma.ch) PRINCE 2 (http://www.prince2.com/)

Modelos giles Manifiesto gil (http://www.agilemanifesto.org/)

Agile Alliance (http://www.agilealliance.org/)

Scrum (http://www.controlchaos.com/) Exreme Programming (http://www.extremeprogramming.org/) DSDM


(http://www.dsdm.org/) (http://msdn.microsoft.com/vstudio/teamsystem/msf/)

Microsoft Solutions Framework

Rational Unified Process (http://www-306.ibm.com/software/rational/) (http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/jan01/WhatIstheRationalUnifiedProcessJan01.pdf) Agile Modeling


(http://www.agilemodeling.com/) (http://www.featuredrivendevelopment.com/) (http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr020.pdf)

Feature Driven Development Internet Speed Development

38

Procesos y tcnicas para desarrollo de software Preguntas ?

39

Procesos y tcnicas para desarrollo de software

Juan Palacio
jpalacio@navegapolis.net

http://www.navegapolis.net

Puedes consultar la licencia de uso y distribucin de este trabajo en el registro de Safe Creative. http://www.safecreative.org/work n de obra: 0711220312698 40

Vous aimerez peut-être aussi