Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estimacion de Costos
Estimacion de Costos
Estimacin de costes
4 4 4 4 4
Introduccin Productividad Tcnicas de estimacin Modelo algortmico de costes Duracin y personal del proyecto
Introduccin
4 Qu es la estimacin de costes?
Consiste en predecir los recursos (monetarios, temporales, humanos, materiales, ...) necesarios para llevar a cabo el proceso de desarrollo del software.
4 Cuestiones fundamentales:
m Cunto esfuerzo es necesario para completar una
actividad? m Cunto tiempo se necesita para completar una actividad? m Cul es el coste total de una actividad?
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 2
Componentes de coste
4 Costes hardware y software 4 Costes de viajes y aprendizaje 4 Costes de esfuerzo (factor dominante casi siempre)
m sueldo ingenieros del proyecto m gastos seguros y seguridad social
4 Otros costes:
m costes de alquiler, calefaccin y luz m costes de redes y comunicaciones m costes de recursos compartidos (p.e. librera,
Factores de coste
Factor Market opportunity Description A development organisation may quote a low price because it wishes to move into a new segment of the software market. Accepting a low profit on one project may give the opportunity of more profit later. The experience gained may allow new products to be developed. If an organisation is unsure of its cost estimate, it may increase its price by some contingency over and above its normal profit. A customer may be willing to allow the developer to retain ownership of the source code and reuse it in other projects. The price charged may then be less than if the software source code is handed over to the customer. If the requirements are likely to change, an organisation may lower its price to win a contract. After the contract is awarded, high prices may be charged for changes to the requirements. Developers in financial difficulty may lower their price to gain a contract. It is better to make a small profit or break even than to go out of business.
Tema 2. 4
Contractual terms
Requirements volatility
Financial health
Productividad (I)
4 La productividad de un programador es una medida
de la "velocidad" a la que los ingenieros implicados en el desarrollo del software producen dicho software y su documentacin asociada
4 Es necesario estimar la productividad:
m para realizar las estimaciones necesarias en el
proyecto
m para evaluar si un proceso o mejoras en la
Tema 2.
Productividad (II)
Productividad = atributos del software esfuerzo total de desarrollo
4 Tipos de medidas:
m Relacionadas con el tamao (lneas de cdigo) m Relacionadas con la funcionalidad (puntos de
Tema 2.
Lneas de cdigo
4 Qu es una lnea de cdigo?
m Es una medida propuesta inicialmente cuando los
programas se escriban en tarjetas, con una lnea por tarjeta m Actualmente los lenguajes permiten escribir varias sentencias en una lnea, o una misma sentencia en varias lneas
4 Se debe decidir qu programas deberan contarse
como parte del sistema 4 Asumen una relacin lineal entre el tamao y el volumen de documentacin
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 7
Comparaciones de productividad
4 Cuanto mayor sea la expresividad del lenguaje, ms
Comparar la productividad utilizando lenguajes diferentes de programacin puede llevar a conclusiones errneas respecto a la productividad de los programadores
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 8
Puntos de funcin
4 Basados en una combinacin de caractersticas del
programa
m entradas y salidas externas m interacciones de usuario m interfaces externas m ficheros usados por el sistema
4 Se asocia un peso con cada uno de ellos 4 Los puntos de funcin se calculan multiplicando
Tema 2.
Considerar factores externos, Fi como reutilizacin, concurrencia, SO, ... Puntos de funcin = (contador peso) C donde: C = (0.65 + 0.01 N) (Multiplicador de N=
complejidad) Fi (Grado de influencia)
Tema 2. 10
Contador
programacin
4 Pueden calcularse a partir de la especificacin 4 Usa informacin del dominio del problema 4 Resulta ms fcil a la hora de reusar
componentes
4 Se encamina a aproximaciones orientadas a
objetos
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 12
estimar el nmero de lneas de cdigo (LOC) dependiendo del nmero medio de LCDs por PF para un lenguaje dado (AVC)
m LOC = AVC * nmero de puntos de funcin m AVC es un factor dependiente del lenguaje que vara
desde 200-300 para lenguaje ensamblador hasta 240 para un lenguaje 4GL
4 Los puntos de funcin son muy subjetivos.
Puntos de objeto
4 Los puntos de objeto son una medida alternativa
relacionada con la funcionalidad cuando se utilizan lenguajes 4GLs o similares para el desarrollo 4 Los puntos de objeto NO son clases de objetos 4 El nmero de puntos de objeto en un programa es una estimacin ponderada de:
m El nmero de pantallas que son visualizadas por
separado m El nmero de informes que se producen por el sistema m El nmero de mdulos 3GL que deben desarrollarse para complementar el cdigo 4GL
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 14
especificacin que los puntos de funcin, ya que solamente consideran pantallas, informes y mdulos 3GL
4 Por lo tanto pueden estimarse en fases tempranas
del proceso de desarrollo. En estas etapas resulta muy difcil estimar el nmero de lneas de cdigo de un sistema
Tema 2.
15
Tema 2.
16
Calidad y productividad
4 Todas las mtricas basadas en volumen/unidad de
Tema 2.
18
Tema 2.
19
exponencial (los costes no crecen normalmente de forma lineal con el tamao del proyecto)
m Esfuerzo = A TamaoB M
Tema 2.
20
Exactitud de la estimacin
4 El tamao de un sistema software puede conocerse
son:
m Uso de COTs y componentes m Lenguaje de programacin utilizado m Distribucin del sistema
Estimar la incertidumbre
4x
2x
Feasibility Requirements
Design
Code
Delivery
0.5x
0.25x
Tema 2.
22
Juicio experto
4 Uno o ms expertos, tanto en desarrollo de software
como en el dominio de la aplicacin usan su experiencia para predecir los costes de software. Se realizan iteraciones hasta que se alcanza un consenso 4 Ventajas: Mtodo de estimacin relativamente barato. Puede ser bastante exacto si los expertos tienen experiencia directa en sistemas similares 4 Desventajas: Muy impreciso si no se dispone de los expertos adecuados!
Tema 2.
23
de proyectos previos
4 Inconvenientes: Imposible de realizar sin no se han
Tema 2.
24
Ley de Parkinson
4 Los costes del proyecto estn en funcin de los
Tema 2.
25
Pricing to win
4 El coste del proyecto est en funcin de lo que el
contrato
4 Inconvenientes: La probabilidad de que el cliente
obtenga el sistema que quiere es pequea. Los costes no reflejan realmente el trabajo requerido
Tema 2.
26
Comiemza a nivel de componentes y estima el esfuerzo requerido para cada componente. Dichos esfuerzos se aaden a la estimacin final
Tema 2.
27
Estimacin descendente
4 Se puede usar sin conocer la arquitectura ni los
Tema 2.
28
Estimacin ascendente
4 Se puede usar cuando la arquitectura del sistema
Tema 2.
29
Comparando mtodos
4 Cada mtodo tiene sus ventajas e inconvenientes 4 La estimacin debera basarse en varios mtodos 4 Si el resultado de aplicar varios de ellos difiere
aplicable
Tema 2.
30
Modelo COCOMO
4 COnstructive COst MOdel
4 Es un modelo emprico basado en la experiencia
COCOMO 81
Project complexity Simple Moderate Formula PM = 2.4 (KDSI)1.05 M PM = 3.0 (KDSI)1.12 M PM = 3.6 (KDSI)1.20 M Description Well-understood applications deve loped by small teams. More complex projects where team members may have lim ited experience of related systems. Complex projects where the software is part of a strongly couple d complex of hardware, software, regulations and operational procedures.
Embedded
Tema 2.
32
Niveles COCOMO 2
4 COCOMO 2 es un modelo de tres niveles que
permite estimaciones cada vez ms detalladas y que pueden realizarse a la vez que progresa el desarrollo del proyecto 4 Nivel inicial de prototipado
m Estimaciones realizadas con puntos de objeto y una
hacen uso intensivo de la reutilizacin 4 Basado en estimaciones estndar de la productividad del desarrollador en puntos-objeto/mes 4 Tiene en cuenta el uso de herramientas CASE 4 La frmula es:
m PM = ( NOP (1 - %reuse/100 ) ) / PROD m PM es el esfuerzo en personas-mes, NOP es el nmero
Tema 2.
34
Deve lopers expe rience and capabilit y ICASE maturity and capabilit y PROD (NOP/month)
Very low
Low
Nominal
High
Very high
Very low 4
Low 7
Nominal 13
High 25
Very high 50
Tema 2.
35
los requerimientos hayan sido establecidos 4 Basado en las frmulas estndar para mtodos algortmicos
m PM = A TamaoB M + PMm en donde m M = PERS RCPX RUSE PDIF PREX FCIL
KLOC, B vara desde 1.1 hasta 1.24 dependiendo de la novedad del proyecto, la flexibilidad del desarrollo, la gestin de riesgos, y la madurez del proceso
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 36
Multiplicadores (M)
4 Los multiplicadores reflejan la capacidad de los
automticamente
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 37
Nivel post-arquitectura
4 Usa la misma frmula que la estimacin inicial de diseo
m PM = A TamaoB M + PMm
cuenta
m La volatilidad de los requerimientos m Grado de posible reutilizacin m ESLOC = ASLOC (AA + SU +0.4DM + 0.3CM +0.3IM)/100
6 ESLOC es el nmero de lneas de cdigo nuevo. ASLOC es el nmero de lneas de cdigo reusable que debe modificarse, DM es el porcentaje de diseo modificado, CM es el porcentaje de cdigo que se modifica, IM es el porcentaje del esfuerzo original de
integracin del software reusado. 6 SU es un factor basado en la interpretacin del coste del software, AA es un factor que refleja los costes de evaluacin iniciales para decidir si el software puede reutilizarse.
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 38
alto - 1 m Arquitectura/resolucin riesgos - No anlisis de riesgos - Muy bajo - 5 m Cohesin del grupo - nuevo grupo - nominal - 3 m Madurez proceso - algn control - nominal - 3
4 El factor de escala es 1.17
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 39
(B)
Process maturity
Tema 2.
40
Multiplicadores (M)
4 Atributos del producto 4 Atributos del ordenador
Tema 2.
41
STOR
Memory constraints
Programmer capabilit y Analyst experience in project domain Language and tool experience
SITE
SCED
42
(M)
base para la planificacin del proyecto en tanto que permiten comparar estrategias alternativas 4 Ejemplo: desarrollo de un sistema espacial empotrado
m Debe ser fiable m Debe tener un peso mnimo (nmero de chips) m Multiplicadores de fiabilidad y restricciones del
ordenador > 1
4 Componentes de coste
m Hardware destino m Plataforma de desarrollo m Esfuerzo requerido
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 44
Opciones de gestin
EJEMPLO
A. Use existing hardware, development system and development team
Tema 2.
45
Tema 2.
46
Seleccin de opciones
4 Opcin D (usa ms personal con experiencia)
ahorro de costes, pero un riesgo muy bajo En conjunto, el modelo revela la importancia del personal con experiencia en el desarrollo del software
Tema 2.
47
la frmula de COCOMO 2
m TDEV = 3 (PM)(0.33+0.2*(B-1.01)) m PM es el esfuerzo.
La duracin es independiente del nmero de gente que trabaje en el proyecto (depende del esfuerzo total invertido en el proyecto)
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 48
Puntos clave
4 Es necesario estimar costes: (esfuerzo, tiempo de 4 4
4 4
desarrollo y nmero de recursos) La productividad es un factor a tener en cuenta a la hora de realizar estimaciones Existen varias tcnicas de estimacin de costes. La estimacin algortmica de costes es difcil al necesitar una estimacin previa de atributos del producto terminado Los modelos de estimacin algortmicos suponen una opcin de anlisis cuantitativo El tiempo necesario para completar un proyecto no es proporcional al nmero de personas que trabajan en el mismo
Francisco Mora (DCCIA, Universidad de Alicante, 2002) Tema 2. 49