Estimación y Medición de Costos

Boglioli, Alan

Brest, Federico

Casas, Malena

Diaz, Pablo

Martinez, Matías

Noli, Hernán

  • Son el punto de partida de cada nuevo proyecto.
  • Considerados ambiguos dado que a menudo están llenos de supuestos malos y errores graves, y son usualmente difíciles de precisar de forma clara y completa.
  • Habitúan ser inestables y crecen de manera constante durante el ciclo de desarrollo de software, principalmente en las fases de codificación y pruebas

Estimación de requisitos

Aplicación

Desarrollo Ágil (el equipo trabaja en conjunto y cara a cara con el cliente), Desarrollo orientado a objeto, UML, Modelo de CU, Diagrama de Estados, Diagrama de Actividades.

Ejecutores

El equipo de trabajo (analista, desarrollador, personal de calidad) Clientes.

Herramientas

Rational Requirements Composer, Rational Requirement Pro, Rational Requirement Doors.

Estimación de requisitos

Estimación de requisitos

Impacto

  • Más del 53% de los proyectos de software fracasan por no realizar un estudio previo de requisitos.
  • Una eficiente captura de requisitos a Gran porcentaje de éxito en el proyecto.
  • Una ineficiente captura de requisitos a Mínimo porcentaje de éxito en el proyecto.
  • A etapas más avanzadas de producción, el costo de corrección de errores aumenta

Estimación de requisitos

Mediciones

Se puede realizar una medición basada en :

  • Falta de una definición de código universal (no es lo mismo una línea en JAVA que en C++)

  • Dificultad de estimar líneas de código en fases iniciales de desarrollo (la misma funcionalidad se puede desarrollar de diferentes formas)
  • El desarrollo de prototipos y la captura de requisitos son a menudo actividades paralelas ya que comparten muchas de las actividades que realizan.
  • Pueden sustituir a otras formas de captura de requisitos
  • Generalmente no es una práctica segura.
  • Sirven como un método alternativo para cumplimentar los requisitos y las  especificaciones escritas en vez de sustituirlos.

 

Estimación de prototipos

Prototipos desechables: Son creados para demostrar las características de un proyecto de software (probar interfaces, facilidad de uso, algoritmos claves o secuencias de procesamiento complejas). Cuando cumplen su fin son descartados.

Se realizan rápidamente, sin especificaciones formales, se usan con los requerimientos que no se conocen bien y son de corta duración

Estimación de prototipos

Aplicaciones

Prototipos de cuadro de tiempo: Son a menudo réplicas parciales de aplicaciones completas y tienen por objetivo mostrar cómo  interactúan los aspectos funcionales. Suelen ser desechables, construidos durante un tiempo específico.

El tamaño medio de prototipos cuadro de tiempo es de aproximadamente 15 a 25 por ciento de los rasgos eventuales.

Estimación de prototipos

Aplicaciones

Prototipos evolutivos: Es un intento por construir un producto completo mediante la elaboración de una serie de versiones parciales sucesivas y completas gracias a requerimientos más detallados.

Estimación de prototipos

Aplicaciones

Ejecutores

Analista (para complementar los requerimientos existentes) y desarrolladores involucrados en el proyecto.

Herramientas

Visual Basic y Realizador, o incluso herramientas de creación de prototipos especiales, como la herramienta de demostración Bricklin, es bastante común.

Estimación de prototipos

Estimación de prototipos

Impacto

VENTAJAS:

  • Modificación del sistema en etapas temprana  de su desarrollo
  • Permite entender los requerimientos del cliente
  • Los cambios iniciales durante el desarrollo del proyecto son menos costosos que si se realizan en etapas tardías

DESVENTAJAS:

  • La administración es difícil (Debemos manejar el prototipo como un proyecto dentro del ciclo de desarrollo del sistema sin perder de vista cual era su propósito)
  • Podemos considerar al prototipo como el sistema final cuando aun es incompleto e inadecuado
  • Surgen cambios imprevistos que retrasan el progreso del prototipo

Estimación de prototipos

Mediciones

  • Cantidad de PF necesarios para el sistema

  • Lenguaje utilizado

  • Horas de trabajo por persona

  • Cantidad de personas por grupo

  • Salarios

Estimación de especificaciones de diseño de Software

Son una respuesta técnica a las necesidades de los usuarios, y sirven para describir la forma en que las necesidades de los usuarios se tratarán de forma automatizada mediante la aplicación de software que se está construyendo.

Estimación de especificaciones de diseño de Software

Aplicación

