04.01. ciclo vida

22
- 1 Fac. Informática - Universidad Nacional de La Plata Maestría Ingeniería de Software Ciclo de Vida de Desarrollo de Software Alejandro Oliveros [email protected] Administración de Proyectos 1er. Cuatrimestre 2006 AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 2 Temario • Ciclo de vida del software Modelos de proceso software Ciclos de vida de desarrollo de software

Transcript of 04.01. ciclo vida

- 1

Fac. Informática - Universidad Nacional de La PlataMaestría Ingeniería de Software

Ciclo de Vida de Desarrollo de Software

Alejandro [email protected]

Administración de Proyectos 1er. Cuatrimestre 2006

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 2

Temario

• Ciclo de vida del software

• Modelos de proceso software• Ciclos de vida de desarrollo de software

- 2

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 3

Desarrollo de software

• En el proceso de desarrollo de software:

– conjunto de actividades que generan productos intermedios – los que, a su vez, son transformados en otros productos por otros

procesos.• El desarrollo puede verse como una cadena de actividades con

productos intermedios, esa visión es la de ciclo de vida.

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 4

Nacimiento

VidaMadurez y

muerte

Ciclo de vida

• Evoca la visión de los organismos vivientes• Puede verse como una secuencia de estados

- 3

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 5

Planeamiento

DesarrolloOperación

yMantenimiento

Ciclo de vida de sistemas

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 6

– Análisis de necesidades del usuario – Análisis de sistemas– Especificaciones de Requerimientos

– Diseño de alto nivel– Definición de la arquitectura de

software

– Diseños de programas

– Diseños de módulos– Diseños de bajo nivel

– Diseños de algoritmos

– Programas funcionando

REQUERIMIENTOS DEL SISTEMA

DISEÑO PRELIMINAR

DISEÑO DETALLADO

CODIGO

Modelo en cascada

- 4

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 7

Proceso

• Conjunto de pasos que involucran actividades, restricciones y recursos que producen un output de algún tipo

• Involucra: Técnicas, Herramientas, Procedimientos• Proceso. Secuencia de pasos ejecutadas con un propósito dado [IEEE-

STD-610].• Proceso Software. Un conjunto de actividades, métodos, prácticas y

transformaciones que la gente usa para desarrollar y mantener software y los productos asociados

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 8

Definiciones

• Técnica: conjunto de pasos a seguir para producir algún resultado

• Herramienta: es un instrumento o sistema automatizado para alcanzar algo en una forma mejor

• Método/Procedimiento: combinación de herramientas y técnicas que en conjunto producen un producto particular

• Ejemplo– Técnica: lectura de código– Herramienta: analizador de código– Método: inspección de código, que usa las dos anteriores

• Multiplicidad de categorías y definiciones

- 5

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 9

REQUERIMIENTOS DEL SISTEMA

DISEÑO PRELIMINAR

DISEÑO DETALLADO

CODIGO

Establecer requerimientos

Definir arquitectura

Diseñar módulos

Codificar

Delivery

Procesos de desarrollo de software

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 10

Modelo completo

Resultado

Requerimientos Diseño preliminar

Diseño detallado

Código

Necesidades

DeliveryDiseñar arquitectura

Especificar Requerimientos

Diseñar módulos

Codificar

PROJECT MANAGEMENT

- 6

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 11

Modelo abstracto

Resultado

Estado 1 Estado 2 …. Estado N

Necesidades

Actividad ZActividad BActividad A … ….

PROJECT MANAGEMENT

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 12

Nomenclatura

• Dos conceptos

– Ciclo de vida

= visión del proceso software que considera la presencia de productos– Ciclo de vida de software

=conjunto de métods que cubren el ciclo de vida completo: modelo de desarrollo incremental, uso de diseño estructurado

= proceso software = modelo de ciclo de vida= modelo de proceso software

• A los efectos de la preocupación en el proceso, se pueden considerar como sinónimos

- 7

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 13

Temario

• Ciclo de vida del software

• Modelos de proceso software• Ciclos de vida de desarrollo de software

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 14

El proceso por dentro

• Establece todas las principales actividades del proceso

• Utiliza recursos, sujeto a una serie de restricciones(tal como uncronograma) y genera productos intermedios y finales

