Sunteți pe pagina 1din 143

Gestin del Proceso de Software

Mg. Luis Alberto Esteban Villamizar Facultad de Ingenieras y Arquitectura Universidad de Pamplona Maestra en Gestin de proyectos informticos

Grupo de Investigacin en Ciencias Computacionales CICOM Lnea de Investigacin en Ingeniera del Software

Agenda
Introduccin al proceso de software Modelos de ciclo de vida del software Estndares para definicin de procesos de software Estndares para mejora del proceso de software Metodologas de desarrollo de software

Proceso
Un proceso (del latn processus) es un conjunto de actividades o eventos que se realizan o suceden (alternativa o simultneamente) con un fin determinado Conjunto de actividades que, realizadas en forma secuencial, permiten transformar uno o ms insumos en un producto o servicio. Es una secuencia temporal de ejecuciones de instrucciones que corresponde a la ejecucin de un programa secuencial. Es cualquier operacin o secuencia de operaciones que involucren un cambio de energa, estado, composicin, dimensin, u otras propiedades que pueden referirse a un dato Proceso es la serie de pasos utilizados para producir un resultado deseado segn el Concise American Heritage Dictionary, 1987

Proceso de desarrollo de software


Conjunto de actividades, mtodos, prcticas y transformaciones que la gente usa para desarrollar y mantener software y los productos de trabajo asociados (planes de proyecto, diseo de documentos, cdigo, pruebas, manuales de usuario, etc.) Proceso o conjunto de procesos usados por una organizacin o proyecto, para planificar, gestionar, ejecutar, monitorizar, controlar y mejorar sus actividades software relacionadas. Conjunto coherente de polticas, estructuras organizacionales, tecnologas, procedimientos y artefactos que son necearas para concebir, desarrollar empaquetar y mantener un producto software Conjunto parcialmente ordenado de actividades llevadas a cabo para gestionar, desarrollar y mantener sistemas software El proceso software define como se organiza, gestiona, mide, soporta y mejora el desarrollo, independientemente de las tcnicas y mtodos usados

Proceso de Software
Un proceso es un conjunto de actividades o eventos (coordinados u organizados) que se realizan o suceden (alternativa o simultneamente) bajo ciertas circunstancias con un fin determinado Aplicado al desarrollo de software: Conjunto Estructurado de Actividades requerido para desarrollar un producto software y que proporcionan un marco de trabajo desde el cual se puede establecer un plan detallado para el desarrollo del software.

El proceso dentro de un proyecto de software Personal

Necesidades del Usuario

T1 G0 T0 Ti Ti Tj Tj

Gj Tj

Gj Tn

Gm

Tj

Producto

.... --

.... -- Tecnologa

.... --

.... --

Tiempo

Software terminado

G2

G2

Proceso

Gi

El proceso software integrado con el proceso de gestin segn la gua del PMBOK
Procesos de la gua del PMBOK
Procesos Iniciales

Procesos Propios de la elaboracin del producto software

Procesos de Planificacin

Estructura de desglose de trabajo del producto Procesos de control Procesos de ejecucin

Tiempo Procesos de cierre

Agrupacin de procesos tcnicos y de gestin


Procesos PMBOK
Planificacin inicio
G0 G1 Gk Gp Gk G G G Gi

Seguimiento y control
Gi Gi Gi

Cierre
Gi

Ejecucin
Gi Gi Gj Gj

Necesidades

Gk

G G

Tiempo

Tj Ti Tj Tj Tj Ti T

Tj

Tn

Procesos propias de Ingeniera del software

T0

T T T

Tj Tj

Estructura de desglose de trabajo del producto software Depende la metodologa de desarrollo de software utilizada

Producto Software

Gm

Evolucin de los procesos en la industria Vs los proceso de desarrollo de software


Produccin Industrial
Basad os en pru ebas M ejora en el trabajo de la gen te M ejora en el proceso prod uctivo
uran Jim J

Princip ios d e Calidad

2 000 001 : ISO 9

Ed ua e rd D min g

50

60
Codificar y probar

70
oy ce on R

76
M ich ae l F agan

80 81

86

Wils on R oy ce T ak c uchi y N om a ka R M oen T No lan Barry Boeh m

87 88 v

90 91

93
pau l k

95

96
Beck

97

98

99

00
WS H um p re y

01

02
C oop er

03
beck

05

06

De L uca & Co

SEI

M ark

K ent

ad

M art in

Wils

B . Cu rtis

XP CMM
onn e ll

smit h

M icr o so f t

PCM M
Char et T. Po te, M ary & ppen dieck

M ey

Suth erlan d y Sc h wa b er

rn

ew k i rk

AS D

ISO 9 001 900 2 9 003

a ir C o ck b u

M SF

IDEAL
p rey

rtin N

A li s t

SCRU M
ton

Booc h, M a

Palm er F elsin & g

RU P

ISO/IEC 14 598 LD

AM

CRYSTAL

WS H um

AU P

Stap le

dX

F DD
Grad y Bo och

PSP

DSDM

M DE

Scot t Am bler

D esarrollo de Softw are

ers

Am b

ler

ISO/IEC 91 26

ISO 1 220 7 RAD

Hi gh

CMM I

ISO 1 550 4

SEI

Esp iral

M cC

N N PDG

IPDCM M

F DD

K lep p er

M odelo Inspeccin Cascada Softw are

EVO

PIQP

RAD

SECM M

TSP

TDD SACM M ISO 2 500 0 BU P

Jack

SEI

M DA

K ent

Evolucin de los procesos de desarrollo de software


Desarrollo Orientado al Proceso Desarrollo Orientado a la gestin Desarrollo Orientado al cdigo Los 80s Herramientas CASE Desarrollo orientado a objetos

Desarrollo orientado a la manipulacin de controles elctricos

es o a -m urad tin ad r e r ar u R t t b c M c y ML ma al ru da n om stru s, E n t c e U a t s r H s i o a is rt o e ces n ac MT n e asca - Pa tico riz os (fo a m i c O o l e o r h c c d irt -E l m y dis a pr acks ive nfo ugh son ma o e n tan gil I n E W h s a t h i J r a a m o s l e A c is m e l mb acob alt G sto rog ode iklau ooks lis agra JSD Boo d hs e M P u i g J a e n d i r M i R O N D r . 2 A if 7 H s tra 970- 71- 75- B 79- 79- 1983 198 97 an nie 991 199 2aje s 9 e 0 k M 9 u 9 1 j 1 1 g 19 1 20 19 Di Ing 1 en l) bo o c

1950

1970

1980

1990

2000

19 19 E Mo 19 19 199 1 77 19 98 fec 19 68 de 19 9 9 7 2 94 89 -C 0El t o s M lo 971 M Co ar UM Pr d en - S hip De tod Yo oc el ad tin L es am s u Mi o c es Lib rd sd om pir yY yO nil l o o U ro t al alk n eI p co ou De os yp nif de ng mp rdo ll i c ica Br . r d i o uta n n er tot do oo do f e i u pa -R ks q n r u c do ati er i on im on al . al

Modelos de Ciclo de vida


Cascada En V En Espiral Iterativos Incrementales Prototipados

Ciclo de vida
Conjunto de fases por las que pasa un producto software desde que nace la idea hasta que es remplazado o retirado. Determina el orden de las fases del proceso de software Establece los criterios de transicin entre fases Define las entradas y salidas de cada una de las fases

Ciclo de vida clsico para el desarrollo de software


Pese a la existencia de numerosas metodologas de desarrollo de software, los conceptos de ciclo de vida clsico permanecen implcitos en cualquier metodologa. El ciclo de vida para el desarrollo de un producto software consta de las siguientes actividades : Investigacin preliminar Aclaracin de la solicitud Estudio de factibilidad Factibilidad tcnica. Factibilidad econmica. Factibilidad operacional Aprobacin de la solicitud Determinacin de los requisitos del sistema. Diseo del sistema.(diseo lgico) Desarrollo de software (diseo fsico). Prueba de sistemas. Implantacin y evaluacin. Evaluacin operacional Impacto organizacional Opinin de los administradores Desempeo del desarrollo

Ciclo de vida clsico para el desarrollo de software


Necesidades De usuario
Aclaracin de la solicitud
Fac. Tcnica Fac. Econmica Fac. Operacional

Investigacin preliminar
Estudio de factibilidad

Aprobacin de solicitud

Requisitos
Evaluacin operacional

Diseo

Impacto organizacional Opinin de los administradores

Desarrollo
Desempeo del desarrollo

Pruebas

Implantacin y evaluacin

Producto software

Proceso Vs. Ciclo de vida


El ciclo de vida software es un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un producto software, abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de uso. Un proceso se define como un conjunto de actividades interrelacionadas que trasforman entradas en salidas. Un proceso define quien esta haciendo qu, cuando y como alcanzar un determinado objetivo

Modelo de Ciclo de vida en cascada


Necesidades de usuario

Anlisis Diseo Codificacin Prueba Implantacin


Producto software En funcionamiento

Modelo de Ciclo de vida en cascada


Problema a solucionar
Anlisis Diseo Codificacin Prueba Implantacin Mantenimiento Reingeniera