Existen muchos métodos de diseño implementados para Software de sistema, en nuestra carrera se ve mucho el Lenguaje Unificado de Modelado (UML)

Ejecutores

Principalmente, Analistas y Diseñadores en Sistemas.

Herramientas

Enterprise Architect y Rational Enterprise.

Estimación de especificaciones de diseño de Software

Impacto

Genera distintas ventajas como:

  • Comprensibilidad: programadores y usuarios pueden comprender fácilmente la lógica del programa.
  • Manejabilidad: los gestores pueden asignar fácilmente personal y recursos a los distintos módulos representados por tareas.
  •  Eficiencia: se pueden utilizar mejor los recursos durante la implementación.
  •  Reducción de errores: los planes de prueba se simplifican notablemente.
  • Reducción del esfuerzo de mantenimiento: la división en módulos favorece que las distintas funciones las lleven a cabo módulos diferenciados

Estimación de especificaciones de diseño de Software

  • Se habla de métricas enfocadas no a la productividad sino a la calidad
  • Se trata de evaluar, de manera cuantitativa, si ciertas propiedades del diseño OO se cumplen (encapsulamiento, cohesión, abstracción y acoplamiento)

Mediciones:

Estimaciones de inspecciones del diseño

Se refiere a un procedimiento formal en el que un grupo de profesionales capacitados examinan un artefacto de software, como una especificación, página por página en una forma planificada.

Estimaciones de inspecciones de diseño

Ejecutores

Se forma un grupo de inspección donde se designa:

  • Un moderador

  • Autor de los productos de trabajo

  • Un registrador, encargado de registrar los hallazgos

  • Un lector, que tiene a cargo la paráfrasis de cada sección

  • Revisores, que realizan la inspección.

  • Un coordinador, el cual programa las inspecciones y reserva lugar físico.

Estimaciones de inspecciones de diseño

Herramientas

Mente humana

Estimaciones de inspecciones de diseño

Impacto

Ha demostrado beneficio en los costos totales del proyecto y en acortar los plazos del mismo, disminuyendo esfuerzos en etapas de prueba, previniendo errores de codificación. Reduce

mucho el costo de los pasos siguientes en las fases de desarrollo y mantenimiento.

Estimaciones de inspecciones de diseño

  • Preparación

  • Sesiones de inspección

  • Para cuantificar una inspección volvemos a utilizar métricas como:

  • Errores por PF

  • Defectos por PF

 

Las inspecciones de estimación utilizan a menudo métricas naturales, como páginas.

Mediciones:

Estimaciones de codificaciones

La estimación de la programación es esencial por el tiempo que demanda crear una aplicación completa y funcional, tardando en general más de lo planeado.

Estimaciones de codificaciones

Aplicación

Se puede aplicar a muchos sectores de la sociedad actualmente, y sigue creciendo de manera muy acelerada. Generalmente se desea utilizar para agilizar y automatizar muchos de los procesos básicos en la producción.

Ejecutores

Desarrolladores, Programadores encargados del proyecto.

Estimaciones de codificaciones

Herramientas

  • Entornos de programación como NETBeans, Eclipse, etc.
  • Lenguajes de programación: Visual Basic, Java, C++, Python, etc.
  • Herramientas de diseño de software, de diseño de interfaces, de base de datos, de soporte de pruebas como las antes mencionadas, agregando Rational Enterprise, Enterprise Architect, MagicDraw, SQLYog, Apartado de Servicio de NETBeans (Base de datos), Testlink, entre muchas otras.

Estimaciones de codificaciones

Impacto

Ventajas:

  • Reutilización de código, en el sentido de que poder aprovechar código que fue utilizado en otros proyectos y que muy fácilmente se adapte, nos hace ganar a veces una buena cantidad de tiempo.
  • Buen ambiente y calidad de trabajo pueden ayudar a mejorar la concentración y el incentivo de los programadores

Desventajas:

  • Tiempo extra no remunerador, si se encuentran fallas y el SF debe ser corregido y probado nuevamente, es tiempo perdido del programador.

  • El aumento de requisitos del proyecto puede llevar a que incorporar nuevas funcionalidades produzca que muchas partes del software deban ser modificados, tanto sencillas como profundas, provocando retrasos en el proyecto tanto en costo como en tiempo de entrega.

  • Estructura y complejidad del código, es decir, si la documentación del software no existe o es muy pobre, complica mucho la comprensión y/o modificación del software dado que primero se debe realizar un examen profundo para comprender realmente como está estructurado el software.

Estimaciones de codificaciones

Mediciones:

