ESTIMACION DE COSTE DEL SOFTWARE

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Metrica de Estimación COCOMO
IDENTIFICAR NECESIDADES, PROBLEMAS U OPORTUNIDADES
MODELOS EMPÍRICOS DE ESTIMACIÓN
Gestión de Proyectos Informáticos
MÉTODOS DE ESTIMACIÓN Y GESTIÓN DEL RIESGO
MEDICIONES DE SOFTWARE
Fundamentos de Diseño de Software INFT.1
ESTIMACIÓN DEL ESFUERZO EN EL DESARROLLO DE SOFTWARE
ADMINISTRACIÓN DE PROYECTOS INFORMÁTICOS
Ing. Francisco Rodríguez Novoa
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ESTIMACION: TIPOS, TECNICAS Y METODOS MODELO COCOMO
GESTIÓN DE LOS COSTOS DEL PROYECTO
Herramientas Automáticas de Estimación
Gestión de proyectos Es la primera etapa de Ingeniería del Software.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Puntos de función Integrantes de X Soft: - Carlos Retana
Fundamentos de la Gestión de Proyectos
Tipos de Métricas.
Métricas en Proyectos de Software Prof. A/S: Diego Gutiérrez Gerenciamiento y Dirección de TI.
Métricas de Software Medimos para mejorar cuando recogemos la información cuantitativa que nos ayuda a identificar obstáculos, problemas de raíz, ineficiencias.
Guia Diseño Robert Echeverria
TECNICAS DE ESTIMACION DE COSTOS DE PROYECTO SOFTWARE
HERRAMIENTAS CASE.
Métricas de productividad y calidad
TEMA 4. ESTIMACIÓN DEL ESFUERZO EN EL DESARROLLO DE SOFTWARE
Informe del presupuesto y evaluación de alternativas de inversión.
PROCESO DE DESARROLLO. Introducción Mediante esta presentación se pretende describir el proceso de desarrollo del TALLER I.
ESTIMACIÓN DEL PROYECTO
Planeación con Planning Tool y DotProject Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Rubby Casallas, Andrés Yie.
M.C. Juan Carlos Olivares Rojas
Medición y Métricas del Software
Problemática de la estimación.
Administración Proyectos Jorge Baracaldo Robin Ochoa.
Conceptos de Gestión y Planificación de Proyectos Software
Estimaciones de Proyecto ISF5501 Ingeniería de Software Semana 8.
Plan de Sistemas de Información (PSI)
Modelos Empíricos de Estimación
Ingeniería de Software
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Estimación Al principio, el coste del software constituía un pequeño porcentaje del coste total de los sistemas informáticos. Hoy el software es el elemento.
Construcción de Software
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Planificación de Proyectos de Software
Estudio de Viabilidad del Sistema (EVS)
Técnicas de Estimación de Esfuerzo
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
1 ESTIMACIÓN DEL ESFUERZO EN EL DESARROLLO DE SOFTWARE Victoria Coronado Karen Zorro Alejandra Rayo Diana Leiva Seminario de Grado 3.
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Medición y Métricas del Software
Alexander Aristizabal Ángelo flores herrera
A DMINISTRACIÓN DE R IESGOS Plan de contingencia.
Diseño de Sistemas.
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
Conceptos sobre GESTIÓN DE PROYECTOS
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Estimación de proyectos de software
Especialidad en Administración de Proyectos
problemas de la calidad del software
Estructurar tus ideas para hacerlas realidad
Estimación de Puntos de Función
Actividad 12. Estimación en los proyectos de software. M.C. Juan Carlos Olivares Rojas Syllabus May, 2009.
Proceso de desarrollo de Software
El proceso del Software y Métricas del proyecto
Semestre VIII – Lapso Académico Ingeniería en Informática.
REPUBLICA BOLIVARIANA DE VENEZUELA. MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA. UNIVERSIDAD POLITECNICA TERRITORIAL DEL NORTE DE MONAGAS.
1 ESTIMACIÓN basada en PUNTOS de FUNCIÓN. 2 Agenda de la presentación 4 Técnicas de estimación. 4 Puntos de Función. (En general) 4 Puntos de Función.
Transcripción de la presentación:

ESTIMACION DE COSTE DEL SOFTWARE

INTRODUCCIÓN 1.1. ¿Qué es un proyecto de Sistema o Software? ÁMBITO DEL SOFTWARE RENDIMIENTO RESTRICCIONES INTERFACES FIABILIDAD FUNCIÓN 1.1. ¿Qué es un proyecto de Sistema o Software? Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimación. 1.2. Objetivos de la Planificación del Proyecto. El objetivo de la Planificación del proyecto de Software es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación temporal. PLANIFICACIÓN ESTIMACIÓN RIESGO EXPERIENCIA DATOS HISTÓRICOS

2.- FACTORES EN EL COSTO DEL SOFTWARE 2.1 Capacidad del programador 2.2 Complejidad del producto (Software) - Programas de Aplicación (procesamiento de datos y programas de datos). - Programas de Apoyo (compiladores, ligadores y sistemas de inventarios). - Programas de Sistema (sistema de base de Datos, sistemas operativos y sistemas para tiempo real).

Consecuencia de la falla 2.3 Tamaño del Producto.- Un proyecto grande de programación es obviamente mas cara en su desarrollo que un o pequeño. 2.4 Tiempo Disponible.- El esfuerzo total del proyecto se relaciona con el calendario de trabajo asignado para la terminación del proyecto 2.5 Nivel de Confiabilidad Requerido.- La confiabilidad puede expresarse en términos de exactitud, firmeza, cobertura y consistencia de código fuente. Categoría Consecuencia de la falla Factor Muy Baja Baja Nominal Alta Muy Alta Algunas molestias menor Las perdidas son fáciles de recuperar Dificultad relativa en la recuperación Gran perdida financiera Riesgo de una vida 0.75 0.88 1.00 1.15 1.40

Normalización de las métricas 2.6 Nivel Tecnológico El nivel de tecnología empleado en un proyecto de programación se refleja en el lenguaje utilizado 3.- TÉCNICAS DE DESCOMPOSICIÓN Normalización de las métricas Los datos normalizados son utilizados para evaluar el proceso y el producto (pero nunca a los individuos) normalización orientada al tamaño —Por líneas de código normalización orientada a la función —Por puntos función

Problemas de la utilización de LDC 3.1.- Estimación LDC (LOC es la sigla de la expresión inglesa Lines of Code. ) La medida más utilizada para determinar el tamaño de un proyecto informático ha sido, durante mucho tiempo, la de las líneas de código del software final obtenido. Problemas de la utilización de LDC * no existe definición estándar de LDC (p.ej., ¿se consideran LDC los comentarios?) * líneas físicas o lógicas * contabilización del código reutilizable * aplicaciones en diferentes lenguajes * estilos individuales de programación

Ejemplo de LOC VE = (Sopt + 4Sm + Spes)/6 Funciones identificadas: Hay que desarrollar un software CAD que aceptará datos geométricos de 2 o 3 dimensiones por parte del ingeniero. Éste controlará el sistema CAD por medio de una interfaz que debe tener un diseño de buena calidad. Una base de datos CAD contiene todos los datos geométricos y la información de soporte. Se desarrollarán módulos de análisis de diseño para producir la salida requerida que se va a visualizar en varios dispositivos gráficos. El software se diseñará para controlar e interconectar diversos periféricos, como un ratón, un digitalizador y una impresora láser. Funciones identificadas: interfaz de usuario y facilidades de control (IUFC) análisis geométrico de dos dimensiones (AG2D) análisis geométrico de tres dimensiones (AG3D) gestión de base de datos (GBD) facilidades de la interfaz gráfica (FIG) control periféricos (CP) módulos de análisis del diseño (MAD) Estimación en LDC de AG3D: optimista: 4600 más probable: 6900 pesimista: 8600 descomposición de funciones VE = (Sopt + 4Sm + Spes)/6 Datos históricos: productividad media de la organización en proyectos similares: 620 LDC/pm Tarifa laboral: 8000 $ /mes Coste LDC: 13 $ Función LDC estimada IUFC 2300 AG2D 5300 AG3D 6800 GBD 3350 FIG 4950 CP 2100 MAD 8400 Total 33200 métricas de proyectos anteriores Coste total proyecto: 431000 $ Esfuerzo estimado: 54 personas-mes

