05 March 2007

Visión General sobre ISO 12207

La disciplina del software necesita migrar a un marco común que pueda ser usado para “hablar el mismo lenguaje” al crear y administrar software. La Norma ISO/IEC 12207 provee este marco común, el cual cubre el ciclo de vida del software desde su conceptualización hasta su retiro, y consiste de procesos para adquirir y suministrar productos y servicios de software. Este marco permite controlar y mejorar los procesos.

ISO/IEC 12207 puede ser usado para: (1) Adquirir, suministrar, desarrollar, operar y mantener software, (2) Soportar las funciones antes mencionadas mediante el aseguramiento de calidad, administración de la configuración, revisiones conjuntas, auditorias, verificación, validación, resolución de problemas y documentación; (3) Administrar y mejorar tanto al personal como a los procesos de la organización, (4) Establecer la administración del software y los ambientes de Ingeniería basados en los procesos de ciclo de vida que se adapten para servir a las necesidades del negocio, (5) Ayudar a un mejor entendimiento entre clientes y proveedores; y entre las partes involucradas en el ciclo de vida de un producto de software y (6) Facilitar la comercialización global del software.

ISO/IEC 12207 contiene procesos, actividades y tareas a ser aplicadas durante la adquisición de un sistema que contiene un producto de software o un servicio de software; y durante el suministro, desarrollo, operación y mantenimiento de productos de software. Este estándar internacional provee un proceso que puede ser utilizado para definir, controlar y mejorar los procesos de ciclo de vida del software. Este estándar está escrito para los consumidores de sistemas y productos de software, y para los suministradores, desarrolladores, operadores, mantenedores, administradores, responsables de calidad de software y usuarios de productos de software.

ISO/IEC 12207 describe la arquitectura de los procesos de ciclo de vida del software, pero no especifica los detalles de cómo implementar o realizar las actividades y tareas incluidas en los procesos. El software no prescribe un modelo particular de ciclo de vida o un método de desarrollo de software.

Este estándar agrupa las actividades que deben ser realizadas durante el ciclo de vida del software en: 5 Procesos Principales, 8 Procesos de Soporte, y 4 Procesos Organizacionales. Cada proceso del ciclo de vida está dividido en un conjunto de actividades donde cada actividad está dividida en un conjunto de tareas. Las Sub cláusulas “a.b” denota un proceso, “a.b.c.” una actividad, y “a.b.c.d.” una tarea.

Procesos Principales del Ciclo de Vida

Son aquellos que resultan útiles a las personas que inician o realizan el desarrollo, explotación o mantenimiento durante el ciclo de vida.

Proceso de Adquisición (1): Contiene las actividades y tareas que el usuario realiza para comprar un producto. Define las actividades y tareas del adquiriente, la organización que adquiere un producto o servicio de IT. Este proceso tiene las siguientes actividades: (1) Inicio, (2) Solicitud de la propuesta, (3) Preparación y actualización del contrato, (4) Control del proveedor; y (5) Aceptación y Terminación.

Proceso de Suministro (2): Incluye las actividades y tareas del proveedor, la organización que es responsable de obtener y entregar una solución al adquiriente que cumpla con los requerimientos del proceso de adquisición. Este proceso tiene las siguientes actividades: (1) Inicio, (2) Preparación de la respuesta, (3) Contrato, (4) Planificación, (5) Ejecución y control, (6) Revisión y evaluación; y (7) Entrega y Terminación.

Proceso de Desarrollo (3): Contiene las actividades de análisis de requisitos, diseño, codificación, integración, pruebas, instalación y aceptación. Este proceso tiene las siguientes actividades: (1) Implementación del proceso, (2) Análisis de los requerimientos del sistema, (3) Diseño de la arquitectura del Sistema, (4) Análisis de los requerimientos del software, (5) Diseño de la arquitectura del software, (6) Diseño detallado del software, (7) Prueba y codificación del software, (8) Integración del software, (9) Prueba de capacidad del software, (10) Integración del sistema, (11) Prueba de capacidad del sistema, (12) Instalación del sistema, y (13) Soporte de aceptación del software.

Proceso de Operación (4): Abarca las actividades y tareas del operador de software. La operación del software está integrada a la operación de todo el sistema. El proceso abarca la operación del software y el soporte operacional del usuario. Este proceso tiene las siguientes actividades: (1) Implementación del proceso, (2) Prueba operacional, (3) Operación del sistema y (4) Soporte al usuario.

Proceso de Mantenimiento (5): Este proceso del ciclo de vida define las actividades que realiza la persona de mantenimiento, la organización que provee el servicio de mantenimiento del software, es decir, administrar las modificaciones del software. Este proceso incluye la migración y retiro del software. Este proceso tiene las siguientes actividades: (1) Implementación del proceso, (2) Análisis del problema y modificación, (3) Implementación de la modificación, (4) Revisión / Aceptación del mantenimiento, (5) Migración y (6) Retiro del software.

