# ISO/IEC 12207

ISO/IEC 12207 - Information Technology / Software Life Cycle Processes es el estándar para los procesos de ciclo de vida del software de la organización ISO. Siendo el proceso un conjunto de tareas, y un conjunto de pasos que involucran actividades, restricciones y recursos, produciendo una salida determinada, es decir un proceso es un conjunto de actividades y tareas que están relacionadas, y al ejecutarse conjuntamente transforman una entrada en una salida.

## Estructura

La estructura del estándar ha sido concebida de manera que pueda ser adaptada a las necesidades de cualquiera que lo use. Para conseguirlo, el estándar se basa en dos principios fundamentales: modularidad y responsabilidad. Con la modularidad se pretende conseguir procesos con un mínimo acoplamiento y una máxima cohesión. En cuanto a la responsabilidad, se busca establecer un responsable para cada proceso, facilitando la aplicación del estándar en proyectos en los que pueden existir distintas personas u organizaciones involucradas, no importando el uso que se le dé a este.

## Categorización del estándar
### Según su origen

Según su origen o creación lo catalogamos como un estándar de JURE.
Este tipo de estándares son producidos por una institución del gobierno o, como ocurre en este caso, por una organización internacional reconocida como es ISO (International Organization for Standarization). Para la creación del estándar, el grupo encargado de la estandarización (en este caso la organización ISO) debe seguir un proceso abierto que permite a todos participar para llegar al consenso.
Este estándar se desarrolla con respecto a las normas internacionales que se redactan de acuerdo con las reglas establecidas en las Directivas ISO/IEC. La principal tarea del comité técnico conjunto es preparar normas internacionales.
Los proyectos de normas internacionales adoptadas por el comité son enviados a los organismos nacionales para su votación.
La posterior publicación como norma internacional, como es este caso, requiere la aprobación de al menos un 75% de los organismos nacionales con derecho a voto.

### Según sus posibilidades de aplicación

Podemos considerar este estándar como abierto debido a que, según su definición, un estándar abierto es aquel cuya base es la cooperación y el consenso entre un grupo de personas, permitiendo que las personas compartan los datos libremente. Para la aprobación de su última versión (2006) fue necesario una aprobación de un 75% de los organismos nacionales.
Por otro lado, un estándar abierto no debe limitar su uso a una única empresa, cosa la cual no aplica este estándar, ya que está disponible, o bien en varias implementaciones completas por compañías en competencia, o bien como una implementación completa para todas las partes, estando de esta forma libre de cláusulas legales o técnicas que limiten su uso en cualquier modelo de negocio.

### Según la materia que estandarizan

Es un estándar de procesos. Crea un marco para los procesos de ciclo de vida del software.

### Según su ámbito de aplicación

Se trata de una norma internacional, protegido por copyright por la ISO y la IEEE.
A excepción de lo permitido por las leyes aplicables de país del usuario, ni esta norma ISO/IEEE ni cualquier extracto de la misma puede ser reproducida, almacenada en un sistema de recuperación o transmitida en cualquier forma o a través de cualquier medio: electrónico, fotocopia, grabación o cualquier otra manera, sin el permiso previo y por escrito de ser asegurado.
Las solicitudes de autorización para reproducir deberán dirigirse a las normas ISO o la IEEE.

### Catálogo de Estándares ICS

Dentro del catálogo de ISO, este estándar lo encontramos en:
* Nivel 1(Campo): 35: INFORMATION TECHNOLOGY.
* Nivel 2(Grupo): 080: SOFTWARE, INCLUDING SOFTWARE DEVELOPMENT, DOCUMENTATION AND USE

## Procesos

Los procesos se clasifican en tres tipos: procesos primarios, procesos de soporte y procesos organizacionales. Los procesos de soporte y de organización deben existir independientemente de la organización y del proyecto ejecutado. Los procesos principales se instancian de acuerdo con la situación particular. Vamos a poder utilizar los procesos de soporte desde un proceso primario, o incluso desde otro de soporte. El estándar 12207 va a identificar a los procesos organizacionales como los que deben realizarse en el contexto de la organización que va a ejecutar dicho proyecto, normalmente se aplican de forma común desde múltiples proyectos.

## Aplicación del Estándar
### Uso Correcto