3.2 Estimación por PF (Expresión de Punto Función) Puntos de función: relación empírica basada en medidas cuantitativas del dominio de información del software y valoraciones subjetivas acerca de la complejidad del software 3.2 Estimación por PF (Expresión de Punto Función) Determinación de los puntos de función El recuento de los puntos de función se elabora a partir de determinadas características funcionales, que pueden ser de datos o de transacción: ¿Por qué la preferencia a FP? independencia del lenguaje de programación utiliza inmediatamente características contables del “dominio de información” del problema no “penalizar” implementaciones que requieren menos LOCs que otras (vs. mantenimiento) facilitan el reuso y favorecen a las iniciativas orientadas a objetos

Calcular Puntos Función Analizar el dominio de la información de la aplicaciòn y desarrollar el conteo Establecer el conteo para cada dominio de entrada e interfaces de sistema Pesar cada conteo por evaluación de la complejidad Asignar el nivel de complejidad o peso para cada conteo evaluar la influencia de factores globales que afecten la aplicación Grado de importancia de factores externos Fi tales como reuso, concurrencia, SO,... Puntos función =  (conteo x peso) x C Calcular puntos función donde: Factor de complejidad: C = (0.65 + 0.01 x N) Grado de influencia: N =  Fi

Analizar el Dominio de la Información factor de ponderación parámetro de medida conteo simple prom. complejo # de entradas de usuario X 3 4 6 = # de salidas de usuario X 4 5 7 = # de consultas X 3 4 6 = # de archivos X 7 10 15 = # of interfaces ext. X 5 7 10 = conteo-total factor de complejidad puntos función

Considerar la Complejidad Los factores se tasan en una escala 0 (sin importancia) – 5 (muy importante) comunicaciones de datos funciones distribuidas configuración pesada tasa de transacción entrada de datos en lìnea eficiencia para el usuario actualización en línea procesamiento complejo facilidad de instalación facilidad operacional sites múltiples facilidad de cambios