Procesos de Soporte del Ciclo de Vida

Son aquellos que se aplican en cualquier punto del ciclo de vida y contribuyen al éxito y calidad de un proyecto de software.

Proceso de Documentación (1): Registra la información producida en cada proceso o actividad del ciclo de vida. Este proceso define las actividades con las cuales planificar, diseñar, desarrollar, editar, distribuir y mantener los documentos necesarios que afectan a los Gerentes, Ingenieros y Usuarios del sistema. Las actividades de este proceso son: (1) Implementación del proceso, (2) Diseño y desarrollo, (3) Producción y (4) Mantenimiento.

Proceso de Gestión de la Configuración (2): Aplica procedimientos técnicos y administrativos para identificar, definir y determinar la línea base de los ítems del software, para controlar las modificaciones y nuevas solicitudes de versiones, para asegurar la terminación y corrección de los ítems; y para controlar el almacenamiento, manejo y entrega de los ítems. Las actividades de este proceso son: (1) Implementación del proceso, (2) Identificación de la configuración, (3) Control de la configuración, (4) Informe del estado de la configuración, (5) Evaluación de la configuración; y (6) Manejo y entrega de la nueva versión (release).

Proceso de Aseguramiento de la Calidad (3): Permite asegurar que el software cumple con los requisitos especificados de calidad. Las actividades de este proceso son: (1) Implementación del proceso, (2) Aseguramiento del producto, (3) Aseguramiento del proceso y (4) Aseguramiento de los sistemas de calidad.

Proceso de Verificación (4): Permite determinar si los requisitos están completos y correctos. Define las actividades a realizar por el adquiriente, proveedor o tercera parte independiente para verificar la conformidad de los productos y proyectos con sus especificaciones. Las actividades de este proceso son: (1) Implementación del proceso y (2) Verificación.

Proceso de Validación (5): Permite determinar si el software cumple con los requisitos previstos para su uso. Define las actividades a realizar por el adquiriente, el proveedor o una tercera parte independiente, para validar si el uso de los productos o servicios del proyecto satisface a los adquirientes. Las actividades de este proceso son: (1) Implementación del proceso y (2) Validación.

Proceso de Revisión (6): Permite evaluar el estado del software en cada etapa del ciclo de vida. Las actividades de este proceso son: (1) Implementación del proceso, (2) Revisión de la administración del proyecto y (3) Revisiones técnicas.

Proceso de Auditoria (7): Determina si se han cumplido los requisitos, planes y el contrato. Las actividades de este proceso son: (1) Implementación del proceso y (2) Auditoria.

Proceso de Resolución del problema (8): Permite asegurar el análisis y la eliminación de problemas encontrados durante el desarrollo. Define un proceso para analizar y remover problemas, cualquiera sea su naturaleza o fuente, que aparecen durante la realización de todos los procesos incluidos en esta norma o en su customizing. Las actividades de este proceso son: (1) Implementación del proceso y (2) Resolución del problema.

Procesos del Ciclo de Vida Organizacional

Son aquellos que ayudan a la organización, en general, a través del establecimiento y mejoramiento de una estructura asociada a los procesos del ciclo de vida, al personal y al mejoramiento continuo de la estructura y de los procesos.

Proceso de Gestión (1): Contiene actividades genéricas de la organización como planificación, seguimiento, control, revisión y evaluación, las cuales permiten administrar los procesos respectivos. Las actividades de este proceso son: (1) Inicio y definición del alcance, (2) Planificación, (3) Ejecución y control, (4) Revisión y evaluación; y (5) Cierre.

Proceso de Infraestructura (2): Incluye la infraestructura necesaria de hardware, software, herramientas, técnicas, normas e instalaciones para el desarrollo, la explotación o el mantenimiento. Las actividades de este proceso son: (1) Implementación del proceso, (2) Establecimiento de la infraestructura y (3) Mantenimiento de la infraestructura.

Proceso de Mejora (3): Sirve para establecer, valorar, medir, controlar y mejorar los procesos del ciclo de vida del software. Las actividades de este proceso son: (1) Establecimiento del proceso, (2) Evaluación del proceso y (3) Mejoramiento del proceso.

Proceso de Formación (4): Permite mantener al personal formado incluyendo el material de formación y el plan de formación. Las actividades de este proceso son: (1) Implementación del proceso, (2) Desarrollo del material de formación y (3) Implementación del plan de formación.

