Вы находитесь на странице: 1из 45

Procesos de Desarrollo de Software

Dr. Juan Manuel Fernndez Pea Mtro. Jorge Octavio Ocharn Hernndez Dra. Mara de los ngeles Sumano Lpez

Procesos de Desarrollo Software


Tambin se les conoce como Ciclo de Vida del Desarrollo de Software Pasos para producir software. Difiere de organizacin en organizacin. La mejora en el proceso de software se ve como una forma de mejorar una empresa ya que se busca.
Entregar software de calidad a tiempo Minimizar riesgos Tener resultados predecibles

Procesos de Desarrollo Software


La meta es proveer una gua para la coordinacin sistemtica y controlada de tareas que se deben realizar para alcanzar un producto final y sus objetivos:
Un conjunto de tareas que se necesitan realizar. La entrada y salida de cada tarea. Las precondiciones y postcondiciones de cada tarea. La secuencia y flujo de las tareas

Ejemplos de Ciclos de Vida de Desarrollo de Software

Modelo de cascada
Quiz el ms antiguo. Tambin se le conoce como modelo clsico del ciclo de vida de software o Lineal Secuencial. Su nombre se deriva del proceso que representa:
Las tareas ocurren de manera secuencial una tras otra.

Guiado por documentos


5

Modelo de cascada
Requerimientos Anlisis Diseo Codificacin Prueba
Tiempo
6

Modelo incremental
Se puede ver como una modificacin del de cascada. Los componentes se desarrollan de manera traslapada. Se busca construir primero un ncleo que contiene la mayora de la funcionalidad requerida.

Modelo incremental

Modelo incremental

Tiempo

Mltiples lanzamientos
9

Modelo de espiral
Propuesto por Barry Boehm. Surge como respuesta a las deficiencias del modelo de cascada. Basado en la experiencia de varios proyectos grandes de software gubernamental. Pone nfasis en la reduccin del riesgo. Se dice que es guiado por riesgo. Provee un ciclo para el desarrollo incremental del software.
10

Modelo de espiral (2)


Tiene cuatro cuadrantes que son recorridos por el software en su desarrollo incremental. Cada ciclo implica una serie de pasos para cada inters, componente o artefacto.

11

Modelo de espiral (2)


El recorrido tpico es:
1. Identificar los objetivos, alternativas y limitaciones de cada ciclo. 2. Evaluar las alternativas de los objetivos y limitaciones, aqu es donde se identifican los riesgos y se evalan. 3.Se da un paso para la disminucin de riesgo (ej. un prototipo) 4.Se valida el logro del objetivo y se planea el siguiente ciclo.
12

Modelo de espiral

13

Proceso Unificado de Desarrollo de Software


Iterativo, centrado en la arquitectura y guiado por casos de uso y busca:
1. 2. 3. 4. 5. 6. Desarrollar iterativamente Administrar requerimientos Arquitectura de componentes Modelar visualmente Verificar la calidad continuamente Administrar el cambio
14

Cuatro fases
Inicio: Entender lo qu se va a construir. Elaboracin: Entender cmo construirlo. Construccin: Construir el producto. Transicin: Validar la solucin.

15

Iteraciones y fases
Una secuencia de actividades distintas con un plan establecido y un criterio de evaluacin que resultan en un lanzamiento ejecutable

16

Espritu de PUDS
1. Atacar los riesgos principales desde temprano y continuamente 2. Adaptarse a los cambios desde el principio del proyecto. 3. Mantenerse enfocado en software ejecutable. 4. Tener una arquitectura ejecutable desde temprano. 5. Construir sistemas con componentes. 6. Asegurar la entrega de avances con valor para el cliente. 7. Hacer de la calidad una forma de vida y no una reflexin. 8. Trabajar en estrecha colaboracin y como un solo equipo.
17

1. Atacar los riesgos principales desde temprano y continuamente


Centra al equipo en resolver los problemas ms crticos primero. A travs de un desarrollo iterativo que constantemente identifique y aborde riegos. Es ms fcil atacar pequeos problemas desde el principio que grandes al final del proyecto.

18

2. Adaptarse a los cambios desde el principio del proyecto.


El software se ha vuelto tan complejo que es difcil tener los requerimientos, diseo e implementacin correctos desde el principio. El cambio tratado por medio de iteraciones divididas en las fases de:
Inicio: se hacen cambios en la solucin de negocio Elaboracin: se pueden hacer cambios en la arquitectura Construccin: se hacen cambios en el diseo e implementacin Transicin: se puede cambiar el alcance

Se espera hacer cambios en tiempo ptimo.


19

3. Mantenerse enfocado en software ejecutable


Algunas veces los equipos se enfocan demasiado en los requerimientos y el diseo lo que lleva a lo que se conoce como parlisis de anlisis. Lo que se busca es construir software que trabaje como se espera, sto significa que el progreso se debe medir principalmente en:
La revisin de cdigo ejecutable. El resultado de pruebas.

No se busca usar todo PUDS, slo lo que necesite el proyecto.


20

4. Tener una arquitectura ejecutable desde temprano.


Se ataca en la fase de elaboracin. Se busca identificar riesgos tcnicos principales y mitigarlos. El tener una arquitectura ejecutable es la meta principal de la fase de elaboracin.

21

5. Construir sistemas con componentes


Los componentes encapsulan datos funciones. Permite adaptarnos mejor al cambio: y

Los cambios se aslan e implementan en la unidad apropiada y no a lo largo del sistema.

