procesos de ingenieria de software

31
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ESCUELA DE CIENCIAS DE LA COMPUTACIÓN PROCESOS DE INGENIERÍA DE SOFTWARE ESTIMACIÓN DE PROYECTOS DE SOFTWARE 2008

Upload: angel-macas

Post on 19-Jun-2015

22.538 views

Category:

Technology


1 download

DESCRIPTION

Esta es una presentación del capitulo de estimación de proyectos de Software

TRANSCRIPT

Page 1: Procesos de Ingenieria de Software

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

ESCUELA DE CIENCIAS DE LA COMPUTACIÓN

PROCESOS DE INGENIERÍA DE SOFTWAREESTIMACIÓN DE PROYECTOS DE SOFTWARE

2008

Page 2: Procesos de Ingenieria de Software

IntegrantesiIntei

• Marcelo Juca.• Ángel Macas.

Page 3: Procesos de Ingenieria de Software

Introducción

• El proceso de gestión del proyecto desoftware comienza con un conjunto deactividades que, globalmente se denominanplanificación del proyecto

• La primera de estas actividades es laestimación de costes y tiempos

Page 4: Procesos de Ingenieria de Software

Observaciones Acerca de la Estimación

• La estimación la lleva a cabo el gestor delproyecto

• La estimación y planificación temporal deun proyecto software requiere:

- Experiencia.- Buena información histórica.- Coraje de confiar en las métricas y laexperiencia.

Page 5: Procesos de Ingenieria de Software

Observaciones Acerca de la Estimación

Hay cuatro factores que influyen significativamente en las estimaciones:

- La complejidad del proyecto.- El tamaño del proyecto.- El grado de incertidumbre estructural.- Disponibilidad de información histórica.

Page 6: Procesos de Ingenieria de Software

El Proceso de Planificación del Proyecto

• El objetivo de la planificación del proyecto de software es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos, coste y programa de trabajo.

• Estas estimaciones se hacen al comienzo del proyecto

Hay que actualizarlas según progresa éste

Page 7: Procesos de Ingenieria de Software

El Proceso de Planificación del Proyecto

• Modelos de proceso evolutivos

• Definir los escenarios del mejor caso y del peor caso de forma que los resultados del proyecto puedan limitarse

Page 8: Procesos de Ingenieria de Software

Ámbito del Software y Factibilidad

• La primera actividad de la planificación del proyecto es determinar el ámbito del software

• Recordemos que ámbito:– Contexto.– Objetivos de información.– Funciones y rendimiento.

Page 9: Procesos de Ingenieria de Software

Ámbito del Software y Factibilidad

• El cliente es el único que puede ayudarnos a determinar el ámbito.

• Por tanto la comunicación con el cliente es fundamental.

• La comunicación se puede iniciar con las preguntas de contexto libre.

Page 10: Procesos de Ingenieria de Software

Recursos

• La segunda tarea de la planificación del desarrollo de software es la estimación de recursos requeridos para acometer el esfuerzo de desarrollo

• Estos recursos son:- Personas.- Componentes software reutilizables.- Herramientas de hardware/software.

Page 11: Procesos de Ingenieria de Software

Estimación de Proyectos de Software (1)

• Estimar el coste del software es vital• Las estimaciones nunca podrán ser exactas• Cuanto mejor estimemos, más rentable será

nuestro proyecto• Estimar es difícil, ya que:– Los requisitos iníciales no están totalmente

delimitados.– Puede que necesitemos utilizar tecnologías nuevas.

Page 12: Procesos de Ingenieria de Software

Estimación de Proyectos de Software (2)

• Las personas involucradas en el proyecto pueden tener distintos grados de experiencia.

Page 13: Procesos de Ingenieria de Software

Técnicas de Descomposición

• La técnica de descomposición basada en el problema, se basa en la descomposición del producto en funciones y estimar el tamaño del software

• Por tanto, la primera estimación que sirve de base para todas las demás, es la estimación del tamaño del software

Page 14: Procesos de Ingenieria de Software

Técnicas de DescomposiciónTamaño del Software (1)

• Podemos considerar tres tamaños del software:– Tamaño en LDC.– Tamaño en PF.– Tamaño en Punto Objeto (PO)

• En cualquier caso, la precisión de la estimación depende de:– El grado en el que el planificador ha estimado

adecuadamente el tamaño del producto a construir.

Page 15: Procesos de Ingenieria de Software

Técnicas de DescomposiciónTamaño del Software (2)

- La habilidad para traducir la estimación del tamaño en esfuerzo y dinero. Depende fundamentalmente de la existencia de métricas.– El grado en que el plan del proyecto refleja las

habilidades del equipo de software.

Page 16: Procesos de Ingenieria de Software

Técnicas de descomposiciónBasadas en el Problema

• Dicha estimación puede basarse en:– Datos históricos.– Experiencia/intuición.

• Con estos valores se calcula un valor esperado:VE = (Vo + 4Vm + Vp)/6

• Una vez estimado el tamaño se aplican los datos históricos de productividad LDC

Page 17: Procesos de Ingenieria de Software

Técnicas de DescomposiciónBasadas en el Proceso

