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
- Requiere conocimiento global del sistema y la construcción de un modelo entidad.
- 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
Asignar PF a cada componente según tablas
Obtener Puntos Función Ajustados
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
- Determinar el tipo de cuenta.
- Identificar el alcance de la medición y los límites de la aplicación.
- Contar las funciones de datos.
- Contar las funciones transaccionales.
- Determinar los puntos función no ajustados.
- Determinar el valor del factor de ajuste.
- Determinar los Puntos Función Ajustados (PFA).
Cálculo de Entradas
Cálculo de Salidas y Consultas
Cálculo de Archivos Lógicos Internos y Archivos de Interfaz Externos
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.