Modelo en cascada con subproyectos


Concepto inicial Anlisis de requerimientos Diseo Global
Diseo detallado Codificacin y depuracin Diseo detallado Codificacin y depuracin Prueba del subsistema Prueba del subsistema Diseo detallado Codificacin y depuracin Prueba del subsistema Diseo detallado Codificacin y depuracin Prueba del subsistema

Pruebas del sistema

Modelo en de entrega por etapas

Concepto inicial Anlisis de requerimientos Diseo Global

Etapa 1
Diseo detallado, codificacin, depuracin, prueba y entrega

Etapa 2
Diseo detallado, codificacin, depuracin, prueba y entrega

Etapa n
Diseo detallado, codificacin, depuracin, prueba y entrega

Modelo de prototipado evolutivo

Concepto Inicial

Diseo e Implementacin Del prototipo inicial

Refinar El prototipo Hasta que Sea aceptable

Completar y Entregar el prototipo

Modelo de prototipado deshechable

Aceptado Obtencin Especificacin Construccin Prototipo Mejora de la Especificacin Evaluacin Cliente Ciclo de Vida Clsico

NO Aceptado

Modelo de Ciclo de vida en V

Recoleccin y Anlisis de requerimientos

Planificacin

Pruebas de aceptacin

Especificacin
Verificacin y validacin

Pruebas de Validacin

Diseo arquitectnico Definicin Diseo Detallado

Pruebas de Integracin

Pruebas Unitarias

Integracin y pruebas

Codificacin

Implementacin

Tiempo

Modelo de Ciclo de vida en V


El nivel 1 est orientado al cliente. El inicio del proyecto y el fin del proyecto constituyen los dos extremos del ciclo. Se compone del anlisis de requisitos y especificaciones, se traduce en un documento de requisitos y especificaciones. El nivel 2 se dedica a las caractersticas funcionales del sistema propuesto. Puede considerarse el sistema como una caja negra, y caracterizarla nicamente con aquellas funciones que son directa o indirectamente visibles por el usuario final, se traduce en un documento de anlisis funcional. El nivel 3 define los componentes hardware y software del sistema final, a cuyo conjunto se denomina arquitectura del sistema. El nivel 4 es la fase de implementacin, en la que se desarrollan los elementos unitarios o mdulos del programa.

Modelo Yourdon
Requerimientos del Usuario Sistema Probado Encuesta Prueba de Sistema Anlisis Necesidades de Rendimiento Subsistemas Probados Prueba de subsistema Mdulos Probados Prueba de Unidad Mdulos Codificados

Especificacin Funcional diseo Preliminar Especificacin del Sistema

Estudio del HW Configuracin Final

Diseo Detallado Especificacin de los Programas

Codificacin

Modelo de desarrollo incremental

Definicin de requisitos

Asignacin de Requisitos al Incremento

Disear la Arquitectura

Desarrollar Incremento

Validar Incrementos Sistema incompleto

Integrar Incrementos

Validar Sistema

Sistema Final

Modelo semiautomatizado

Requerimientos Informales

Anlisis de Requerimientos Validacin Mantenimiento

Especificacin Formal (Prototipo)

Optimizacin Mecnica

Racionalidad y Decisiones Ajuste (tuning) Desarrollo Formal Programa Fuente

Modelo de Ciclo de vida en Espiral

Planificacin Anlisis de riesgos Comunicacin con el cliente

Diseo Evaluacin por el cliente Construccin y Adaptacin

Modelo de Ciclo de vida en Espiral

Determinar Objetivos

Anlisis de Riesgos

Analizar Riesgos
Prototipo 3

Evaluar Alternativas

Anlisis de Riesgos Prototipo Operativo Anlisis de Riesgos Acordar Enfoque de la prxima iteracin
Anlisis de Riesgos

Prototipo 2 Prototipo 1 Simulaciones Modelos Pruebas Diseo Detallado Cdigo

Revisin

Ini

cio

Plan de Requisitos Plan de Ciclo de Vida

Concepto de funcionamiento Requisitos de SW Validacin de Requisitos

Planificar

Plan de desarrollo Diseo producto SW Validacin y verificacin del diseo Prueba de Aceptacin Entrega

Pruebas Unitarias

Plan de Integracin y Pruebas

Integracin y Prueba

Desarrollar y Probar

Modelo de Ciclo de vida Iterativos

Recoleccin de requerimientos

Recoleccin de requerimientos

Anlisis de requerimientos

Anlisis de requerimientos

Diseo Diseo

Implementacin Implementacin Pruebas Pruebas

Despliegue Despliegue

Modelo de Ciclo de vida por prototipos


Comienzo Recoleccin y Refinamiento de requisitos

Parada

Producto Terminado Diseo Rpido

Construccin De prototipo Refinamiento del prototipo

Evaluacin del Prototipo por el cliente

Estndares para la definicin de procesos

IEEE 12207 Information Technology-Software life-cycle processes (Procesos del ciclo de vida del software) IEEE 1074 IEEE Standard for Developing Software Life Cycle Processes

IEEE 12207-96
Se entiende por modelo de ciclo de vida un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso Ciclo de vida del software

Grupo de procesos

Procesos Actividades Tareas

IEEE 12207
Procesos primarios
Adquisicin Suministro

Procesos de soporte
Documentacin Gestin de configuracin Aseguramiento de calidad Verificacin

Operacin Desarrollo Mantenimiento

Validacin Revisiones conjuntas Auditoria Resolucin de problemas

Procesos organizacionales
Gestin Mejora Infraestructura Entrenamiento

IEEE 12207-96
Los procesos principales del ciclo de vida son cinco, que dan servicio a las partes principales durante el ciclo de vida del software. Una parte principal es aquella que inicia o lleva a cabo el desarrollo, operacin, o mantenimiento de los productos software. Estas partes principales son el adquiriente, el proveedor, el desarrollador, el operador y el responsable de mantenimiento de productos software. Un proceso de apoyo es el que ayuda a otro proceso como parte esencial del mismo, con un propsito bien definido y contribuye al xito y calidad del proyecto software. Un proceso de apoyo se emplea y ejecuta por otro proceso, segn sus necesidades. Los procesos organizacionales del ciclo de vida se emplean por una organizacin para establecer e implementar una infraestructura constituida por procesos y personal asociado al ciclo de vida y para mejorar continuamente esta infraestructura. Se usan habitualmente fuera del mbito de proyectos y contratos especficos; sin embargo, la experiencia adquirida mediante dichos proyectos y contratos contribuye a la mejora de la organizacin.

IEEE 12207-96 Procesos principales


El Proceso de adquisicin define las actividades del adquiriente, la organizacin que adquiere un sistema, producto software o servicio software. a) Inicio. b) Preparacin de la solicitud de propuestas. c) Preparacin y actualizacin del contrato d) Seguimiento del proveedor. e) Aceptacin y finalizacin.

IEEE 12207-96 Procesos principales


El Proceso de suministro define las actividades del proveedor, organizacin que proporciona un sistema, producto software o servicio software al adquiriente. a) Inicio. b) Preparacin de la respuesta. c) Contrato. d) Planificacin. e) Ejecucin y control. f) Revisin y evaluacin. g) Entrega y finalizacin.

IEEE 12207-96 Procesos principales


El Proceso de desarrollo define las actividades del desarrollador, organizacin que define y desarrolla el producto software a) Implementacin del proceso. b) Anlisis de los requerimientos del sistema. c) Diseo de la arquitectura del sistema. d) Anlisis de los requerimientos software. e) Diseo de la arquitectura del software. f) Diseo detallado del software. g) Codificacin y pruebas del software. h) Integracin del software. i) Pruebas de calificacin del software. j) Integracin del sistema. k) Pruebas de calificacin del sistema. l) Instalacin del software. m) Apoyo a la aceptacin del software

IEEE 12207-96 Procesos principales


El Proceso de operacin define las actividades del operador, organizacin que proporciona el servicio de operar un sistema informtico en su entorno real, para sus usuarios. a) Implementacin del proceso. b) Pruebas de operacin. c) Operacin del sistema. d) Soporte al usuario

IEEE 12207-96 Procesos principales


El Proceso de mantenimiento define las actividades del responsable de mantenimiento, organizacin que proporciona el servicio de mantenimiento del producto software; esto es, la gestin de las modificaciones al producto software para mantenerlo actualizado y operativo. Este proceso incluye la migracin y retirada del producto software a) Implementacin del proceso. b) Anlisis de problemas y modificaciones. c) Implementacin de las modificaciones. d) Revisin/aceptacin del mantenimiento. e) Migracin. f) Retirada del software

IEEE 12207-96 Procesos de soporte


El Proceso de documentacin define las actividades para el registro de la informacin producida por un proceso del ciclo de vida. El Proceso de gestin de la configuracin define las actividades de la gestin de la configuracin. El Proceso de aseguramiento de la calidad define las actividades para asegurar, de una manera objetiva, que los productos software y los procesos son conformes a sus requerimientos especificados y se ajustan a sus planes establecidos. Revisin Conjunta, Auditora, Verificacin y Validacin pueden ser utilizados como tcnicas de Aseguramiento de la Calidad. El Proceso de verificacin define las actividades (para el adquiriente, proveedor o una parte independiente) para verificar hasta un nivel de detalle dependiente del proyecto software, los productos software.