22

6. Asegurarse de que se entrega valor al cliente


Los usuarios y otros interesados deben estar involucrados. Hay que enfocarse en los requerimientos clave con desarrollo guiado por Casos de Uso:
Permite capturar los requerimientos correctos. Se pueden compartir con los usuarios.

23

7. Hacer de la calidad una forma de vida y no una reflexin


La experiencia ha mostrado que mientras ms rpido encontremos defectos en el desarrollo menos costosos sern. PUDS es un proceso guiado por la calidad. Se hacen pruebas en cada iteracin. Se busca tener una solucin de alta calidad.

24

8. Trabajar en estrecha colaboracin y como un solo equipo


Es quiz el principio ms importante. Ms que nunca, el desarrollo de software es un esfuerzo de equipo. Para el mximo desempeo los equipos deben ser:
Auto administrados. Capaces de rendir resultados como equipo. Capaces de comunicarse de manera efectiva y significativa.
25

Cules son las dos dimensiones de PUDS?


Dinmica (Horizontal, lnea de tiempo): ciclos, fases, iteraciones e hitos Esttica (vertical):
elementos, actividades, disciplinas, artefactos, roles y su agrupacin

26

Proceso Unificado de Desarrollo de Software

27

Fases e Iteraciones
Est divido ciclos y cada ciclo trabaja en una nueva generacin de un producto de software. PUDS divide un ciclo de desarrollo en 4 fases consecutivas:
Fase de inicio Fase de elaboracin Fase de construccin Fase de transicin

Cada fase tienen una serie de actividades y metas


28

Actividades por fase. Inicial.


El criterio esencial es la viabilidad.
Identificacin y reduccin de riesgos. Arquitectura candidata a partir de requerimientos clave pasando por modelo de Casos de Uso. Planeacin del proyecto (costo, esfuerzo, calendario). Inicio del anlisis del negocio.

Actividades por fase. Elaboracin.


Construir el sistema dentro de un marco de trabajo econmico.
Identificar y reducir riesgos que afecten significativamente al sistema. Especificar la mayora de los casos de uso. Extender la arquitectura hasta las proporciones de una lnea base.

Actividades por fase. Construccin.


El criterio es un sistema capaz de una operatividad inicial en el entorno del usuario, se lleva a cabo mediante:
Una serie de iteraciones que llevan a incrementos y entregas peridicos. La viabilidad del sistema siempre es evidente en forma ejecutable.

Actividades por fase. Transicin.


Crear un sistema que lleva a cabo una operatividad final, mediante:
Modificacin del producto para subsanar problemas que no se identificaron en fases anteriores. Correccin de defectos.

Metas por fase. Inicio


Un documento con:
visin general de los requerimientos, caractersticas y restricciones principales glosarios,

Un modelo de casos de uso inicial Caso de negocio inicial:


contexto del negocio, criterios de xito y pronstico financiero.

Evaluacin inicial de riesgos. Plan de proyecto, mostrando fases e iteraciones. Modelo de negocio en caso de ser necesario. Uno o varios prototipos.

Metas por fase. Elaboracin


Centrada en factibilidad
Crea lnea base para la arquitectura que cubre la funcionalidad del sistema
artefactos de modelos descripcin de arquitectura implementacin que muestre la posibilidades

Identifica riesgos significativos (perturba planes) Especifica atributos de calidad Recopila Casos de Uso hasta en el 80% Realiza la planificacin

Metas por fase. Elaboracin


Centrada en factibilidad
Crea lnea base para la arquitectura que cubre la funcionalidad del sistema
artefactos de modelos descripcin de arquitectura implementacin que muestre la posibilidades

Identifica riesgos significativos (perturba planes) Especifica atributos de calidad Recopila Casos de Uso hasta en el 80% Realiza la planificacin

Metas por fase. Construccin


Se construye el sistema
Identificacin, descripcin y realizacin de todos los Casos de Uso Finalizacin de anlisis, diseo, implementacin y prueba (hasta el 90%). Modificacin de la arquitectura Monitoreo de riesgos crticos y su mitigacin si aparecen.

Metas por fase. Transicin


Centrada en la liberacin en el entorno del usuario
Preparar actividades, como adecuacin del lugar. Aconsejar al cliente sobre la actualizacin del entorno Preparar manuales y documentos para la entrega. Ajustar el software a los parmetros de reales del entorno del usuario Corregir defectos Modificar el software por problemas no previstos

Encontrar, discutir, evaluar y registrar lecciones aprendidas para el futuro.

Puede un proceso abarcar todo sto?

38

Dos dimensiones, 4 estilos de procesos

39

Procesos giles

40

Estndares del DoD

41

SEI CMM y CMMi

42

PUDS (RUP)

43

Tarea (5 de enero de 2013)


Investigar y contestar las siguientes preguntas para el ciclo de vida de desarrollo de software que se le asignar al equipo: Preguntas:
Esquema (si lo hay) Fases y actividades (disciplinas)? Ventajas y desventajas? Tipos de aplicacin?

Metodologas giles
Equipo Ciclo de Vida de: 1 Adaptive Software Development (ASD). Jim Highsmith 2 Crystal Clear. Alistair Cockburn 3 SCRUM. Ken Schwaber and Jeff Sutherland et al 4 Extreme Programming (XP). Kent Beck 5 Disciplined Agile Delivery (DAD). Scott W. Ambler 6 Kanban. David J. Anderson

Вам также может понравиться