• Puede estar compuesto por subprocesos que se encadenan de alguna manera

• Cada actividad del proceso tiene criterios de entrada y salida• Las actividades se organizan en una secuencia• Tiene una serie de principios-guía que explican los objetivos de cada

actividad• Las restriccioneso controles pueden ser de aplicación a una actividad,

recurso o producto

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 15

Mapa conceptual del concepto de proceso

Proceso ActividadesIncluye

Recursos Utiliza

RestriccionesSujeto a

Subprocesos

Compuesto de

Criterios de entraday salida

Satisface

Secuencia de actividades

Organizadas por

Objetivos

Alcanza

Principios -guía

Tiene

Explica

Producto final

Produce

encadenan

Productos intermedios

Sujeto-a

Produce y procesa

Utiliza

Sujeto-a

Representación basada en las ideas de Pfleeger, S.L., Ingeniería de software. Teoría y práctica, 2002

- 8

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 15

Mapa conceptual del concepto de proceso

Proceso ActividadesIncluye

Recursos Utiliza

RestriccionesSujeto a

Subprocesos

Compuesto de

Criterios de entraday salida

Satisface

Secuencia deactividades

Organizadas por

Objetivos

Alcanza

Principios-guía

Tiene

Explica

Producto final

Produce

encadenan

Productos intermedios

Sujeto -a

Produce y procesa

Utiliza

Sujeto -a

Representación basada en las ideas de Pfleeger, S.L., Ingenier ía de software. Teor ía y práctica, 2002

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 16

El Proceso de desarrollo de procesos

es utilizado para desarrollar y evolucionar

El Proceso de Desarrollo de Software

es utilizado para desarrollar y evolucionar

Productos Software

son utilizados para desarrollar y evolucionar

Resultados para los usuarios

Process Engineering

Process Enactment

SoftwareEngineering

Process Enactment

Propiedades estáticas

Propiedades dinámicas

Propiedades estáticas

Propiedades dinámicas

Relaciones entre actividades de software y actividades de proceso

Estructura de los conceptos de proceso

- 9

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 17

¿Para qué modelos de proceso?

• Ayuda una comprensi ón común

• Ayuda encontrar inconsistencias, redundancias y omisiones• El modelo debería reflejar los objetivos de desarrollo • Permite evaluar actividades candidatas para atacar estos objetivos. • Permite la adecuación a cada situación especial

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 18

ARQUITECTURA DEL PROCESO

Adecuación

Adecuación

DISEÑO DEL PROCESO

Adecuación

DEFINICION DEL PROCESO

Adecuación

Evolución

Evolución

Desarrollo

Desarrollo

Evolución

Acciones y entidades de procesos (1/2)

A conceptual framework for consistently incorporating, relating, and tailoring process elements into enactableprocesses

An embodiment of a process architecture that establishes the architectural options and parameters, the existing elements to be reused, the structure and behavior of the new elements, and the relationships among these elements

An implementation of a process design in the form of a partially ordered set of process steps that is enactable

Process Model . An abstract representation of a process architecture, design, or definition

Feiler&Humphrey

- 10

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 19

Acciones y entidades de procesos (2/2)

DEFINICION DEL PROCESO

PROCESO “DISPONIBLE”

PROCESO EN ACCION

Intanciar

Iniciar

ESTADO DEL PROCESO

DISPONIBLEIntanciar

AGENTEEjecutar

Interactuar

PLAN DE PROCESO

PROCESO DE CONTROL

Planear

Analizar

Ajustar

Ajustar

AnalizarRESTRICCIONES

DE PROCESO

TRAZA DEL PROCESO

Analizar

Analizar

Monitorear

Monitorear

Ajustar

Adecuar

P.Disponible. An instance of a process definition that includes all the elements required for enactment

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 20

Modelos y métricas

• La mediciones capturan información sobre el proceso que se está ejecutando

• Permiten:– Evaluar el proceso– Profundizar el conocimiento del producto– Detectar las debilidades del ambiente– Proveer conocimiento sobre la mejora del proceso– Ayudar en la evolución del proceso

- 11

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 21

Modelo de proceso y métodos (Basili)