IEEE 12207-96 Procesos de soporte


El Proceso de validacin define las actividades (para el adquiriente, proveedor o una parte independiente) para validar los productos software del proyecto software. El Proceso de revisin conjunta define las actividades para evaluar el estado y productos de una actividad. Este proceso puede ser empleado por cualquiera de las dos partes, donde una de las partes (la revisora) revisa a la otra parte (la parte revisada), de una manera conjunta. El Proceso de auditora define las actividades para determinar la conformidad con los requerimientos, planes y contrato. Este proceso puede ser empleado por dos partes cualesquiera, donde una parte (la auditora) audita los productos software o actividades de otra parte (la auditada). El Proceso de solucin de problemas define las actividades para analizar y eliminar los problemas (incluyendo las no conformidades) que sean descubiertos durante la ejecucin del proceso de desarrollo, operacin, mantenimiento u otros procesos, cualesquiera que sea su naturaleza o causa.

IEEE 12207-96 Procesos organizacionales


El Proceso de gestin define las actividades bsicas de gestin, incluyendo la gestin de proyectos, durante un proceso del ciclo de vida. El Proceso de infraestructura define las actividades bsicas para establecer la infraestructura de un proceso del ciclo de vida. El Proceso de mejora de proceso define las actividades bsicas que una organizacin (adquiriente, proveedor, desarrollador, operador, responsable de mantenimiento o gestor de otro proceso) lleva a cabo para establecer, medir, controlar y mejorar sus procesos del ciclo de vida. El Proceso de recursos humanos define las actividades bsicas para conseguir personal adecuadamente capacitado.

IEEE 1074
El estndar no prescribe un modelo de ciclo de vida especfico y es usado por las organizaciones para trazar las actividades especificadas en el estndar, dentro de su propio modelo de ciclo de vida. Si la organizacin no tiene un ciclo de vida seleccionado, el estndar puede ser til para seleccionar o definir uno. Dentro de este estndar el ciclo de vida del software se puede ver desde diferentes niveles: A nivel de este estndar, a nivel de modelo, a nivel de modelo aplicado a un proyecto en particular y a nivel de planificacin de proyecto especifico.

IEEE 1074

IEEE 1074
Procesos de Integrales

Proceso de Seleccin de un MCVS Procesos de Gestin del proyecto Iniciacin

Procesos Orientados al Desarrollo de SW Procesos de Pre-Desarrollo Exploracin de Conceptos Asignacin del sistema

Validacin y verificacin

Procesos de Desarrollo Requisitos Seguimiento y control Implementacin Procesos de Post-Desarrollo Gestin de calidad SW Instalacin Retiro Operacin y soporte Diseo

Gestin de Configuracin

Desarrollo de Documentacin

Formacin Mantenimiento

IEEE 1074 Proceso de seleccin de un MCVS


Este proceso provee las actividades requeridas para identificar los modelos candidatos y seleccionar el modelo de ciclo de vida software, para ser usado por otras actividades en el estndar. Las principales actividades de este proceso son: Identificacin de Modelos de ciclo de vida candidatos: Se define un conjunto de modelos disponibles, junto con sus restricciones. Seleccin del modelo: basado en el tipo de producto, restricciones de los modelos y en registros histricos, se conduce un anlisis de los modelos para tomar la decisin de que modelo usar.

IEEE 1074 Procesos de Gestin de proyectos


Dentro de este grupo se incluyen los procesos de inicializacin, monitoreo y control del proyecto software a travs del ciclo de vida. 2.1 Proceso de iniciacin de proyecto: Este proceso contiene las actividades que crean un marco de trabajo para el proyecto. Durante este proceso se crea el modelo de ciclo de vida para el proyecto y se establecen los planes para la gestin de proyectos, se identifican los estndares, metodologas y herramientas necesarias para la gestin y ejecucin del proyecto

IEEE 1074 Procesos de Gestin de proyectos


2.2 Proceso de monitoreo y control del proyecto Es un proceso iterativo de seguimiento, reporte, gestin de costos, agenda, problemas y rendimiento de un proyecto a travs de su ciclo de vida. 2.3 Proceso de gestin de calidad software Su objetivo es planear y guiar el programa de aseguramiento de calidad, respecto a lo concerniente con la satisfaccin del cliente y los programas internos de mejoramiento de calidad.

IEEE 1074 Procesos de Predesarrollo


Son los procesos que deberan ser ejecutados antes de que el desarrollo de software comience. 3.1 Proceso de exploracin de conceptos Comienza con la identificacin de una idea o necesidad para que un sistema sea desarrollado. La exploracin de conceptos examina los requerimientos a nivel de sistema, incluye la identificacin de necesidades, su evaluacin y refinamiento, sus limites y contexto. 3.2 Proceso de asignacin de sistema Es un puente entre la exploracin de conceptos y la definicin de requerimientos de software. Hace un trazado sobre los requerimientos funcionales y el software y hardware. La arquitectura del sistema podra ser desarrollada durante este proceso de asignacin del sistema. Las funciones del sistema son derivadas de los requerimientos del sistema y se identifican los requerimientos operacionales, de hardware y software.

IEEE 1074 Procesos de Desarrollo


4.1 Proceso de requerimientos El desarrollo de un sistema tiene componentes hardware y software, el proceso de requerimientos sigue el desarrollo de todos los requerimientos del sistema y la asignacin funcional de estos a requerimientos hardware y software. 4.2 Proceso de diseo El proceso de diseo es la piedra angular para la obtencin de un producto coherente que satisfaga los requisitos de software. El diseo desde el punto de vista tcnico comprende cuatro tipos de actividades: diseo de datos, arquitectnico, procedimental y diseo de interfaces y desde el punto de vista del proyecto evoluciona desde un diseo preliminar al diseo detallado. 4.3 Proceso de implementacin Transformacin de la representacin del diseo detallado de un producto software en un programa de computador, realizado en un lenguaje especfico. Este proceso produce el cdigo fuente, la base de datos y la documentacin constitutiva de la manifestacin fsica del diseo. Las salidas de este proceso deberan ser expuestas a frecuentes pruebas y validacin.

IEEE 1074 Procesos de Post Desarrollo


Estos procesos deberan de ser ejecutados para la instalacin, operacin, soporte, mantenimiento y retirada de un producto software 5.1 Proceso de instalacin Consiste en la transicin desde el ambiente de desarrollo, al ambiente destino de operacin del sistema. Esto incluye las modificaciones necesarias, las pruebas en el ambiente de operacin y la aceptacin por parte del cliente. 5.2 Proceso de soporte Este proceso incluye la operacin por parte de los usuarios del sistema y el soporte continuo. El soporte incluye asistencia tcnica, consulta con el usuario y soporte al registro de usuario para el mantenimiento.

IEEE 1074 Procesos de Post Desarrollo


5.3 Proceso de mantenimiento El proceso de mantenimiento concierne con la resolucin de errores de software, defectos y fallas. Los requerimientos para el mantenimiento de software dan inicio a cambios en el ciclo de vida software. 5.4 Proceso de retirada La retirada de un sistema envuelve: la retirada del software en operacin, sus actividades de soporte para dar por terminado el soporte, remplazar por un nuevo sistema o actualizar una nueva versin del sistema.

IEEE 1074 Procesos Integrales


6.1 Verificacin y Validacin: Las tareas de verificacin y validacin son conducidas a travs de todo el ciclo de vida del software, para asegurar que todos los requerimientos sean satisfechos. Las tareas de verificacin incluyen revisiones, auditoria de configuracin, auditoria de calidad. Las tareas de validacin incluyen todas las fases de pruebas. 6.2 Proceso de gestin de configuracin software Este proceso identifica los artefactos generados en un proyecto de desarrollo software y provee mecanismos para su monitoreo y control, y para la generacin de reportes de estado del proyecto a travs de todo el ciclo de vida del proyecto

IEEE 1074 Procesos Integrales


6.3 Proceso de desarrollo de documentacin Es el conjunto de actividades que planean, disean, implementan, editan, producen, distribuyen y mantienen la documentacin necesaria para los desarrolladores y los usuarios. Este proceso cubre tanto la documentacin orientada al producto, como la documentacin orientada al proceso, para usuarios internos y externos. Este proceso ocurre sobre varias fases del ciclo de vida del software, dependiendo de cada documento de forma individual y del tiempo en el que se desarrolle. 6.4 Proceso de entrenamiento El desarrollo de productos software de calidad depende en gran medida del conocimiento y habilidad de la gente, esto incluye personal de desarrollo tcnico y de gestin. Los clientes y usuarios tambin tienen que ser cualificados para la instalacin, operacin y mantenimiento.

Estndares para mejora del proceso

SW-CMM CMMI PSP TSP

SW-CMM Software -Capability Maturity Model


No es una tcnica particular dentro de la Ingeniera del Software No es la salvacin en tiempo de crisis No es un proceso de desarrollo SW-CMM No existe ningn seminario, ni ninguna gua que puede decir la ltima palabra sobre el CMM

Solo es til para tareas repetitivas