Debido a que el software puede ser evaluado desde muchos aspectos (las aplicaciones suelen ser cada vez más grandes y complejas), se hace difícil establecer ciertos aspectos básicos que se apliquen a todos los software en general.

Estimación del control de configuración de software

Los proyectos de software cambian rápidamente, por lo tanto una de los retos principales es gestionar el cambio tan eficientemente como sea posible.

Estimar la labor de gestión del cambio es importante, no sólo porque la gestión del cambio en sí mismo puede ser costoso, sino porque la tasa de variación de los entregables de software es un factor importante en la precisión de coste global de software y estimación horario.

Estimación del control de configuración de software

  • Ejecutores: Especialistas en control de cambio, programadores, clientes.
  • Herramientas: TortoiseSVN (repositorios web como assembler)
  • Tipos:
    • Los cambios en los requisitos de los usuarios.
    • Los cambios en las especificaciones y diseño.
    • Los cambios debido a los errores o informes de defectos.

Métrica de punto de función

Estimación del control de configuración de software

Mediciones:

Estimación de pruebas software

Consiste en estimar muestras de defectos de muy variada índole  y/o muchos proyectos realizados con anterioridad para luego analizar las revisiones e inspecciones de los proyectos que actualmente están en desarrollo para que permita evaluar la eficiencia de eliminación de los defectos (evaluando para cada tarea de eliminación el esfuerzo, costo de preparación, ejecución y reparación) en cada una de las etapas del proceso de prueba de software.

 

Estimación de pruebas software

Aplicación

Las pruebas de software se pueden realizar de diferentes formas

  • Pruebas Funcionales: Eliminar errores comunes, errores de condicionales, de loops, resultados incorrectos, etc.

    • Pruebas de subrutina

    • Pruebas de unidades

    • Pruebas de nuevas funciones, regresión, integración.

  • Pruebas de Usuario: Se destina a problemas de facilidad de uso y familiaridad con el sistema.

    • Pruebas de aceptación del cliente.

    • Pruebas de campo

    • Pruebas de facilidad de uso e interfaz gráfica

  • Pruebas Detalladas: Buscan tipos de errores específicos

    • Pruebas de protección contra virus

    • Pruebas de rendimiento, seguridad, plataforma, entre otros.

Estimación de pruebas software

Ejecutores

Testers, Programadores, Clientes

 

Herramientas

Check Point Software Technologies Ltd y COCOMO (Modelo Constructivo de Costos).

 

Estimación de pruebas software

Impacto: 

Los factores principales que afectan a las estimaciones de prueba de software son:

  • El numero de errores/defectos/fallas en el software testeado.

  • La cantidad de fases que tenga establecida el proceso de pruebas de Software.

  • La estructura de la aplicación.

  • El tipo de software.

Estimación de pruebas software

  • Los clientes finales

  • Tipo de software requerido, es decir, a que sector de la sociedad apunta

  • El tamaño del software

Los resultados obtenidos varían en función de los elementos que tomemos para realizar la prueba

Mediciones:

Estimación de documentación del usuario y del proyecto

La documentación de software en todas sus manifestaciones es un elemento clave del coste del software. Casi todos los proyectos de software requieren documentación, pero muy pocos se documentan muy bien.

 

Estimación de documentación del usuario y del proyecto

Aplicación

Se aplica para cualquier proyecto de software, en especial proyectos desarrollados a medida.

 

Ejecutores

La realizará quien se encuentre en un rango alto designado a la gestión de proyectos junto a algún especialista en estimación de costos.

 

Estimación de documentación del usuario y del proyecto

Impacto: 

El control de configuración de herramientas no siempre apoyan los documentos importantes y, a menudo se concentran en el código fuente y no en las especificaciones y documentos de los usuarios.

Los costes y las horas para la creación de los documentos son mayores que el costo de escribir realmente el código fuente.

 

Estimación de documentación del usuario y del proyecto

Herramientas: 

Desde el punto de vista de la estimación, pocas herramientas comerciales de estimación de software incluye capacidades de predicción para los documentos en papel de software como SPQR/20 (1985), CHECKPOINT (1989), y KnowledgePlan (1997).

Otras herramientas de estimación, como COCOMO, COCOMO II, SLIM y similares, también han añadido soporte para la estimación de algunas formas de documentación de software, tales como conjuntos de especificación, pero no admitan manuales de usuario, material de capacitación, o algunas formas de documentos de planificación.

Estimación de documentación del usuario y del proyecto

La mayoría se basan en puntos de función.

