lunes, 8 de diciembre de 2008

Un estándar para el desarrollo del producto software: SWEBOK

Hace algunos días escribíamos un post acercad del PMBOK, un estándar creado por el Project Management Institute para optimizar y guiar la Gestión de Proyectos. Hoy vamos a hablar de otro estándar, éste más enfocado a la Ingeniería del Software, y desarrollado por el IEEE: el SWEBOK.

SWEBOK (Software Engineering Body Of Knowledge) referencia al Cuerpo de Conocimiento de un campo tan complejo como es la Ingeniería del Software, es decir, a la descripción jerárquica del conocimiento de este área estructurado en dos niveles de jerarquía: áreas de conocimiento y componentes de conocimiento. Es un compendio de las mejores prácticas de este campo de la ingeniería con la finalidad de que sirvan como referencia a la hora del desarrollo de nuevos proyectos.

La idea de este desarrollo surgió basándose en que la Ingeniería del Software es una disciplina que poco o nada se parece a otras en la ciencia, por lo que es necesario definir un estándar o una guía para la mejora del proceso de creación de software. A diferencia de otros productos, el software se desarrolla, no se fabrica como cualquier otro objeto a partir de una materia prima, con un proceso de elaboración, etc., sino que es un producto de labores de ingeniería como análisis de requisitos, diseño, control de calidad,...

Las Áreas de Conocimiento en que se divide el SWEBOK son:
  • Requerimientos de Software: Un requerimiento es definido como una propiedad que debe ser exhibida para resolver algún problema del mundo real.
  • Diseño de Software: Es una fase que abarca todo el ciclo de vida de un producto software, pues se trata de la administración de los cambios, así como el mantenimiento de los requisitos, de tal forma que se refleje lo que en realidad el ítem final va a ser.
  • Construcción de Software: Implementación de un producto que sea funcional a través de la combinación de codificación, validación y pruebas unitarias.
  • Pruebas de Software: Verificación dinámica del comportamiento de un programa, sobre un conjunto finito de casos de prueba.
  • Mantenimiento de Software: Mejoras a implementar en el software una vez que está operativo, producto de anomalías, cambios en el ambiente operativo, nuevos requisitos, etc.
  • Gestión de la Configuración de Software: Proceso de de control de los cambios en el producto, con el fin de mantener la integridad en el ciclo de vida del mismo.
  • Gestión de la Ingeniería del Software: Administración de ciertos procesos complejos como la gestión de la organización, de los proyectos y de las métricas del software.
  • Procesos de Ingeniería del Software: Definición, implementación, medida y cambio de los procesos de ingeniería del software.
  • Métodos y herramientas de la Ingeniería del Software: Control del ambiente y métodos de desarrollo del software.
  • Calidad de Software: Consideraciones de calidad que trascienden los procesos del ciclo de vida.

(Pincha en la imagen para ampliarla)

Por último, aquí tenéis la página oficial de SWEBOK, donde os podréis descargar o simplemente consultar toda la documentación del estándar.