Es una meta de la organizacin, No es una metodologa de desarrollo

SW-CMM Software -Capability Maturity Model


El Modelo de Capacidad y Madurez o CMM (Capability Maturity Model), es un modelo de evaluacin de los procesos de una organizacin. Fue desarrollado inicialmente para los procesos relativos al desarrollo e implementacin de software por la Universidad Carnegie-Mellon para el SEI (Software Engineering Institute). El CMM es un modelo para: Juzgar la madurez de los procesos de software de una organizacin Identificar prcticas clave necesarias para aumentar la madurez de estos procesos Ayudar a organizaciones de software a que sus procesos maduren de ad-hoc o caticos, a disciplinados

SW-CMM Software -Capability Maturity Model


El CMM es un modelo que describe cmo las prcticas de la Ingeniera del Software evolucionan bajo ciertas condiciones: El trabajo realizado es organizado y visto como un proceso. La evolucin del proceso es gestionada sistemticamente. El modelo del CMM es progresivo y permanente para lo cual se han definido cinco niveles o estados de evolucin del proceso de ingeniera del software. Los principios que fundamentan al CMM definidos en, consideran que: La evolucin es posible y lleva tiempo. Hay etapas distinguibles en la madurez de un proceso. La evolucin implica que unas cosas deben desarrollarse antes que otras. La madurez disminuir al menos que se mantenga.

SW-CMM
Mejora del proceso

Optimizando
Enfoque en la mejora

Medicin del proceso

Gestionado
Proc. Medido y controlado

Definicin del proceso

Definido
Proc .caracterizado bien comprendido

Control bsico de gestin

Repetible
Puede repetir tareas aprendidas

Inicial
Impredecible poco controlado

reas claves del proceso por niveles SW-CMM


Optimizado (5)
Prevencin de defectos Gestin del cambio de tecnologa Gestin del cambio del proceso

Gestionado (4)
Gestin de la calidad del software Gestin cuantitativa del proceso

Definido (3)
Enfoque en el proceso de la organizacin Definicin del proceso de la organizacin Programa de entrenamiento Gestin integrada del software Ingeniera del producto software Coordinacin entre grupos Revisiones por pares

Repetible (2)
Gestin de requisitos Planificacin del proyecto software Seguimiento y control del proyecto software Aseguramiento de la calidad del software Gestin de configuracin del software Gestin de subcontratacin del software

Inicial (1)

Estructura del estndar SW-CMM


El CMM est compuesto por 5 niveles de madurez. Con la excepcin del nivel 1, cada nivel de madurez est compuesto de varias reas claves de proceso. Cada rea clave de proceso est organizada en 5 secciones denominadas caractersticas comunes. Las presentaciones comunes especifican las prcticas clave que, cuando estn direccionadas colectivamente, logran las metas del rea clave de proceso (KPA).

Niveles de madurez Niveles de madurez


indica

contiene

Capacidad del proceso

reas Claves de Proceso reas Claves de Proceso

consigue

Organizadas por

Metas

Caractersticas Comunes Caractersticas Comunes

dirige

contiene

Implementacin o Institucionalizacin

Prcticas Clave Prcticas Clave

describe

Infraestructura o Actividades

Estructura del estndar SW-CMM


Nivel de Madurez

rea de proceso 1

rea de proceso 2

rea de proceso n

Objetivos especficos

Objetivos genricos

Caractersticas Comunes

Prcticas especficas

Compromisos

Habilidades

Direccin

Verificacin

Prcticas genricas

Estructura del estndar SW-CMM


Niveles de Madurez reas claves del proceso

2
PP SCP ACS QA CM

GR

Objetivos

Caractersticas comunes

Actividades a realizar

Compromisos para la realizacin

Capacidad para la realizacin

Medicin y anlisis

Verificacin de la implementacin

Prcticas Claves

Tomado de: Kim Caputo, CMM Implementation Guide , Addison Wisley, 1999

SW-CMM Nivel 2 El proceso Repetible

Cuando se alcanza el Nivel 2 de madurez, el proceso de software en una organizacin es repetible y esta bajo control bsico de gestin. Este nivel se preocupa de establecer la base para mejorar sistemticamente lo que hacen los ingenieros de software (disear, codificar, probar, etc.). Una organizacin de nivel dos se caracteriza porque sus proyectos software son planeados, estimados, seguidos, controlados y evaluados consistentemente.

SW-CMM Nivel 2 Proceso Repetible


KPA Uno: Gestin de Requisitos (RM) En esta KPA se dice que el control de los requisitos puede ser el factor mas crucial para estabilizar el proceso software de nivel 1, de modo que el xito sea repetible esto quiere decir que, cualquier otro proceso de software pueda ser filtrado por el proceso repetible. Su propsito es establecer un entendimiento comn entre el cliente y el proyecto software, en cuanto a los requerimientos que podran ser guiados hacia el proyecto software. Objetivos: Los requisitos del sistema asignados al software se controlan a fin de establecer la lnea base para uso de la ingeniera y la gestin del software. Los planes, productos y actividades software se mantienen consientes con los requisitos del sistema asignados al software.

SW-CMM Nivel 2 Proceso Repetible


KPA Dos: Planificacin del Proyecto Software (SPP) Su propsito es la definicin de planes razonables para la ejecucin del proceso de ingeniera del software y para la gestin del proyecto. Los planes incluyen la estimacin del trabajo a ejecutar, establecimiento de compromisos necesarios y definicin de actividades a realizar. Objetivos: Se documentan las estimaciones de software a fin de utilizarlas en la planificacin y seguimiento del proyecto software. Se planifican y documentan las actividades y compromisos del proyecto software. Los objetivos anteriores parecen cubrir bien los principales aspectos de la planificacin de un proyecto software. Las personas afectadas acuerdan sus compromisos relacionados con el proyecto software.

SW-CMM Nivel 2 Proceso Repetible


KPA Tres: Seguimiento y Control Proyecto Software (PTO) Su propsito es proveer de una visin adecuada sobre el progreso actual del proyecto y poder tomar acciones efectivas cuando el proyecto se desve significativamente de los planes. Objetivos: Se efecta el seguimiento de los resultados y de la ejecucin reales comparndolos con los planes del software Se adoptan medidas correctivas y se controlan hasta su terminacin cuando los resultados y la ejecucin reales se desven notablemente de los planes de software. Las personas y grupos afectados acuerdan los cambios a introducir en los compromisos de software.

SW-CMM Nivel 2 Proceso Repetible


KPA Cuatro: Aseguramiento de la Calidad del Software (SQA) El CMM (TR-25), trata a continuacin la gestin de subcontratacin, pero lgicamente esa KPA viene despus. El SQA proporciona una verificacin independiente de que el proyecto esta siguiendo un proceso definido y da una visibilidad de la gestin del proceso. Objetivos: Se planifican las actividades, se prepara el plan de SQA del proyecto mediante un procedimiento documentado. Se verifica objetivamente la correspondencia de los productos y actividades software con los estndares, procedimientos y requisitos aplicables. Se informa a las personas y grupos afectados sobre las actividades y resultados de SQA. Los problemas de incumplimiento que no se puedan resolver en el proyecto software se remiten a la alta direccin.

SW-CMM Nivel 2 Proceso Repetible


KPA Cinco: Gestin de Configuracin del Software (SCM) Hace referencia al control del producto, bien sea en su entrega final, o bien en un artefacto intermedio del proyecto. Es probable que incluso el producto mas simple tenga muchos componentes, y cada componente se pueda tener muchas versiones. Esta basada en ingeniera de hardware. Objetivos: Se planifican las actividades del SCM. Es anlogo al primer objetivo del SQA excepto que estn bajo diferente KPA. Todo se realiza mediante el plan. Se identifican, controlan y facilitan los productos software seleccionados. Se controlan los cambios a los productos software identificados. Trata de la informacin sobre el estado del rea clave del proceso a los grupos afectados.

SW-CMM Nivel 2 Proceso Repetible


KPA Seis: Gestin de Subcontratacin de Software (SSM) Se puede considerar como la aplicacin a los subcontratistas de las otras reas del proceso de este nivel. Trata de la seleccin y gestin de los proveedores de componentes del proyecto software. Su propsito es seleccionar y administrar efectivamente los subcontratistas software. Objetivos: El contratista principal selecciona subcontratistas de software cualificados. El contratista principal y los subcontratistas acuerdan sus compromisos. Al requerir que el contratista principal y el subcontratista mantengan una comunicacin permanente, garantiza que, mediante un proceso rutinario, se llegara a conocer la necesidad de cambios en los compromisos, al contrato, o en la descripcin del trabajo. El contratista principal efecta el seguimiento de los resultados y del rendimiento reales del subcontratista de software comparndolo con sus compromisos. Seguimiento y control del proyecto.

SW-CMM Nivel 3 Proceso Definido


En este Nivel se han generalizado las mejores prcticas de los proyectos, para que se puedan emplear en toda la organizacin. De este modo la organizacin ha encontrado una manera sistemtica de compartir las mejores prcticas. Dichas practicas se documentan en algo que el CMM denomina Proceso de Software Estndar de la organizacin y Proceso Software Definido del proyecto. Los procesos definidos no limitan los proyectos, por lo contrario, los proyectos tienen una manera explcita para adaptar el conocimiento acumulado del proceso que se ha considerado valioso en todos los proyectos anteriores.