Ejemplo FP PF estimado = 372 Copia de seguridad y recuperación 4 Comunicaciones 2 Proceso distribuido 0 Rendimiento crítico 4 Entorno operativo existente 3 Entrada de datos online 4 Transacciones entrada en varias pant. 5 Archivos maestros actualizados online 3 Complejidad valores dominio información 5 Complejidad procesamiento interno 5 Código diseñado para reutilización 4 Conversión en diseño 3 Instalaciones múltiples 5 Aplicación diseñada para cambios 5 PF estimado = cuenta total x (0,65 + 0,01 x Suma (Fi) PF estimado = 372 Coste total proyecto: 457000 $ Esfuerzo estimado: 58 personas-mes Datos históricos: productividad media de la organización en proyectos similares: 6,5 PF/pm Tarifa laboral: 8000 $ /mes Coste por PF: 1.230 $ métricas de proyectos anteriores

3.3 Relación entre puntos de función y líneas de código Aunque los puntos de función y las líneas de código sean diferentes, es posible encontrar una especie de equivalencia entre los unos y las otras relación entre LDC y PF: depende del lenguaje escogido Lenguaje LDC/PF (media) Ensamblador 320 C 128 Cobol 105 Fortran 105 Pascal 90 Ada 70 Lenguajes OO 30 L4G 20 Lenguajes visuales 4 4.-TECNICAS DE ESTIMACION La estimación se utiliza para definir si el presupuesto del proyecto y el producto se ajusta para que las cifras del presupuesto se cumplan.

4.1 Estimación basada en el enfoque descendente o ascendente Estos enfoques para la estimación del costo se pueden abordar utilizando enfoque descendente o ascendente Un enfoque descendente inicia en el nivel de sistema. La estimación comienza examinando la funcionalidad total del producto y cómo es que esa funcionalidad se propaga al interactuar con las subfunciones El enfoque ascendente, en contraste, inicia en el nivel de componente. El sistema se divide en componentes y se calcula el esfuerzo requerido para desarrollar cada uno de éstos 4.2 Estimación basada en el Proceso. Es la técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar, es decir, el proceso se descompone en un conjunto relativamente pequeño de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimación de cada tarea.

4.3 Tipos de Técnicas de Estimación de costos.- Descripción Modelado del algoritmo de costos Se desarrolla un modelo utilizando información histórica de costos que relaciona alguna métrica de software (por lo general, su tamaño) con el costo del proyecto. Opinión de expertos Se consultan varios expertos en las técnicas de desarrollo de software propuestas y en el dominio de aplicación. Cada uno de ellos estima el costo del proyecto. Estas estimaciones se comparan y discuten. El proceso de estimación se itera hasta que se acuerda una estimación. Estimación por analogía Esta técnica es aplicable cuando otros proyectos en el mismo dominio de aplicación se han completado. Se estima el costo de un nuevo proyecto por analogía con estos proyectos completados. Ley de Parkinson La Ley de Parkinson establece que el trabajo se extiende para llenar el tiempo disponible. El costo se determina por los recursos disponibles más que por los objetivos logrados. Asignar costos para ganar El costo del software se estima dependiendo de lo que el cliente esté dispuesto a pagar por el proyecto. El esfuerzo estimado depende del presupuesto del cliente y no de la funcionalidad del software

5 TÉCNICAS DE ESTIMACIÓN DE COSTOS DEL SOFTWARE 5.1.- Estimación de Costos por la Técnica del Juicio Experto.- Se basa en la experiencia, como en el conocimiento anterior en el sentido comercial de uno o mas individuos dentro de la organización, su mayor ventaja es la experiencia la cual puede llegar a ser su debilidad 5.2. – Estimación del costo por la técnica DELFI La técnica DELFI fue desarrollada con el fin de tener el consenso de expertos, sin contar con los efectos negativos de las reuniones de grupos 5.3- MODELOS DE ESTIMACIÓN EMPÍRICA Donde los datos que soportan la mayoría de los modelos de estimación obtienen una muestra limitada de proyectos

COCOMO (MEDELO CONSTRUCTIVO DE COSTE) Tres tipos de proyectos: Orgánicos: relativamente pequeños y sencillos, en los que trabajan pequeños equipos con experiencia, sobre un conjunto de requisitos poco rígidos. Semiacoplados: proyectos intermedios (en tamaño y complejidad) en los que participan equipos con variados niveles de experiencia, y que deben satisfacer requisitos poco o medio rígidos. Empotrados: proyectos que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringido. MODELO 1 (COCOMO básico) calcula el esfuerzo y el coste del desarrollo en función del tamaño estimado del programa (LDC). Se utiliza para una aproximación rápida al principio del ciclo de vida. ESFUERZO: E = ab KLDCbb TIEMPO: D = cb Edb MODELO 2 (COCOMO intermedio) calcula el esfuerzo y el coste en función del tamaño estimado del programa y de un conjunto de “guías de coste” que incluyen una evaluación subjetiva del producto, hardware, personal y atributos del producto ESFUERZO: E = ai KLDCbi x FAE (factor de ajuste del esfuerzo) MODELO COCOMO BÁSICO Proyecto ab bb cb db Orgánico 2,4 1,05 2,5 0,38 Semiacoplado 3,0 1,12 2,5 0,35 Empotrado 3,6 1,20 2,5 0,32 MODELO 3 (COCOMO avanzado) incorpora las características del mod. 2 y evalúa el impacto de los FAE en cada fase del desarrollo.

Ejemplo COCOMO Por ejemplo, si sabemos que en el proyecto se trabajará con un nivel alto de utilización de herramientas de desarrollo, el factor de coste tendrá un valor de 0,91. •Por lo tanto, si el esfuerzo nominal calculado es de 40 personas-mes, la estimación de coste final (suponiendo el resto de factores a nivel medio) será E = 40x0,91 = 36,4 personas-mes • Se trata de estimar el esfuerzo de desarrollo de un sistema de comunicaciones de 30 KDLC, de alta complejidad. Afortunadamente podremos emplear personal de muy alta cualificación con una gran experiencia específica en este tipo de software. El coste del salario mensual de cada persona es de 1.350 _/mes Si aplicamos COCOMO, podemos ver que el esfuerzo estimado será: Esfuerzo nominal = 3,2 x (30)1,05 = 113,79 personas-mes.

5.5.-Modelo de Estimación de Putnam Es un modelo multivariable dinámico que asume una distribución especifica del esfuerzo a lo largo de la vida de un proyecto de desarrollo de Software. 5.6 Modelos del Punto Función Las métricas del software orientadas a la función son medidas indirectas del software y del proceso por el cual se desarrolla. Más que calcular las LDC las métricas orientadas a la función se centran en la funcionalidad o utilidad del programa 5.7 Modelo de estudio temporal En un nivel individual, el proceso de desarrollo del software se ve afectado por un numero n de gente interaccionando en el proyecto y por las características del entorno en el cual esa gente interacciona.

6 HERRAMIENTAS AUTOMÁTICAS DE ESTIMACIÓN. Las herramientas automáticas de estimación permiten al planificador estimar costos y esfuerzos, así como llevar a cabo análisis del tipo, que pasa si, con importantes variables del proyecto, tales como la fecha de entrega o la selección del personal. 7.- ESTIMACIÓN DE LOS COSTOS DE MANTENIMIENTO DE SOFTWARE La mayor preocupación con respecto al mantenimiento durante la fase de plantación de un proyecto de programación es estimar el número de programadores de mantenimiento que se requerirán, así como especificar las facilidades necesarias para que se lleve acabo. Actividad % del esfuerzo Mejoras Mayor eficiencia Mejor documentación Mejoras para el usuario Adaptación Datos de entrada y archivos Equipo y sistema operativo Correcciones Arreglos de emergencia Arreglos programados Otros 51.3 4.0 5.5 41.8 23.6 17.4 6.2 21.7 12.4 9.3 3.4

proyecto, producto y negocio Ejemplos de posibles riesgos en el desarrollo de software riesgo tipo de riesgo descripción rotación de personal proyecto, producto y negocio personal con experiencia abandona el proyecto antes de que finalice cambio de administración proyecto cambio de administración organizativa con diferentes prioridades no disponibilidad del hardware el hardware necesario para el proyecto no se recibe a tiempo cambios de requerimientos proyecto y producto existencia de más cambios de requerimientos de los previstos inicialmente retrasos en la especificación retrasos en las especificaciones de interfaces esenciales subestimación del tamaño el tamaño del sistema se ha subestimado bajo rendimiento de la herramienta CASE producto las herramientas CASE que ayudan al proyecto no tienen el rendimiento y las funcionalidades esperadas cambio de tecnología negocio la tecnología fundamental sobre la que se está construyendo el sistema es sustituida por una nueva competencia del producto un producto competitivo se pone en venta antes de que el sistema se complete

8 Conclusiones En conclusión la planificación del Proyecto de Software tiene que estimar tres cosas antes de que comience el proyecto: cuanto durara, cuanto esfuerzo requerirá y cuanta gente estará implicada. Además el planificador debe predecir los recursos de hardware y software que va a requerir y el riesgo implicado

Cualquier cosas que necesites cuantificar debe ser medido y de alguna forma es superior a no medirlo del todo Tom Gilb