Fundamentos Esenciales de Ingeniería de Software: Gestión, Estimación y Calidad de Proyectos

Este documento recopila y define conceptos clave en la Ingeniería de Software, abarcando áreas fundamentales como la gestión de proyectos, la estimación de recursos y tiempos, las métricas de software y los estudios de viabilidad. Comprender estos términos es crucial para el desarrollo exitoso y eficiente de sistemas de software.

Sección I: Conceptos Fundamentales

Métrica

Es una medida cuantitativa que indica en qué grado un sistema posee un atributo.

Plan de Proyecto

Este documento sirve para mantener informado al cliente acerca de los riesgos y la planificación del tiempo de la organización.

Descomposición

En esta técnica de estimación, el responsable de cada componente del software que hay que construir estima el costo de desarrollo.

Tareas Críticas del Proyecto

Hay tres tareas críticas que deben ser desarrolladas correctamente para asegurar el éxito del proyecto. Estas son: Estimación, Planificación y Seguimiento.

Gestión del Proyecto

Permite asegurar que el software se lleve a cabo a tiempo y de acuerdo con los requerimientos especificados.

Estimación del Tiempo

Se puede definir como una actividad en la cual se debe estimar el tiempo que se requiere para llevar a cabo una tarea y los recursos necesarios para su realización.

Métricas de Software

Son la aplicación continua de técnicas basadas en las medidas de los procesos de desarrollo del software y sus productos para producir información de gestión significativa y oportuna.

Técnicas Básicas de Estimación

Existen cuatro técnicas básicas de estimación.

Estudio de Factibilidad

Es un estudio preliminar que ayuda a determinar si un nuevo sistema de software es viable para desarrollarse, considerando los recursos y restricciones impuestas por la organización.

Estudio de Costo-Beneficio

Es una valoración de la inversión económica comparada con los beneficios que se obtendrán en la comercialización y utilidad del producto o sistema.

Sección II: Profundización de Conceptos

A. Planificación

Es una guía de desarrollo para cumplir las metas del proyecto. Es un proceso iterativo.

B. Métodos de Planificación

Son los métodos que se utilizan en la planificación: PERT y CPM.

C. Medida

Nos indican cuantitativamente la capacidad, tamaño, extensión, etc., de algunos atributos que posee un proceso o producto.

D. Puntos de Función

Es un método para cuantificar el tamaño y la complejidad de un sistema de software en términos de las funciones que el usuario desarrolla o desarrollará.

E. Integridad

Este aspecto mide la habilidad de un sistema para resistir ataques contra su seguridad.

F. Estimación de Proyectos

Es la predicción de personal, del esfuerzo, de los costos y de la planificación que se requiere para realizar todas las actividades y construir todos los productos asociados con el proyecto.

G. Métodos para el Estudio de Costo-Beneficio

Son los métodos utilizados para el análisis de costo-beneficio: Puntos de Equilibrio, Tasa Interna de Retorno, Período de Devolución, Valor Presente Neto.

H. Viabilidad Operativa

En el estudio de factibilidad, se trata de averiguar si el nuevo sistema es el adecuado para la organización. Se necesita saber si el nuevo sistema es flexible y puede integrarse a otros ya existentes en la organización.

I. Modos de Desarrollo COCOMO

En el modelo COCOMO, los modos de desarrollo son: Orgánico, Semi-empotrado y Empotrado.

J. Estimaciones Clave del Planificador de Proyectos

El planificador del proyecto de software tiene que estimar tres cosas antes de que comience el proyecto: cuánto durará, cuánto esfuerzo requerirá y Cuánto Costará.

K. Modelos de Estimación

Los modelos de estimación se dividen en: Empírico y Algorítmico.

L. Período de Devolución

Es el tiempo requerido para recuperar el monto inicial de una inversión de capital.

Sección III: Conceptos Adicionales y Repasos

Desglose de Actividades

Consiste en dividir el trabajo en actividades y considerar el tiempo que requiere cada una para completarse.

Ruta Crítica

Es la serie de actividades, desde la inicialización del proyecto hasta su terminación, que no tienen flexibilidad en su tiempo de ejecución.

Problemas Evitables con la Planificación

Con la planificación se pueden evitar problemas a los que un proyecto está sujeto. Menciona tres de ellos: Sobrepasar Presupuesto, Sobrepasar el Tiempo, Baja Calidad.

Indicadores de Proyecto

Son utilizados para supervisar el progreso durante el desarrollo de software y controlar la calidad del proyecto.

Características de una Medida Ideal

Una medida ideal debería ser: Objetiva, Sencilla, Fácilmente Obtenible, Válida y Robusta.

Sección IV: Conceptos Específicos y Atributos de Calidad

A. Holgura Total

Representa el número de unidades de tiempo que puede retrasarse la realización de una actividad sin que aumente la duración total del proyecto.

B. Métrica

Es una medida cuantitativa que indica en qué grado un sistema posee un atributo.

C. Integridad

Este aspecto mide la habilidad de un sistema para resistir ataques contra su seguridad.

D. Estimación de Proyecto

Es la predicción de personal, esfuerzo, de los costos y de la planificación que se requiere para realizar todas las actividades y construir todos los productos asociados con el proyecto.

E. Modelos de Estimación

Los modelos de estimación se dividen en: Empíricos y Algorítmicos.

F. Facilidad de Mantenimiento

Se mide por la facilidad de corregir defectos encontrados.

G. Estimación por Analogía

En esta técnica, las personas involucradas no solo trabajan con su experiencia acumulada, sino que disponen también de datos de proyectos acabados relativamente similares al que hay que estimar.

H. Indicadores de Medición de la Calidad

Son los indicadores de medición de la calidad: Corrección, Facilidad de Mantenimiento, Integridad, Facilidad de Uso.

I. Puntos de Función

Es un método para cuantificar el tamaño y la complejidad de un sistema de software en términos de las funciones que el usuario desarrolla o desarrollará.

J. Indicador

Es una métrica que proporciona una visión profunda del proceso y proyecto del software.