Estimación en Ingeniería de Software: Puntos Función y Gestión de Riesgos

Sistemas de Información

Estimar es una actividad crucial en la planificación de proyectos de software, cuyo objetivo es determinar el dinero, esfuerzo, recursos y tiempo necesarios para construir un sistema o producto de software.

Planificación de Proyectos

  • Estimación de trabajo, recursos y tiempo.
  • Establecimiento del calendario de proyectos.
  • Definición de hitos y tareas de software.
  • Asignación de responsables y dependencias entre tareas.

¿Qué es la Planificación de Proyectos?

  • Estimación
  • Calendarización
  • Análisis de riesgos
  • Planificación de la gestión de calidad
  • Planificación de la gestión de cambio

¿Quién Realiza la Planificación?

  • Gerentes de proyectos de software, utilizando información solicitada y datos métricos de proyectos anteriores.

Importancia de la Estimación

  • Permite conocer el costo, las tareas a realizar y el cronograma de trabajo.
  • Estimar antes de crear software puede evitar costos mayores que construir una gran casa.

Pasos para la Estimación

  • Descripción del ámbito del problema.
  • Descomposición del conjunto de problemas en problemas más pequeños.
  • Estimación de cada problema pequeño.
  • Uso de guías, datos históricos y experiencia.
  • Consideración de la complejidad y el riesgo del problema antes de la estimación final.

Producto Final de la Estimación

  • Tabla simple que delinea las tareas a realizar.
  • Funciones por implementar.
  • Costo, esfuerzo y tiempo involucrado en cada tarea.

Asegurando una Buena Estimación

  • La certeza completa solo se obtiene al finalizar el proyecto.
  • Utilizar datos históricos sólidos, puntos de datos de estimación con dos métodos y un calendario realista.

Importancia de la Estimación

  • Conecta conceptos generales de análisis económico con el mundo de la ingeniería de software.
  • Permite el análisis coste-beneficio del software mediante métodos de estimación de costes.
  • Considera factores del producto o entorno que afectan la producción de software.
  • Proporciona una parte esencial de la buena gestión de proyectos.

Problemas en la Estimación

  • Falta de una base firme para asegurar que el presupuesto y el tiempo son realistas.
  • Dificultad para realizar un análisis fiable del intercambio entre hardware y software durante la fase de diseño.
  • Posibilidad de que el costo del hardware se reduzca a expensas de un software que cuesta más de lo estimado.
  • Incertidumbre en la estimación del tiempo y esfuerzo para cada fase del desarrollo.

Estimación por Puntos Función

  1. Requiere conocimiento global del sistema y la construcción de un modelo entidad.
  2. Identificar los componentes del sistema:
    • Diagramas de Casos de Uso (UML).
    • Diagramas de Contexto DFD (Programación Estructurada).
    • Componentes: Entradas, Salidas, Consultas, Ficheros Lógicos Internos, Ficheros Externos.

Cálculo de Puntos Función

Imagen

Asignar PF a cada componente según tablas

Obtener Puntos Función Ajustados

2017-10-17_100411

2017-10-17_102916

Puntos Función

Introducción

  • Evaluar nuevas capacidades.
  • Definir en términos de transacciones a realizar y datos a guardar.

Determinantes para Estimar el Esfuerzo

  • Tamaño de lo que se requiere.
  • Productividad de quien lo hace.
  • Los Puntos Función (PF) se relacionan con el tamaño, siendo el primer elemento de la ecuación.

Definición de Software

  • Conjunto de líneas de código que se ejecuta en una computadora.
  • El costo no está directamente relacionado con la codificación (solo entre 20% y 25%).
  • Considerar: Administración del proyecto, Detalle de la documentación técnica, Documentación de pruebas, Pruebas.

Objetivos de los Puntos Función

  • Medir lo que el usuario pide y recibe.
  • Medir independientemente de la tecnología utilizada para la implementación del sistema.
  • Proporcionar una métrica de tamaño para soportar el análisis de calidad y productividad.
  • Proporcionar un medio para la estimación de software.
  • Proporcionar un factor de normalización para la comparación de distintos softwares.

Características de los Puntos Función

  • Independientes de la tecnología.
  • Simples.
  • Enfoque en la funcionalidad proporcionada.
  • Basados en los requerimientos del usuario.
  • Consistencia.

Definiciones de Métricas

Tamaño: Métrica de tamaño, no de calidad del software o valor del esfuerzo requerido.

Aplicaciones: Mide aplicaciones de software, no considera hardware, administración de proyectos ni documentación.

Funcionalidad: Capacidad del software para que el usuario realice transacciones (lectura, escritura y almacenamiento de datos). Describe el sistema.

Usuario: Quien usa el software, no quien lo desarrolla o diseña.

Proceso de Cálculo de Puntos Función

  1. Determinar el tipo de cuenta.
  2. Identificar el alcance de la medición y los límites de la aplicación.
  3. Contar las funciones de datos.
  4. Contar las funciones transaccionales.
  5. Determinar los puntos función no ajustados.
  6. Determinar el valor del factor de ajuste.
  7. Determinar los Puntos Función Ajustados (PFA).

Cálculo de Entradas

Imagen

Imagen

Cálculo de Salidas y Consultas

Imagen

Imagen

Cálculo de Archivos Lógicos Internos y Archivos de Interfaz Externos

Imagen

Imagen

Esfuerzo horas/persona = PFA / [1 / 8 persona /hora)]

Líneas de Código = PFA * (Líneas por PF)

Gestión de Riesgos

Enfoque estructurado para manejar la incertidumbre relativa a una amenaza, a través de una secuencia de actividades humanas.

  • Identificación de riesgos.
  • Estimación de riesgos.
  • Plan de riesgos.

¿Qué es el Riesgo?

  • Probabilidad de que una amenaza se convierta en un desastre.
  • Todo cambio implica un riesgo.
  • El riesgo implica elección e incertidumbre.

Estrategias Frente al Riesgo

Reactivas

  • Método: Evaluar las consecuencias del riesgo cuando se ha producido (ya no es un riesgo) y actuar en consecuencia.
  • Consecuencias: Puede poner en peligro el proyecto.

Proactivas

  • Método: Evaluación previa y sistemática de riesgos, evaluación de consecuencias, plan de evitación y minimización de consecuencias, plan de contingencia.
  • Consecuencias: Evitación del riesgo, menor tiempo de reacción.

Riesgos en Sistemas de Información

  • Incertidumbre.
  • Pérdidas: Producto, Proceso de producción.
  • Riesgos del proyecto.
  • Riesgos técnicos.
  • Riesgos del negocio.

Identificación de Riesgos

  • Grupos de Riesgos:
    • Genéricos: Comunes a todos los proyectos.
    • Específicos: Implican un conocimiento profundo del proyecto.
  • Categorías:
    • Tamaño del proyecto.
    • Impacto en la organización.
    • Tiempo del cliente.
    • Estrategia de producción.
    • Entorno de desarrollo.
    • Tecnología.
    • Experiencia del equipo.