SW-CMM Nivel 3 Proceso Definido


KPA Uno: Enfoque en el Proceso de la Organizacin (OPF) Su propsito es establecer la responsabilidad organizacional para las actividades del proceso que mejoran la capacidad del proceso software de la organizacin en forma global. Incluye el desarrollo y mantenimiento de la comprensin de la organizacin y de los procesos del proyecto software y la coordinacin de las actividades de medicin, desarrollo, mantenimiento y mejoras de dichos procesos. Objetivos: Coordinar en toda la organizacin las actividades de mejora y desarrollo del proceso software. Identificar en relacin a un estndar de proceso, las fortalezas y debilidades del proceso software utilizado. Planificar las actividades de desarrollo y de mejora del proceso a nivel de organizacin.

SW-CMM Nivel 3 Proceso Definido


KPA Dos: Definicin del Proceso de la Organizacin (OPD) Se ocupa explcitamente de la recopilacin y mantenimiento de la definicin del proceso software estndar de la organizacin y los otros activos del proceso de la organizacin. Objetivos: Desarrollar y mantener un proceso software estndar para la organizacin. Recopilar, revisar y facilitar la informacin relativa al uso del proceso software estndar de la organizacin en los proyectos software.

SW-CMM Nivel 3 Proceso Definido


KPA Tres: Programa de Entrenamiento (TP) Su propsito es desarrollar la habilidad y el conocimiento de los individuos para que ellos puedan desempear sus roles de forma efectiva y eficiente. El programa de entrenamiento involucra primero la identificacin de necesidades de entrenamiento para la organizacin, proyectos e individuos. Cada proyecto software evala sus actuales y futuras habilidades necesarias y determina cmo estas habilidades podran satisfacerse. Algunas de las habilidades son impartidas de forma eficiente y eficaz mediante entrenamientos informales, mientras que para otras, son necesarios mecanismos de entrenamiento formal como clases y guas de autoaprendizaje. Objetivos: Planear las actividades de entrenamiento. Proporcionar entrenamiento para desarrollar las habilidades y el conocimiento para realizar roles tcnicos y de gestin software. Facilitar que el grupo de ingeniera del software y los grupos relacionados con el software, reciban el entrenamiento necesario para realizar sus roles.

SW-CMM Nivel 3 Proceso Definido


KPA Cuatro: Gestin Integrada del Software (ISM) Su propsito es integrar las actividades de ingeniera y gestin software en un proceso software coherente y definido, que es una adaptacin del proceso software estndar de la organizacin. Objetivos: Adaptar el proceso software estndar de la organizacin, al proceso software definido para el proyecto. Planear y gestionar el proyecto de acuerdo al proceso software definido para l.

SW-CMM Nivel 3 Proceso Definido


KPA Cinco: Ingeniera del Producto Software (SPE)
Su propsito es llevar a cabo consistentemente un proceso de ingeniera bien definido, que integre todas las actividades de ingeniera del software para obtener eficiente y eficazmente un producto software correcto y consistente. La ingeniera del producto software involucra la ejecucin de tareas de ingeniera, para construir y mantener el software usando el proceso software definido para el proyecto y los mtodos y herramientas apropiadas. Las tareas de ingeniera incluyen el anlisis de requerimientos asignados al software, el desarrollo de requerimientos, desarrollo de la arquitectura software, diseo del software, implementacin de software como cdigo, integracin de componentes y prueba de software para verificar que satisface los requerimientos especificados. Objetivos: 1. Definir, integrar y desarrollar consistentemente las tareas de ingeniera para producir el software. 2. Mantener consistencia con los otros productos software desarrollados.

SW-CMM Nivel 3 Proceso Definido


KPA Seis: Coordinacin entre Grupos (IC) El propsito de la coordinacin entre grupos es establecer los medios para que el grupo de ingeniera participe activamente con otros grupos, en funcin de la satisfaccin eficiente y eficaz de las necesidades del cliente. La interfaz tcnica de trabajo y la interaccin entre los grupos son planeadas y gestionadas para asegurar la calidad y la integridad de todo el sistema. Objetivos: Acordar los requerimientos del cliente, por parte de todos los grupos afectados. Acordar los compromisos entre los grupos de ingeniera, por parte de los grupos afectados. Identificar, hacer seguimiento y resolver los problemas existentes entre grupos.

SW-CMM Nivel 3 Proceso Definido


KPA Siete: Revisin por Pares Iguales (PR) Su propsito es la eliminacin de defectos del producto software de manera temprana y eficientemente. Un importante efecto es el desarrollo de un mejor entendimiento del producto software y de los defectos que podran ser prevenidos. La revisin por pares incluye la evaluacin metdica del producto, para identificar defectos y reas donde los cambios son necesarios. Objetivos: Planear las actividades de revisin por Pares Iguales. Identificar y eliminar los defectos en el producto software.

SW-CMM Nivel 4 Proceso Gestionado

La organizacin de Nivel 4 de madurez, utiliza todos los activos de los procesos acumulados en la practicas de los niveles anteriores, para dotar a los proyectos con un proceso estable y comprendido cuantitativamente.

Las mejores practicas de los proyectos se usan para definir e implementar un proceso estable en la organizacin.

SW-CMM Nivel 4 Proceso Gestionado


Caractersticas Las organizaciones disponen de un conjunto de mtricas significativas de calidad y productividad, que se usan de modo sistemtico para la toma de decisiones y la gestin de riesgos. El software resultante es de alta calidad. Los procesos son medibles o cuantificables. La productividad y la calidad se miden y se registran para cada proyecto de la organizacin. Se fijan metas cuantitativas de la calidad del software. Mediante el uso de mtricas de software, se crea una base cuantitativa para la evaluacin y estimacin en proyectos futuros.

SW-CMM Nivel 4 Proceso Gestionado


KPA Uno: Gestin Cuantitativa del Proceso (QPM Calidad del Proceso) Su propsito es controlar cuantitativamente la mejora del proceso dentro del proyecto software. Objetivos: Planear las actividades para la gestin cuantitativa del proceso. Controlar cuantitativamente el desempeo del proceso dentro del proceso software definido para el proyecto. Conocer en trminos cuantitativos la capacidad del proceso dentro del proceso software definido para el proyecto.

SW-CMM Nivel 4 Proceso Gestionado


KPA Dos: Gestin de la Calidad del Software (SQM Calidad del Producto) Su propsito es desarrollar un entendimiento cuantitativo de la calidad de producto software y el logro de objetivos especficos de calidad. La gestin de calidad incluye la definicin de objetivos de calidad para el producto software, el establecimiento de planes para lograr esos objetivos, monitoreo y ajuste de los planes software, productos software, actividades y objetivos de calidad a satisfacer las necesidades y deseos de los clientes y usuarios finales para productos de alta calidad. Objetivos: Planificar las actividades de gestin de calidad software del proyecto. Definir objetivos medibles y sus prioridades para la calidad del producto software. Cuantificar y gestionar el progreso real para alcanzar los objetivos de calidad de los productos software.

SW-CMM Nivel 5 Proceso Optimizado


Existe una mejora continua de los procesos. Las medidas de las actividades se usan para mejorar el proceso, eliminando y aadiendo actividades y reorganizando su estructura como respuesta a los resultados de las medidas.

La organizacin tiene los medios para identificar los elementos del proceso dbiles y fuertes, con el objetivo de prevenir la ocurrencia de defectos, se dispone de evidencia estadstica sobre la efectividad del proceso y es usado en el desarrollo de anlisis de costo-beneficios sobre nueva tecnologa.

SW-CMM Nivel 5 Proceso Optimizado


KPA Uno: Prevencin de Defectos (DP) Su propsito es identificar las causas de los defectos y prevenir su recurrencia. La prevencin de defectos involucra el anlisis de defectos que fueron encontrados en el pasado y tomar acciones especficas para prevenir la ocurrencia de esos tipos de defectos en el futuro. Los defectos pueden haber sido identificados sobre otros proyectos tanto como en las etapas tempranas o tareas del actual proyecto. Las actividades de prevencin de defectos son tambin un mecanismo para difundir lecciones de aprendizaje entre proyectos. Objetivos: Planear actividades de prevencin de defectos. Buscar e identificar las causas comunes de defectos. Priorizar y eliminar sistemticamente las causas comunes de defectos.

SW-CMM Nivel 5 Proceso Optimizado


KPA Dos: Gestin de Cambio de Tecnologa (TCM) Su propsito es identificar nuevas tecnologas (herramientas, mtodos y procedimientos) y monitorearlas dentro de la organizacin, de manera metdica. Involucra la identificacin, seleccin y evaluacin de nuevas tecnologa, la incorporacin efectiva de tecnologas dentro de la organizacin. El objetivo es mejorar la calidad de software, incrementar la productividad y decrementar el tiempo de desarrollo de producto software. Objetivos: Planear la incorporacin de cambios en la tecnologa. Evaluar y determinar los efectos sobre la calidad y la productividad, al incorporar nueva tecnologa. Transferir en las prcticas normales a travs de la organizacin, la apropiacin de nueva tecnologa.