Para la aplicación de ISO 12207 se necesitan de los siguientes factores: (1) Políticas organizacionales, (2) Estrategia de adquisición, (3) Concepto de soporte, (4) Modelos del ciclo de vida, (5) Partes involucradas, (6) Actividad del ciclo de vida del sistema, (7) Características a nivel sistema y (8) Características a nivel software.

ISO/IEC 12207:2002 AMD 1 Este Amendement 1 provee una revisión de la ISO/IEC 12207:1995 estableciendo un conjunto de información de software que puede ser utilizada en la definición de procesos, evaluación y mejoramiento de procesos. Es decir, agrega y modifica procesos a los ya existentes.

Procesos principales del Ciclo de Vida

Cada uno de los procesos que conforman los “Procesos Principales” tienen establecidos su “Propósito del proceso” y “Resultados” respectivos.

Procesos de Soporte del Ciclo de Vida

Cada uno de los procesos que conforman los “Procesos de Soporte” tienen establecidos su “Propósito del proceso” y “Resultados” respectivos. Se agregan 2 procesos nuevos a los ya existentes.

Proceso de Facilidad de Uso (9): Permite asegurar la calidad en uso del software. Las actividades de este proceso son: (1) Implementación del proceso, (2) Diseño centrado en el ser humano y (3) Aspectos humanos de estrategia, introducción y soporte.

Proceso de Evaluación del Producto (10): Permite asegurar, a través de un examen y medición, que un producto satisface los requerimientos del usuario. Para esta tarea, se puede tener en cuenta la norma ISO/IEC 14598 – Software Product Evaluation.

Procesos del Ciclo de Vida Organizacional

Cada uno de los procesos que conforman los “Procesos de la Organización” tienen establecidos su “Propósito del proceso” y “Resultados” respectivos. Se agrega una actividad al Proceso de Gestión (1): (6) Medición.

El proceso de “Formación (4)” cambia de nombre y se denomina Proceso de “Recursos Humanos”.

Proceso de Recursos Humanos (4): Permite que la organización y la gente que posee conocimientos y destrezas puedan cumplir con sus roles y trabajar en grupo. Las actividades de este proceso son: (1) Implementación del proceso, (2) Definir los requerimientos de formación, (3) Contratar un staff calificado, (4) Evaluar el performance del staff, (5) Establecer los requerimientos del equipo del proyecto y (6) Gestión del conocimiento.

Se agregan los siguientes procesos:

Proceso de Administración de Activos (5): Permite aplicar procedimientos administrativos y técnicos durante la vida de un activo para identificar, definir, certificar y clasificar los activos. Las actividades de este proceso son: (1) Implementación del proceso, (2) Definición del recupero y almacenamiento del activo; y (3) Manejo y control del activo.

Proceso de Administración de Programas de re-uso (6): Es un proceso que se utiliza para planificar, establecer, controlar y monitorear el programa de re-uso de la organización. Las actividades de este proceso son: (1) Inicio, (2) Identificación del dominio, (3) Evaluación del re-uso, (4) Planificación, (5) Ejecución y control; y (6) Revisión y evaluación.

Proceso de Ingeniería del Dominio (7): Es un proceso que abarca el desarrollo y mantenimiento de los modelos del dominio, arquitectura del dominio y otros activos del dominio. Las actividades de este proceso son: (1) Implementación del proceso, (2) Análisis del dominio, (3) Diseño del dominio, (4) Provisión del activo y (5) Mantenimiento del activo.

ISO/IEC 12207:2004 AMD 2 Este Amendment 2 contiene modificaciones de “Propósito” y “Resultados” de varios procesos identificados dentro del alcance de Amendment 1. También contiene correcciones de “Propósito” y “Resultados” de varios procesos por razones técnicas y/o deficiencias.

Procesos principales del Ciclo de Vida

Se determinan las actividades de “Supply Process” (F.1.2)

Procesos de Soporte del Ciclo de Vida

Se agrega un nuevo proceso a los ya existentes.

Proceso de Change Request Management (11): Permite considerar todo lo relacionado al manejo de cambios. Se modifican los procesos: “Configuration Management Process” (F.2.2) y “Problem Resolution Management Process” (F.2.8)

Procesos del Ciclo de Vida Organizacional

Se modifican los procesos: “Risk management” (F.3.1.5), “Infraestructura Process” (F.3.2), “Process mprovement” (F.3.3.2), y “Reuse Program Management Process” (F.3.6)

De acuerdo al objetivo que tenga cada proceso definido en ISO 12207, se puede establecer una grado de correspondencia con los ítems definidos en ISO 9001:2000 y con las áreas de proceso de CMMi V1.2.

De esta forma, la Norma ISO 12207 ayuda a considerar diversos aspectos durante el ciclo de desarrollo del software.