SCM - Source Code Management


Definiciones de la SCM

Una disciplina que aplica una dirección técnica y administrativa para: identificar y documentar las características técnicas y funcionales de un elemento de configuración, controlar los cambios a esas características, registrar y reportar el estado del procesamiento de los cambios y la implementación y verificar la conformidad con los requerimientos especificados.
(IEEE 610.12-90)

Un proceso de soporte al ciclo de vida del software que beneficia las actividades de administración del proyecto, desarrollo, mantenimiento y aseguramiento (de la calidad), así como a los clientes y usuarios del producto final.
(NTP-ISO/IEC 12207, IEEE 12207.0-96) 

Principales Actividades de la SCM

  • Administración y planeamiento de la SCM
  • Identificación de la configuración del software, 
  • Control de la configuración del software, 
  • Contabilidad del estado de la configuración del software, y 
  • Administración de lanzamientos y entregas.
SCM - Ciclo de Vida NTP-ISO/IEC 12207


Metas de la SCM
  • Meta 1. Las actividades de SCM son planificadas;
  • Meta 2. Los productos de trabajo (work products) seleccionados son identificados, controlados y se encuentran disponibles;
  • Meta 3. Los cambios sobre los productos del trabajo son controlados;
  • Meta 4. Los grupos o individuos afectados son informados del estado y de los contenidos de las líneas de base del software.


Acuerdo para Desarrollar la SCM
  • Se ha asignado de manera explícita una responsabilidad para la SCM para cada proyecto;
  • La SCM se ha implementado a través del ciclo de vida del proyecto;
  • La SCM se ha implementado para los productos software externamente entregados, productos software designados para entrega interna y las herramientas de soporte designadas para su uso interno al proyecto;
  • El proyecto establece o tiene acceso a un repositorio para almacenar los elementos/unidades de configuración  y los registros de la SCM asociados 
  • Las líneas de base del software y las actividades de la SCM son auditadas de una forma periódica 


La Biblioteca de Líneas de Base del Software

Las bibliotecas de desarrollo contienen los elementos de configuración que están siendo desarrollados o se encuentran bajo pruebas unitarias; las bibliotecas de master almacenan los elementos de configuración en sus líneas de base actual; en tanto que las bibliotecas de archivo contienen los elementos de configuración en líneas de base de liberación o retirados.

Administración de la Configuración (CM)

SG 1 Establecer Líneas de Base
  • SP 1.1 Identificar los Elementos de Configuración
  • SP 1.2 Establecer un Sistema de Gestión de la Configuración
  • SP 1.3 Crear o liberar líneas de base

SG 2 Seguir y Controlar los Cambios
  • SP 2.1 Seguir las Solicitudes de Cambios
  • SP 2.2 Controlar los Elementos de Configuración

SG 3 Establecer la Integridad
  • SP 3.1 Establecer los registros de la Gestión de la Configuración
  • SP 3.2 Desarrollar las auditorías de la Configuración


Administración de la Configuración (CM)
  • Plan de Configuración Definido
    • Define los CI que serán gestionados y controlados
    • Plantillas, estándar para nombres, formatos comunes
    • Establece un sistema de CM (automatizado o manual)
  • CCB establecido para cambios a los CI “controlados”.
  • Establece procesos  para la líneas de base y de integridad para los CI controlados

    • Documentación del Proyecto (p.e. requerimientos, presupuesto, cronograma, plan de dotación de personal, aprobaciones, planes de QA/CM)
    • Componentes de ingeniería (p.e. especificaciones de diseño, código)
  • Evaluación objetiva de conformidad con las prácticas de CM
  • “Gestionado” y “Controlado”
    • Gestionado – Los cambios son seguidos y las adendas son documentadas
    • Controlado – Gestionado + la autoridad para cambios se ha definido, los procedimientos existen para prevenir accesos no autorizados, cambios autorizados por el CCB  y se comunica cuando un cambio es efectuado.

Línea Base (Baseline)

  • Concepto para facilitar el control de cambios
  • Definiciones
    • Punto de vista del proceso
      • Punto de referencia
      • Aprobación de uno o más ECS
      • Revisión técnica formal
    • Punto de vista del producto
      • Conjunto de ECS aprobados
      • Sirven como base para el desarrollo posterior
      • Sólo pueden cambiarse mediante un proceso formal de control de cambios

¿Qué es Integración Continua?

Práctica donde todos los miembros de un equipo integran su trabajo frecuentemente.
Cada integración es verificada por un build automático que detecta errores de integración tan pronto como sea posible.


Herramientas

svn maven hudson ci jenkins sopa ui\load sonar junit\nutit mantis issue traccer





Leave a Reply

Si vas a comentar recuerda que:

1) Se moderará cada uno de los comentarios antes de ser publicados.

2) Trata de comentar con tu Nombre/URL y no como usuario Anónimo.

3) No se permiten los insultos ni nada parecido.

4) No se permiten los Spoilers ni el Spam (a menos que sea recomendando tu Blog/Web).