SW-CMM Nivel 5 Proceso Optimizado


KPA Tres: Gestin de Cambio del Proceso (PCM) Su propsito es el mejoramiento continuo del proceso software usado en la organizacin con la intensin de mejorar la calidad de software, incrementar la productividad y decrementar el tiempo de ciclo de vida para el desarrollo del producto. La gestin de cambio del proceso, involucra la definicin de los objetivos del proceso de mejora con el responsable de la gestin de forma proactiva y sistemtica, identificando, evaluando e implementando mejoras para el estndar del proceso software de la organizacin y sobre el proceso software definido para el proyecto. Objetivos: Planear el proceso de mejoramiento continuo. Completar las actividades de mejora del proceso software sobre toda la organizacin. Mejorar continuamente el proceso software estndar de la organizacin y los procesos software definidos para los proyectos.

CMMI Capability Maturity Model Integration


Integracin de modelos (SW-CMM, SE-CMM, IPD-CMM) SW-CMM El Modelo de Madurez de la Capacidad para el desarrollo de Software IPD-CMM El Modelo de Capacidad y Madurez para el Desarrollo Integrado de Productos fue propuesto como un borrador por el SEI en 1997, pero qued integrado en el CMMI al publicarse este en el ao 2000. P-CMM Modelo de Capacidad y Madurez para Recursos Humanos SA-CMM Modelo de Capacidad y Madurez para la Adquisicin de Software SE-CMM El Modelo de Capacidad y Madurez en la Ingeniera de Sistemas fue publicado por el SEI en noviembre de 1995. Est dedicado a las actividades de ingeniera de sistemas.

CMMI por etapas


Mejora continua del proceso (2 Areas claves del proceso) Gestin cuantitativa (2 Areas claves del proceso)

Optimizado Gestionado

Innovacin y Distribucin Organizacional Anlisis causal y resolucin Rendimiento del proceso Organizacional Gestin cuantitativa de proyectos

Estandarizacin del proceso (11 Areas claves del proceso)

Definido

Gestin bsica de proyectos (7 Areas claves del proceso)

Desarrollo de requisitos Solucin tcnica Integracin del producto Verificacin Validacin Enfoque proceso organizacional Definicin del proceso organizacional Formacin de la organizacin Gestin integrada de proyectos Gestin de riesgos Anlisis de decisin y resolucin Entorno organizacional para la integracin Equipo integrado

Gestionado Inicial

Gestin de requisitos Planificacin del proyecto Monitorizacin y Control del proyecto Gestin del acuerdo con el suministrados Medicin y anlisis Aseguramiento de la calidad del proceso y producto Gestin de configuracin

CMMI Continuo
Gestin del proceso
Enfoque proceso organizacional Definicin organizacional proceso formacin organizacional Rendimiento Innovacin y distribucin organizacional

CMMI

Gestin de Proyectos
Planificacin del proyecto Minitorizacin y control de proyectos Gestin del acuerdo con el suministrador Gestin integrada del proyecto Gestin de riesgos Gestin cuantitativa del proyecto

Ingeniera
Gestin de requisitos Desarrollo de requisitos Solucin tcnica Integracin del producto Verificacin Validacin

Soporte
Gestin de configuracin Aseguramiento de calidad del proceso y del producto Medicin y anlisis Anlisis de decisiones y resolucin Anlisis causal y resolucin

Adquisicin IPPD
Entorno organizacional para la integracin Equipo integrador

Seleccin y monitorizacin del suministrados Gestin integrada del suministrador Gestin cuantitativa del suministrador

Metodologas de desarrollo de software

RUP Mtodos Agiles de Desarrollo de Software XP Scrum Crystal FDD MSF

Metodologas vs modelos de procesos


Qu es una Metodologa? En un proyecto de desarrollo de software la metodologa define Quin debe hacer Qu, Cundo y Cmo debe hacerlo

Requisitos nuevos o modificados

Proceso de Desarrollo de Software

Sistema nuevo o modificado

No existe una metodologa de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable

Metodologas
Metodologas Estructuradas Los mtodos estructurados comenzaron a desarrollar-se a fines de los 70s con la Programacin Estructurada, luego a mediados de los 70s aparecieron tcnicas para el Diseo primero y luego para el Anlisis. Enfocados a implementaciones usando lenguajes de 3ra generacin Ejemplos de metodologas estructuradas gubernamentales: MERISE (Francia), MTRICA 3 (Espaa), SSADM (Reino Unido) Ejemplos de mtodos estructurados en el mbito acadmico: Gane & Sarson, Ward & Mellor, Yourdon & DeMarco e Information Engineering Orientadas a datos Orientadas a procesos Hbrida

Metodologas Estructuradas
Orientadas a procesos

Datos 1

Datos 2

Proceso 1

Proceso 2

Proceso n
Datos 3 Datos 4

Metodologas Estructuradas
Orientadas a datos

Proceso 1

Datos 1 Datos 4 Datos 3 Datos 2

Proceso 2

Proceso n

A menudo encontramos que construir primeramente el modelo de datos, hace ms fcil descubrir cules son las funciones requeridas (Yourdon)

Metodologas Estructuradas
Hbridas
Recopilacin Anlisis de datos Especificacin de datos Modelo de datos Diseo lgico de la BD. Diseo Fsico de la BD. Anlisis de procesos Modelo de procesos Especificacin de procesos

Diseo de transacciones Diseo de Programas

Elementos de una metodologa

Actividades Personas Herramientas

Proceso SW Notacin

Roles

Artefactos

Metodologas
Metodologa Adaptive Software Development Agile Modeling Crystal Methods Agile RUP Dynamic Solutions Delivery Model Evolutionary Project Management Extreme Programming Feature-driven development Lean Development Microsoft Solutions Framework Rapid Development Rational Unified Process Scrum Acrnimo ASD AM CM dX DSDM Evo XP FDD LD MSF RAD RUP Scrum Creacin Highsmith 2000 Ambler 2002 Cockburn 1998 Booch, Martin, Newkirk 1998 Stapleton 1997 Gilb 1976 Beck 1999 De Luca & Coad 1998 Palmer & Felsing 2002 Charette 2001, Mary y Tom Poppendieck Microsoft 1994 McConnell 1996 Kruchten 1996 Sutherland 1994 Schwaber 1995 Tipo de modelo Prcticas + Ciclo de vida Metodologa basada en la prctica Familia de metodologas Framework / Disciplina Framework / Modelo de ciclo de vida Framework adaptativo Disciplina en prcticas de ingeniera Metodologa Forma de pensar Modelo logstico Lineamientos, Disciplinas, Prcticas Survey de tcnicas y modelos Proceso unificado Proceso (framework de management) Caracterstica Inspirado en sistemas adaptativos complejos Suministra modelado gil a otros mtodos MA con nfasis en modelo de ciclos XP dado vuelta con artefactos RUP Creado por 16 expertos en RAD Primer mtodo gil existente Mtodo gil radical Mtodo gil de diseo y construccin Metodologa basada en procesos productivos Framework de desarrollo de soluciones Seleccin de best practices, no mtodo Mtodo (gil?) con modelado Complemento de otros mtodos, giles o no

Rational Unified Process -RUP


PROCESO UNIFICADO de RATIONAL (RATIONAL UNIFIED PROCESS RUP) Es un proceso de desarrollo de software que puede especializarse para una gran variedad de sistemas software, diferentes reas de aplicacin, diferentes tipos de organizacin, diferentes niveles de aptitud y diferentes tamaos de proyectos. RUP se basa en casos de uso para describir lo que se espera del software y est muy orientado a la arquitectura del sistema, documentndose lo mejor posible, basndose en UML (Unified Modeling Language) como herramienta principal.

RUP Caractersticas
1. Est dirigido por casos de usos: Dentro del Proceso Unificado un caso de uso es la forma como se permite capturar y describir un requisito funcional que es de inters para un actor determinado. Por esto, las actividades de desarrollo son planeadas y programadas en funcin de los servicios que cubren las necesidades de los usuarios. 2. Est centrado en la arquitectura: La arquitectura surge de las necesidades percibidas desde los usuarios y se reflejan en los casos de uso, sin embargo, tambin se ven influidas por otros factores como la plataforma, los bloques de construccin reutilizables, disponibles, consideraciones de implementacin, sistemas heredados, es decir requisitos no funcionales en trminos generales. 3. Es iterativo e incremental: El proceso iterativo se repite a lo largo de una serie de ciclos que constituyen la vida del sistema. Cada ciclo concluye con una versin para el cliente, cada uno consta de cuatro fases: Inicio, Elaboracin, Construccin y Transicin, y cada fase se subdivide a su vez en iteraciones

RUP Dirigido por casos de uso

Requisitos Anlisis & Diseo Implementacin Pruebas


Casos de Uso integran el trabajo

Capturar, definir y validar los casos de uso Realizar los casos de uso Verificar que se satisfacen los casos de uso

RUP Iterativo e incremental Grado de Finalizacin de Artefactos


Inicio Elaboracin

Construccin

Transicin