La aplicación general del estándar ISO/IEC 12207 consiste en seleccionar un conjunto de procesos y adecuarlos a un determinado proyecto u organización, de modo que no será necesaria la inclusión del conjunto total de procesos establecidos en la norma en toda la organización o proyecto. Existen dos formas en las cuales se puede confirmar que una determinada implementación se ajusta a este estándar, cualquier declaración de conformidad solo puede ser citada en una sola de estas dos formas:
* Conformidad completa: cuando se demuestra que todos los procesos que han sido establecidos por la norma, se ha confirmado que han sido satisfechos usando los resultados como evidencia de esto.
* Conformidad a la medida: cuando esta norma utiliza como base un conjunto de procesos específicos, y estos procesos se ha confirmado que han sido satisfechos usando los resultados como evidencia de esto.

### Recomendaciones

El estándar ISO/IEC 12207 recomienda un marco común para los procesos de Ciclo de Vida del Software, que nace de una necesidad o nueva idea, que va a ser satisfecha en parte o su totalidad por el software y que va a culminar con su jubilación. La creación de este Software puede estar formado por diversos modelos de ciclo de vida, los cuáles constan de etapas que representan la vida del software, desde su concepción, hasta que concibe el estado actual de un proyecto de desarrollo. No requiere la implementación de un modelo de ciclo de vida software, pero se recomienda que para cada proyecto se haya definido previamente el modelo de ciclo de vida más apropiado. Tampoco requiere un conjunto de etapas determinadas. Para su uso efectivo, se deben de tener en cuenta algunos prerrequisitos, como que el personal del software debe estar capacitado, de modo que se pueda familiarizar con las políticas de la organización y el entorno del proyecto, además de su comprensión del estándar.

### Factores para Aplicar el Estándar ISO/IEC 12207

Además de las recomendaciones anteriores, para la aplicación del Estándar también se tienen que tener en cuenta entre otros, los siguientes aspectos:
* Ciclo de Vida del Sistema: en general un Ciclo de Vida, cubre las fases de Requisitos, Análisis, Diseño, Documentación y Prueba.
* Tipo de software: el tipo de Software del proyecto debe de ser determinado, como nuevo software, firmware, reutilización de uno existente, software embebido, software independiente, etc.
* Rol en el Ciclo de Vida: el usuario dentro del estándar se debe determinar si es un comprador, un proveedor, un desarrollador, un operador o un mantenedor.
* Modelo de Desarrollo: dentro del proyecto se debe de identificar uno o más modelos de Desarrollo, como: Cascada, Incremental, Evolutivo, Reingeniería o esprial.
* Características del proyecto: los requerimientos y especificaciones del producto o servicio dominan la determinación y selección de procesos, actividades y tareas.
* Políticas organizacionales: las políticas organizacionales involucradas deben de ser identificadas y analizadas para poder determinar la relevancia del proyecto. Se deben de identificar y analizar las leyes nacionales y reglamentos de seguridad pública, la salud y el medio ambiente entre otros, que son aplicables en cualquier caso.
* Documentación: el estándar ISO/IEC 12207 proporciona resultados de las actividades y tareas. Se va a determinar qué resultados son necesarios, como deben de ser combinados, empaquetados y distribuidos. Se debe de asegurar que la operación y el soporte personal están involucrados en la determinación de la documentación necesaria.
* Evaluación: el estándar ISO/IEC 12207 incluye varios procesos y tareas que se basan en evaluaciones, estas se llevan a cabo dentro de un proceso o entre procesos.
* Cláusulas: se deben controlar las cláusulas relacionadas con la ingeniería, en las que el usuario debe de actuar con precaución y juicio técnico, influyendo en la documentación; las relacionada con la gestión, están cubiertas por la ejecución y las actividades de control y garantía tanto de verificación como de validación; y las cláusulas de documentación, el alcance y la extensión de la documentación va a depender principalmente del tamaño, la diversidad, la vida del software y la necesidades de los usuarios.

## Versiones

* ISO/IEC 12207:1995. Primera publicación.
* ISO/IEC 12207:1995/Amd 1:2002. Primera modificación.
* ISO/IEC 12207:1995/Amd 2:2004. Segunda modificación.
* ISO/IEC 12207:2008. Tercera Modificación
* ISO/IEC/IEEE 12207:2017.

## Enlaces

* International Organization for Standardization
* Adaptación de las normas ISO/IEC 12207:2002 e ISO/IEC15504:2003 para la evaluación de la madurez de procesos software en países en desarrollo
* Norma Técnica Peruana NTP ISO/IEC 12207 que es una traducción prácticamente literal de la segunda modificación del estándar.
* Foro en Castellano de la ISO/IEC 15504
* Foro en Castellano de la ISO/IEC 15505