Está en la página 1de 44

Estimacin de Tamao de

Software
Asignatura
CALIDAD DE SOFTWARE

Sergio Zapata Magdalena Arron - Marita Romagnano

2016
Qu significa Tamao de Software?
Introduccin
Todo proyecto de desarrollo de software debe
partir con una buena planificacin

a. Estimar los costos , tiempos y dems


variables de un proyecto.
b. Determinar los riesgos que trae consigo la
ejecucin del proyecto (cuidado con los
cambios!).
c. Desarrollar un plan de trabajo.
d. Verificar los avances y/o modificaciones.
e. Controlar los avances.
Introduccin
La estimacin de costos y plazos realistas no es
tarea fcil.

El determinante principal de los costos y plazos de un


PDS es el tamao del producto software.

Tal medida del tamao est en relacin directa con el


esfuerzo de desarrollo.
Introduccin
Estimaciones
Estimacin, no es algo que se deber cumplir inexo-
rablemente, sino que es "lo ms probable" que suceda.

Es importante pensar en una estimacin como en un


rango ms que como un simple nmero exacto.

Una estimacin o prediccin no es un objetivo, sino


una valoracin probabilstica.
Cmo medimos tamao de sw ?
Como medimos esfuerzo?

Ser una medicin precisa?


Vale la pena?
Puntos de Funcin

Algunos de los mtodos de estimacin son:

Lneas de Cdigo (LDC)

Puntos de Funcin (PF)


Puntos de Funcin

Es la primera Mtrica orientada a la funcionalidad del sw.

Al ser una medida de funcionalidad deben ser indepen-


diente de la tecnologa y del lenguaje de programacin
empleado.
Los Puntos de Funcin pueden ser determinados a partir
de la especificacin de requisitos y la especificacin del
diseo.
Sugiere un acercamiento a medidas de productividad.
Puntos de Funcin
La medicin de los sistemas de informacin mediante los
PF proporciona una estimacin del tamao del software
independiente de la tecnologa utilizada en su desarrollo y
dependiente nicamente de la funcionalidad que el sistema
proporciona al usuario.

Los PF miden el SW calificando la funcionalidad que


proporciona externamente, basndose en el diseo
lgico del sistema
A mayor tamao del sw mayor cantidad de puntos de
funcin.
Puntos de Funcin: el mtodo

1) Identificar los elementos o componentes del


sistema.
2) Asignarle un peso a cada uno segn complejidad
3) Obtener el valor funcional del sistema.
4) Obtener el valor funcional ajustado segn la
aplicacin.
5) Determinar el esfuerzo.
Metodologa de los Puntos de Funcin

El valor de los PF se determina por medio de los


siguientes elementos o componentes:

Entradas
Salidas
Consultas

Archivos Lgicos Internos


Archivos de Interfaz Externos
Entradas

Informaciones que
llegan a la aplicacin
desde el exterior.
Tienen una sola
direccin (exterior a
interior)
Siempre actualizan
algn archivo interno.
Tres tipos de entradas:
alta, baja y
modificacin
Clasificacin de las Entradas

DIFICULTAD Cantidad de Entradas


ENTRADAS
1-4 5-15 + de 16

0 1 archivos Reducida Reducida Media


accedidos

2 archivos Reducida Media Elevada


accedidos

3 + archivos Media Elevada Elevada


accedidos
Salidas
Informaciones elaboradas
o dato derivado (procesamiento
interno) por la aplicacin que
son transmitidas al usuario
u otro programa.
Tienen una sola direccin
(interior a exterior).
Pantallas, Informes,
grficos o mensajes.
Puede actualizar un
archivo interno
Clasificacin de las Salidas

DIFICULTAD Cantidad de Salidas


SALIDAS
1-4 5-15 + de 16

0 1 archivos Reducida Reducida Media


accedidos

2 archivos Reducida Media Elevada


accedidos

3 + archivos Media Elevada Elevada


accedidos
Consultas

Es una respuesta a una


entrada interactiva por parte
del usuario o programa que
produce inmediatamente
una salida interactiva.
La entrada no modifica
datos.
En la salida no hay
procesamiento ni dato
derivado.
Clasificacin de las Consultas

Calculamos la complejidad de la parte de Entrada.

Calculamos la complejidad de la parte de Salida.

La complejidad de la consulta es la mayor entre


las dos anteriores.
Archivos Lgicos Internos

Agrupaciones de datos, tal y


como los percibe el usuario.

Los grupos de datos sern


accedidos y actualizados por
la aplicacin (internos).
Clasificacin de Archivos Lgicos Internos
Archivos de Interfaz Externos

Archivos a los que


accede la aplicacin
con el nico objetivo DIAGRAMA DE CONTEXTO
de obtener
informacin.
Son mantenidos por
otras aplicaciones.
Nunca los actualiza la
aplicacin.
Clasificacin Archivos de Interfaz Externos
Tabla de Factores Multiplicatvos
COMPLEJIDAD COMPLEJIDAD COMPLEJIDAD
REDUCIDA MEDIA ELEVADA
Componente