Artefactos de modelado de negocios Conjunto de Requerimientos Artefactos de Anlisis y Diseo Artefactos de Implementacin Artefactos de pruebas

Artefactos de Despliegue Artefactos de gestin Gestin de configuracin y cambios Gestin de infraestructura

RUP Centrado en arquitectura


Arquitectura de un sistema es la organizacin o estructura de sus partes ms relevantes Un arquitectura ejecutable es una implementacin parcial del sistema, construida para demostrar algunas funciones y propiedades RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo

Inception

Elaboration

Construction

Transition

Architecture

RUP Proceso

Inicio

Elaboracin

Construccin

Transicin

Objetivos (Visin)

Arquitectura

Capacidad Operacional Inicial

Release del Producto

Tiempo

RUP Esfuerzo y tiempo de dedicacin


Inicio Elaboracin Construccin Transicin

Esfuerzo Tiempo Dedicado

5% 10 %

20 % 30 %

65 % 50 %

10% 10%

Recursos
Inicio

Elaboracin

Construccin

Transicin

Tiempo

RUP
Fases
Flujos de trabajo Fundamentales Requisitos Anlisis Diseo Implementacin Prueba Flujos de trabajo de soporte Gestin Configuracin Gestin proyecto Infraestructura Iter #1 Iter #2 Iter #n-1 Iter #n Inicio Elaboracin Construccin Transicin

Iteraciones

RUP Fases de inicio


Esta fase tiene como propsito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visin muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones. Objetivos Definir alcance, concepto operacional, criterios de aceptacin Discriminar casos de uso crticos Definir Arquitectura candidata con base en los escenarios primarios Estimar costo y calendario Anlisis de riesgos Artefactos Visin Lista preliminar de casos de uso y actores Glosario inicial Caso de negocio Anlisis de riesgos Plan del proyecto

RUP Fases de Elaboracin


Los casos de uso seleccionados para desarrollarse en esta fase permiten definir la arquitectura del sistema, se realiza la especificacin de los casos de uso seleccionados y el primer anlisis del dominio del problema, se disea la solucin preliminar del problema y comienza la ejecucin del plan de manejo de riesgos, segn las prioridades definidas en l. Objetivos Analizar dominio del problema Definir, validar y crear lnea base de la arquitectura Lnea base de la visin Plan para fase de construccin Refinacin casos de uso Artefactos Modelo casos de uso (80%) Requerimientos suplementarios Arquitectura Lista de riesgos revisada Plan de desarrollo (iteraciones y criterios de evaluacin) Manual de usuario preliminar

RUP Fases de Construccin


El propsito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requerimientos pendientes, administrar el cambio de los artefactos construidos, ejecutar el plan de administracin de recursos y mejoras en el proceso de desarrollo para el proyecto. Objetivos Minimizar costos optimizando recursos y evitando hacer trabajo innecesario Calidad del desarrollo, de forma rpida y prctica Versiones funcionales Desarrollo y testing contnuo Artefactos Software integrado en las plataformas adecuadas Descripcin de la arquitectura de la versin Una versin del Manual de usuario

RUP Fases de Transicin


El propsito de esta fase es asegurar que el software est disponible para los usuarios finales, ajustar los errores y defectos encontrados, capacitar a los usuarios y proveer el soporte tcnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto al inicio del mismo. Objetivos Integracin total en el ambiente de produccin Cumplir los requisitos hasta la satisfaccin de todos los usuarios Identificar y eliminar defectos que an subsistan Lograr el consenso cuanto antes para liberar el producto al mercado Artefactos Software ejecutable, incluyendo software de instalacin Documentos legales como contratos, licencias, renuncia de derechos y garantas La versin completa y corregida de la lnea base del producto incluyendo los modelos del sistema Descripcin completa y actualizada de la arquitectura

Analista sistemas

Identificar actores y casos de uso

Estructurar modelo de casos de uso

Planear pruebas

Disear pruebas

Evaluar pruebas

Ingeniero Pruebas

Requisitos
Especificado casos de uso Detallar casos de uso Integrar el sistema Integrador sistema

Implementacin
Diseador casos de uso Construir Prototipo Interfaz de usuario Realizar pruebas Integracin

Ingeniero pruebas integracin

Arquitecto

prioridad Casos de uso

Anlisis arquitectura

Diseo de la Arquitectura

Implementacin Arquitectura

Realizar pruebas Sistema

Ingeniero pruebas sistema

Ingeniero de casos de uso

Analizar un caso de uso

Disear un caso de uso

Pruebas

Diseo
Ingeniero de Componentes Analizar una clase Disear una clase Implementar una clase Implementar pruebas

Anlisis

Analizar un Paquete

Disear un subsistema

Implementar un subsistema

Realizar pruebas de unidad

RUP

Software

Inicio

Elaboracin

Construccin

Transicin

Iter 1
Modelado Requerimientos Diseo Implementacin Pruebas

Iter 2
Modelado Requerimientos Diseo Implementacin Pruebas

Iter 3

Iter 4

Iter 5

Iter 6

Iter 7

Iter 8
Modelado

Requerimientos

Diseo Implementacin Pruebas

Mtodos giles de Desarrollo - Autores


Kent Beck (XP), Mike Beedle Arie van Bennekum (DSDM) Alistair Cockburn (Crystal), Ward Cunningham (XP), Martin Fowler (XP), James Grenning (XP), Jim Highsmith (ASD), Andrew Hunt (Pragmatic Programming), Ron Jeffries (XP), Jon Kern (FDD), Brian Marick, Robert C. Martin (XP), Steve Mellor, Ken Schwaber (Scrum), Jeff Sutherland (Scrum) y Dave Thomas (Pragmatic Programming)

Mtodos giles de Desarrollo

Manifiesto gil
Las Metodologas giles (AMs) valoran: Al individuo y las interacciones en el equipo de desarrollo ms que a las actividades y las herramientas Desarrollar software que funciona ms que conseguir una buena documentacin Minimalismo respecto del modelado y la documentacin del sistema La colaboracin con el cliente ms que la negociacin de un contrato Responder a los cambios ms que seguir estrictamente una planificacin

Mtodos giles - Principios


La prioridad principal es satisfacer al cliente mediante tempranas y continuas entregas de software que le reporte un valor Dar la bienvenida a los cambios. Los AMs capturan los cambios para que el cliente tenga una ventaja competitiva Entregar frecuentemente software que funcione, desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre una entrega y la siguiente La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto Construir proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir el trabajo El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar informacin dentro de un equipo de desarrollo El software que funciona es la medida principal de progreso Los procesos giles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberan ser capaces de mantener una paz constante

Mtodos giles - Principios


La atencin continua a la calidad tcnica y al buen diseo mejora la agilidad La simplicidad es esencial Las mejores arquitecturas, requisitos y diseos surgen de los equipos organizados por s mismos En intervalos regulares, el equipo reflexiona respecto de cmo llegar a ser ms efectivo, y segn esto ajusta su comportamiento

Mtodos giles vs No giles Metodologa gil


Pocos Artefactos Pocos Roles

Metodologa No gil
Ms Artefactos Ms Roles

No existe un contrato tradicional o al menos Existe un contrato prefijado es bastante flexible Cliente es parte del equipo de desarrollo (adems in-situ) Grupos pequeos (< 10 integrantes) y trabajando en el mismo sitio Menos nfasis en la arquitectura El cliente interacta con el equipo de desarrollo mediante reuniones Grupos grandes

La arquitectura es esencial

Prcticas XP
Cliente In-situ 40 Horas Semanales Metfora Diseo Sencillo

Juego de la planificacin

Recodificacin

Versiones Cortas

Programacin en parejas

Pruebas

Propiedad Colectiva

Estndares de codificacin

Integracin continua

Programacin Extrema XP- Proceso


Escenarios de prueba

Historias de usuario
Requerimientos Funcionales

Arquitectura
Sistema de Metforas

Nueva Historia de Usuario Velocidad del proyecto

Plan de Entregas

Plan de entrega

Defectos

Iteracin
Estimaciones Inciertas Estimaciones de confianza

Ultima Versin

Pruebas de Aceptacin
Prxima Iteracin

Aprobacin del cliente

Solucin Puntual

Pequeas entregas

Programacin Extrema XP- Iteracin


Plan de Entrega
Historias de Usuario

Nuevas Historias de usuario Velocidad del proyecto

Tareas Incompletas Velocidad del proyecto Aprendizaje y comunicacin

Prxima Iteracin

Plan de Iteracin
Nueva funcionalidad

Pruebas de aceptacin fallidas

Plan de Iteracin

Desarrollo

Correccin de defectos

Defectos
Da a Da

Ultima Versin

Programacin Extrema XP-Desarrollo


Tareas Incompletas
Demasiado por hacer Compartir

Aprendizaje y Comunicacin
Programacin por pares Recodificacin implacable Rotacin de personal Tarjetas CRC

Plan de Iteracin

Tareas

Reunin de seguimiento
Prxima tareas o defecto por corregir

Pruebas de aceptacin fallidas

Propiedad Colectiva de Cdigo

Pruebas de aceptacin 100% aprobadas

Nueva Funcionalidad

Da a Da

Pruebas de aceptacin pasadas

