SlideShare a Scribd company logo
1 of 95
Ph.D. Franklin Parrales 1
23/10/2021
Proceso de Software Carrera de Software
ESTIMACIÓN DE
PROYECTOS DE SOFTWARE
Unidad 4
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Proceso de Software
Ph.D. Franklin Parrales 2
23/10/2021
Proceso de Software Carrera de Software
Objetivo general de la Unidad 4
Analizar los aspectos principales para la estimación de
proyectos de software alineados a metodologías usadas en
la industria para desarrollar proyectos de software
escalables.
Ph.D. Franklin Parrales 3
23/10/2021
Proceso de Software Carrera de Software
Bibliografía consultada
• Pressman, Roger S.
"Ingeniería del
software." Un
enfoque (7maEd.
2011). Cap. 26
• Guerra, L., Bedini, A.
“Gestión de
Proyectos de
Software”. Editorial
UTFSM, ISBN 956-
7051-06-2, Chile,
abril 2005. Cap. 5
Ph.D. Franklin Parrales 4
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servido
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 5
23/10/2021
Proceso de Software Carrera de Software
Recursos del proyecto
project
people
skills
number
location
reusable
software
OTS
components
full-experience
components
new
components
part.-experience
components
environment
hardware
software
tools
network
resources
Ph.D. Franklin Parrales 6
23/10/2021
Proceso de Software Carrera de Software
Proceso de Estimación propuesto.
Medir lo que
quiere el
usuario
Estimar lo
que Costara
(esfuerzo)
Descomponer
por fases y
tareas
Historial
Empresa
Especificación de
requerimientos
Requisitos a
Cumplir
Medida de lo que
quiere el usuario
Estimación
del Esfuerzo
Tareas a
realizar
Ph.D. Franklin Parrales 7
23/10/2021
Proceso de Software Carrera de Software
Estimación del proyecto
• Debe entenderse el
alcance del proyecto
• Es necesaria la
descomposición de tareas
• Las métricas históricas son
muy útiles
• Deben utilizarse al menos
dos técnicas diferentes
• La incertidumbre es
inherente al proceso
Ph.D. Franklin Parrales 8
23/10/2021
Proceso de Software Carrera de Software
Método basado exclusivamente en los
recursos: Parkinson
• En la estimación consiste en ver de cuanto
personal y durante cuanto tiempo se dispone de
el, haciendo esa estimación.
• En la realización:
“El trabajo se expande hasta
consumir todos los recursos
disponibles”
(Ley de Parkinson)
Ph.D. Franklin Parrales 9
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servido
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 10
23/10/2021
Proceso de Software Carrera de Software
Descomposición funcional
descomposición
funcional
Declaración
de
Alcance
Realizar un
"análisis" gramatical
Ph.D. Franklin Parrales 11
23/10/2021
Proceso de Software Carrera de Software
Objetivo
• Descomponer el esfuerzo estimado en
tareas.
• Para esto identificaremos:
– Entregables del proyecto,
– Fases del proyecto y
– Tareas del proyecto.
Ph.D. Franklin Parrales 12
23/10/2021
Proceso de Software Carrera de Software
Descomposición en actividades del
proyecto (WBS)
• Work
Breakdown
Structure
(WBS)
– Método de
representar de
forma
jerárquica los
componentes
de un proceso
o producto.
Ph.D. Franklin Parrales 13
23/10/2021
Proceso de Software Carrera de Software
Descomposición en actividades del
proyecto (WBS)
Ph.D. Franklin Parrales 14
23/10/2021
Proceso de Software Carrera de Software
Descomposición en actividades del
proyecto (WBS)
1.1. Estudiar
Sistema Actual
1.2. ide. nuevas
carácteristica
1.0. Especificar
necesidades
2.1. Estudiar
Procesos
2.2. Estudiar
Datos
2.0. Analizar
Contabilidad
3.1. Diseño
B.D
3.2. Diseño
Programas
3.0. Diseñar
Aplicación
4.1. Creación
Esquema
4.2. Codificación
Programas
4.0. Codificación
5.1. Prueba
Unidades
5.2. Prueba del
Sistema
5.0. Pruebas
0.0. Proyecto
Contabilidad
Ph.D. Franklin Parrales 15
23/10/2021
Proceso de Software Carrera de Software
Basados en la descomposición del
proyecto
• En la estimación consiste en ver de cuanto personal y
durante cuanto tiempo se dispone de el, haciendo esa
estimación.
• El método es tener todo la detalle usando: Bottom-up
o TopDown
– En esta técnica por cada componentes hay que estimar un
costo de su desarrollo.
– La estimación total del proyecto es la suma de sus
parciales.
– Para poder aplicar esta técnica se debe aplicar un método
WBS
• Actividades directas al proyecto (40%).
• Actividades indirectas al proyecto (30%).
• Actividades de desperdicio del proyecto (30%)
Ph.D. Franklin Parrales 16
23/10/2021
Proceso de Software Carrera de Software
Basados en la descomposición del
proyecto
• La técnica es:
– Dividir el proyecto en fases
– Dividir fases en tareas
– Dividir tareas en subtareas
– Estimar cada subtarea
– Totalizar
– Añadir 5% de reuniones y 15% de gestión
– Añadir 20% (Hard) y 20% (Soft)
Ph.D. Franklin Parrales 17
23/10/2021
Proceso de Software Carrera de Software
Basado en los componentes del
producto o proceso de desarrollo:
• Bottom-up
– Se descompone el proyecto en las unidades
lo menores posibles.
– Se estima cada unidad y se calcula el coste
total.
• Top-Down
– Se ve todo el proyecto, se descompone en
grandes bloques o fases.
– Se estima el coste de cada componente.
Ph.D. Franklin Parrales 18
23/10/2021
Proceso de Software Carrera de Software
Método basado exclusivamente en el
mercado: precio para vender
(Pricing to win)
• Lo importante es conseguir el contrato.
• El precio se fija en función de lo que creemos
que esta dispuesto a pagar el cliente.
• Si se usa en conjunción con otros
métodos puede ser aceptable,
para ajustar la oferta.
• Peligro si es el único método
utilizado.
Ph.D. Franklin Parrales 19
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 20
23/10/2021
Proceso de Software Carrera de Software
Líneas de Código (LDC) y Puntos de
Función (PF)
• Los datos de LDC y PF se utilizan de dos formas
durante la estimación del proyecto de software:
1. Como una variable de estimación que se utiliza para
“dimensionar” cada elemento del software.
2. Como métricas de línea base recopiladas de proyectos
anteriores y utilizadas junto con variables de estimación para
desarrollar proyecciones de costo y de esfuerzo.
• Mientras las LDC se estiman directamente, los PF se
determinan indirectamente mediante la estimación de
numero de entradas, salidas, archivos de datos,
consultas e interfaces, así como también de catorce
valores de ajuste de complejidad.
• ¿Serán correctas las estimaciones?
– “No podemos asegurarlo”, deberán prevalecer la experiencia y
el sentido común.
Ph.D. Franklin Parrales 21
23/10/2021
Proceso de Software Carrera de Software
Métricas del software orientadas al tamaño
Las métricas del software orientadas al tamaño provienen de la
normalización de las medidas de calidad y/o productividad
considerando el «tamaño» del software que se haya producido.
• Productividad = KLDC/persona-mes
• Calidad = errores/KLDC
• Documentación = pags. Doc/ KLDC
• Costo = $/KLDC
Ph.D. Franklin Parrales 22
23/10/2021
Proceso de Software Carrera de Software
Estimación de Líneas de Código (LDC)
• Las líneas de código fuente (LDC o LOC) es
una métrica de software que se utiliza para
medir el tamaño de un programa informático
contando el número de líneas en el texto del
código fuente del programa.
• LOC se usa generalmente para predecir la
cantidad de esfuerzo que se requerirá para
desarrollar un programa, así como para
estimar la productividad de la programación o
la capacidad de mantenimiento una vez que
se produce el software.
Ph.D. Franklin Parrales 23
23/10/2021
Proceso de Software Carrera de Software
Ejemplo: Declaración de alcance
• El software CAD mecánico aceptará datos geométricos
bidimensionales y tridimensionales de un ingeniero.
• El ingeniero interactuará y controlará el sistema CAD a través
de una interfaz de usuario que exhibirá características de
buen diseño de interfaz hombre / máquina.
• Todos los datos geométricos y otra información de apoyo se
mantendrán en una base de datos CAD.
• Se desarrollarán módulos de análisis de diseño para producir
el resultado requerido, que se mostrará en una variedad de
dispositivos gráficos.
• El software estará diseñado para controlar e interactuar con
dispositivos periféricos que incluyen un mouse, digitalizador,
impresora láser.
Ph.D. Franklin Parrales 24
23/10/2021
Proceso de Software Carrera de Software
Ejemplo: estimación de LOC (LDC)
FUNCTIONS ESTIMATED LOC
- User Interface and Control Facilities (UICF) 2,300
- Two Dimensional Analysis (2DGA) 5.300
- 3D Geometric Analysis Function (3DGA) 6,800 ***
- Database Management (DBM) 3,350
- Computer Graphic Display facility (CGDF) 4,950
- Peripheral Control Function (PCF) 2,100
- Design Analysis Modules DAM) 8.400
_____________________________________________________________
TOTAL ESTIMATED LOC ( ∑ LOC ) 33.200
=========================================================
For Example:- Using the Expected Value Equation we can calculate the
Estimated Value for
(3DGA) Function as follows:-
Optimistic Estimation = 5,000 LOC
Most Likely Estimation = 6,700 LOC
Pessimistic Estimation = 9,000 LOC
Ph.D. Franklin Parrales 25
23/10/2021
Proceso de Software Carrera de Software
Los datos históricos obtenidos de las métricas indican los siguientes promedios
organizacionales:
La productividad media es 620 LOC / Pm (Lines of Code Per Month)
El costo laboral promedio es $8,000 Per month.
El costo de una línea de código se puede calcular de la siguiente manera
(COST / LOC)
COST / LOC = (8000 / 620) = $13
El costo total estimado del proyecto y el esfuerzo del proyecto se pueden
calcular de la siguiente manera:
Considerando que el Total de LOCs ( ∑ LOC) para el Sistema es 33,200
➢ Costo total estimado del proyecto = (33200 * 13 ) = $431,600
➢ Esfuerzo estimado del proyecto = (33200 / 620) = ~ 54 Personas-Mes
Ejemplo: estimación de LOC (LDC)
Ph.D. Franklin Parrales 26
23/10/2021
Proceso de Software Carrera de Software
Métricas del software orientadas a la función
• Las métricas del software orientadas a la función
utilizan una medida de la funcionalidad entregada por
la aplicación como un valor de normalización.
• Ya que la funcionalidad no se puede medir
directamente, se debe derivar (calcular) mediante
otras medidas directas.
• Punto de función:
– La metodología fue desarrollada por Allan J. Albrecht,
como una métrica del tamaño de un sistema de
información automatizado
– Se calcula (a partir de un prototipo) determinando 5
características de dominio de información
– Factor de Ponderación: simple, medio o complejo. Valor
de complejidad determinado de manera subjetiva por c/
organización.
Ph.D. Franklin Parrales 27
23/10/2021
Proceso de Software Carrera de Software
Punto de función
factor de complejidad
puntos función
# de entradas de usuario
# de salidas de usuario
# de peticiones (consultas)
# de archivos
# of interfaces externas
parámetro de medida
3
4
3
7
5
conteo
factor de ponderación
simple prom. complejo
4
5
4
10
7
6
7
6
15
10
=
=
=
=
=
conteo-total
X
X
X
X
X
Ph.D. Franklin Parrales 28
23/10/2021
Proceso de Software Carrera de Software
Puntos de Función: Valores de ajuste
de complejidad
Factor
de
Complejidad
Técnica
Ph.D. Franklin Parrales 29
23/10/2021
Proceso de Software Carrera de Software
Números de entrada de usuario: se cuenta cada entrada del usuario que
proporcione al software diferentes datos orientados a la aplicación. Las entradas
deben ser distinguidas de las peticiones que se contabilizan por separado.
Numero de salida del usuario: se encuentra cada salida que proporciona la
usuario información orientada a la aplicación. En este contexto las salidas se
refieren a informes, pantalla, mensajes de error. Los elementos de datos
individuales dentro de un informe se encuentran por separado.
Números de peticiones al usuario: una petición esta definida como una
entrada interactiva que resulta de la generación de algún tipo de respuesta
en forma de salida interactiva. Se cuenta cada petición por separado.
Numero de archivos: se cuenta cada archivo maestro lógico, o sea
una agrupación lógica de datos que puede ser una parte en una gran
base de datos o un archivo independiente.
Numero de interfaces externas: se cuentan todas las interfaces legibles
por la maquina por ejemplo: archivos de datos, en cinta o discos que son
utilizados para transmitir información a otro sistema.
Punto
de
función
1
2
3
4
5
Ph.D. Franklin Parrales 30
23/10/2021
Proceso de Software Carrera de Software
Ejemplo: estimación de FP(1)
• La descomposición para la estimación basada en FP se centra en los valores del
dominio de la información más que en las funciones del software.
• A los efectos de esta estimación, se supone que el factor de ponderación de
complejidad es el promedio.
Puntos de Función No ajustados (PFNA)
Ph.D. Franklin Parrales 31
23/10/2021
Proceso de Software Carrera de Software
Ejemplo: estimación de FP(2)
∑ Fi =52
Factor de Complejidad
Técnica
Ph.D. Franklin Parrales 32
23/10/2021
Proceso de Software Carrera de Software
El número estimado de FP se calcula:
FPestimated = count-total *[0.65 + 0.01*(Fi)]
FPestimated = 320 *[0.65 + 0.01*(52)] = 374.4 ~ 375
FPestimated = 375
Productividad media organizacional = 6.5 FP/pm
El costo laboral promedio es = $8000 por mes, aproximadamente $1230/FP
($8000 / 6.5).
Según la estimación de FP y los datos históricos de productividad, el costo
total estimado del proyecto es de $ 461,000 y el esfuerzo estimado es de 58
meses-persona.
Ejemplo: estimación de FP(3)
Ph.D. Franklin Parrales 33
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 34
23/10/2021
Proceso de Software Carrera de Software
Líneas de Código (LDC) v/s Puntos de
Función (PF)
• LDC y PF son técnicas de estimación distintas,
a pesar de que ambas tienen varias
características en común.
• Los métodos de estimación LOC (líneas de
código), FP (punto de función) consideran el
tamaño como la medida.
– En LOC, el costo se calcula en función del número de
líneas.
– En FP, el costo se calcula en función del número de
varias funciones del programa.
Ph.D. Franklin Parrales 35
23/10/2021
Proceso de Software Carrera de Software
Líneas de Código (LDC) v/s Puntos de
Función (PF)
• Las técnicas de estimación de LDC y PF difieren en el nivel
de detalle que se requiere para la descomposición y el
objetivo de la partición.
• Cuando se utiliza LDC como variable de estimación, la
descomposición es absolutamente esencial y a menudo se
toman para considerables niveles de detalle.
– Cuanto más grande sea el grado de particionamiento, más
probable será que pueda desarrollar estimaciones más exactas.
• Para estimaciones de PF, la descomposición funciona de
diferente manera.
– En lugar de centrarse en la función, se estiman cada una de las
características del dominio de información entradas, salidas,
archivos de datos, peticiones, e interfaces extremas y los
catorce valores de ajuste de la complejidad.
– Las estimaciones resultantes se utilizan para derivar un valor de
PF que se pueda unir a datos pasados y utilizar para generar
una estimación.
Ph.D. Franklin Parrales 36
23/10/2021
Proceso de Software Carrera de Software
Métricas del software orientadas al tamaño
• Las métricas usadas para estimar el tamaño del
producto de software deben ser razonablemente fáciles
de usar en etapas tempranas del proyecto y fácilmente
mensurables una vez que el trabajo ha finalizado.
• Las LDC miden en forma directa el tamaño del producto
de software. Se calculan simplemente contando las
instrucciones de código fuente de cada componente del
producto de software excluyendo, generalmente, los
comentarios y blancos.
• Los PF miden de forma indirecta el tamaño del producto
de software, realizando su calculo mediante el uso de
otras medidas directas.
Ph.D. Franklin Parrales 37
23/10/2021
Proceso de Software Carrera de Software
Ventajas y Desventajas de las LDC
• Ventajas
– Fácil de calcular
– Base de cálculo de
modelos de
estimación de costos
de software existentes
– Existencia de literatura
al respecto
– Fácil de automatizar
• Desventajas
– Dependencia del
lenguaje de
programación
– Difícil de estimar en
etapas tempranas del
proyecto
– Difícil de calcular en
lenguajes de
programación no
procedurales
Ph.D. Franklin Parrales 38
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 39
23/10/2021
Proceso de Software Carrera de Software
Siete maneras de estimar costos...
1. Modelado algorítmico de costos
– Usando algunas métricas de software (generalmente tamaño - LOC) e
información histórica de costos
– Puntos de Función, COSMIC FFP, Puntos de Objecto
– Fórmulas Matemáticas: Curva Raleigh-Putnam
– Modelos de Regresión: COCOMO
2. Juicio de un experto
3. Estimación por analogía
4. Ley de Parkinson
– El trabajo se amplía para llenar el tiempo disponible...
5. De acuerdo al precio para ganar el proyecto (Pricing to win)
6. Estimación Top-down
– Se estima en base a las funciones lógicas y no en base los componentes
requeridos para implementarlos.
7. Estimación Bottom-up
– Agregar el costo de los componentes hasta llegar al costo de todo el
producto.
Ph.D. Franklin Parrales 40
23/10/2021
Proceso de Software Carrera de Software
Aplicación a
desarrollar
Coste
...
f(x)
x
y
z
v
u
Modelado algorítmico de costos
• Se basan en la utilización de fórmulas que
aplicadas sobre modelos top-down o bottom-up
producen una estimación de coste del proyecto
Ph.D. Franklin Parrales 41
23/10/2021
Proceso de Software Carrera de Software
Modelos empíricos de estimación
Forma general:
esfuerzo = coeficiente de ajuste * tamaño
exponente
generalmente medido en
meses-persona de
esfuerzo requerido
ya sea una constante o un
número derivado en función
de la complejidad del
proyecto
normalmente LOC pero
también puede ser un
punto de función
calculado
empíricamente
• Los modelos de estimación para software de computadora utilizan fórmulas
derivadas empíricamente para predecir el esfuerzo en función de LOC o FP
• Los valores resultantes calculados para LOC o FP se ingresan en un modelo
de estimación
Ph.D. Franklin Parrales 42
23/10/2021
Proceso de Software Carrera de Software
Modelos empíricos de estimación
➢ Ejemplo de un modelo de estimación basado en
LOCs producidas (Bailey-Basili model)
E = 5.5 + 0.73  (KLOC)1.16
➢ Ejemplo de un modelo de estimación basado en
FP (Kemerer model)
E = -37 + 0.96 FP
➢ Los modelos de estimación deben calibrarse
para las necesidades locales (particulares)
Ph.D. Franklin Parrales 43
23/10/2021
Proceso de Software Carrera de Software
Putnam
• Relaciona cantidad de personas-mes y la
duración del proyecto.
• Y=2Kate-at²
Y = Personas-mes en cada punto
K = Esfuerzo total del proyecto,
(Área bajo la curva)
a = Cte. asociada a la aceleración
de entrada de personas en el
proyecto,
t = instante del tiempo.
0
2
4
6
8
10
12
14
16
0
2
4
6
8
1
0
1
2
1
4
1
6
1
8
2
0
2
2
2
4
Meses de Desarrollo
Esfuerzo
Asignado
Ph.D. Franklin Parrales 44
23/10/2021
Proceso de Software Carrera de Software
La ecuación del software [PUT92] (1)
➢ Es un modelo multivariado
➢ Se ha derivado de los datos de productividad
recopilados para más de 4000 proyectos
contemporáneos de software
E = [LOC  B0.333/P]3  (1/t4)
➢ Donde,
– E = esfuerzo en meses-persona o años-persona
– t = duración del proyecto en meses o años
– B = “special skills factor” (factor de habilidades
especiales)
– P = “productivity parameter” (parámetro de
productividad)
Ph.D. Franklin Parrales 45
23/10/2021
Proceso de Software Carrera de Software
La ecuación del software [PUT92] (2)
➢ Para programas pequeños (KLOC = 5 to 15)
– B = 0.16
➢ Para programas mayores de 70 KLOC
– B = 0.39
➢ P = 2000 para el desarrollo de software
embebido en tiempo real
➢ P = 10,000 para telecomunicaciones y
sistemas s / w
➢ P = 28,000 para aplicaciones de sistemas
empresariales
Ph.D. Franklin Parrales 46
23/10/2021
Proceso de Software Carrera de Software
La ecuación del software [PUT92] (3)
➢ Fórmulas simplificadas
– tmin = 8.14 (LOC/P)0.43 en meses para tmin > 6
meses
• tmin = tiempo de Desarrollo mínimo
– E = 180 Bt3 en personas-meses para E  20
personas-meses
• Aquí t es representado en años
Ph.D. Franklin Parrales 47
23/10/2021
Proceso de Software Carrera de Software
➢ Suele ser más rentable adquirir software que desarrollar
➢ Los gerentes tienen muchas opciones de adquisición
– El software se puede comprar (o licenciar) listo para usar
– Los componentes de software de "experiencia completa" o "experiencia
parcial" se pueden adquirir e integrar para satisfacer necesidades
específicas
– El software puede ser personalizado por un contratista externo para
cumplir con las especificaciones del comprador.
➢ La decisión de comprar/desarrollar SW se puede hacer en base a
las siguientes condiciones
– ¿El producto de software estará disponible antes que el software
desarrollado internamente?
– ¿El costo de adquisición más el costo de personalización será menor
que el costo de desarrollar el software internamente?
– ¿El costo del soporte externo (por ejemplo, un contrato de
mantenimiento) será menor que el costo del soporte interno?
Decisión de comprar/desarrollar SW
Ph.D. Franklin Parrales 48
23/10/2021
Proceso de Software Carrera de Software
Decisión de comprar/desarrollar SW
Crear
un
árbol
de
decisiones
Ph.D. Franklin Parrales 49
23/10/2021
Proceso de Software Carrera de Software
Decisión de comprar/desarrollar SW
(path probability) x (estimated path cost)
i i
For example, the expected cost to build is:
expected cost = 0.30 ($380K) + 0.70 ($450K)
similarly,
expected cost = $382K
expected cost = $267K
expected cost = $410K
build
reuse
buy
contr
expected cost =
= $429 K
Cálculo
del
costo
esperado
Ph.D. Franklin Parrales 50
23/10/2021
Proceso de Software Carrera de Software
➢ Sin embargo, es importante señalar que muchos
criterios, no solo el costo, deben considerarse
durante el proceso de toma de decisiones.
➢ La disponibilidad, la experiencia del
desarrollador / vendedor / contratista, el
cumplimiento de los requisitos, la “política” local
y la probabilidad de cambio son solo algunos de
los criterios que pueden afectar la decisión final
de construir, reutilizar, comprar o contratar.
Decisión de comprar/desarrollar SW
Ph.D. Franklin Parrales 51
23/10/2021
Proceso de Software Carrera de Software
Subcontratación
➢ Las actividades de ingeniería de SW se
contratan a un tercero que realiza el trabajo a un
costo menor y, con suerte, de mayor calidad.
➢ El trabajo de SW realizado dentro de una
empresa se reduce a una actividad de gestión
de contratos
➢ La decisión de subcontratar puede ser
estratégica o táctica.
➢ Tiene méritos y deméritos
Ph.D. Franklin Parrales 52
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 53
23/10/2021
Proceso de Software Carrera de Software
Modelo COCOMO Intermedio
• Añade al modelo básico 15 factores de ajuste, también
llamados multiplicadores del esfuerzo o guías de coste.
– Tamaño B.D., experiencia analistas, herramientas, … (15 en
total, varían de 0.75-1.66)
• Se logra una mayor precisión en la estimación gracias a los
nuevos factores.
• La fórmula es la misma que la del modelo básico pero con el
añadido del factor (multiplicando).
Effort = a * (SIZE)b *M
Multiplicador FAE
Submodelos intermedios a b c d
Orgánico 3,2 1,05 2,5 0,38
Semi-acoplado 3,0 1,12 2,5 0,35
Empotrado 2,8 1,20 2,5 0,32
FAE es un factor de ajuste de esfuerzo que normalmente fluctúa entre 0,9 y 1,4.
Miles de Líneas de código Factores de escala
Ph.D. Franklin Parrales 54
23/10/2021
Proceso de Software Carrera de Software
Cálculo de FAE
Es a través de los Puntos de Función (PF).
Hoy en día es la forma más utilizada y para ello se requiere utilizar
los factores de conversión correspondiente al lenguaje utilizado.
Para ello se debe utilizar la siguiente tabla (Factores de costo), que
contiene 15 atributos que deben ser evaluados para el proyecto.
Estos atributos se utilizan para ajustar el esfuerzo del proyecto al
entorno real, incrementando la precisión de la estimación
Ph.D. Franklin Parrales 55
23/10/2021
Proceso de Software Carrera de Software
Atributos del modelo Intermedio
• Software:
• RELY: Indica las
consecuencias para el usuario
si falla el producto.
• DATA: Relación Tamaño de la
BD / Líneas de código.
• CPLX: Complejidad del
producto.
• Hardware:
• TIME: Limitaciones en el
porcentaje del uso de la CPU.
• STOR: Limitaciones en el
porcentaje del uso de la
memoria.
• VIRT: Volatilidad de la máquina
virtual.
• TURN: Tiempo de respuesta.
• Personal:
• ACAP: calificación de los
analistas.
• AEXP: experiencia del
personal.
• PCAP: calificación de los
programadores.
• VEXP: experiencia del personal
en la máquina virtual.
• LEXP: experiencia en el
lenguaje.
• Proyecto:
• MODP: uso de prácticas
modernas de programación.
• TOOL: uso de herramientas de
desarrollo de software.
• SCED: limitaciones en el
cumplimiento de la
planificación.
Ph.D. Franklin Parrales 56
23/10/2021
Proceso de Software Carrera de Software
Cálculo de FAE
Factores de Costo
Ph.D. Franklin Parrales 57
23/10/2021
Proceso de Software Carrera de Software
SIZE con Puntos de Función (1)
Después de valorizar los Factores de Costo del Proyecto, se procede a
valorizar los Factores Funcionales de Peso, con la siguiente tabla:
Para obtener los Factores Funcionales de Peso, se debe seleccionar la
complejidad del Proyecto, y multiplicarlo, por cada valor obtenido para los
factores funcionales. Para ello se requiere previamente un prototipo, del
cual se obtendrán N° de Entradas de usuario, N° salidas usuario, etc.
Luego de esto, se debe sumar el resultado total de la multiplicación para
los 5 puntos evaluados (factores funcionales de peso).
Ph.D. Franklin Parrales 58
23/10/2021
Proceso de Software Carrera de Software
SIZE con Puntos de Función (2)
Del resultado obtenido, se puede obtener los
puntos de función aplicando la siguiente
fórmula:
PF = [Σfactores funcionales de peso] * [0.65 +
(0.01 * Σfactores costo)]
El valor resultante de la conversión PF, debe
ser multiplicado por la tabla de conversión a
líneas de código (LOC), la cual está
determinada por el lenguaje de desarrollo a
utilizar en el proyecto.
LOC = PF * Correlación
La tabla de conversión es la siguiente ->
Tabla
de
Conversión
de:
Correlación
Código
Fuente
a
PF
Ph.D. Franklin Parrales 59
23/10/2021
Proceso de Software Carrera de Software
Ejemplo “SIZE con Puntos de Función”
Supongamos que se quiere desarrollar un proyecto transaccional
que operará en plataforma web y su tamaño es mediano.
¿Cuál será el esfuerzo requerido, tiempo de desarrollo, personal utilizado
en el proyecto ?
1
Ph.D. Franklin Parrales 60
23/10/2021
Proceso de Software Carrera de Software
Utilizando un prototipo se llena la tabla asociada a los factores de Peso.
PF = [Σfactores funcionales de peso] * [0.65 + (0.01 * Σfactores de costo)]
Aplicando la formula se tiene:
PF = [513] * [0,65 + (0,01 * 14,91)]
PF= 409,9383
Continuación Ejemplo:
Ph.D. Franklin Parrales 61
23/10/2021
Proceso de Software Carrera de Software
Continuación Ejemplo
Luego se procede a aplicar la formula de Conversión a LOC:
Como ya se dijo anteriormente, el lenguaje a utilizar es JAVA.
Entonces se tiene que
LOC = PF * Correlación
LOC = 409,9383 * 46
LOC =18857,1618 (Líneas de Código)
KLOC = 18857,1618 / 1000
KLOC = 19 (Kilo o miles de línea de código)
Ph.D. Franklin Parrales 62
23/10/2021
Proceso de Software Carrera de Software
Continuación Ejemplo:
Calculo de la variable FAE (multiplicador):
FAE = 0,88 * 1,08 * 1,15 * 1,3 * 1,00 * 1,15 * 1,00 * 1,29 * 0,86 *
1,21 * 1,07 * 0,91 * 0,91 * 1,1 = 2.137854971
Ph.D. Franklin Parrales 63
23/10/2021
Proceso de Software Carrera de Software
E = a(KLOC)b * FAE
D = c(E)d
P = E/D
C = P *Salario
Como ya se había dicho, el proyecto es de mediano tamaño.
Entonces se tiene:
Esfuerzo (E) = 3,0*( 19)1,12 * 2,137 = 173,48 meses/hombre
Duración (D)= 2,5*(173,48)0,35 = 6,07 meses
Personal (P)= 173,48 / 6.07 = 28,54 personas
Continuación Ejemplo:
Submodelos intermedios a b c d
Orgánico 3,2 1,05 2,5 0,38
Semi-acoplado 3,0 1,12 2,5 0,35
Empotrado 2,8 1,20 2,5 0,32
Ph.D. Franklin Parrales 64
23/10/2021
Proceso de Software Carrera de Software
Ejemplo “MODELO INTERMEDIO”
• Debemos desarrollar un
software de no muy elevada
dificultad, con las siguientes
restricciones:
• 3 meses para el desarrollo
del proyecto software.
• Debe estar implementado
en el lenguaje Visual Basic
• PF=261,36 (dato conocido)
• Calculo del esfuerzo:
Necesitamos hallar la
variable SIZE.
LENGUAJE LDC/PF
Ensamblador 320
C 150
COBOL 105
Pascal 91
Prolog/LISP 64
C++ 64
Visual Basic 32
SQL 12
2
Ph.D. Franklin Parrales 65
23/10/2021
Proceso de Software Carrera de Software
• SIZE = (PF * Líneas de código por cada PF)/1000 = (261,36*32)/1000
= 8,363
• Usaremos el tipo Orgánico ya que núestro proyecto no supera
las 50 KLOC, y es el mas apropiado en este caso.
• Coeficientes a usar:
Ejemplo estimación
Submodelos intermedios a b c d
Orgánico 3,2 1,05 2,5 0,38
Semi-acoplado 3,0 1,12 2,5 0,35
Empotrado 2,8 1,20 2,5 0,32
Ph.D. Franklin Parrales 66
23/10/2021
Proceso de Software Carrera de Software
• Calculo de la variable FAE (multiplicador):
CONDUCTORES DE COSTE VALORACIÓN
Muy
bajo
Bajo Nominal Alto Muy
alto
Extr.
alto
Fiabilidad requerida del software 0,75 0,88 1.00 1,15 1,40 -
Tamaño de la base de datos - 0,94 1.00 1,08 1,16 -
Complejidad del producto 0,70 0,85 1.00 1,15 1,30 1,65
Restricciones del tiempo de ejecución - - 1.00 1,11 1,30 1,66
Restricciones del almacenamiento principal - - 1.00 1,06 1,21 1,56
Volatilidad de la máquina virtual - 0,87 1.00 1,15 1,30 -
Tiempo de respuesta del ordenador - 0,87 1.00 1,07 1,15 -
Capacidad del analista 1,46 1,19 1.00 0,86 0,71 -
Experiencia en la aplicación 1,29 1,13 1.00 0,91 0,82 -
Capacidad de los programadores 1,42 1,17 1.00 0,86 0,70 -
Experiencia en S.O. utilizado 1,21 1,10 1.00 0,90 - -
Experiencia en el lenguaje de programación 1,14 1,07 1.00 0,95 - -
Prácticas de programación modernas 1,24 1,10 1.00 0,91 0,82 -
Utilización de herramientas software 1,24 1,10 1.00 0,91 0,83 -
Limitaciones de planificación del proyecto 1,23 1,08 1.00 1,04 1,10 -
Ejemplo estimación
Ph.D. Franklin Parrales 67
23/10/2021
Proceso de Software Carrera de Software
– Calculo de la variable FAE (multiplicador):
• FAE = 1,15 * 1,00 * 0,85 * 1,11 * 1,00 * 1,00 * 1,07 * 0,86 * 0,82 * 0,70
* 1,00 * 0,95 * 1,00 * 0,91 * 1,08 = 0,53508480
– Cálculo del esfuerzo del desarrollo:
• E = a (SIZE)b * FAE = 3,2 * (8.363)1,05 * 0,53508480 = 15,91 personas
/mes
– Cálculo tiempo de desarrollo:
• T = c Esfuerzod = 2,5 * (15,91)0,38 = 7,15 meses
– Productividad:
• PR = SIZE/Esfuerzo = 8363/15,91 = 525 ,64 LDC/personas mes
– Personal promedio:
• P = E/T = 15,91/7,15 = 2,22 personas
Ejemplo estimación
Según los resultados necesitaremos un equipo de 3 personas trabajando alrededor de 7 meses, pero
como una restricción era 3 meses incrementamos a 6 el numero de personas. 1 Jefe de proyecto, 2
Analistas, 2 programadores y 1 Responsable de calidad.
Ph.D. Franklin Parrales 68
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 69
23/10/2021
Proceso de Software Carrera de Software
Modelo Algorítmico de Costos de Software
(MACOS)
• Usa de base la métrica Puntos de Función y un Factor de Ajuste (FA)
asociado a características del producto y del ambiente de desarrollo,
para calcular el Esfuerzo Ajustado Estimado, EAE (medido en Horas -
Hombre) y el Tiempo de Desarrollo Estimado, TDESE (medido en
Horas).
• El Factor de Ajuste del modelo MACOS considera la incidencia de 32
factores asociados a aspectos técnicos del diseño y construcción del
producto de software, así como al entorno en el que se realiza el
proyecto.
• Estos factores se clasifican en: difíciles de cuantificar y cuantificables.
– Para cuantificar estos factores se asigna a cada uno
un valor denominado grado de influencia (GI), que
varía entre -5 y +5, el cual indica la incidencia del
factor en los costos del proyecto, donde el signo
más significa aumento del esfuerzo y el signo menos
significa disminución del esfuerzo
Ph.D. Franklin Parrales 70
23/10/2021
Proceso de Software Carrera de Software
Factores difíciles de cuantificar
• INTUSU : Calidad de las interfaces con el usuario.
• ESPREQ : Calidad de la especificación de requerimientos.
• RECONT : Existencia de un plan de recursos y control del
proyecto.
• PLAPRO : Existencia de un plan detallado del proyecto.
• TESTVV : Existencia de un plan detallado de pruebas, de
verificación y validación.
• AMBTRA : Calidad del ambiente de trabajo.
• SEGPRI : Restricciones de seguridad y privacidad existentes.
• DOCEXI : Calidad de la documentación.
• CONPER : Calidad de la administración del proyecto.
Ph.D. Franklin Parrales 71
23/10/2021
Proceso de Software Carrera de Software
Factores cuantificables, perceptibles
para el usuario del producto
• VOLTRA : Volumen de transacciones a realizar
• TAMADB : Tamaño de la base de datos.
• DATARC : Características de captura, validación,
actualización y almacenamiento de datos.
• FACOPE : Facilidad de operación
• FAFPLCA : Facilidad y flexibilidad de cambio.
• RENOPE : Rendimiento requerido para la operación del
producto de software.
• CONPRO : Confiabilidad del producto de software entregado.
• RESTPO : Restricciones en el tiempo de desarrollo
• Del ambiente usuario
– MODOP : Modo de desarrollo y operación del producto de software.
– EXUSUA : Experiencia del usuario en la aplicación y en el
procesamiento de datos.
Ph.D. Franklin Parrales 72
23/10/2021
Proceso de Software Carrera de Software
Factores cuantificables, perceptibles
para el desarrollador
• Del personal de desarrollo
– CAPAN : Capacidad de los analistas.
– EXPANA : Experiencia de los
analistas.
– CAPRO : Capacidad de los
programadores.
– EXPMV : Experiencia del grupo en la
plataforma de desarrollo (configuración
de hardware y software) necesaria
para el desarrollo del producto de
software.
– EXPLEN : Experiencia en el lenguaje
– COMPE : Continuidad del personal
• Del computador
– RAPCPU : Restricciones del
almacenamiento principal y de uso de
CPU durante el desarrollo.
– TRESPOC : Tiempo de respuesta
promedio del computador.
– VOLAMV : Volatilidad de la plataforma
de desarrollo.
• Del proyecto
– HERRAD : Herramientas de ayuda
utilizadas.
– PMOPRO : Prácticas modernas de
programación utilizadas.
• Del producto
– COMPLP : Complejidad del producto
de software.
– FAICMA : El diseño del producto de
software contempla su facilidad de
instalación, conversión y
mantenimiento.
Ph.D. Franklin Parrales 73
23/10/2021
Proceso de Software Carrera de Software
El modelo MACOS sigue los siguientes pasos:
• Paso 1: Calcular los Puntos de Función No Ajustados (PFNA), esto es,
contar por categoría las entradas, salidas, consultas, archivos internos
e interfaces con otros productos de software. Asignar a cada una de
ellas, una de las siguientes ponderaciones: Simple, Promedio o
Compleja.
PFi = cuentai * ponderación; i=1,…, 5
PFNA = suma( PFi )
• Paso 2: Calcular el FA de la siguiente manera:
– A cada uno de los 32 factores que componen el Factor de Ajuste (FA), asignar uno de
los grados de influencia (GI), según su incidencia en los costos del proyecto.
SGI = suma(GIi), i=1,...,32
FA = 1 + (SGI/400)
– Calcular el Esfuerzo Ajustado Estimado:
EAE = 1,04 * (PFNA)1,22 * FA [horas-hombre]
– Calcular el Tiempo de Desarrollo estimado: Contar el personal de tiempo completo
disponible para el desarrollo del proyecto (NPTC) según los antecedentes del
proyecto y la productividad del personal que se asignará.
TDESE = EAE/NPTC [horas]
Ph.D. Franklin Parrales 74
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 75
23/10/2021
Proceso de Software Carrera de Software
Modelo de Estimación para Proyectos Cliente/Servidor
• El modelo que se plantea para calcular la estimación de esfuerzo de
los proyectos Cliente/Servidor, se basa en PF. Para aplicarlo a
proyectos Cliente/Servidor se debe tener en cuenta los siguientes
puntos al calcular los puntos de función:
– En la componente de los archivos de interface externos, la ponderación
se verá afectada por la complejidad de la creación de la base de datos
del sistema. Por esto se deberá dar un peso de promedio o complejo a
este componente, dependiendo del tamaño de la base de datos.
– En la componente de los archivos internos lógicos, se tomaran de todas
las bases de datos (que intercalan con el sistema), como unidades
separadas, es decir, cada tabla de la base de datos (o archivo de la
base de datos) se tomará como un archivo interno lógico.
– En cuanto al calculo del factor de complejidad para los puntos de
función, se tendrá mucho cuidado a todas aquellas características
relacionadas a la comunicación entre las bases de datos, ya que serán
las que influirán en un alto nivel durante la ejecución del sistema.
• El modelo considera los puntos de función (medidos) del sistema y
el número de archivos (o el número de tablas que contiene la base
de datos) (medidos) del sistema, como se verá más adelante. Con
estas dos variables independientes se podrá estimar el esfuerzo del
desarrollo del sistema
Ph.D. Franklin Parrales 76
23/10/2021
Proceso de Software Carrera de Software
Pasos para aplicar el modelo a un
proyecto Cliente/Servidor
Se presenta a continuación los pasos a seguir para
estimar el esfuerzo de desarrollo de un proyecto
Cliente/Servidor:
• Paso 1: Calcular los Puntos de Función del proyecto
– Definir en forma global para el proyecto: Entradas,
Salidas, Consultas, Archivos lógicos internos y Archivos
de interfase externos. Asociar a cada ítems de los grupos
mencionados la identificación de simple, promedio o
complejo según corresponda a las condiciones de
desarrollo, observadas en ellos. Por ejemplo:
Ph.D. Franklin Parrales 77
23/10/2021
Proceso de Software Carrera de Software
Pasos para aplicar el modelo a un
proyecto Cliente/Servidor
• Paso 2: Obtener los Puntos de Función No ajustados (PFNA),
el que estará dado por:
𝑃𝐹𝑁𝐴 = σ𝑖=1
5
𝑃𝐹𝑖 ,
donde 𝑃𝐹𝑖 cantidad de veces en que se obtendra el item x factori
(o pesoi) donde i=1 al 5
– Por ejemplo: Suponiendo que se tiene los mismos datos que el
caso anterior
Ph.D. Franklin Parrales 78
23/10/2021
Proceso de Software Carrera de Software
Pasos para aplicar el modelo a un
proyecto Cliente/Servidor
• Paso 3: Obtener el Factor de Complejidad Técnica, el que
estará dado por:
𝐹𝐶 = 0.65 + 0.01 σ𝑖=1
14
𝑐𝑖
• Paso 4: Finalmente para obtener el valor de Puntos de
Función (PF), estará dado por:
𝑃𝐹 = 𝑃𝐹𝑁𝐴 + 𝐹𝐶𝑇
– Por lo tanto se obtienen los Puntos de Función en [PF] del
proyecto.
• Paso 5: Aplicación del Modelo para Estimación de Proyectos
C/S
Esfuerzo Estimado=11.453+ 0.031⋅ X + 0.112⋅Y [PM] donde:
Ph.D. Franklin Parrales 79
23/10/2021
Proceso de Software Carrera de Software
Pasos para aplicar el modelo a un
proyecto Cliente/Servidor
• Paso 6: Presentación de resultados
– En estos momentos hemos encontrado el Esfuerzo
Estimado del proyecto en estudio en unidades [PM]
(Persona–Mes, es decir, el tiempo en meses que se tarda
una persona en realizar el proyecto entero solo),
dependiendo del número de personas a trabajar en el
proyecto se va disminuyendo el tiempo de desarrollo del
proyecto.
Ph.D. Franklin Parrales 80
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 81
23/10/2021
Proceso de Software Carrera de Software
Modelo de estimación para
aplicaciones Intranet/Internet
• En este modelo de estimación, se modifica la técnica de PF para
destacar la importancia del concepto de reutilización en el
desarrollo de aplicaciones Intranet/Internet.
• Para analizar el impacto de la reusabilidad en los proyectos se
definen los siguientes factores que influyen directamente en la
reutilización. Estos factores se han clasificado en tres categorías y
se muestran en la siguiente Tabla:
Factores
de
MACOS
Ph.D. Franklin Parrales 82
23/10/2021
Proceso de Software Carrera de Software
Modelo de estimación para
aplicaciones Intranet/Internet
• Para los factores anteriores es necesario considerar
las siguientes ponderaciones, estas se utilizan para
llevar a cabo el ajuste de las estimaciones.
Factor
de
Reutilización
Ph.D. Franklin Parrales 83
23/10/2021
Proceso de Software Carrera de Software
Fases de la Metodología
• Fase 1: Analizar los requerimientos funcionales del sistema a
desarrollar.
• Fase 2: Aplicar la técnica actual de punto de función, para los
requerimientos establecidos en el punto anterior.
• Fase 3: Identificar los factores candidatos para definir los
componentes reusables a utilizar en la estimación mostrada
en la tabla de Ponderación para los factores. A cada uno de
estos factores se les debe estimar el porcentaje de
reutilización a partir de las ocurrencias, como muestra en la
siguiente Tabla
Ph.D. Franklin Parrales 84
23/10/2021
Proceso de Software Carrera de Software
Fases de la Metodología
• Fase 4: Finalmente predecir el impacto de los componentes
reusables en el nuevo desarrollo. A través de la siguiente Tabla de
ponderaciones presentada, encontrar el factor de reutilización
Cálculo
del
factor
de
reutilización
• Fase 5: Analizar el resultado obtenido en la fase 2, para combinarlos con
los del paso anterior y obtener la nueva estimación.
Pf reuso = Pf teorico* (1- factor de reuso)
• Con lo que se obtiene el esfuerzo en PF corregido por la reutilización
Ph.D. Franklin Parrales 85
23/10/2021
Proceso de Software Carrera de Software
Contenido
• Recursos.
• Técnicas de Descomposición.
• Estimación de Líneas de Código (LDC) y Puntos de
Función (PF).
• Líneas de Código (LDC) v/s Puntos de Función (PF).
• Modelos para las Estimaciones
• Modelo COCOMO Intermedio.
• Modelo Algorítmico de Costos de Software.
• Modelo de Estimación para Proyectos Cliente/Servidor
• Modelo de estimación para aplicaciones
Intranet/Internet
• Otros modelos
Ph.D. Franklin Parrales 86
23/10/2021
Proceso de Software Carrera de Software
Estimación con casos de uso
• A diferencia de una LOC o PF, el “caso de uso” de una persona
puede requerir meses de esfuerzo, mientras que el de otra puede
implementarse en un día o dos.
• Smith [Smi99] sugiere que los casos de uso pueden usarse para
estimación, pero sólo si se consideran dentro del contexto de la
“jerarquía estructural” donde se usan para describir
• Smith [Smi99] argumenta que cualquier nivel de esta jerarquía
estructural puede describirse mediante no más de 10 casos de uso.
Cada uno de éstos abarcaría no más de 30 escenarios distintos
• En consecuencia, antes de poder usar los casos de uso para
estimación, se establece el nivel dentro de la jerarquía estructural,
se determina la longitud promedio (en páginas) de cada caso de
uso, se define el tipo de software (por ejemplo, tiempo real,
empresarial, ingeniería/científico, webapp, incrustado) y se
considera una arquitectura burda para el sistema.
Ph.D. Franklin Parrales 87
23/10/2021
Proceso de Software Carrera de Software
Estimación con casos de uso
• El software CAD (usado en la sección inicial de esta unidad) se
compone de tres grupos de subsistemas:
– subsistema de interfaz de usuario (incluye UICF),
– grupo de subsistemas de ingeniería (incluye los subsistemas 2DGA,
3DGA y DAM) y
– grupo de subsistemas de infraestructura (incluye los subsistemas
CGDF y PCF).
• Seis casos de uso describen el subsistema de interfaz de usuario.
Cada uno se describe mediante no más de 10 escenarios y tiene
una longitud promedio de seis páginas.
• El grupo de subsistemas de ingeniería se describe mediante 10
casos de uso (se considera que están en un nivel superior de la
jerarquía estructural). Cada uno de estos casos de uso tiene no más
de 20 escenarios asociados con él y una longitud promedio de ocho
páginas.
• Finalmente, el grupo de subsistemas de infraestructura se describe
mediante cinco casos de uso con un promedio de sólo seis
escenarios y una longitud promedio de cinco páginas.
Ph.D. Franklin Parrales 88
23/10/2021
Proceso de Software Carrera de Software
Estimación con casos de uso
• Una vez establecidas dichas características pueden usarse datos
empíricos para establecer el número estimado de LOC o PF por
caso de uso (por cada nivel de la jerarquía).
• Entonces se usan datos históricos a fin de calcular el esfuerzo
requerido para desarrollar el sistema. Para ilustrar cómo puede
realizarse este cálculo, considere la siguiente relación:
LOC estimadas= N x LOCprom + [(Sa/Sh – 1) (Pa/Ph – 1)] x LOCajuste
• Donde:
✓ N: número real de casos de uso
✓ LOCprom: LOC promedio históricas
por caso de uso para este tipo de
subsistema
✓ LOCajuste: representa un ajuste
con base en n por ciento de
✓ LOCprom: donde n se define
localmente y representa la
diferencia entre este proyecto y
los proyectos “promedio”
✓ Sa: escenarios reales por caso
de uso
✓ Sh: escenarios promedio por
caso de uso para este tipo de
subsistema
✓ Pa: páginas reales por caso de
uso
✓ Ph: páginas promedio por caso
de uso para este tipo de
subsistema
El ajuste representa hasta n por ciento de las LOC promedio históricas por caso de uso.
Ph.D. Franklin Parrales 89
23/10/2021
Proceso de Software Carrera de Software
Estimación con casos de uso
Usando la relación anotada en la expresión anterior, con n = 30%, se elaboró la
tabla siguiente:
Observe la primera hilera de la tabla; los datos históricos indican que el software UI
requiere un promedio de 800 LOC por caso de uso cuando el caso de uso no tiene
más de 12 escenarios y se describe en menos de cinco páginas.
Dichos datos se ajustan razonablemente bien para el sistema CAD
(LOCajuste=800x0.70=560). Por tanto, la estimación LOC para el subsistema de
interfaz de usuario se calcula con la expresión de la diapositiva anterior.
Usando el mismo enfoque se hacen estimaciones para los grupos de subsistemas
de ingeniería e infraestructura. La tabla resume las estimaciones e indica que el
tamaño global del CAD se estima en 42 500 LOC.
Ph.D. Franklin Parrales 90
23/10/2021
Proceso de Software Carrera de Software
Estimación con casos de uso
Utilizando 620 LOC/pm como la productividad promedio para sistemas de este
tipo y una tarifa de mano de obra de $ 8000 por mes, el costo por línea de
código es de aproximadamente $ 13 ($8000/620). Según la estimación del
caso de uso y los datos históricos de productividad, el costo total estimado del
proyecto es de $ 552,000 y el esfuerzo estimado es de 68 meses-persona.
Ph.D. Franklin Parrales 91
23/10/2021
Proceso de Software Carrera de Software
Estimación para proyectos OO(1)
1. Desarrolle estimaciones utilizando descomposición de esfuerzo,
análisis de FP y cualquier otro método que sea aplicable para
aplicaciones convencionales.
2. Usando el modelado de requisitos, desarrolle casos de uso y
determine un conteo. Reconocer que el número de casos de uso
puede cambiar conforme avance el proyecto.
3. A partir del modelo de análisis, determine el número de clases
clave (denominadas clases de análisis).
4. Categorizar el tipo de interfaz para la aplicación y desarrollar un
multiplicador para clases de apoyo:
– Interface type Multiplier
– No GUI 2.0
– Text-based user interface 2.25
– GUI 2.5
– Complex GUI 3.0
Ph.D. Franklin Parrales 92
23/10/2021
Proceso de Software Carrera de Software
Estimación para proyectos OO(2)
5. Multiplique el número de clases clave (paso 3) por el multiplicador
para obtener una estimación del número de clases de apoyo.
6. Multiplique el número total de clases (clave + soporte) por el
número medio de unidades de trabajo por clase. Lorenz y Kidd
sugieren de 15 a 20 días-persona por clase.
7. Verifique la estimación basada en clases multiplicando el número
promedio de unidades de trabajo por caso de uso
Ph.D. Franklin Parrales 93
23/10/2021
Proceso de Software Carrera de Software
Estimación sobre proyectos ágiles
1. Cada escenario de usuario (un mini-caso de uso) se considera por
separado para fines de estimación.
2. El escenario se descompone en el conjunto de tareas de ingeniería
de software que serán necesarias para desarrollarlo.
3. Cada tarea se estima por separado. Nota: la estimación puede
basarse en datos históricos, un modelo empírico o "experiencia".
– Alternativamente, el "volumen" del escenario se puede estimar en LOC, FP
o alguna otra medida orientada al volumen (por ejemplo, recuento de casos
de uso).
4. Las estimaciones de cada tarea se suman para crear una
estimación del escenario.
– Alternativamente, la estimación de volumen para el escenario se traduce en
esfuerzo utilizando datos históricos.
5. Las estimaciones de esfuerzo para todos los escenarios que se
implementarán para un incremento de software dado se suman
para desarrollar la estimación de esfuerzo para el incremento.
Ph.D. Franklin Parrales 94
23/10/2021
Proceso de Software Carrera de Software
Modelo de estimación para webapps
Los webapps adoptan con frecuencia el modelo de proceso ágil. Puede usarse
una medida de PF modificada, junto con los pasos que se destacan en la
estimación sobre proyectos ágiles. Roetzheim [Roe00] sugiere el siguiente
enfoque cuando adapta puntos de función para estimación de webapps:
• Entradas son cada pantalla o formulario de entrada (por ejemplo, CGI o
Java), cada pantalla de mantenimiento y, si usa una metáfora de etiquetas
de libreta, cualquier etiqueta.
• Salidas son cada página web estática, cada guión de página web dinámica
(por ejemplo, ASP, ISAPI u otro guión DHTML) y cada reporte (ya sea
basado en web o administrativo por naturaleza).
• Tablas son cada tabla lógica en la base de datos más, si usa XML para
almacenar datos en un archivo, cada objeto XML (o colección de atributos
XML).
• Las interfaces conservan su definición como archivos lógicos (por ejemplo,
formatos de registro único) dentro de las fronteras del sistema.
• Consultas son cada una de las publicaciones externas o el uso de una
interfaz orientada a mensaje. Un ejemplo usual son las referencias externas
DCOM o COM.
Ph.D. Franklin Parrales 95
23/10/2021
Proceso de Software Carrera de Software
ESTIMACIÓN DE
PROYECTOS DE SOFTWARE
Unidad 4
Final de la unidad
Y del curso…. !Muchas gracias
a todos!

