Upload
sulii-dulsiprincess
View
220
Download
0
Embed Size (px)
DESCRIPTION
powerpoint
Citation preview
Docente:MTI. MONTSERRAT MASDEFIOL SUAREZ
Materia:GESTION DE PROYECTOS
Carrera:INGENIERIA EN SISTEMAS COMPUTACIONALES
Tema:ESTIMACION DE COSTOS Y PLAZOS
Equipo:COBAXIN MARTINEZ ANGEL SANTIAGO
PEREZ XOLO LUIS DAVIDRAMIREZ LAZARO JOAQUIN
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN ANDRES TUXTLA
INTRODUCCION• A pesar de que estamos hablando del
término “estimación de coste” para proyectos de software, los valores obtenidos no se miden directamente en unidades monetarias.
• Los administradores del proyecto deben estimar las respuestas a las siguientes preguntas:
1. ¿Cuánto esfuerzo (personal necesario) se requiere para completar una actividad?
2. ¿Cuánto tiempo se necesita para completar una actividad?
3. ¿Cuál es el costo total de una actividad?
DESARROLLO
¿Cuánto cuesta desarrollar software?
¿Qué costos hay asociados al desarrollo de un producto de software?
• Costos de Hardware y Software• Costos de Viajes y Aprendizaje• Costos de Esfuerzo• Sueldos Ingenieros• Gastos de Seguros, Seguridad Social, etc,• Costos de Alquiler, Condominio, Luz, • Limpieza, Servicios Varios• Costos de Redes y Comunicación• Costos de Recursos Compartidos, • Administración, Salas de Reunión, etcétera
CONCEPTO DE ESTIMACION DE SOFTWARE
• Estimar es echar un vistazo al futuro con algún grado de incertidumbre.
• Una estimación es una predicción basada en un modelo probabilístico, no un modelo determinístico.
• Ya que el software es un producto sin existencia física propia y cuyo coste principal reside en su desarrollo o diseño (no en su fabricación), es lógico que se asuma que el coste de su producción está dominado por los gastos de personal.
– Tamaño– Esfuerzo
• Por eso la principal unidad de medición de coste del proyecto suele ser el número de salarios mensuales o anuales que deben pagarse. Los salarios suelen especificarse en personas-mes o personas-año.
• Para realizar estimaciones seguras de costos y esfuerzos se tienen varias opciones:
•Dejar la estimación para mas adelante.•Desarrollar las estimaciones en proyectos similares ya terminados.•Utilizar técnicas de descomposición relativamente sencillas para generar las estimaciones de costos y esfuerzo del proyecto. •Desarrollar un modelo empírico para el calculo de costos y esfuerzos del Software.
¿Cómo se puede estimar el tamaño y el esfuerzo necesario para desarrollar un sistema?
• Es necesario considerar otros costos indirectos asociados (gastos administrativos, de mantenimiento, infraestructura, equipos, etcétera)
¿Cómo mido el tamaño de una aplicación?
•Medir tamaño de una Aplicación...
•Medir la Productividad de un Programador...
1 #include <iostream.h>2 main() {3 cout << "Hello World!" << endl;4 return 0;5 }
Hola Mundo en C++ (Aproximadamente 5
líneas de código)
LINEAS DE CODIGO
1 ;; Hello World for the nasm Assembler (Linux)2 SECTION .data3 msg db "Hello, world!",0xa ; 4 len equ $ - msg5 SECTION .text6 global main7 main:8 mov eax,4 ; write system call9 mov ebx,1 ; file (stdou)10 mov ecx,msg ; string11 mov edx,len ; strlen12 int 0x80 ; call kernel13 mov eax,1 ; exit system call14 mov ebx,0 15 int 0x80 ; call kernel
Hola Mundo en Assembler
(Aproximadamente 15 líneas de código)
UN PROGRAMA ESCRITO EN C++ TIENE 500.000 LINEAS DE CODIGO (500 KLOC)
UN PROGRAMA ESCRITO EN ASSEMBLER TIENE 900.000 LINEAS DE CODIGO (900
KLOC)
- ¿CUÁL DE LOS DOS PROGRAMAS ES MAS GRANDE?- ¿CUÁL DE LOS DOS REQUIRIO MAS ESFUERZO?
¿CUÁL DE LOS DOS ES MAS PRODUCTIVO?
UN PROGRAMADOR ESCRIBE UNAS 1000 LINEAS DE CODIGO A LA SEMANA
(ENSAMBLADOR)
OTRO PROGRAMADOR ESCRIBE UNAS 500 LINEAS DE CODIGO A LA SEMANA (EN c++)
¿CUÁL DE LOS PROGRAMADORES ES EL MAS PRODUCTIVO?
UN PROGRAMADOR ESCRIBE UNAS 500 LINEAS DE CODIGO A LA SEMANA (C++)(POSTERIORMENTE EN SU CODIGO SE ENCUENTRAN 3 BUGS)
(ESCRIBE CODIGO DIFICIL DE ENTENDER / ILEGIBLE)
OTRO PROGRAMADOR ESCRIBE UNAS 750 LINEAS DE CODIGO A LA SEMANA (EN C++)(Y POSTERIORMENTE EN SU CODIGO SE ENCUENTRAN 6 BUGS)
(ESCRIBE CODIGO FACIL DE ENTENDER)
OTRO PROGRAMADOR ESCRIBE UNAS 1200 LINEAS DE CODIGO A LA SEMANA (EN C++)(POSTERIORMENTE EN SU CODIGO SE ENCUENTRAN 3 BUGS)
(ESCRIBE CODIGO FACIL DE ENTENDER)
LAS LINEAS DE CODIGO EN SI MISMAS NO SON UNA METRICA ADECUADA PARA MEDIR EL TAMAÑO DE
UN SISTEMA
ES NECESARIA UNA METRICA QUE SEA INDEPENDIENTE DE LA TECNOLOGIA UTILIZADA
ENTONCES…
METODOS DE ESTIMACION DE COSTOS
OPINION DE EXPERTOS
•Basada en la “Adivinación” se basa en la experiencia personal.
ESTIMACION POR ANALOGIA
•Se compara el proyecto que se va a desarrollar con uno o mas proyectos terminados de los que se disponen datos.
DESCOMPOSICIÓN
•Consiste en descomponer el producto que se va a construir en tareas sencillas hasta un nivel de detalle tal que se pueda estimar directamente el coste de cada una de dichas unidades elementales .
MODELOS DE ESTIMACION
•Formulas matemáticas que relacionan los diversos parámetros del proyecto con el coste o esfuerzo requerido.
MODELOS DE ESTIMACION
•Proporcionan estimaciones directas del esfuerzo o de la duración.•La mayoría son modelos de factores empíricos que cuentan con una parte principal y un cierto numero de factores de ajuste. Uno de los ejemplos mas claros es el modelo COCOMO [BOEHMM].
MODELOS DE COSTE
MODELOS DE ESTIMACION
•Muestran las relaciones en el tiempo entre dos o más parámetros de coste (por ejemplo, esfuerzo, duración y nivel de plantilla).•Los basados en el modelo de curva de Rayleigh son un caso típico de modelos de restricciones.
MODELOS DE
RESTRICCIONES
PUNTOS DE FUNCION
• Es una métrica que sirve para estimar el tamaño de una aplicación de forma independiente del lenguaje de programación o las tecnologías utilizadas.
• Los requisitos funcionales del sistema son identificados y clasificados dentro de cada uno de los siguientes cinco tipos: entradas, salidas, interacciones con el usuario, interfaces externas y archivos utilizados por el sistema.
• La métrica fue fundamentalmente diseñada para sistemas de información de gestión (de negocios, empresariales etc.)
5 COMPONENTES BASICOS
•ENTRADAS: IU -> (Archivos / BD / Otros Sistemas)•SALIDAS: (Archivos / BD / Otros Sistemas) -> IU•INTERACCIONES / CONSULTAS: IU -> Archivos / BD -> IU•INTERFACES EXTERNAS: Integración con otras aplicaciones, bases de datos, etc. externas al sistema.•ARCHIVOS INTERNOS: Integración con fuentes de datos internas
REALIZAMOS UNA ESTIMACION
CATEGORIA CANTIDAD
ENTRADAS 4
SALIDAS 3
INTERACCIONES 4
INTERFACES EXTERNAS 5
ARCHIVOS INTERNOS 2
DE DONDE SALEN LOS NUMEROS
QUIEN DECIDE EL “RATING”
Se calcula el CAF(Complexity Adjustment Factor)
CAF = 0.65 + 0.01 * NCAF = 0.65 + 0.01 * 43CAF = 1.08
SE CALCULA EL AFP(Adjusted Funtion Points)
• AFP = FP * CAF• AFP = 114 * 1.08• AFP = 124
Si estamos programando en Java
• Es posible calcular la cantidad de lineas de codigo (Source Lines Of Code / SLOC) que tendrá la aplicación:
MODELADO ALGORITMO DE FUNCION
CALCULAR EL ESFUERZO
LA UNIDAD P/M ES UNA UNIDAD SIMILAR A LAS HORAS / HOMBRE QUE SIRVE PARA CALCULAR EL ESFUERZO NECESARIO PARA COMPLETAR UNA
TAREA.
SI UN PROYECTO TOMA X P/M ESTO SIGNIFICA QUE SI SE PUDIERAN CONTRATAR X PERSONAS
ES UNA UNIDAD QUE PERMITE TEORICAMENTE DETERMINAR LA CANTIDAD DE PERSONAS QUE SERAN NECESARIAS PARA TERMINAR UN PROYECTO EN
CIERTO TIEMPO
CONCLUSION