ENTRADAS 3 4 6

SALIDAS 4 5 7

CONSULTAS 3 4 6

ARCHIVOS
7 10 15
INTERNOS

ARCHIVOS
5 7 10
EXTERNOS
Ejemplo: programa de revisin
ortogrfica
Archivo Externo:
1. Documento que se ha de
revisar

Entrada:
1Nombre del documento
que se ha de revisar

COMPROBADOR
ORTOGRAFICO
COMPROBADOR
Consulta :
1Cantidad de veces que se
ORTOGRAFICO
repite la palabra mas ?
USUARIO

Archivo Interno:
1. Diccionario

SALIDA:
1. Nmero total de palabras revisadas
2. Nmero total de errores detectados
3. Lista de palabras con errores
ortogrficos
Factores de Influencia

El total de PF no ajustados se incrementa o decrementa


mediante un coeficiente multiplicador, comprendido en el
intervalo (0.65 1.35), a fin de ajustar la evaluacin de la
dificultad del sistema.
PFNA * 65% <= PFA <= PFNA * 135%
Este ajuste se fundamenta en 14 Factores denominados
Factores de Influencia para Ajuste de la Complejidad.

Se evalan de 0 a 5 indicando con un 0 que no tiene


influencia hasta 5 que indica que la influencia es total.
Grado de Influencia de los
factores de correccin
O = No incide
1 = Incidental
2 = Moderado
3 = Promedio
4 = Significativo
5 = Muy importante
Factores de Influencia
Comunicacin de Datos: Datos o informacin de control enviados
o recibidos mediante algn sistema de
comunicacin.
Ej.: Un programa para un banco multinacional que ha de
gestionar transferencias monetarias a todas sus sucursales .

Procesamiento Distribuido: Se refiere si la aplicacin es monoltica,


ejecutndose en un nico procesador o
son cdigos independientes que se
ejecutan en distintos procesadores
persiguiendo u fin comn.
Ej.: Un motor de busqueda en la web, donde el procesamiento est a cargo de varios ordenadores.
Factores de Influencia
Objetivos de Rendimiento: Si el rendimiento es un requisito del
sistema. Es decir si es crtico algn factor como tiempo de
respuesta o cantidad de operaciones por hora.
Se tendr que hacer consideraciones especiales
durante el diseo, codificacin y mantenimiento.
Ej.: Un sistema de trafico areo.

Configuracin de uso intensivo: Indica si el sistema se va a utilizar


en un entorno operativo que est siendo utilizado
de manera intensiva.
Ej.: El sistema de la Universidad .
Factores de Influencia

Tasa de transaccin rapida: Ser de una puntuacin de 5 si el volumen


de transacciones es lo suficientemente alto para
requerir un esfuerzo de desarrollo especial, para
conseguir la productividad deseada.
Ej.: Un sistema de banco que realiza miles de transacciones por la noche para
cerrar todos los libros del da siguiente.

Entrada de datos en lnea: Tiene que ver con el porcentaje de


transacciones interactivas, por ejemplo ser 0 si
tiene menos del 15 % 5 si tiene mas del 50%
Ej.: Un sistema de aceptacin de prestamos hipotecarios.
Factores de Influencia
Amigabilidad en el diseo: Se demanda eficiencia para el usuario
en su trabajo, es decir se tiene que disear
e implementar la aplicacin con interfaces
fciles de usar y con ayudas integradas.
Ej.: Un sistema de puntos de informacin.

Actualizacin de datos en lnea: Tendr puntuacin mxima si las


actualizaciones en lnea son obligatorias,
quizs debido a la necesidad de hacer
copias de seguridad o proteger datos
contra cambios.
Ej.: Un sistema de reserva de pasajes.
Factores de Influencia
Procesamiento complejo: Tendr puntuacin mxima si requiere gran
cantidad de decisiones lgicas complicados procedimientos
matemticos.
Ej.: Un sistema de usos mdicos donde a partir de un conjunto de sntomas efecta una amplia serie de decisiones
lgicas.

Reusabilidad: Indica si gran parte de la funcionalidad del proyecto,


est pensado para un uso intensivo por otras aplicaciones.
Ej.: Un procesador de texto diseado para que sus barras de herramientas puedan incorporarse en otras
aplicaciones.
Factores de Influencia

Facilidad de instalacin: Su puntuacin ser de 5 si la instalacin


requiere de algn proceso en especial. Es una caracterstica
importante en el diseo.

Facilidad operacional: Se evala la intervencin humana en una apli-


cacin. Un valor 5 indica que es completamente automtico.
Factores de Influencia

Multiplicidad de emplazamiento: Una puntuacin mxima indicar