• Un modelo de proceso define la secuencia de métodos y el desarrollo de los documentos anexos

• Los métodos se determinarán por las necesidades:– las necesidades del problema– las necesidades del ambiente– la capacidad de integración de los métodos que requiere el modelo

de ciclo de vida

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 22

Modelo de proceso y métodos (Basili)

• Input: objetos sobre los que opera el método y el estado del ambiente en que se aplica

• Output: objetos que produce el método y cambios en el ambiente• Técnica: la tecnología básica a que se ejecuta, ej: el algoritmo que se

sigue• Formalidad: rigor con el que se aplica• Enfasis:conjunto de focos del método y técnica• Definición del método: modelo de proceso asociado con la aplicación de

la técnica• Perspectiva: punto de vista desde el cual se aplica el método y la técnica• Calidad del producto: conjunto de cualidades del output que interesan• Calidad del proceso: conjunto de cualidades del proceso

- 12

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 23

Table 1: Basic Unit Cell Specification

Specification Entry Conditions to be met before task initiation Exit Results produced

Feedback IN: Feedback from other cells OUT: Feedback to other cells

Task What is to be done (who, what, when)? Standards, procedures, and responsibilities.

Measurements Task, output, and feedback measures

Modelo de U. Massachussets

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 24

Temario

• Ciclo de vida del software

• Modelos de proceso software• Ciclos de vida de desarrollo de software

– Cascada– Prototipo– Mejora iterativa– Entrega en etapas

– Espiral– Reuso– Sistemas Web

- 13

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 25

Requerimientosde softtware

Diseño preliminar

Diseño detallado

Codificación

Testeo unitario

Testeo integración

Testeo sistema software

Operación y mantenimiento

Modelo cascada completo

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 26

Verificación del Diseño

Validación de los requerimientos

Requerimientosde softtware

Diseño preliminar

Diseño detallado

Codificación

Planeamientotesteo unitario

Testeo unitario

Planeamientotesteo

integración

Testeo integración

Planeamientotesteo sistema

de software

Testeo sistema de software

Visión de la calidad

- 14

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 27

Modelo de cascada clásico (Davis)

• Requiere definir qué hará el sistema antes de construírlo (REQUERIMIENTOS/DISEÑO)

• Requiere planear la interacción de las partes antes de construírlas (DISEÑO/CODIFICACION)

• Los gerentes deben seguir muy de cerca el proyecto y corregir muy tempranamente

• Requiere producir una serie de documentos que luego se usan en el testeo y mantenimiento

• Reduce los costos de desarrollo y mantenimiento como consecuencia de las razones anteriores

• Permite a la organización de desarrollo ser más estructurada y organizada

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 28

Fases conceptuales

Tiempo

Foco

Descubrimiento

Inven ción

Implementación

Copyright 1998 Steven C. McConnell. Reprinted with permission from Software Project Survival Guide (Microsoft Press, 1998).

- 15

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 29

Superposición de actividades

Arquitectura

Construcción

Documentación del usuario

Tiempoe

Planeamiento

Management

Desarrollo de requerimientos

Diseño Detallado

QA/Testeo de sistema

Checkpoint de revisón del plan

Copyright 1998 Steven C. McConnell. Reprinted with permission from Software Project Survival Guide (Microsoft Press, 1998).

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 30

Problemas del cascada

• El desarrollo de software es iterativo en su esencia

• ¿Cómo se transforman los productos?• El desarrollo es una actividad de resolución de problemas• En los hechos de una etapa se pasa a cualquiera de las otras• Se ha convertido en un “modelo ideal típico”

- 16

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 31

Prototipos : Tipologia

• Escenarios o simulaciones, herramienta para entender o validad los requerimientos del usuario

• Rápidos desechables, construcción “quick and dirty”que atacan un aspecto particular para que el usuario potencial lo utilice durante un tiempo y provea información al equipo.

• Evolutivos, atacan una funcionalidad acotada del sistema que resuelve algunos de los requerimientos del usuario.

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 32

Diseño preliminar

Diseño detallado

Codificación

Testeo unitario

Testeo integración

Testeo sistema software

Operación y mantenimiento

PROTOTIPO

Verificación

Validación

Modelo prototipoRequerimientos

de software

- 17

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 33

