4+cs++estimacion+costes+sw+cap+9-1
DESCRIPTION
sdvsTRANSCRIPT
-
01/03/2015
1
Ing. Mario R. Morales, MBA
Universidad Central del Ecuador
Contenido del curso
Qu es la estimacin?
Componentes y factores que afecta el costo
Productividad en el desarrollo de SW
El proceso de estimacin
Tcnicas de estimacin
Mtodo de estimacin COCOMO II
-
01/03/2015
2
Ing. Mario R. Morales, MBA
Qu es la estimacin?
Estimacin
Apreciar, poner precio, evaluar algo
Estimacin de proyectos de software
Actividad de la planificacin del proyecto de SW que intenta determinar cunto dinero, esfuerzo, recursos y tiempo tomar construir un sistema o producto software.
Qu es la estimacin? (..)
Aplicacin continua de tcnicas basadas en las medidas de los procesos de desarrollo del software y sus productos, para producir una informacin de gestin significativa y a tiempo.
Esta informacin se utilizar para mejorar esos procesos y los productos que se obtienen de ellos (SYMONS, C., 1998).
-
01/03/2015
3
Ing. Mario R. Morales, MBA
Preguntas fundamentales en la estimacin
Cunto esfuerzo se requiere para completar una actividad?
Cunto tiempo calendario se necesita para completar una actividad?
Cul es el costo total de una actividad?
La estimacin de proyecto y la creacin del calendario son actividades de gestin que se llevan a cabo en forma conjunta.
Ing. Mario R. Morales, MBA
Componentes de costo del software
Costos de hardware y software
Costos de viajes, capacitacin y entrenamiento
Costos de esfuerzo (el factor dominante en la mayora de proyectos) Salarios de los ingenieros involucrados en el proyecto
Costos de seguros, beneficios sociales, otros.
Los costos de esfuerzo deberan tomar en cuenta sobrecargas tales como: Costos de oficina, climatizacin, energa elctrica
Costo de redes y comunicaciones
Costos administrativos varios
-
01/03/2015
4
Ing. Mario R. Morales, MBA
Factores que afectan al precio del software
De forma clsica, el precio es simplemente el coste ms el beneficio.
Sin embargo, la relacin entre coste del proyecto y su precio no es tan simple.
Precios menores para obtener mayor cuota de mercadoOportunidad de
Mercado
Si no se puede asegurar la estimacin del coste, se puede incrementar el precio para cubrir contingencias.
Incertidumbre en la Estimacin
El precio puede ser menor si el cdigo fuente se lo entrega al cliente.
Trminos contractuales
Los cambios de requerimientos posteriores al contrato pueden tener un alto valor.
Volatilidad de Requerimientos
Si se tiene capacidad instalada fija, se puede tener precios ms bajos de los normales.Salud Financiera
Ing. Mario R. Morales, MBA
Productividad en el desarrollo de SW
Una medida del ratio en que los ingenieros involucrados en el desarrollo producen software y la documentacin asociada.
Esencialmente se desea medir la funcionalidad producida por unidad de tiempo.
Existen dos tipos de medidas utilizadas: Medidas relacionadas con el tamao. Basadas en las
salidas del proceso de software. Puede ser lneas de cdigo fuente, instrucciones de cdigo objeto o nmero de pginas de documentacin.
Medidas relacionadas con la funcin. Basadas en funcionalidad til entregada en un tiempo dado. Los puntos de funcin y los puntos objeto son los ms usuales.
-
01/03/2015
5
Ing. Mario R. Morales, MBA
Productividad en el desarrollo de SW
Una de las medidas usuales en productividad son los puntos de funcin implementados por persona/mes (PM).
sta no es una caracterstica simple, es una combinacin estimando varias caractersticas como: Entradas y salidas externas
Interacciones con el usuario
Interfaces externas
Archivos utilizados
Se considera una ponderacin o peso para cada caractersticas que vara desde 3 (entradas externas simples) hasta 15 (ficheros internos complejos), calculando as los puntos de funcin no ajustados:
UFC = (num. Elementos de un tipo) x (peso)
UFC = Ptos. Funcin No Ajustados
Ing. Mario R. Morales, MBA
Productividad en el desarrollo de SW
Las observaciones han demostrado la naturaleza subjetiva de la complejidad de las estimaciones y que sta depende del estimador.
Los puntos objeto son una alternativa. stos pueden ser utilizados en lenguajes 4GL y basados en scripts.
El nmero de puntos objeto en un programa es una estimacin de: Nmero de pantallas independientes.
El nmero de informes que se producen.
El nmero de mdulos en lenguajes imperativos (Java o C++) que deben ser desarrollados para completar el cdigo de programacin de la base de datos.
-
01/03/2015
6
Ing. Mario R. Morales, MBA
Productividad en el desarrollo de SW
Puntos Objeto:
Tipo de
Objeto
Peso de la Complejidad
Bsico Intermedio Avanzado
Pantallas 1 2 3
Informes 2 5 8
Mdulo 3GL 10
Ing. Mario R. Morales, MBA
Productividad en el desarrollo de SW
El clculo de puntos de funcin y puntos objeto puede utilizarse junto con modelos de estimacin de lneas de cdigo.
Donde AVC es el promedio de lneas de cdigo. En lenguajes de programacin de bases de datos, ste vara entre 2 y 40.
La experiencia indica que los equipos grandes tienen una mezcla de habilidades, por lo que tienen una productividad promedio.
En los equipos pequeos la productividad depende en gran medida de las aptitudes y habilidades individuales.
Tamao de Cdigo = AVC x Nm. Ptos Funcin
-
01/03/2015
7
Ing. Mario R. Morales, MBA
Factores que afectan la Productividad en el
desarrollo de SW
Estas medidas no tienen en cuenta caractersticas no funcionales como fiabilidad y mantenimiento.
No toman en cuenta la posibilidad de reutilizar el software producido, utilizar generadores de cdigo u otras herramientas de ingeniera.
Conocer el dominio es esencial para el desarrollo efectivo del SW; quienes lo tienen son ms productivos.
Experiencia en el dominio de aplicacin
El proceso de desarrollo utilizado puede tener un efecto importante en la productividad.Calidad del proceso
En un proyecto ms grande, se requiere ms tiempo de interaccin y se dispone de menos tiempo de desarrollo.Tamao del proyecto
La productividad puede mejorar con herramientas tipo CASE, sistemas de gestin de configuracin, etc. Apoyo tecnolgico
Un entorno adecuado contribuye a mejorar la productividad.Entorno de trabajo
Ing. Mario R. Morales, MBA
El proceso de estimacin
El proceso de estimacin comienza usando unas pocas variables claves para proveer las macrocaractersticas de un proyecto, y evoluciona incorporando informacin de ms bajo nivel para producir las micro-caractersticas del proyecto.
-
01/03/2015
8
Ing. Mario R. Morales, MBA
El proceso de estimacin
Tcnicas de Estimacin
-
01/03/2015
9
Ing. Mario R. Morales, MBA
Tcnicas de estimacin
La opinin de los expertos
Esta tcnica se basa en la experiencia profesional de los participantes en el proyecto de estimacin.
La analoga
Se basa en la comparacin directa de uno o ms proyectos pasados.
Para poder utilizar esta tcnica es necesario disponer de una base de datos histrica de proyectos finalizados con la que poder realizar la comparacin.
Los proyectos deben tener muchas similitudes en cuanto a su esquema.
Ing. Mario R. Morales, MBA
Tcnicas de estimacin
La descomposicin Consiste en la descomposicin de un producto en
componentes ms pequeos, o descomponer un proyecto en tareas de nivel inferior.
La estimacin se hace a partir del esfuerzo requerido para producir los componentes ms pequeos o para realizar las tareas de nivel inferior.
Las ecuaciones de estimacin: Son frmulas matemticas que establecen la relacin de
algunas medidas de entrada (que normalmente es la medida del tamao del producto) y determinan el esfuerzo que se requerir.
Ley de Parkinson: Establece que el trabajo se extiende para llenar el tiempo
disponible. El coste se determinar por los recursos disponibles ms que por los objetivos logrados.
-
01/03/2015
10
Mtodo de
estimacin
COCOMO
Modelo Constructivo de Costes (o COCOMO, por su acrnimo del ingls COnstructive COstMOdel)
20
Mtodo de estimacin COCOMO
Es un modelo emprico que se obtuvo recopilando datos de varios proyectos grandes, estos datos fueron analizados para descubrir las frmulas que mejor se ajustaban.
Estas frmulas vinculan el tamao del sistema y del producto, factores del proyecto y del equipo con el esfuerzo necesario para desarrollar el sistema.
-
01/03/2015
11
Ing. Mario R. Morales, MBA
Mtodo de estimacin COCOMO
La versin COCOMO II considera diferentesenfoques para el desarrollo de software, englobavarios niveles que producen estimaciones detalladasde forma incremental.
Adems soporta el modelo de desarrollo en espiral.
23
Ing. Mario R. Morales, MBA
Mtodo de estimacin COCOMO II
Este modelo permite realizar estimaciones en funcindel tamao del software, y de un conjunto de factoresde costo y de escala.
Los factores de costo describen aspectos relacionadoscon la naturaleza del producto, hardware utilizado,personal involucrado, y caractersticas propias delproyecto.
El conjunto de factores de escala explica las economasy deseconomas de escala producidas a medida que unproyecto de software incrementa su tamao.
-
01/03/2015
12
Ing. Mario R. Morales, MBA
Nivel de construccin de
Prototipos
Nmero de puntos de aplicacin
(puntos objeto)
Desarrollo de prototipos
Nivel de Diseo inicial
Nmero de puntos de funcin
Estimacin inicial del esfuerzo basado en requerimientos y opciones de diseo
Nivel de reutilizacin
Nmero de lneas de cdigo
utilizadas o generadas
Esfuerzo para integrar
componentes reutilizables o
cdigo generado automticamente
Nivel de Postarquitectura
Nmero de lneas de cdigo
fuente
Esfuerzo de desarrollo basado en el diseo del
sistema
25
Ing. Mario R. Morales, MBA
Nivel de construccin de prototipos
Fue introducido para dar soporte a la estimacin del esfuerzo requerido para el prototipado de proyectos y para proyectos en que el software se desarrolla utilizando componentes existentes.
En este nivel la reutilizacin es comn.
PM = (NAP x (1 -%Reutilizacin/100) ) / PROD
PM : Esfuerzo estimado en personas / mes
NAP: Total de puntos de aplicacin
PROD: Medida de Productividad
-
01/03/2015
13
Ing. Mario R. Morales, MBA
Nivel de diseo inicial
Este nivel se utiliza cuando hemos acordado los requerimientos de usuario y se han iniciado las primeras etapas del proceso de diseo.
La meta de este nivel es hacer una estimacin aproximada sin demasiado esfuerzo.
Se asume que el esfuerzo en integrar cdigo reutilizable es cero.
Esfuerzo = A x TamaoB x M
Ing. Mario R. Morales, MBA
Nivel de diseo inicial
El coeficiente A se define como 2,94 (segn datos histricos). Tamao (KSLOC) es el nmero de miles de lneas de cdigo fuente.
Existe una tabla que relaciona el nmero de puntos de funcin y lo convierte a KSLOC, dependiendo del lenguaje de programacin.
El exponente B es el esfuerzo creciente requerido al incrementarse el tamao del proyecto. Vara de 1,1 hasta 1,24. Depende de la madurez del equipo y de los
procesos de desarrollo de la organizacin.
El multiplicador M est basado en un conjunto simplificado de siete caractersticas de proyecto y proceso que influyen en la estimacin.
Esfuerzo = A x TamaoB x M
-
01/03/2015
14
Ing. Mario R. Morales, MBA
Nivel de diseo inicial
El multiplicador M est determinado por las siguientes caractersticas:
RCPX: fiabilidad y complejidad del producto
RUSE: reutilizacin requerida
PDIF: dificultad de la plataforma
PERS: capacidad del personal
PREX: experiencia del personal
SCED: cronograma
FCIL: facilidades de apoyo
Estos factores se pueden estimar directamente sobre una escala de seis puntos donde 1 corresponde a valores muy bajos de los multiplicadores y 6 corresponde a valores muy altos.
PM = 2.94 x TamaoB x M
Nivel de reutilizacin
Es muy comn reutilizar software, los sistemas grandes tienen un porcentaje significativo de cdigo reutilizado de otros proyectos anteriores
Este nivel de reutilizacin se emplea para estimar el esfuerzo requerido para integrar cdigo reutilizable y cdigo generado.
Tipo de cdigo reutilizable: Cdigo de caja negra.-
Puede ser reutilizado sin entender el cdigo ni tener que hacer cambios en l.
Cdigo de caja blanca.-Ha de ser adaptado para integrarlo con el cdigo nuevo.
-
01/03/2015
15
Ing. Mario R. Morales, MBA
Nivel de reutilizacin
El nivel de reutilizacin incluye una parte especfica para estimar los costes asociados a este cdigo generado automticamente.
El modelo de reutilizacin no es lineal por lo que se necesitar esfuerzo si la reutilizacin se considera, como adems de una valoracin para saber si es posible.
PMauto = (ASLOC x AT/100) / ATPROD
PMauto: Estimacin para el cdigo generado
ASLOC: Lneas de cdigo
AT: Pctje. de cdigo adaptado
ATPROD: Medida de Productividad
Ing. Mario R. Morales, MBA
Nivel de postarquitectura
Se utiliza una vez que conocemos el diseo arquitectnico del sistema, es decir, cuando conocemos la estructura de subsistemas.
Las estimaciones producidas en este nivel deben de ser ms precisas y utiliza un conjunto de atributos ms extenso para refinar el clculo de esfuerzo inicial.
-
01/03/2015
16
Ing. Mario R. Morales, MBA
Factores de escala
Factores de escala utilizados en el clculo del exponente
Factor de escala Explicacin
Precedentes Refleja la experiencia previa con este tipo de proyectos.
Flexibilidad deldesarrollo
Refleja el grado de flexibilidad en el proceso de desarrollo.
Resolucin de la arquitectura / riesgo
Refleja la amplitud del anlisis de riesgo que se lleva a cabo.
Cohesin del equipo Refleja cmo de bien se conocen entre s los miembros del equipo y cmo de bien trabajan juntos.
Madurez del proceso Refleja la madurez del proceso de organizacin
Factores de escala
-
01/03/2015
17
Ing. Mario R. Morales, MBA
Consideraciones importantes
El modelo COCOMO II es un modelo bien desarrollado que tiene en cuenta el proyecto, el producto, el hardware y los atributos del personal.
Uno de los principales factores que afectan la productividad incluyen la aptitud personal, la experiencia, el proceso de desarrollo, el tamao del proyecto, la herramienta de apoyo y el entorno de trabajo.
No hay una relacin sencilla entre el precio de un sistema y los costes de desarrollo.
El tiempo requerido para completar un proyecto no es proporcional al nmero de personas que trabajan en l.