que el sistema ha sido diseado para soportar mltiples
instalaciones en diferentes organizaciones, incluso en distintas
plataformas.
Ej.: Un sistema para empresas multinacionales donde se tendr que tomar en cuenta las diferentes
caractersticas de los pases.

Versatilidad: Se tendr que hacer consideraciones especiales


durante el diseo, codificacin y mantenimiento
para que en el sistema sea fcil de introducir
cambios y fcil de adaptar al usuario.
Ej.: Un sistema de previsin financiera capaz de efectuar pronsticos
mensuales, trimestrales anuales.
Uso de los Factores de Influencia

Cuando se han considerado los 14 FI, asignandoles puntuaciones individuales se


procede a realizar el ajuste de complejidad final de la siguiente manera:

Multiplicar la suma de los FI por 0.01 para convertir la suma en un valor decimal.
Sumar la constante 0.65 al valor decimal para crear un factor multiplicador de la
complejidad.
Multiplicar el valor no ajustado del total de los puntos de funcin por el multipli-

cador de la complejidad, para conseguir el valor de puntos de funcin ajustado.

PFA = PFNA * (0,65 + (0.01 * FI))


Cada factor de complejidad afecta en +/- 2,5% en los PFNA
PFNA * 65% <= PFA <= PFNA * 135%
Caso prctico
Suponemos un proyecto medio con 10 entradas, 10 salidas, 10 consultas, 1 archivo
de datos y 1 interface. Asumimos una complejidad media para estos factores.

PESO
CONTEO ELEMENTOS RESULTADO
Reducida Media Alta

__* 3
10 ENTRADAS __*4 __*6 = 40
__*4
10 SALIDAS __*5 __*7 = 50
__*3
10 CONSULTAS __*4 __*6 = 40
ARCHIVOS LGICOS __*7
1 __*10 __*15 = 10

__*5
1 ARCHIVOS DE __*7 __*10 = 7
INTERFACE

TOTAL 147
Caso prctico
Factor de Influencia Puntuacin

Comunicaciones de datos 0

Procesamiento distribuido 0

Objetivos de rendimiento 4

Configuracin de uso intensivo 3

Tasas de transaccin rpidas 3

Entrada de datos en lnea 4

Amigabilidad en el diseo 4

Actualizacin de datos en lnea 2

Procesamiento complejo 3

Reusabilidad 0

Facilidad de instalacin 4

Facilidad operacional 4

Multiplicidad de emplazamientos 5

Versatilidad 4

TOTAL 40
Caso prctico
La suma de los factores de influencia es 40, tendremos
entonces un valor para el factor de ajuste de la
complejidad de:

40*0,01+0,65=0,40+0,65=1,05

y el valor final de los puntos de funcin ajustados ser:

147*1,05= 154
Ahhh... los puntos de
funcin ajustados son
154 !!!! Es decir el tamao
de este sw es 154 PFA.

...y esto. para que me


sirve ??!!
Esfuerzo y puntos de funcin

o Regla genrica 1 Pfa = 8hh


o Segn el lenguaje:
Cobol 20h x pfa
VB 4-6h x pfa
4gl 2h x pfa
Reglas de Capers Jones

Tiempo de desarrollo en meses: PFA0.4


Nro de Personas Necesarias: PF / 150
Esfuerzo = Tiempo x nro de personas
Hiptesis 1 mes hombre = 132 horas
Tabla de datos historicos

Nombre Proyecto Puntos de Funcin Lenguaje Esfuerzo en horas

Snia 200 COBOL 5.017


Palncia 150 PASCAL 2.569
Turia 375 4GL 3.011
Albufera 500 PASCAL 9.479
Magro 425 4GL 3.342
Cabriel 800 PASCAL 13.349
Jcar 180 PASCAL 2.800
Serpis 325 4GL 2.541
Montnegre 225 PASCAL 4.528
Segura 470 COBOL 13.218
Conclusin

La estimacin de los parmetros del software es una tarea fundamental


en la gestin del proyecto.
La habilidad de estimar se adquiere con la prctica y se mejora con la
experiencia.
Esta tarea ha de abordarse al principio del proyecto y se debe realizar
de forma consiente ya que una mala estimacin nos puede hacer usar
recursos de ms.
Los mtodos de estimacin estn evolucionando permanentemente,
podemos ver los mtodos algortmicos como PF Lneas de cdigos y
los mtodos no-algortmicos basados en tcnicas de inteligencia
artificial y ms concretamente de aprendizaje de mquina, todos
buscan una claro objetivo LA CALIDAD EN LA ESTIMACION.
Bibliografa
Albrecht, A.J.: "Measuring Application Development Productivity",
Proceedings of the Joint SHARE/GUIDE/IBM Application Development
Symposium, Oct. 1979, pp. 83-92.

www.ifpug.org
http://www.unse.edu.ar/
http://agamenon.unidades.edu.co/ecos/ps
http://www.galeon.com/l_manuales
http://www.sc.ehu.es/jiwdocoj