Ejemplo: podría ser la relación entre el número de documentos generados y el número de documentos que tuvieron que ser modificados por no cumplir con los estándares de calidad.

Dependiendo de la forma en la que estén hechos dichos documentos se gastará más o menos tiempo en modificarlos, reutilizar código o módulos en futuros desarrollo

 

Mediciones:

Estimación de la administración de proyectos

La función de gestión del proyecto contribuirá entre un 10 y un 20 por ciento el costo de los proyectos de software. Los gerentes de proyecto también ejercen una fuerte influencia sobre los horarios, la calidad y la moral del equipo.

 

La estimación del trabajo de los directores de proyectos de software es muy compleja, y es apoyada por muy poco en la forma de sólidos datos empíricos. De hecho, incluso las funciones y responsabilidades de los jefes de proyecto pueden variar de una compañía a otra, y de un proyecto a otro dentro de la misma empresa.

Estimación de la administración de proyectos

Aplicación

Aplicable a cualquier tipo de proyecto de software la cual requiere una experiencia que va más allá de las habilidades normales de gestión.

 

Ejecutores

La realizará quien se encuentre en un rango alto designado a la gestión de proyectos.

Estimación de la administración de proyectos

Herramienta

La gestión del proyecto utiliza herramientas que pueden producir los diagramas de Gantt y diagramas PERT, realizar análisis de la ruta crítica, y manejar la mecánica de la programación y la acumulación de costos.
 

Sin embargo, hay una serie de herramientas de software especializado de gestión de proyectos que están dirigidos específicamente a los proyectos de software  como Microsoft Project, Timeline, Primavera, Artemisa, y similares.

Estimación de la administración de proyectos

Impacto

Para los grandes proyectos de software, los fallos y desastres están más estrechamente correlacionados con la gestión deficiente de los proyectos. De hecho, la gestión deficiente de los proyectos puede hacer que en trabajos técnicos pobres escatimar en las inspecciones y actividades de control de calidad resulte la creación de coste excesivamente optimista.

 

Estimación de la administración de proyectos

Mediciones:

Es necesario separar las tareas de gestión de las tareas técnicas.

  • El trabajo técnico domina y absorbe alrededor del 60 por ciento del tiempo del gerente, mientras que el trabajo de gestión habitual absorbe alrededor del 40 por ciento.
  • Sistemas realmente grandes puede tener más de 500 miembros del personal técnico y de 50 o más directores de proyectos.

Estimación de la administración de proyectos

Mediciones:

En el supuesto de que el sistema es lo suficientemente grande como para tener diez directores de proyectos comprometidos, alrededor del 30 por ciento de tiempo mensual de gestión del proyecto se dedicará a reuniones con otros gerentes. Estas reuniones de coordinación pueden absorber más del 38 por ciento del esfuerzo de gestión, debido a que estos sistemas grandes suelen tener múltiples capas de gestión para que las reuniones de planificación.

Estimación de costos de mantenimiento y mejoras

En el mundo de hoy en día más del 50 por ciento de la población mundial de software se dedica a modificar las aplicaciones existentes en lugar de escribir nuevas aplicaciones. Esto implica que el mantenimiento y mejora de estimación es realmente el aspecto más crítico de software de estimación de costes.

  • Mantenimiento:reparación de defectos en las aplicaciones de software con el fin de corregir errores.
  • Mejora: adición de nuevas características para aplicaciones de software.

Estimación de costos de mantenimiento y mejoras

Aplicación

Se aplica a todo tipo de proyectos a los cuales se quiera agregar o cambiar funciones en SW existentes en respuesta a solicitudes de usuarios explícitos.

 

Ejecutores

La realizará quien se encuentre en un rango alto designado para estimar costos junto con algún experto en mantenimiento capacitado.

Estimación de costos de mantenimiento y mejoras

Impacto

Una dificultad es el hecho de que las tareas de mantenimiento son a menudo asignados a personal de desarrollo quienes van intercalando tareas de desarrollo y mantenimiento según sea necesario. Esta práctica hace que sea difícil distinguir los costes de mantenimiento de los costes de desarrollo ya que los programadores son a menudo bastante descuidado en el registro del tiempo.

Estimación de costos de mantenimiento y mejoras

Mediciones:

  • Ámbitos de asignación,

  • Tasas de producción (tipos P) en términos de puntos de función (PF) por mes del personal

  • Horas por punto de función.

  • También se incluyen las líneas de código (LOC) mensuales al personal

  • Niveles de experiencia del personal de mantenimiento.

Estimacion y Medicion Costo

By Fede Brest

Estimacion y Medicion Costo

  • 1,079