La NTP-ISO/IEC 12207 como un marco de referencia a los procesos del ciclo de vida del software
Enviado por H Collantes Chules
Resumen
El software es una parte esencial de sistemas convencionales y de tecnologías de la información, tales como sistemas de transporte, militares, médicos y financieros.
Hay una proliferación de normas, procedimientos, métodos, herramienta y entornos para desarrollar y gestionar el software. Esta proliferación ha creado dificultades en la gestión y en la ingeniería de software, especialmente en la integración de productos y servicios. La disciplina del software necesita evolucionar desde esta proliferación, hacia un marco de referencia común que pueda ser usado por los profesionales del software para "hablar el mismo lenguaje", a la hora de crear y gestionar el software. Esta Norma Técnica Peruana proporciona ese marco de referencia común.
La NTP-ISO/IEC 12207 tiene como objetivo principal proporcionar una estructura común para que compradores, proveedores, desarrolladores, personal de mantenimiento, operadores, gestores y técnicos involucrados en el desarrollo de software usen un lenguaje común.
Palabras Claves: NTP-ISO/IEC 12207.
Abstract
The software is an essential part of conventional systems and information technologies , such as financial and transportation systems , military doctors.
There is a proliferation of standards , procedures, methods , tools and environments for developing and managing the software. This proliferation has created difficulties in management and software engineering , particularly in the integration of products and services. The discipline of software needs to evolve from this proliferation towards a common framework that can be used by software professionals to "speak the same language" when creating and managing software. This International Standard provides the common framework .
NTP-ISO/IEC 12207 The main objective is to provide a common structure for buyers, suppliers , developers , maintainers , operators, managers and technicians involved in software development using a common language.
Antecedentes
"Hoy en día las Organizaciones compran o desarrollan productos de software para apoyar los procesos de negocio. Las Normas internacionales de Ingeniería del software brindan las mejores prácticas para la adquisición y desarrollo de productos con calidad con el objetivo de satisfacer las necesidades y expectativas del Cliente".
Para lograr la construcción del software o sistema, se necesita una guía o marco de referencia que asegura en gran medida la calidad y el éxito del proyecto.
Con ésta finalidad fue creado la norma 12207 para los procesos del ciclo de vida del software.
La norma surge a principios de la década de los noventa, como un estándar internacional. Es una norma conjunta entre Iso – Iec (International Organization for Standarization – International Electrotechnical Commission). Su principal motivación fue establecer un marco de trabajo común a la ingeniería del software. Aplicable a la Ingeniería y a la gestión.
La norma iso/iec 12207 establece un marco de trabajo común para la ingeniería del software, a lo largo de todo el ciclo de vida del producto.
El ciclo de vida de un sistema de software comienza en el momento que se concibe su idea o necesidad. Momento en el que ya es necesario comenzar a actuar de manera ortodoxa para describir el ámbito del problema y las soluciones posibles. El ciclo de vida comprende el desarrollo, mantenimiento y operación y no concluye hasta que el sistema deja de utilizarse y es definitivamente retirado.
Basado en esta norma internacional, en el Perú se desarrolló la NTP-ISO/IEC 12207.
La presente Norma Técnica Peruana fue elaborada por el Comité Técnico de Normalización de Ingeniería de Software y Sistemas de Información, mediante el Sistema 1 ó de Adopción, durante los meses de enero a marzo del 2006, utilizando como antecedente a la Norma ISO/IEC 12207:1995/Amd 1:2002/Amd 2:2005 Information technology. Software life cycle processes.
El Comité Técnico de Normalización de Ingeniería de Software y Sistemas de Información presentó a la Comisión de Reglamentos Técnicos y Comerciales – CRT, con fecha 2006-04-21, el PNTP-ISO/IEC 12207:2006, para su revisión y aprobación, siendo sometido a la etapa de Discusión Pública el 2006-06-09. No habiéndose presentado observaciones fue oficializado como Norma Técnica Peruana NTP-ISO/IEC 12207:2006 TECNOLOGÍA DE LA INFORMACIÓN. Procesos del ciclo de vida del software, 2ª Edición, el 28 de julio de 2006.
Esta Norma Técnica Peruana reemplaza a la NTP-ISO/IEC 12207:2004 y es una adopción de la ISO/IEC 12207:1995/Amd 1:2002/Amd 2:2005. La presente Norma Técnica Peruana presenta cambios editoriales referidos principalmente a terminología empleada propia del idioma español y ha sido estructurada de acuerdo con las Guías Peruanas GP 001:1995 y GP 002:1995.2
Estructura de la norma
La NTP 12207 está estructurada en 3 procesos grandes: principales, de apoyo y organizativos del ciclo de vida.
Procesos principales
Adquisición: El proceso comienza con la identificación de la necesidad de adquirir un sistema, un producto software o un servicio software. El proceso continúa con la preparación y publicación de una solicitud de propuestas, la selección de un proveedor y la gestión del proceso de adquisición hasta la aceptación del sistema, del producto software o del servicio software. El proceso lo inicia el adquiriente del producto o servicio software. Sus actividades son:
Inicio.
Preparación de la solicitud de propuestas.
Preparación y actualización del contrato.
Seguimiento del proveedor.
Aceptación y finalización.
Suministro: El proceso se puede iniciar ya sea por la decisión de preparar una oferta para contestar a una solicitud de propuestas de un adquiriente, o por la firma e inicio de un contrato con el adquiriente para proporcionarle un sistema, producto software o servicio software. El proceso continúa con la determinación de los procedimientos y recursos necesarios para gestionar y asegurar el proyecto, incluyendo la preparación y ejecución de los planes del proyecto hasta la entrega al adquiriente del sistema, producto o servicio software. Sus actividades son:
Inicio.
Preparación de la respuesta.
Contrato.
Planificación.
Ejecución y control.
Revisión y evaluación.
Entrega y finalización.
Desarrollo: contiene las actividades para el análisis de los requerimientos, diseño, codificación, integración, pruebas e instalación y aceptación relacionadas con los productos software. Puede contener actividades a nivel de sistema si se estipula en el contrato. El desarrollador lleva a cabo o soporta las actividades de este proceso de acuerdo con el contrato.
Sus actividades son:
Implementación del proceso.
Análisis de los requerimientos del sistema.
Diseño de la arquitectura del sistema
Análisis de los requerimientos software.
Diseño de la arquitectura del software.
Diseño detallado del software.
Codificación y pruebas del software.
Integración del software.
Pruebas de calificación del software.
Integración del sistema.
Pruebas de calificación del sistema.
Instalación del software.
Apoyo a la aceptación del software.
Operación: El proceso cubre la operación del producto software y el apoyo a la operación de los usuarios. Ya que la operación del producto software está integrada a la operación del sistema, las actividades y tareas de este proceso hacen referencia al sistema. Las actividades son:
Implementación del proceso.
Pruebas de operación.
Operación del sistema.
Soporte al usuario.
Mantenimiento: Este proceso se inicia cuando el producto software sufre modificaciones en el código y la documentación asociada, debido a un problema o a la necesidad de mejora o adaptación. El objetivo es modificar el producto software existente preservando su integridad. Este proceso incluye la migración y retirada del producto software. El proceso termina con la retirada del producto software.
Consta de las siguientes actividades:
Implementación del proceso.
Análisis de problemas y modificaciones.
Implementación de las modificaciones.
Revisión/aceptación del mantenimiento.
Migración.
Retirada del software.
Procesos de apoyo
Documentación: es un proceso para registrar la documentación producida por un proceso o actividad del ciclo de vida. El proceso contiene el conjunto de actividades para planificar, diseñar, desarrollar, producir, editar, distribuir y mantener aquellos documentos que necesitan todos los involucrados tales como gerentes, ingenieros y usuarios del sistema o producto software. consta de las siguientes actividades:
Implementación del proceso.
Diseño y desarrollo.
Producción.
Mantenimiento.
Gestión de la configuración: es el proceso de aplicar procedimientos técnicos y administrativos a lo largo del ciclo de vida del software para: identificar, definir y establecer la línea base de los elementos software en un sistema; controlar modificaciones y releases de los elementos; registrar e informar del estado de los elementos y peticiones de modificación; asegurar la completitud, consistencia y corrección de los elementos; y controlar el almacenamiento, manipulación y entrega de los elementos. Sus actividades son:
Implementación del proceso.
Identificación de la configuración.
Control de la configuración.
Determinación del estado de la configuración.
Evaluación de la configuración.
Gestión de releases y entrega.
Aseguramiento de la calidad: proporcionar la seguridad apropiada de que los productos y procesos software del ciclo de vida del proyecto son conformes con sus requerimientos especificados y se adhieren a los planes establecidos. Sus actividades son:
Implementación del proceso.
Aseguramiento del producto.
Aseguramiento del proceso.
Aseguramiento del sistema de calidad.
Verificación: es un proceso para determinar si los productos software de una actividad cumplen con los requerimientos o condiciones que tienen impuestas por las actividades precedentes. Por motivos de efectividad en costo y rendimiento, se debería integrar, lo antes posible, la verificación, en los procesos (tales como los de suministro, desarrollo, operación o mantenimiento) que la emplean. Estos procesos pueden incluir análisis, revisión y prueba. Sus actividades son:
Implementación del proceso.
Verificación.
Validación: es un proceso para determinar si los requerimientos y el sistema o producto software, tal como se ha construido, cumplen con su uso específico previsto. La validación se puede llevar a cabo en etapas tempranas. Este proceso se puede llevar a cabo como parte del apoyo a la aceptación del producto.
Implementación del proceso.
Validación.
Revisión conjunta: proceso para evaluar el estado y los productos de una actividad de un proyecto, según sea adecuado. Las revisiones conjuntas están a nivel tanto de gestión del proyecto como técnico y se mantienen a lo largo de la vida del contrato. Este proceso puede ser empleada por cualquiera de las dos partes, donde una de ellas (la revisora) revisa a la otra parte (la revisada). Sus actividades son:
lmplementación del proceso.
Revisiones de la gestión del proyecto.
Revisiones técnicas.
Auditoría: proceso para determinar el cumplimiento con los requerimientos, planes y contrato, según aplique. Este proceso puede ser empleado por cualquiera de las dos partes, donde una de ellas (la auditora) audita los productos software o actividades de la otra parte (la auditada). Sus actividades son:
lmplementación del proceso.
Auditoría.
Solución de problemas: proceso para analizar y resolver problemas (incluidas las no conformidades), cualquiera que sea su naturaleza u origen, que se descubran durante la ejecución de los procesos de desarrollo, operación, mantenimiento u otros. El objetivo es el proporcionar un mecanismo que responsable, documentariamente y a tiempo asegure que todos los problemas descubiertos se analizan y resuelven y se reconozcan las tendencias. Sus actividades son:
lmplementación del proceso.
Solución de problemas.
Procesos organizativos
Gestión: contiene las actividades genéricas y tareas que pueden ser empleadas por cualquier parte que tenga que gestionar sus respectivos procesos. El gerente es responsable de la gestión del producto, gestión del proyecto y gestión de las tareas de los procesos aplicables, tales como el de adquisición, suministro, desarrollo, operación, mantenimiento o soporte. Sus actividades son:
Inicio y definición del alcance.
Planificación.
Ejecución y control.
Revisión y evaluación.
Finalización.
Infraestructura: proceso para establecer y mantener la infraestructura que necesita cualquier otro proceso. La infraestructura puede incluir hardware, software, herramientas, técnicas, normas e instalaciones para el desarrollo, operación o mantenimiento. Sus actividades son:
Implementación del proceso.
Establecimiento de la infraestructura.
Mantenimiento de la infraestructura.
Mejora: proceso es un proceso para establecer, evaluar, medir, controlar y mejorar un proceso del ciclo de vida del software. Sus procesos son:
Establecimiento del proceso.
Evaluación del proceso.
Mejora del proceso.
Recursos humanos: proceso para proporcionar y mantener personal capacitado. La adquisición, suministro, desarrollo, operación o mantenimiento de los productos software depende en gran medida de personal entendido y competente. Sus actividades son:
lmplementación del proceso.
Desarrollo del material de formación.
lmplementación del plan de formación.
Campo de aplicación
Es aplicable en la adquisición de sistemas, productos y servicios software, al suministro, desarrollo, operación y mantenimiento de productos software y a la parte software del firmware, independientemente de que sea hecho interna o externamente a una organización. Incluye también aquellos aspectos de la definición de sistema necesarios para proporcionar el contexto de los productos y servicios software.
Está orientada para ser usada en situaciones en las que haya dos partes incluido el caso en que estas dos partes pertenezcan a la misma organización. La situación puede ir desde un acuerdo informal, hasta un contrato con responsabilidades legales. Esta NTP puede ser usada por una sola parte como una autoimposición.
Está escrita para adquirientes de sistemas y productos y servicios software y para proveedores, desarrolladores, operadores, responsables de mantenimiento, administradores, responsables de aseguramiento de calidad y usuarios de productos software.
Aportes
Espiritual: Las normas nos indican cambio, mejora y superación. En la Biblia el Dios del cielo, dejó verdades eternas de obediencia a sus normas o mandamientos para ser felices. Los que cumplen las normas por amor y gratitud a un Dios Todopoderoso llegan a lograr estándares de calidad para beneficio de su familia y sociedad. Las normas de Dios están en Éxodo 20:12 y a lo largo de toda la Biblia se dan sus detalles y no solamente el qué debes hacer sino también cómo logarlo. Es una ISO integrada del cielo.
Innovación: Entendemos la innovación como un proceso de negocios a través del cual las ideas se transforman en soluciones en forma sistemática y eficiente creando valor superior para clientes, consumidores y accionistas.
La innovación tecnológicos que ayuden a fortalecer su competitividad y mejorar su productividad.
Tecnológico: La tecnología hoy en día en una herramienta muy importante ya que con ella contamos con la información necesaria y las herramientas para poder desarrollar los trabajos o proyectos
En la tecnología la ISO 12207 la aportación es que nos da la información y el material, nosotros vemos como lo usamos y en que lo usamos
Social: El hombre es un ser social y biológicamente es imposible un ser humano fuera de la sociedad. Aplicaríamos la Iso 12207 con los deberes de los ciudadanos obrando conforme al principio de la solidaridad social
Conclusiones
La norma te dice qué es lo que debes hacer, pero no cómo, para ello juegan un papel muy importante las metodologías para cumplir con los requerimientos de la norma.
En desarrollo fielmente de la norma mejores definitivamente los procesos del ciclo de vida del software porque está validado a nivel internacional.
Este marco de referencia cubre el ciclo de vida del software desde la conceptualización de ideas hasta su retirada y consta de procesos para adquirir y suministrar productos y servicios software. Cubre además el control y la mejora de estos procesos.
Referencias
1Comité Técnico de Normalización y de Ingeniería de Software y Sistemas de Información. (2006). Norma Técnica Peruana NTP-ISO/IEC 12207 – 2006. Perú. 194p.
2http://www.minedu.gob.pe/ofin/xtras/rm0164-2010ed_part1.pdf
Autor:
Persy Quiroz Menor1,
Oscar Requejo García2,
Hitler Collantes Chules3.