Diseño

Codificación

Testeo

Análisis

Diseño

Codificación

Testeo

Análisis

Modelo mejora iterativa

Requerimientosde softtware

Requerimientosde softtware

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 34

Requerimientosde softtware

Diseño preliminar

Delivery

Diseño detallado, Codificación,

Testeo, DeliveryDiseño detallado,

Codificación, Testeo y Delivery

Diseño detallado, Codificación,

Testeo y Delivery

Etapa 1

Etapa 2

Etapa n

Entrega en etapas

- 18

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 35

Hitos y fases principales

Beginning of Project

Project Launch/Feasibility Study

Preliminary Requirements Development

Detailed Requirements Development

Planning Checkpoint Review and Go/No Go Decision

Architecture

First Stage

Stage 1 Release

Second Stage

Stage 2 Release

Last Stage (assuming 3 stages)

Stage 3 Release

Release Preparations

Product Release

Mostly open-ended work

Mostly closed-ended work

0% 100% 10% 20% 30% 40% 50% 60% 70% 80% 90%

Copyright 1998 Steven C. McConnell. Reprinted with permission from Software Project Survival Guide (Microsoft Press, 1998).

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 36

Modelo espiral

- 19

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 37

Componentes del modelo

• Objetivos. Objetivo general a alcanzar, luego se ira desglosando en más niveles.

• Restricciones. Restricciones que se imponen al proyecto. • Alternativas. Se detallan las alternativas de solución. • Riesgos. Se detallan los riesgos que podría generar cada alternativa. • Resolución de Riesgos. Propuesta de solución a cada uno de los riesgos. • Plan de la etapa siguiente. Plan de la etapa siguiente. • Compromiso. Detalles de Compromisos para llevarla a cabo.

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 38

Diseño

Codificación

Testeo

Diseño

Codificación

Testeo

Sistema desarrollado previamente

Nuevo sistema a desarrollar

Requerimientosde softtware

Codificación

Testeo

Repositorio de software

Diseño

Modelo reuso

Requerimientosde softtware

Requerimientosde softtware

- 20

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 39

Procesos en la Web

Analogía basada en la experiencia actual, el diseño se basa en los recursos disponibles, enfoque de breadown (WBS)

VariasTecnología de estimación utilizada

Diseñadores gráficos, ingenieros en software con poca experiencia (2+ años), recientemente egresados

Ingenieros en software, como 5+ años de experiencia el más de un dominio de aplicación

Gente involucrada

Sistemas basados en objetos, muchas componentes reusables, pocas interfaces externas, relativamente simple

Basados en código, la mayoría nuevo, algún reuso, muchas interfaces externas, a menudo aplicaciones complejas

Producto desarrollado

Ad hocBasados en CMMProceso utilizado

Componentes, lenguajes de 4ta y 5ta generación (HTML, Java), visualización

OO, generadors, lenguajes modernos de programación (C++), herramientas CASE

Principal tecnología usada

RAD, contrucción en bloques, prototipos, UML

Clásico, basado en requerimientos, entrega por fases o incremental, uso de documentación

Enfoque de desarrollo

3-6 meses10-18 mesesDuración típica

Pequeño (3 a 5 miembros)Medio a grandeTamaño típico

Lanzar productos de calidad al mercado tan pronto como sea posible

Construir productos de software de calidad a un costo mínimo

Objetivo primario

Proyecto WebProyecto tradicionalCaracterística

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 40

SE y Web

• Está abierta la problemática de la Ingeniería Software para proyectos Web

• Web impacta a todo nivel:– Ciclo de vida del producto– Procesos– Project Management

- 21

AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 41

Referencias

• Zelkowitz, M.V., MSWE 607 Software Life Cycle Methods and Techniques, Maryland, 2000, Notas de aula

• McConnell, S., Software Project Survival Guide, MicrosoftPress, 1998, Redmond

• Reifer, D.J., “Web Development: Estimating Quick-to-Market Software”, IEEE Software, nov/dic 2000

• Feiler, P H and Humphrey, W S ‘Software process development andenactment: concepts and definitions’ in Proc. 2nd Int. Conf: SoftwareProcess, Berlin, Germany (25-26 February 1993) pp 28-39