More Related Content

What's hot

Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloJosé Antonio Sandoval Acosta
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwareFranklin Parrales Bravo
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Planificacion De Proyectos De Software
Planificacion De Proyectos De SoftwarePlanificacion De Proyectos De Software
Planificacion De Proyectos De SoftwareIván Sanchez Vera
 
Cuadro comparativo metodos
Cuadro comparativo metodosCuadro comparativo metodos
Cuadro comparativo metodosivansierra20
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)katherine revelo gomez
 
Tsp (Team Software Process )
Tsp (Team Software Process )Tsp (Team Software Process )
Tsp (Team Software Process )silviachmn
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajesPedro Contreras Flores
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareYaskelly Yedra
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 

What's hot (20)

Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de software
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Planificacion De Proyectos De Software
Planificacion De Proyectos De SoftwarePlanificacion De Proyectos De Software
Planificacion De Proyectos De Software
 
Cuadro comparativo metodos
Cuadro comparativo metodosCuadro comparativo metodos
Cuadro comparativo metodos
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
Prueba software orientado a objetos
Prueba software orientado a objetosPrueba software orientado a objetos
Prueba software orientado a objetos
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Tsp (Team Software Process )
Tsp (Team Software Process )Tsp (Team Software Process )
Tsp (Team Software Process )
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de Software
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Dsdm
DsdmDsdm
Dsdm
 
Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 