Correccin de defectos

Programacin Extrema XP-Codificacin


Tarjetas CRC
Diseo simple Problema Complejo Cambiar Par

Rotacin de personal
Necesidad de ayuda

100% pasadas las pruebas de aceptacin


Ejecutar todas las Pruebas unidad

Prxima tarea o prueba de aceptacin fallida

Formacin de pares

Crear Una Unidad de Prueba


Prueba de Unidad Pasada

Prueba de Unidad Fallida

Programacin por pares

Nuevas Unidades probadas

Nueva Funcionalidad Cdigo Complejo

Continua Integracin
Ejecutar Pruebas de aceptacin fallidas

Cdigo Simple

Recodificar como sea posible

Pruebas de aceptacin pasadas

XP
Software

Diseo Arquitectnico preliminar

Entrega 1

Entrega k

Entrega n

Iter n

..

Iter n+2

Pruebas de aceptacin

Pruebas de aceptacin

Iter 1
Modelado

Iter u-1

Iter 2

Pruebas de aceptacin

Iter u
Modelado Historias de usuario

Historias de usuario Diseo Diseo Implementacin Implementacin Pruebas de unidad Pruebas de unidad

XP Juego de planificacin
Plan de entregas
Meses

Plan de Iteracin
Semanas

Pruebas de aceptacin
Das

Reuniones de seguimiento
Un da

Negociacin de pares
Horas

Unidad de Prueba
Minutos

Programacin por pares Cdigo


Segundos

Programacin Extrema XP- Otra vista del proceso

Programacin Extrema XP- Otra vista del proceso

Plan de Entregas con Historias de Usuario

El Cliente selecciona la lista de historias para la iteracin / minientrega

Reunin de Planificacin de Entregas

Escribir cdigo y Pruebas de Mdulos Refactorizar la iteracin previa

Pruebas de Aceptacin

Entregas pequeas al cliente

Aprobacin del cliente

Pruebas de aceptacin OK?

Mantenerse iterando para pasar las Pruebas de Aceptacin: Pruebas de sistema (Bugs) Pruebas de Mdulos Pruebas de usuario

Scrum

Desarrollado por Ken Schwaber y Jeff Sutherland en el ao 1995 No est concebido como mtodo independiente Enfatiza valores y prcticas de gestin organizacionales Conjunto de patrones

Scrum
SCRUM es una metodologa gil de gestin de proyectos cuyo objetivo primordial es elevar al mximo la productividad de un equipo. Reduce al mximo la burocracia y actividades no orientadas a producir software que funcione y produce resultados en periodos muy breves de tiempo (cada 30 das), por medio de iteraciones o Sprints. Ideal para proyectos con un rpido cambio de requerimientos. Slo abarca prcticas de gestin sin entrar en las prcticas de desarrollo. Delega completamente en el equipo la responsabilidad de decidir la mejor manera de trabajar para ser lo ms productivos posibles y, le da gran protagonismo a las reuniones que realicen a lo largo del proyecto. Sus races tericas estn en las teoras de la auto-organizacin

Scrum - Valores
Equipos auto-dirigidos y auto-organizados Una vez elegida una tarea, no se agrega trabajo extra Encuentros diarios con tres preguntas Qu has hecho desde el ltimo encuentro? Qu obstculos hay para cumplir la meta? Qu hars antes del prximo encuentro? Planeamiento adaptativo guiado por el cliente al principio de cada iteracin Iteraciones de treinta das (Sprint) Demostracin a clientes al fin de cada iteracin

Scrum Pre-Juego Juego Pos-Juego

Planeacin

Estndares Tecnologa Recursos

Reuniones diarias

Pruebas del sistema

Prioridades

Diseo y Arquitectura de Alto Nivel

Sprint Backlog Asignado al equipo Para el Sprint

Integracin

Sprint
(15 a30 das) Lanzamiento Final

Product Backlog Priorizado por el propietario del producto


Nuevos Requerimientos

Anlisis Diseo Pruebas


Documentacin

Nueva funcionalidad demostrable

Scrum- BackLogs

Scrum
Software

Pre-juego
Diseo arquitectnico de alto nivel Construccin Inicial del Product backlog

Juego

Post-juego

Integracin

Sprint n Sprint k
Pruebas Del sistema
Entrega

Sprint 1

Entrega

Modelado

Lanzamiento
Requerimientos Diseo Implementacin Modelado Pruebas de unidad Requerimientos Diseo Implementacin Pruebas de unidad

Principios de la familia Crystal

Prioridad por exigencia legal Prioridad por productividad y tolerancia


Los defectos causan perdidas de...

Vidas Cantidad esencial de dinero Cantidad Discrecional de dinero Conformidad

L6

L20

L40

L100

L200

L500

L1000

Criticidad

E6

E20

E40

E100

E200

E500

E1000

D6

D20

D40

D100

D200

D500

D1000

C6 1-6

C20 - 20

C40 - 40

C100 - 100

C200 - 200

C500 - 500

C1000 - 1,000

Numero de personas involucradas 20%

Cristal Clear

Proyecto
Entrega Iteracin Iteracin Entrega Iteracin Iteracin Entrega Iteracin Iteracin

Iteracin
Da
Integracin
Episodio Episodio

Da
Integracin
Episodio Episodio

Da
Integracin
Episodio Episodio

Integracin
Episodio Episodio

Integracin
Episodio Episodio

Integracin
Episodio Episodio

Episodio

Da

Cristal Clear

Episodio

Integracin

Episodio

Da Da

Episodio Episodio Episodio Episodio Episodio Episodio Episodio Episodio Episodio

Iteracin
Integracin
Da Da Da

integracin

Cristal Clear

Software

Diseo Arquitectnico preliminar

Entrega 1

Entrega k

Entrega n

Iter 1

Iter 2

Iter n

Iter n+1

Iter n+2

Iter u-1

Iter u

Integracin 1 Modelado Requerimientos Diseo Implementacin Pruebas

Integracin 2

Integracin 2

Integracin p

Modelado Requerimientos Diseo Implementacin Pruebas

DSDM Dynamic System Development Method


Los Principios Fundamentales Participacin del usuario activo. El equipo toma decisiones. Frecuentes entregas del producto. Ajustarse a los objetivos del negocio. Desarrollo iterativo e incremental. Cambios reversibles. Especificar requerimientos globales. Pruebas integradas durante todo el ciclo de vida. Cooperacin entre el equipo, usuarios y stakeholders es esencial.

Proceso DSDM

Estudio de viabilidad
Estudio de negocio

Acuerdo de fechas Hacer prototipo funcional Identificar Iteracin del modelo prototipo funcional funcional Revisar prototipos Revisin de negocio

Implementacin Formacin de usuarios

Implementacin

Aprobacin y directrices de los usuarios Identificacin de prototipos Revisin de negocio Iteracin de diseo y desarrollo Aprobacin y directrices de los usuarios Formacin de usuarios

Proceso DSDM
Estudio de viabilidad y de negocio Las dos primeras fases son secuenciales. Estudio de viabilidad: Calcular los costes Ver si es tcnicamente viable Asegurarse de que DSDM sea el enfoque adecuado Estudio de negocio: Modelado del proceso del negocio Fuerte colaboracin cliente-equipo de desarrollo.

Proceso DSDM
Iteracin funcional e Iteracin de diseo y construccin Iteracin funcional del modelo: Refinar aspectos funcionales del negocio. Iteracin de diseo y construccin: El producto se vuelve apto para los usuarios

.
Las dos fases consisten en ciclos de 4 actividades: Identificacin Planificacin Produccin Validacin

Proceso DSDM
Implementacin Implementacin, entrenamiento, revisin y aceptacin de usuarios y revisin del negocio. Al final puede ocurrir: 1. Falta una parte tcnica Iteracin de diseo y construccin 2. Se ha descubierto una nueva funcionalidad Estudio del negocio 3. Falta una funcionalidad secundaria Iteracin funcional del modelo 4. Todos los requerimientos cumplidos

FDD Feature Driven Development


Desarrollo dirigido (manejado) por rasgos Es un proceso gil diseado por Peter Coad, Eric Lefebvre y Jeff DeLuca. Se basa en un proceso iterativo con iteraciones cortas que producen un software funcional que el cliente y la direccin de la empresa pueden ver y monitorizar. Las iteraciones se deciden en base a features o funcionalidades, que son pequeas partes del software con significado para el cliente. A diferencia de otros procesos giles no cubre todo el ciclo de vida sino slo las fases de diseo y construccin. No requiere un modelo especfico de proceso y se complementa con otras metodologas. Enfatiza cuestiones de calidad y define claramente entregas tangibles y formas de evaluacin del progreso.

Proceso FDD

Desarrollar Modelo general

Construir Lista de Caracterstica (funcionalidades) (rasgos)

Planear por Grupos de rasgos

Disear por rasgos

Construir por rasgos

Ciclo FDD

Examen de cdigo Construccin principal Integracin

Iteracin por rasgos

Pruebas de unidad

Codificacin Conjunto de Rasgos (Funcionalidades) (Caracterstica)

Grupo de Rasgos Diseo

Inspeccin de Diseo

S-ar putea să vă placă și