• La técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar

• Utilizando el proceso identificamos un conjunto pequeño de actividades de trabajo o tareas de trabajo y se estima el esfuerzo requerido para llevar a cabo cada tarea

Page 18: Procesos de Ingenieria de Software

Estimación con Casos de Uso (1)

•Describen empleando varios formatos y estilos diferentes, no existe estándar. •Representan una visión externa (usuario), distintos niveles de abstracción.•No abordan la complejidad de las funciones ni las características que describen.•No describen el comportamiento complejo

Page 19: Procesos de Ingenieria de Software

Varios investigadores han considerado los casos de uso como una entrada a la estimación que se considere dentro del contexto de la “ jerarquía estructural ”,Ej.

Estimación con Casos de Uso (2)

casos de uso escenarios paginas escenarios paginas LCD LCD estimadas

Interfaz de usuario 6 10 6 12 5 560 3 366

Subsistema de Ingenieria 10 20 8 16 8 3100 31 233

Subsistema de infraestructura 5 6 5 10 6 1650 7 970

42568

Page 20: Procesos de Ingenieria de Software

Reconciliación de Estimaciones.

• El planificador no ha comprendido adecuadamente o malinterpretado el ámbito del proyecto.

• Los datos de productividad que utilizan las técnicas basadas son inapropiadas para la aplicación o se han aplicado mal.

Page 21: Procesos de Ingenieria de Software

• Los datos empíricos que apoyan la mayoría de estimación proceden de una muestra limitada de proyectos.

Ningún modelo de estimación es apropiado para todas las clases del software ni en todos los entornos de desarrollo.

los modelos de estimación deben calibrarse para las necesidades locales.

Modelos Empíricos o Estadísticos.

Page 22: Procesos de Ingenieria de Software

9mod)(*2.5

mod)(*2.5

mod)(*0735.5

mod)(*2.5

91.0

91.0

16.1

91.0

aKLDCeloDotyparKLDCE

eBoehmelosimpledKLDCE

BasilieloBaileyLDCE

FelixeloWalsonKLDCE

Page 23: Procesos de Ingenieria de Software

El modelo Cocomo II (1)

Page 24: Procesos de Ingenieria de Software

• Constructive Cost Model, modelo de estimación del software en la industria es en realidad una jerarquía de modelos de estimación que aborda a diferentes fases y modalidades del futuro ciclo de vida:

– Modelo de Composición de la Aplicación.– Modelo de Etapa de Diseño Temprano.– Modelo de Etapa Posterior a la Arquitectura.

El modelo Cocomo II (1)

Page 25: Procesos de Ingenieria de Software

Formulas:NPO=(puntos objeto)X[(100-%reut)/100]PROD=NPO/persona-mesEsfuerzo estimado= NPO=PROD

Page 26: Procesos de Ingenieria de Software

LA ECUACION DEL SOFTWARE

Donde: E = esfuerzo en personas-mes o personas-año. t = duración del proyecto en meses o años. B = factor especial de habilidades. P = Parámetro de productividad

)/1(*/* 43333.0 tPBLDCE

Page 27: Procesos de Ingenieria de Software

1. Desarrollo de estimaciones aplicando descomposición de esfuerzo análisis de PF .

2. Aplicar el modelado de análisis orientado a objetos.

3. Determinar el numero de clases claves.4. Categorizar el tipo de interfaz.5. Multiplicar total de clases (clave + soporte) por el

promedio de unidades de trabajo.6. Comprobar de manera cruzada en clase la

estimación en clase.

Estimación para Proyectos Orientados a Objetos.

Page 28: Procesos de Ingenieria de Software

Conclusiones(1)

• Al comparar y reconciliar las estimaciones obtenidas con la aplicación de diferentes técnicas, el planificador tiene mas probabilidad de calcular una estimación precisa.

• COCOMO es una herramienta basada en la líneas de código la cual le hace muy poderoso para la estimación de costos y no como otros que solamente miden el esfuerzo en base al tamaño.

Page 29: Procesos de Ingenieria de Software

Conclusiones (1)• La estimación del proyecto de software no es

una ciencia exacta, pero una combinación de datos históricos y técnicas sistemáticas pueden mejorar la estimación con precisión.

• El planificador del proyecto de software de estimar tres factores antes de que algún proyecto comience:– Cuanto tiempo tomara– Cuanto esfuerzo requerirá– Cuanto personal estará involucrado

Page 30: Procesos de Ingenieria de Software

Bibliografía• Concepción Pedro. Planificación de Proyectos de

Software. (On Line). (Citado el 27 de Abri. 2008).http://www.getec.etsit.upm.es/articulos/gproyectos/art4.htm

• PRESSMAN, Roger S. Ingeniería del Software un Enfoque Practico (Sexta edición)

• Alba Janeth, Torres Edison. Estimación Para Proyectos de Software. (On Line). (Citado el 27 de abril 2008). http://www.mygnet.net/manuales/software/estimacion_para_proyectos_de_software.1510

Page 31: Procesos de Ingenieria de Software

Bibliografía (1)

• Barceló García Miquel. Estimación de Costes de un proyecto Informático.