Similar to Estimating Software Project Size and Effort Using Lines of Code (LOC

CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5SIMONTHOMAS S
 
Spm project planning
Spm project planning Spm project planning
Spm project planning Kanchana Devi
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdfaustdali
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICSneha Padhiar
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICSneha Padhiar
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)ShudipPal
 
5_6134023428304274682.pptx
5_6134023428304274682.pptx5_6134023428304274682.pptx
5_6134023428304274682.pptxgamingpro22
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
itec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptitec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptinaamulh77
 
Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineeringRupesh Vaishnav
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptxJAGADEESWARIS6
 
Project 1 & 2.pptx
Project 1 & 2.pptxProject 1 & 2.pptx
Project 1 & 2.pptxOkianWarner
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3Azhar Shaik
 

Similar to Estimating Software Project Size and Effort Using Lines of Code (LOC (20)

CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
Spm project planning
Spm project planning Spm project planning
Spm project planning
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdf
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERICCOCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
COCOMO FP COST ESTIMATION TECHNIQUES:NUMERIC
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
 
Cost effort.ppt
Cost effort.pptCost effort.ppt
Cost effort.ppt
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
 
5_6134023428304274682.pptx
5_6134023428304274682.pptx5_6134023428304274682.pptx
5_6134023428304274682.pptx
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
itec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptitec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.ppt
 
Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineering
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 
Estimation sharbani bhattacharya
Estimation sharbani bhattacharyaEstimation sharbani bhattacharya
Estimation sharbani bhattacharya
 
Unit 5
Unit   5Unit   5
Unit 5
 
Project 1 & 2.pptx
Project 1 & 2.pptxProject 1 & 2.pptx
Project 1 & 2.pptx
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
Vedic Calculator
Vedic CalculatorVedic Calculator
Vedic Calculator
 

More from Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 

More from Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Estimating Software Project Size and Effort Using Lines of Code (LOC

  • 1. Ph.D. Franklin Parrales 1 23/10/2021 Proceso de Software Carrera de Software ESTIMACIÓN DE PROYECTOS DE SOFTWARE Unidad 4 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Proceso de Software
  • 2. Ph.D. Franklin Parrales 2 23/10/2021 Proceso de Software Carrera de Software Objetivo general de la Unidad 4 Analizar los aspectos principales para la estimación de proyectos de software alineados a metodologías usadas en la industria para desarrollar proyectos de software escalables.
  • 3. Ph.D. Franklin Parrales 3 23/10/2021 Proceso de Software Carrera de Software Bibliografía consultada • Pressman, Roger S. "Ingeniería del software." Un enfoque (7maEd. 2011). Cap. 26 • Guerra, L., Bedini, A. “Gestión de Proyectos de Software”. Editorial UTFSM, ISBN 956- 7051-06-2, Chile, abril 2005. Cap. 5
  • 4. Ph.D. Franklin Parrales 4 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servido • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 5. Ph.D. Franklin Parrales 5 23/10/2021 Proceso de Software Carrera de Software Recursos del proyecto project people skills number location reusable software OTS components full-experience components new components part.-experience components environment hardware software tools network resources
  • 6. Ph.D. Franklin Parrales 6 23/10/2021 Proceso de Software Carrera de Software Proceso de Estimación propuesto. Medir lo que quiere el usuario Estimar lo que Costara (esfuerzo) Descomponer por fases y tareas Historial Empresa Especificación de requerimientos Requisitos a Cumplir Medida de lo que quiere el usuario Estimación del Esfuerzo Tareas a realizar
  • 7. Ph.D. Franklin Parrales 7 23/10/2021 Proceso de Software Carrera de Software Estimación del proyecto • Debe entenderse el alcance del proyecto • Es necesaria la descomposición de tareas • Las métricas históricas son muy útiles • Deben utilizarse al menos dos técnicas diferentes • La incertidumbre es inherente al proceso
  • 8. Ph.D. Franklin Parrales 8 23/10/2021 Proceso de Software Carrera de Software Método basado exclusivamente en los recursos: Parkinson • En la estimación consiste en ver de cuanto personal y durante cuanto tiempo se dispone de el, haciendo esa estimación. • En la realización: “El trabajo se expande hasta consumir todos los recursos disponibles” (Ley de Parkinson)
  • 9. Ph.D. Franklin Parrales 9 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servido • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 10. Ph.D. Franklin Parrales 10 23/10/2021 Proceso de Software Carrera de Software Descomposición funcional descomposición funcional Declaración de Alcance Realizar un "análisis" gramatical
  • 11. Ph.D. Franklin Parrales 11 23/10/2021 Proceso de Software Carrera de Software Objetivo • Descomponer el esfuerzo estimado en tareas. • Para esto identificaremos: – Entregables del proyecto, – Fases del proyecto y – Tareas del proyecto.
  • 12. Ph.D. Franklin Parrales 12 23/10/2021 Proceso de Software Carrera de Software Descomposición en actividades del proyecto (WBS) • Work Breakdown Structure (WBS) – Método de representar de forma jerárquica los componentes de un proceso o producto.
  • 13. Ph.D. Franklin Parrales 13 23/10/2021 Proceso de Software Carrera de Software Descomposición en actividades del proyecto (WBS)
  • 14. Ph.D. Franklin Parrales 14 23/10/2021 Proceso de Software Carrera de Software Descomposición en actividades del proyecto (WBS) 1.1. Estudiar Sistema Actual 1.2. ide. nuevas carácteristica 1.0. Especificar necesidades 2.1. Estudiar Procesos 2.2. Estudiar Datos 2.0. Analizar Contabilidad 3.1. Diseño B.D 3.2. Diseño Programas 3.0. Diseñar Aplicación 4.1. Creación Esquema 4.2. Codificación Programas 4.0. Codificación 5.1. Prueba Unidades 5.2. Prueba del Sistema 5.0. Pruebas 0.0. Proyecto Contabilidad
  • 15. Ph.D. Franklin Parrales 15 23/10/2021 Proceso de Software Carrera de Software Basados en la descomposición del proyecto • En la estimación consiste en ver de cuanto personal y durante cuanto tiempo se dispone de el, haciendo esa estimación. • El método es tener todo la detalle usando: Bottom-up o TopDown – En esta técnica por cada componentes hay que estimar un costo de su desarrollo. – La estimación total del proyecto es la suma de sus parciales. – Para poder aplicar esta técnica se debe aplicar un método WBS • Actividades directas al proyecto (40%). • Actividades indirectas al proyecto (30%). • Actividades de desperdicio del proyecto (30%)
  • 16. Ph.D. Franklin Parrales 16 23/10/2021 Proceso de Software Carrera de Software Basados en la descomposición del proyecto • La técnica es: – Dividir el proyecto en fases – Dividir fases en tareas – Dividir tareas en subtareas – Estimar cada subtarea – Totalizar – Añadir 5% de reuniones y 15% de gestión – Añadir 20% (Hard) y 20% (Soft)
  • 17. Ph.D. Franklin Parrales 17 23/10/2021 Proceso de Software Carrera de Software Basado en los componentes del producto o proceso de desarrollo: • Bottom-up – Se descompone el proyecto en las unidades lo menores posibles. – Se estima cada unidad y se calcula el coste total. • Top-Down – Se ve todo el proyecto, se descompone en grandes bloques o fases. – Se estima el coste de cada componente.
  • 18. Ph.D. Franklin Parrales 18 23/10/2021 Proceso de Software Carrera de Software Método basado exclusivamente en el mercado: precio para vender (Pricing to win) • Lo importante es conseguir el contrato. • El precio se fija en función de lo que creemos que esta dispuesto a pagar el cliente. • Si se usa en conjunción con otros métodos puede ser aceptable, para ajustar la oferta. • Peligro si es el único método utilizado.
  • 19. Ph.D. Franklin Parrales 19 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 20. Ph.D. Franklin Parrales 20 23/10/2021 Proceso de Software Carrera de Software Líneas de Código (LDC) y Puntos de Función (PF) • Los datos de LDC y PF se utilizan de dos formas durante la estimación del proyecto de software: 1. Como una variable de estimación que se utiliza para “dimensionar” cada elemento del software. 2. Como métricas de línea base recopiladas de proyectos anteriores y utilizadas junto con variables de estimación para desarrollar proyecciones de costo y de esfuerzo. • Mientras las LDC se estiman directamente, los PF se determinan indirectamente mediante la estimación de numero de entradas, salidas, archivos de datos, consultas e interfaces, así como también de catorce valores de ajuste de complejidad. • ¿Serán correctas las estimaciones? – “No podemos asegurarlo”, deberán prevalecer la experiencia y el sentido común.
  • 21. Ph.D. Franklin Parrales 21 23/10/2021 Proceso de Software Carrera de Software Métricas del software orientadas al tamaño Las métricas del software orientadas al tamaño provienen de la normalización de las medidas de calidad y/o productividad considerando el «tamaño» del software que se haya producido. • Productividad = KLDC/persona-mes • Calidad = errores/KLDC • Documentación = pags. Doc/ KLDC • Costo = $/KLDC
  • 22. Ph.D. Franklin Parrales 22 23/10/2021 Proceso de Software Carrera de Software Estimación de Líneas de Código (LDC) • Las líneas de código fuente (LDC o LOC) es una métrica de software que se utiliza para medir el tamaño de un programa informático contando el número de líneas en el texto del código fuente del programa. • LOC se usa generalmente para predecir la cantidad de esfuerzo que se requerirá para desarrollar un programa, así como para estimar la productividad de la programación o la capacidad de mantenimiento una vez que se produce el software.
  • 23. Ph.D. Franklin Parrales 23 23/10/2021 Proceso de Software Carrera de Software Ejemplo: Declaración de alcance • El software CAD mecánico aceptará datos geométricos bidimensionales y tridimensionales de un ingeniero. • El ingeniero interactuará y controlará el sistema CAD a través de una interfaz de usuario que exhibirá características de buen diseño de interfaz hombre / máquina. • Todos los datos geométricos y otra información de apoyo se mantendrán en una base de datos CAD. • Se desarrollarán módulos de análisis de diseño para producir el resultado requerido, que se mostrará en una variedad de dispositivos gráficos. • El software estará diseñado para controlar e interactuar con dispositivos periféricos que incluyen un mouse, digitalizador, impresora láser.
  • 24. Ph.D. Franklin Parrales 24 23/10/2021 Proceso de Software Carrera de Software Ejemplo: estimación de LOC (LDC) FUNCTIONS ESTIMATED LOC - User Interface and Control Facilities (UICF) 2,300 - Two Dimensional Analysis (2DGA) 5.300 - 3D Geometric Analysis Function (3DGA) 6,800 *** - Database Management (DBM) 3,350 - Computer Graphic Display facility (CGDF) 4,950 - Peripheral Control Function (PCF) 2,100 - Design Analysis Modules DAM) 8.400 _____________________________________________________________ TOTAL ESTIMATED LOC ( ∑ LOC ) 33.200 ========================================================= For Example:- Using the Expected Value Equation we can calculate the Estimated Value for (3DGA) Function as follows:- Optimistic Estimation = 5,000 LOC Most Likely Estimation = 6,700 LOC Pessimistic Estimation = 9,000 LOC
  • 25. Ph.D. Franklin Parrales 25 23/10/2021 Proceso de Software Carrera de Software Los datos históricos obtenidos de las métricas indican los siguientes promedios organizacionales: La productividad media es 620 LOC / Pm (Lines of Code Per Month) El costo laboral promedio es $8,000 Per month. El costo de una línea de código se puede calcular de la siguiente manera (COST / LOC) COST / LOC = (8000 / 620) = $13 El costo total estimado del proyecto y el esfuerzo del proyecto se pueden calcular de la siguiente manera: Considerando que el Total de LOCs ( ∑ LOC) para el Sistema es 33,200 ➢ Costo total estimado del proyecto = (33200 * 13 ) = $431,600 ➢ Esfuerzo estimado del proyecto = (33200 / 620) = ~ 54 Personas-Mes Ejemplo: estimación de LOC (LDC)
  • 26. Ph.D. Franklin Parrales 26 23/10/2021 Proceso de Software Carrera de Software Métricas del software orientadas a la función • Las métricas del software orientadas a la función utilizan una medida de la funcionalidad entregada por la aplicación como un valor de normalización. • Ya que la funcionalidad no se puede medir directamente, se debe derivar (calcular) mediante otras medidas directas. • Punto de función: – La metodología fue desarrollada por Allan J. Albrecht, como una métrica del tamaño de un sistema de información automatizado – Se calcula (a partir de un prototipo) determinando 5 características de dominio de información – Factor de Ponderación: simple, medio o complejo. Valor de complejidad determinado de manera subjetiva por c/ organización.
  • 27. Ph.D. Franklin Parrales 27 23/10/2021 Proceso de Software Carrera de Software Punto de función factor de complejidad puntos función # de entradas de usuario # de salidas de usuario # de peticiones (consultas) # de archivos # of interfaces externas parámetro de medida 3 4 3 7 5 conteo factor de ponderación simple prom. complejo 4 5 4 10 7 6 7 6 15 10 = = = = = conteo-total X X X X X
  • 28. Ph.D. Franklin Parrales 28 23/10/2021 Proceso de Software Carrera de Software Puntos de Función: Valores de ajuste de complejidad Factor de Complejidad Técnica
  • 29. Ph.D. Franklin Parrales 29 23/10/2021 Proceso de Software Carrera de Software Números de entrada de usuario: se cuenta cada entrada del usuario que proporcione al software diferentes datos orientados a la aplicación. Las entradas deben ser distinguidas de las peticiones que se contabilizan por separado. Numero de salida del usuario: se encuentra cada salida que proporciona la usuario información orientada a la aplicación. En este contexto las salidas se refieren a informes, pantalla, mensajes de error. Los elementos de datos individuales dentro de un informe se encuentran por separado. Números de peticiones al usuario: una petición esta definida como una entrada interactiva que resulta de la generación de algún tipo de respuesta en forma de salida interactiva. Se cuenta cada petición por separado. Numero de archivos: se cuenta cada archivo maestro lógico, o sea una agrupación lógica de datos que puede ser una parte en una gran base de datos o un archivo independiente. Numero de interfaces externas: se cuentan todas las interfaces legibles por la maquina por ejemplo: archivos de datos, en cinta o discos que son utilizados para transmitir información a otro sistema. Punto de función 1 2 3 4 5
  • 30. Ph.D. Franklin Parrales 30 23/10/2021 Proceso de Software Carrera de Software Ejemplo: estimación de FP(1) • La descomposición para la estimación basada en FP se centra en los valores del dominio de la información más que en las funciones del software. • A los efectos de esta estimación, se supone que el factor de ponderación de complejidad es el promedio. Puntos de Función No ajustados (PFNA)
  • 31. Ph.D. Franklin Parrales 31 23/10/2021 Proceso de Software Carrera de Software Ejemplo: estimación de FP(2) ∑ Fi =52 Factor de Complejidad Técnica
  • 32. Ph.D. Franklin Parrales 32 23/10/2021 Proceso de Software Carrera de Software El número estimado de FP se calcula: FPestimated = count-total *[0.65 + 0.01*(Fi)] FPestimated = 320 *[0.65 + 0.01*(52)] = 374.4 ~ 375 FPestimated = 375 Productividad media organizacional = 6.5 FP/pm El costo laboral promedio es = $8000 por mes, aproximadamente $1230/FP ($8000 / 6.5). Según la estimación de FP y los datos históricos de productividad, el costo total estimado del proyecto es de $ 461,000 y el esfuerzo estimado es de 58 meses-persona. Ejemplo: estimación de FP(3)
  • 33. Ph.D. Franklin Parrales 33 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 34. Ph.D. Franklin Parrales 34 23/10/2021 Proceso de Software Carrera de Software Líneas de Código (LDC) v/s Puntos de Función (PF) • LDC y PF son técnicas de estimación distintas, a pesar de que ambas tienen varias características en común. • Los métodos de estimación LOC (líneas de código), FP (punto de función) consideran el tamaño como la medida. – En LOC, el costo se calcula en función del número de líneas. – En FP, el costo se calcula en función del número de varias funciones del programa.
  • 35. Ph.D. Franklin Parrales 35 23/10/2021 Proceso de Software Carrera de Software Líneas de Código (LDC) v/s Puntos de Función (PF) • Las técnicas de estimación de LDC y PF difieren en el nivel de detalle que se requiere para la descomposición y el objetivo de la partición. • Cuando se utiliza LDC como variable de estimación, la descomposición es absolutamente esencial y a menudo se toman para considerables niveles de detalle. – Cuanto más grande sea el grado de particionamiento, más probable será que pueda desarrollar estimaciones más exactas. • Para estimaciones de PF, la descomposición funciona de diferente manera. – En lugar de centrarse en la función, se estiman cada una de las características del dominio de información entradas, salidas, archivos de datos, peticiones, e interfaces extremas y los catorce valores de ajuste de la complejidad. – Las estimaciones resultantes se utilizan para derivar un valor de PF que se pueda unir a datos pasados y utilizar para generar una estimación.
  • 36. Ph.D. Franklin Parrales 36 23/10/2021 Proceso de Software Carrera de Software Métricas del software orientadas al tamaño • Las métricas usadas para estimar el tamaño del producto de software deben ser razonablemente fáciles de usar en etapas tempranas del proyecto y fácilmente mensurables una vez que el trabajo ha finalizado. • Las LDC miden en forma directa el tamaño del producto de software. Se calculan simplemente contando las instrucciones de código fuente de cada componente del producto de software excluyendo, generalmente, los comentarios y blancos. • Los PF miden de forma indirecta el tamaño del producto de software, realizando su calculo mediante el uso de otras medidas directas.
  • 37. Ph.D. Franklin Parrales 37 23/10/2021 Proceso de Software Carrera de Software Ventajas y Desventajas de las LDC • Ventajas – Fácil de calcular – Base de cálculo de modelos de estimación de costos de software existentes – Existencia de literatura al respecto – Fácil de automatizar • Desventajas – Dependencia del lenguaje de programación – Difícil de estimar en etapas tempranas del proyecto – Difícil de calcular en lenguajes de programación no procedurales
  • 38. Ph.D. Franklin Parrales 38 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 39. Ph.D. Franklin Parrales 39 23/10/2021 Proceso de Software Carrera de Software Siete maneras de estimar costos... 1. Modelado algorítmico de costos – Usando algunas métricas de software (generalmente tamaño - LOC) e información histórica de costos – Puntos de Función, COSMIC FFP, Puntos de Objecto – Fórmulas Matemáticas: Curva Raleigh-Putnam – Modelos de Regresión: COCOMO 2. Juicio de un experto 3. Estimación por analogía 4. Ley de Parkinson – El trabajo se amplía para llenar el tiempo disponible... 5. De acuerdo al precio para ganar el proyecto (Pricing to win) 6. Estimación Top-down – Se estima en base a las funciones lógicas y no en base los componentes requeridos para implementarlos. 7. Estimación Bottom-up – Agregar el costo de los componentes hasta llegar al costo de todo el producto.
  • 40. Ph.D. Franklin Parrales 40 23/10/2021 Proceso de Software Carrera de Software Aplicación a desarrollar Coste ... f(x) x y z v u Modelado algorítmico de costos • Se basan en la utilización de fórmulas que aplicadas sobre modelos top-down o bottom-up producen una estimación de coste del proyecto
  • 41. Ph.D. Franklin Parrales 41 23/10/2021 Proceso de Software Carrera de Software Modelos empíricos de estimación Forma general: esfuerzo = coeficiente de ajuste * tamaño exponente generalmente medido en meses-persona de esfuerzo requerido ya sea una constante o un número derivado en función de la complejidad del proyecto normalmente LOC pero también puede ser un punto de función calculado empíricamente • Los modelos de estimación para software de computadora utilizan fórmulas derivadas empíricamente para predecir el esfuerzo en función de LOC o FP • Los valores resultantes calculados para LOC o FP se ingresan en un modelo de estimación
  • 42. Ph.D. Franklin Parrales 42 23/10/2021 Proceso de Software Carrera de Software Modelos empíricos de estimación ➢ Ejemplo de un modelo de estimación basado en LOCs producidas (Bailey-Basili model) E = 5.5 + 0.73  (KLOC)1.16 ➢ Ejemplo de un modelo de estimación basado en FP (Kemerer model) E = -37 + 0.96 FP ➢ Los modelos de estimación deben calibrarse para las necesidades locales (particulares)
  • 43. Ph.D. Franklin Parrales 43 23/10/2021 Proceso de Software Carrera de Software Putnam • Relaciona cantidad de personas-mes y la duración del proyecto. • Y=2Kate-at² Y = Personas-mes en cada punto K = Esfuerzo total del proyecto, (Área bajo la curva) a = Cte. asociada a la aceleración de entrada de personas en el proyecto, t = instante del tiempo. 0 2 4 6 8 10 12 14 16 0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 0 2 2 2 4 Meses de Desarrollo Esfuerzo Asignado
  • 44. Ph.D. Franklin Parrales 44 23/10/2021 Proceso de Software Carrera de Software La ecuación del software [PUT92] (1) ➢ Es un modelo multivariado ➢ Se ha derivado de los datos de productividad recopilados para más de 4000 proyectos contemporáneos de software E = [LOC  B0.333/P]3  (1/t4) ➢ Donde, – E = esfuerzo en meses-persona o años-persona – t = duración del proyecto en meses o años – B = “special skills factor” (factor de habilidades especiales) – P = “productivity parameter” (parámetro de productividad)
  • 45. Ph.D. Franklin Parrales 45 23/10/2021 Proceso de Software Carrera de Software La ecuación del software [PUT92] (2) ➢ Para programas pequeños (KLOC = 5 to 15) – B = 0.16 ➢ Para programas mayores de 70 KLOC – B = 0.39 ➢ P = 2000 para el desarrollo de software embebido en tiempo real ➢ P = 10,000 para telecomunicaciones y sistemas s / w ➢ P = 28,000 para aplicaciones de sistemas empresariales
  • 46. Ph.D. Franklin Parrales 46 23/10/2021 Proceso de Software Carrera de Software La ecuación del software [PUT92] (3) ➢ Fórmulas simplificadas – tmin = 8.14 (LOC/P)0.43 en meses para tmin > 6 meses • tmin = tiempo de Desarrollo mínimo – E = 180 Bt3 en personas-meses para E  20 personas-meses • Aquí t es representado en años
  • 47. Ph.D. Franklin Parrales 47 23/10/2021 Proceso de Software Carrera de Software ➢ Suele ser más rentable adquirir software que desarrollar ➢ Los gerentes tienen muchas opciones de adquisición – El software se puede comprar (o licenciar) listo para usar – Los componentes de software de "experiencia completa" o "experiencia parcial" se pueden adquirir e integrar para satisfacer necesidades específicas – El software puede ser personalizado por un contratista externo para cumplir con las especificaciones del comprador. ➢ La decisión de comprar/desarrollar SW se puede hacer en base a las siguientes condiciones – ¿El producto de software estará disponible antes que el software desarrollado internamente? – ¿El costo de adquisición más el costo de personalización será menor que el costo de desarrollar el software internamente? – ¿El costo del soporte externo (por ejemplo, un contrato de mantenimiento) será menor que el costo del soporte interno? Decisión de comprar/desarrollar SW
  • 48. Ph.D. Franklin Parrales 48 23/10/2021 Proceso de Software Carrera de Software Decisión de comprar/desarrollar SW Crear un árbol de decisiones
  • 49. Ph.D. Franklin Parrales 49 23/10/2021 Proceso de Software Carrera de Software Decisión de comprar/desarrollar SW (path probability) x (estimated path cost) i i For example, the expected cost to build is: expected cost = 0.30 ($380K) + 0.70 ($450K) similarly, expected cost = $382K expected cost = $267K expected cost = $410K build reuse buy contr expected cost = = $429 K Cálculo del costo esperado
  • 50. Ph.D. Franklin Parrales 50 23/10/2021 Proceso de Software Carrera de Software ➢ Sin embargo, es importante señalar que muchos criterios, no solo el costo, deben considerarse durante el proceso de toma de decisiones. ➢ La disponibilidad, la experiencia del desarrollador / vendedor / contratista, el cumplimiento de los requisitos, la “política” local y la probabilidad de cambio son solo algunos de los criterios que pueden afectar la decisión final de construir, reutilizar, comprar o contratar. Decisión de comprar/desarrollar SW
  • 51. Ph.D. Franklin Parrales 51 23/10/2021 Proceso de Software Carrera de Software Subcontratación ➢ Las actividades de ingeniería de SW se contratan a un tercero que realiza el trabajo a un costo menor y, con suerte, de mayor calidad. ➢ El trabajo de SW realizado dentro de una empresa se reduce a una actividad de gestión de contratos ➢ La decisión de subcontratar puede ser estratégica o táctica. ➢ Tiene méritos y deméritos
  • 52. Ph.D. Franklin Parrales 52 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 53. Ph.D. Franklin Parrales 53 23/10/2021 Proceso de Software Carrera de Software Modelo COCOMO Intermedio • Añade al modelo básico 15 factores de ajuste, también llamados multiplicadores del esfuerzo o guías de coste. – Tamaño B.D., experiencia analistas, herramientas, … (15 en total, varían de 0.75-1.66) • Se logra una mayor precisión en la estimación gracias a los nuevos factores. • La fórmula es la misma que la del modelo básico pero con el añadido del factor (multiplicando). Effort = a * (SIZE)b *M Multiplicador FAE Submodelos intermedios a b c d Orgánico 3,2 1,05 2,5 0,38 Semi-acoplado 3,0 1,12 2,5 0,35 Empotrado 2,8 1,20 2,5 0,32 FAE es un factor de ajuste de esfuerzo que normalmente fluctúa entre 0,9 y 1,4. Miles de Líneas de código Factores de escala
  • 54. Ph.D. Franklin Parrales 54 23/10/2021 Proceso de Software Carrera de Software Cálculo de FAE Es a través de los Puntos de Función (PF). Hoy en día es la forma más utilizada y para ello se requiere utilizar los factores de conversión correspondiente al lenguaje utilizado. Para ello se debe utilizar la siguiente tabla (Factores de costo), que contiene 15 atributos que deben ser evaluados para el proyecto. Estos atributos se utilizan para ajustar el esfuerzo del proyecto al entorno real, incrementando la precisión de la estimación
  • 55. Ph.D. Franklin Parrales 55 23/10/2021 Proceso de Software Carrera de Software Atributos del modelo Intermedio • Software: • RELY: Indica las consecuencias para el usuario si falla el producto. • DATA: Relación Tamaño de la BD / Líneas de código. • CPLX: Complejidad del producto. • Hardware: • TIME: Limitaciones en el porcentaje del uso de la CPU. • STOR: Limitaciones en el porcentaje del uso de la memoria. • VIRT: Volatilidad de la máquina virtual. • TURN: Tiempo de respuesta. • Personal: • ACAP: calificación de los analistas. • AEXP: experiencia del personal. • PCAP: calificación de los programadores. • VEXP: experiencia del personal en la máquina virtual. • LEXP: experiencia en el lenguaje. • Proyecto: • MODP: uso de prácticas modernas de programación. • TOOL: uso de herramientas de desarrollo de software. • SCED: limitaciones en el cumplimiento de la planificación.
  • 56. Ph.D. Franklin Parrales 56 23/10/2021 Proceso de Software Carrera de Software Cálculo de FAE Factores de Costo
  • 57. Ph.D. Franklin Parrales 57 23/10/2021 Proceso de Software Carrera de Software SIZE con Puntos de Función (1) Después de valorizar los Factores de Costo del Proyecto, se procede a valorizar los Factores Funcionales de Peso, con la siguiente tabla: Para obtener los Factores Funcionales de Peso, se debe seleccionar la complejidad del Proyecto, y multiplicarlo, por cada valor obtenido para los factores funcionales. Para ello se requiere previamente un prototipo, del cual se obtendrán N° de Entradas de usuario, N° salidas usuario, etc. Luego de esto, se debe sumar el resultado total de la multiplicación para los 5 puntos evaluados (factores funcionales de peso).
  • 58. Ph.D. Franklin Parrales 58 23/10/2021 Proceso de Software Carrera de Software SIZE con Puntos de Función (2) Del resultado obtenido, se puede obtener los puntos de función aplicando la siguiente fórmula: PF = [Σfactores funcionales de peso] * [0.65 + (0.01 * Σfactores costo)] El valor resultante de la conversión PF, debe ser multiplicado por la tabla de conversión a líneas de código (LOC), la cual está determinada por el lenguaje de desarrollo a utilizar en el proyecto. LOC = PF * Correlación La tabla de conversión es la siguiente -> Tabla de Conversión de: Correlación Código Fuente a PF
  • 59. Ph.D. Franklin Parrales 59 23/10/2021 Proceso de Software Carrera de Software Ejemplo “SIZE con Puntos de Función” Supongamos que se quiere desarrollar un proyecto transaccional que operará en plataforma web y su tamaño es mediano. ¿Cuál será el esfuerzo requerido, tiempo de desarrollo, personal utilizado en el proyecto ? 1
  • 60. Ph.D. Franklin Parrales 60 23/10/2021 Proceso de Software Carrera de Software Utilizando un prototipo se llena la tabla asociada a los factores de Peso. PF = [Σfactores funcionales de peso] * [0.65 + (0.01 * Σfactores de costo)] Aplicando la formula se tiene: PF = [513] * [0,65 + (0,01 * 14,91)] PF= 409,9383 Continuación Ejemplo:
  • 61. Ph.D. Franklin Parrales 61 23/10/2021 Proceso de Software Carrera de Software Continuación Ejemplo Luego se procede a aplicar la formula de Conversión a LOC: Como ya se dijo anteriormente, el lenguaje a utilizar es JAVA. Entonces se tiene que LOC = PF * Correlación LOC = 409,9383 * 46 LOC =18857,1618 (Líneas de Código) KLOC = 18857,1618 / 1000 KLOC = 19 (Kilo o miles de línea de código)
  • 62. Ph.D. Franklin Parrales 62 23/10/2021 Proceso de Software Carrera de Software Continuación Ejemplo: Calculo de la variable FAE (multiplicador): FAE = 0,88 * 1,08 * 1,15 * 1,3 * 1,00 * 1,15 * 1,00 * 1,29 * 0,86 * 1,21 * 1,07 * 0,91 * 0,91 * 1,1 = 2.137854971
  • 63. Ph.D. Franklin Parrales 63 23/10/2021 Proceso de Software Carrera de Software E = a(KLOC)b * FAE D = c(E)d P = E/D C = P *Salario Como ya se había dicho, el proyecto es de mediano tamaño. Entonces se tiene: Esfuerzo (E) = 3,0*( 19)1,12 * 2,137 = 173,48 meses/hombre Duración (D)= 2,5*(173,48)0,35 = 6,07 meses Personal (P)= 173,48 / 6.07 = 28,54 personas Continuación Ejemplo: Submodelos intermedios a b c d Orgánico 3,2 1,05 2,5 0,38 Semi-acoplado 3,0 1,12 2,5 0,35 Empotrado 2,8 1,20 2,5 0,32
  • 64. Ph.D. Franklin Parrales 64 23/10/2021 Proceso de Software Carrera de Software Ejemplo “MODELO INTERMEDIO” • Debemos desarrollar un software de no muy elevada dificultad, con las siguientes restricciones: • 3 meses para el desarrollo del proyecto software. • Debe estar implementado en el lenguaje Visual Basic • PF=261,36 (dato conocido) • Calculo del esfuerzo: Necesitamos hallar la variable SIZE. LENGUAJE LDC/PF Ensamblador 320 C 150 COBOL 105 Pascal 91 Prolog/LISP 64 C++ 64 Visual Basic 32 SQL 12 2
  • 65. Ph.D. Franklin Parrales 65 23/10/2021 Proceso de Software Carrera de Software • SIZE = (PF * Líneas de código por cada PF)/1000 = (261,36*32)/1000 = 8,363 • Usaremos el tipo Orgánico ya que núestro proyecto no supera las 50 KLOC, y es el mas apropiado en este caso. • Coeficientes a usar: Ejemplo estimación Submodelos intermedios a b c d Orgánico 3,2 1,05 2,5 0,38 Semi-acoplado 3,0 1,12 2,5 0,35 Empotrado 2,8 1,20 2,5 0,32
  • 66. Ph.D. Franklin Parrales 66 23/10/2021 Proceso de Software Carrera de Software • Calculo de la variable FAE (multiplicador): CONDUCTORES DE COSTE VALORACIÓN Muy bajo Bajo Nominal Alto Muy alto Extr. alto Fiabilidad requerida del software 0,75 0,88 1.00 1,15 1,40 - Tamaño de la base de datos - 0,94 1.00 1,08 1,16 - Complejidad del producto 0,70 0,85 1.00 1,15 1,30 1,65 Restricciones del tiempo de ejecución - - 1.00 1,11 1,30 1,66 Restricciones del almacenamiento principal - - 1.00 1,06 1,21 1,56 Volatilidad de la máquina virtual - 0,87 1.00 1,15 1,30 - Tiempo de respuesta del ordenador - 0,87 1.00 1,07 1,15 - Capacidad del analista 1,46 1,19 1.00 0,86 0,71 - Experiencia en la aplicación 1,29 1,13 1.00 0,91 0,82 - Capacidad de los programadores 1,42 1,17 1.00 0,86 0,70 - Experiencia en S.O. utilizado 1,21 1,10 1.00 0,90 - - Experiencia en el lenguaje de programación 1,14 1,07 1.00 0,95 - - Prácticas de programación modernas 1,24 1,10 1.00 0,91 0,82 - Utilización de herramientas software 1,24 1,10 1.00 0,91 0,83 - Limitaciones de planificación del proyecto 1,23 1,08 1.00 1,04 1,10 - Ejemplo estimación
  • 67. Ph.D. Franklin Parrales 67 23/10/2021 Proceso de Software Carrera de Software – Calculo de la variable FAE (multiplicador): • FAE = 1,15 * 1,00 * 0,85 * 1,11 * 1,00 * 1,00 * 1,07 * 0,86 * 0,82 * 0,70 * 1,00 * 0,95 * 1,00 * 0,91 * 1,08 = 0,53508480 – Cálculo del esfuerzo del desarrollo: • E = a (SIZE)b * FAE = 3,2 * (8.363)1,05 * 0,53508480 = 15,91 personas /mes – Cálculo tiempo de desarrollo: • T = c Esfuerzod = 2,5 * (15,91)0,38 = 7,15 meses – Productividad: • PR = SIZE/Esfuerzo = 8363/15,91 = 525 ,64 LDC/personas mes – Personal promedio: • P = E/T = 15,91/7,15 = 2,22 personas Ejemplo estimación Según los resultados necesitaremos un equipo de 3 personas trabajando alrededor de 7 meses, pero como una restricción era 3 meses incrementamos a 6 el numero de personas. 1 Jefe de proyecto, 2 Analistas, 2 programadores y 1 Responsable de calidad.
  • 68. Ph.D. Franklin Parrales 68 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 69. Ph.D. Franklin Parrales 69 23/10/2021 Proceso de Software Carrera de Software Modelo Algorítmico de Costos de Software (MACOS) • Usa de base la métrica Puntos de Función y un Factor de Ajuste (FA) asociado a características del producto y del ambiente de desarrollo, para calcular el Esfuerzo Ajustado Estimado, EAE (medido en Horas - Hombre) y el Tiempo de Desarrollo Estimado, TDESE (medido en Horas). • El Factor de Ajuste del modelo MACOS considera la incidencia de 32 factores asociados a aspectos técnicos del diseño y construcción del producto de software, así como al entorno en el que se realiza el proyecto. • Estos factores se clasifican en: difíciles de cuantificar y cuantificables. – Para cuantificar estos factores se asigna a cada uno un valor denominado grado de influencia (GI), que varía entre -5 y +5, el cual indica la incidencia del factor en los costos del proyecto, donde el signo más significa aumento del esfuerzo y el signo menos significa disminución del esfuerzo
  • 70. Ph.D. Franklin Parrales 70 23/10/2021 Proceso de Software Carrera de Software Factores difíciles de cuantificar • INTUSU : Calidad de las interfaces con el usuario. • ESPREQ : Calidad de la especificación de requerimientos. • RECONT : Existencia de un plan de recursos y control del proyecto. • PLAPRO : Existencia de un plan detallado del proyecto. • TESTVV : Existencia de un plan detallado de pruebas, de verificación y validación. • AMBTRA : Calidad del ambiente de trabajo. • SEGPRI : Restricciones de seguridad y privacidad existentes. • DOCEXI : Calidad de la documentación. • CONPER : Calidad de la administración del proyecto.
  • 71. Ph.D. Franklin Parrales 71 23/10/2021 Proceso de Software Carrera de Software Factores cuantificables, perceptibles para el usuario del producto • VOLTRA : Volumen de transacciones a realizar • TAMADB : Tamaño de la base de datos. • DATARC : Características de captura, validación, actualización y almacenamiento de datos. • FACOPE : Facilidad de operación • FAFPLCA : Facilidad y flexibilidad de cambio. • RENOPE : Rendimiento requerido para la operación del producto de software. • CONPRO : Confiabilidad del producto de software entregado. • RESTPO : Restricciones en el tiempo de desarrollo • Del ambiente usuario – MODOP : Modo de desarrollo y operación del producto de software. – EXUSUA : Experiencia del usuario en la aplicación y en el procesamiento de datos.
  • 72. Ph.D. Franklin Parrales 72 23/10/2021 Proceso de Software Carrera de Software Factores cuantificables, perceptibles para el desarrollador • Del personal de desarrollo – CAPAN : Capacidad de los analistas. – EXPANA : Experiencia de los analistas. – CAPRO : Capacidad de los programadores. – EXPMV : Experiencia del grupo en la plataforma de desarrollo (configuración de hardware y software) necesaria para el desarrollo del producto de software. – EXPLEN : Experiencia en el lenguaje – COMPE : Continuidad del personal • Del computador – RAPCPU : Restricciones del almacenamiento principal y de uso de CPU durante el desarrollo. – TRESPOC : Tiempo de respuesta promedio del computador. – VOLAMV : Volatilidad de la plataforma de desarrollo. • Del proyecto – HERRAD : Herramientas de ayuda utilizadas. – PMOPRO : Prácticas modernas de programación utilizadas. • Del producto – COMPLP : Complejidad del producto de software. – FAICMA : El diseño del producto de software contempla su facilidad de instalación, conversión y mantenimiento.
  • 73. Ph.D. Franklin Parrales 73 23/10/2021 Proceso de Software Carrera de Software El modelo MACOS sigue los siguientes pasos: • Paso 1: Calcular los Puntos de Función No Ajustados (PFNA), esto es, contar por categoría las entradas, salidas, consultas, archivos internos e interfaces con otros productos de software. Asignar a cada una de ellas, una de las siguientes ponderaciones: Simple, Promedio o Compleja. PFi = cuentai * ponderación; i=1,…, 5 PFNA = suma( PFi ) • Paso 2: Calcular el FA de la siguiente manera: – A cada uno de los 32 factores que componen el Factor de Ajuste (FA), asignar uno de los grados de influencia (GI), según su incidencia en los costos del proyecto. SGI = suma(GIi), i=1,...,32 FA = 1 + (SGI/400) – Calcular el Esfuerzo Ajustado Estimado: EAE = 1,04 * (PFNA)1,22 * FA [horas-hombre] – Calcular el Tiempo de Desarrollo estimado: Contar el personal de tiempo completo disponible para el desarrollo del proyecto (NPTC) según los antecedentes del proyecto y la productividad del personal que se asignará. TDESE = EAE/NPTC [horas]
  • 74. Ph.D. Franklin Parrales 74 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 75. Ph.D. Franklin Parrales 75 23/10/2021 Proceso de Software Carrera de Software Modelo de Estimación para Proyectos Cliente/Servidor • El modelo que se plantea para calcular la estimación de esfuerzo de los proyectos Cliente/Servidor, se basa en PF. Para aplicarlo a proyectos Cliente/Servidor se debe tener en cuenta los siguientes puntos al calcular los puntos de función: – En la componente de los archivos de interface externos, la ponderación se verá afectada por la complejidad de la creación de la base de datos del sistema. Por esto se deberá dar un peso de promedio o complejo a este componente, dependiendo del tamaño de la base de datos. – En la componente de los archivos internos lógicos, se tomaran de todas las bases de datos (que intercalan con el sistema), como unidades separadas, es decir, cada tabla de la base de datos (o archivo de la base de datos) se tomará como un archivo interno lógico. – En cuanto al calculo del factor de complejidad para los puntos de función, se tendrá mucho cuidado a todas aquellas características relacionadas a la comunicación entre las bases de datos, ya que serán las que influirán en un alto nivel durante la ejecución del sistema. • El modelo considera los puntos de función (medidos) del sistema y el número de archivos (o el número de tablas que contiene la base de datos) (medidos) del sistema, como se verá más adelante. Con estas dos variables independientes se podrá estimar el esfuerzo del desarrollo del sistema
  • 76. Ph.D. Franklin Parrales 76 23/10/2021 Proceso de Software Carrera de Software Pasos para aplicar el modelo a un proyecto Cliente/Servidor Se presenta a continuación los pasos a seguir para estimar el esfuerzo de desarrollo de un proyecto Cliente/Servidor: • Paso 1: Calcular los Puntos de Función del proyecto – Definir en forma global para el proyecto: Entradas, Salidas, Consultas, Archivos lógicos internos y Archivos de interfase externos. Asociar a cada ítems de los grupos mencionados la identificación de simple, promedio o complejo según corresponda a las condiciones de desarrollo, observadas en ellos. Por ejemplo:
  • 77. Ph.D. Franklin Parrales 77 23/10/2021 Proceso de Software Carrera de Software Pasos para aplicar el modelo a un proyecto Cliente/Servidor • Paso 2: Obtener los Puntos de Función No ajustados (PFNA), el que estará dado por: 𝑃𝐹𝑁𝐴 = σ𝑖=1 5 𝑃𝐹𝑖 , donde 𝑃𝐹𝑖 cantidad de veces en que se obtendra el item x factori (o pesoi) donde i=1 al 5 – Por ejemplo: Suponiendo que se tiene los mismos datos que el caso anterior
  • 78. Ph.D. Franklin Parrales 78 23/10/2021 Proceso de Software Carrera de Software Pasos para aplicar el modelo a un proyecto Cliente/Servidor • Paso 3: Obtener el Factor de Complejidad Técnica, el que estará dado por: 𝐹𝐶 = 0.65 + 0.01 σ𝑖=1 14 𝑐𝑖 • Paso 4: Finalmente para obtener el valor de Puntos de Función (PF), estará dado por: 𝑃𝐹 = 𝑃𝐹𝑁𝐴 + 𝐹𝐶𝑇 – Por lo tanto se obtienen los Puntos de Función en [PF] del proyecto. • Paso 5: Aplicación del Modelo para Estimación de Proyectos C/S Esfuerzo Estimado=11.453+ 0.031⋅ X + 0.112⋅Y [PM] donde:
  • 79. Ph.D. Franklin Parrales 79 23/10/2021 Proceso de Software Carrera de Software Pasos para aplicar el modelo a un proyecto Cliente/Servidor • Paso 6: Presentación de resultados – En estos momentos hemos encontrado el Esfuerzo Estimado del proyecto en estudio en unidades [PM] (Persona–Mes, es decir, el tiempo en meses que se tarda una persona en realizar el proyecto entero solo), dependiendo del número de personas a trabajar en el proyecto se va disminuyendo el tiempo de desarrollo del proyecto.
  • 80. Ph.D. Franklin Parrales 80 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 81. Ph.D. Franklin Parrales 81 23/10/2021 Proceso de Software Carrera de Software Modelo de estimación para aplicaciones Intranet/Internet • En este modelo de estimación, se modifica la técnica de PF para destacar la importancia del concepto de reutilización en el desarrollo de aplicaciones Intranet/Internet. • Para analizar el impacto de la reusabilidad en los proyectos se definen los siguientes factores que influyen directamente en la reutilización. Estos factores se han clasificado en tres categorías y se muestran en la siguiente Tabla: Factores de MACOS
  • 82. Ph.D. Franklin Parrales 82 23/10/2021 Proceso de Software Carrera de Software Modelo de estimación para aplicaciones Intranet/Internet • Para los factores anteriores es necesario considerar las siguientes ponderaciones, estas se utilizan para llevar a cabo el ajuste de las estimaciones. Factor de Reutilización
  • 83. Ph.D. Franklin Parrales 83 23/10/2021 Proceso de Software Carrera de Software Fases de la Metodología • Fase 1: Analizar los requerimientos funcionales del sistema a desarrollar. • Fase 2: Aplicar la técnica actual de punto de función, para los requerimientos establecidos en el punto anterior. • Fase 3: Identificar los factores candidatos para definir los componentes reusables a utilizar en la estimación mostrada en la tabla de Ponderación para los factores. A cada uno de estos factores se les debe estimar el porcentaje de reutilización a partir de las ocurrencias, como muestra en la siguiente Tabla
  • 84. Ph.D. Franklin Parrales 84 23/10/2021 Proceso de Software Carrera de Software Fases de la Metodología • Fase 4: Finalmente predecir el impacto de los componentes reusables en el nuevo desarrollo. A través de la siguiente Tabla de ponderaciones presentada, encontrar el factor de reutilización Cálculo del factor de reutilización • Fase 5: Analizar el resultado obtenido en la fase 2, para combinarlos con los del paso anterior y obtener la nueva estimación. Pf reuso = Pf teorico* (1- factor de reuso) • Con lo que se obtiene el esfuerzo en PF corregido por la reutilización
  • 85. Ph.D. Franklin Parrales 85 23/10/2021 Proceso de Software Carrera de Software Contenido • Recursos. • Técnicas de Descomposición. • Estimación de Líneas de Código (LDC) y Puntos de Función (PF). • Líneas de Código (LDC) v/s Puntos de Función (PF). • Modelos para las Estimaciones • Modelo COCOMO Intermedio. • Modelo Algorítmico de Costos de Software. • Modelo de Estimación para Proyectos Cliente/Servidor • Modelo de estimación para aplicaciones Intranet/Internet • Otros modelos
  • 86. Ph.D. Franklin Parrales 86 23/10/2021 Proceso de Software Carrera de Software Estimación con casos de uso • A diferencia de una LOC o PF, el “caso de uso” de una persona puede requerir meses de esfuerzo, mientras que el de otra puede implementarse en un día o dos. • Smith [Smi99] sugiere que los casos de uso pueden usarse para estimación, pero sólo si se consideran dentro del contexto de la “jerarquía estructural” donde se usan para describir • Smith [Smi99] argumenta que cualquier nivel de esta jerarquía estructural puede describirse mediante no más de 10 casos de uso. Cada uno de éstos abarcaría no más de 30 escenarios distintos • En consecuencia, antes de poder usar los casos de uso para estimación, se establece el nivel dentro de la jerarquía estructural, se determina la longitud promedio (en páginas) de cada caso de uso, se define el tipo de software (por ejemplo, tiempo real, empresarial, ingeniería/científico, webapp, incrustado) y se considera una arquitectura burda para el sistema.
  • 87. Ph.D. Franklin Parrales 87 23/10/2021 Proceso de Software Carrera de Software Estimación con casos de uso • El software CAD (usado en la sección inicial de esta unidad) se compone de tres grupos de subsistemas: – subsistema de interfaz de usuario (incluye UICF), – grupo de subsistemas de ingeniería (incluye los subsistemas 2DGA, 3DGA y DAM) y – grupo de subsistemas de infraestructura (incluye los subsistemas CGDF y PCF). • Seis casos de uso describen el subsistema de interfaz de usuario. Cada uno se describe mediante no más de 10 escenarios y tiene una longitud promedio de seis páginas. • El grupo de subsistemas de ingeniería se describe mediante 10 casos de uso (se considera que están en un nivel superior de la jerarquía estructural). Cada uno de estos casos de uso tiene no más de 20 escenarios asociados con él y una longitud promedio de ocho páginas. • Finalmente, el grupo de subsistemas de infraestructura se describe mediante cinco casos de uso con un promedio de sólo seis escenarios y una longitud promedio de cinco páginas.
  • 88. Ph.D. Franklin Parrales 88 23/10/2021 Proceso de Software Carrera de Software Estimación con casos de uso • Una vez establecidas dichas características pueden usarse datos empíricos para establecer el número estimado de LOC o PF por caso de uso (por cada nivel de la jerarquía). • Entonces se usan datos históricos a fin de calcular el esfuerzo requerido para desarrollar el sistema. Para ilustrar cómo puede realizarse este cálculo, considere la siguiente relación: LOC estimadas= N x LOCprom + [(Sa/Sh – 1) (Pa/Ph – 1)] x LOCajuste • Donde: ✓ N: número real de casos de uso ✓ LOCprom: LOC promedio históricas por caso de uso para este tipo de subsistema ✓ LOCajuste: representa un ajuste con base en n por ciento de ✓ LOCprom: donde n se define localmente y representa la diferencia entre este proyecto y los proyectos “promedio” ✓ Sa: escenarios reales por caso de uso ✓ Sh: escenarios promedio por caso de uso para este tipo de subsistema ✓ Pa: páginas reales por caso de uso ✓ Ph: páginas promedio por caso de uso para este tipo de subsistema El ajuste representa hasta n por ciento de las LOC promedio históricas por caso de uso.
  • 89. Ph.D. Franklin Parrales 89 23/10/2021 Proceso de Software Carrera de Software Estimación con casos de uso Usando la relación anotada en la expresión anterior, con n = 30%, se elaboró la tabla siguiente: Observe la primera hilera de la tabla; los datos históricos indican que el software UI requiere un promedio de 800 LOC por caso de uso cuando el caso de uso no tiene más de 12 escenarios y se describe en menos de cinco páginas. Dichos datos se ajustan razonablemente bien para el sistema CAD (LOCajuste=800x0.70=560). Por tanto, la estimación LOC para el subsistema de interfaz de usuario se calcula con la expresión de la diapositiva anterior. Usando el mismo enfoque se hacen estimaciones para los grupos de subsistemas de ingeniería e infraestructura. La tabla resume las estimaciones e indica que el tamaño global del CAD se estima en 42 500 LOC.
  • 90. Ph.D. Franklin Parrales 90 23/10/2021 Proceso de Software Carrera de Software Estimación con casos de uso Utilizando 620 LOC/pm como la productividad promedio para sistemas de este tipo y una tarifa de mano de obra de $ 8000 por mes, el costo por línea de código es de aproximadamente $ 13 ($8000/620). Según la estimación del caso de uso y los datos históricos de productividad, el costo total estimado del proyecto es de $ 552,000 y el esfuerzo estimado es de 68 meses-persona.
  • 91. Ph.D. Franklin Parrales 91 23/10/2021 Proceso de Software Carrera de Software Estimación para proyectos OO(1) 1. Desarrolle estimaciones utilizando descomposición de esfuerzo, análisis de FP y cualquier otro método que sea aplicable para aplicaciones convencionales. 2. Usando el modelado de requisitos, desarrolle casos de uso y determine un conteo. Reconocer que el número de casos de uso puede cambiar conforme avance el proyecto. 3. A partir del modelo de análisis, determine el número de clases clave (denominadas clases de análisis). 4. Categorizar el tipo de interfaz para la aplicación y desarrollar un multiplicador para clases de apoyo: – Interface type Multiplier – No GUI 2.0 – Text-based user interface 2.25 – GUI 2.5 – Complex GUI 3.0
  • 92. Ph.D. Franklin Parrales 92 23/10/2021 Proceso de Software Carrera de Software Estimación para proyectos OO(2) 5. Multiplique el número de clases clave (paso 3) por el multiplicador para obtener una estimación del número de clases de apoyo. 6. Multiplique el número total de clases (clave + soporte) por el número medio de unidades de trabajo por clase. Lorenz y Kidd sugieren de 15 a 20 días-persona por clase. 7. Verifique la estimación basada en clases multiplicando el número promedio de unidades de trabajo por caso de uso
  • 93. Ph.D. Franklin Parrales 93 23/10/2021 Proceso de Software Carrera de Software Estimación sobre proyectos ágiles 1. Cada escenario de usuario (un mini-caso de uso) se considera por separado para fines de estimación. 2. El escenario se descompone en el conjunto de tareas de ingeniería de software que serán necesarias para desarrollarlo. 3. Cada tarea se estima por separado. Nota: la estimación puede basarse en datos históricos, un modelo empírico o "experiencia". – Alternativamente, el "volumen" del escenario se puede estimar en LOC, FP o alguna otra medida orientada al volumen (por ejemplo, recuento de casos de uso). 4. Las estimaciones de cada tarea se suman para crear una estimación del escenario. – Alternativamente, la estimación de volumen para el escenario se traduce en esfuerzo utilizando datos históricos. 5. Las estimaciones de esfuerzo para todos los escenarios que se implementarán para un incremento de software dado se suman para desarrollar la estimación de esfuerzo para el incremento.
  • 94. Ph.D. Franklin Parrales 94 23/10/2021 Proceso de Software Carrera de Software Modelo de estimación para webapps Los webapps adoptan con frecuencia el modelo de proceso ágil. Puede usarse una medida de PF modificada, junto con los pasos que se destacan en la estimación sobre proyectos ágiles. Roetzheim [Roe00] sugiere el siguiente enfoque cuando adapta puntos de función para estimación de webapps: • Entradas son cada pantalla o formulario de entrada (por ejemplo, CGI o Java), cada pantalla de mantenimiento y, si usa una metáfora de etiquetas de libreta, cualquier etiqueta. • Salidas son cada página web estática, cada guión de página web dinámica (por ejemplo, ASP, ISAPI u otro guión DHTML) y cada reporte (ya sea basado en web o administrativo por naturaleza). • Tablas son cada tabla lógica en la base de datos más, si usa XML para almacenar datos en un archivo, cada objeto XML (o colección de atributos XML). • Las interfaces conservan su definición como archivos lógicos (por ejemplo, formatos de registro único) dentro de las fronteras del sistema. • Consultas son cada una de las publicaciones externas o el uso de una interfaz orientada a mensaje. Un ejemplo usual son las referencias externas DCOM o COM.
  • 95. Ph.D. Franklin Parrales 95 23/10/2021 Proceso de Software Carrera de Software ESTIMACIÓN DE PROYECTOS DE SOFTWARE Unidad 4 Final de la unidad Y del curso…. !Muchas gracias a todos!