Gestión de la configuración de software
Propósitos
Las siguientes son las razones
clave para implementar un Sistema de Gestión de Configuración de Software:
- Actualización
constante de las diferentes personas que trabajan en el software.
- Un
proyecto de configuración de software puede contener varias versiones,
ramas y autores, y el equipo puede estar disperso geográficamente y
trabajar simultáneamente.
- Los
cambios en los requisitos de los usuarios, las políticas, los presupuestos
y los plazos deben ajustarse.
- El
software debe poder ejecutarse en una variedad de plataformas y sistemas
operativos.
- Ayuda
en el desarrollo de la coordinación de las partes interesadas
- El
proceso SCM también es útil para controlar los costos de los cambios en el
sistema.
Planeación de la configuración
La administración de la configuración del software
es un conjunto de actividades que se desarrollaron para administrar el
cambio a lo largo del ciclo de vida del software de computadora.
Elementos de la
configuración
- Elementos componentes: conjunto de
herramientas acopladas dentro de un sistema de administración de
archivos (por ejemplo, base de datos) que permite el acceso a
cada ítem de configuración del software, así como su gestión.
- Elementos de proceso: colección de acciones
y tareas que definen un enfoque efectivo de la gestión del cambio (y
actividades relacionadas) para todos los elementos
constituyentes involucrados en la administración, ingeniería y uso
del software.
- Elementos de construcción: conjunto de
herramientas que automatizan la construcción de software al
asegurarse de que se ensambló el conjunto adecuado de
componentes validados (es decir, la versión correcta).
- Elementos humanos: conjunto de
herramientas y características de proceso (que abarcan otros
elementos AC) utilizados por el equipo de software para implementar ACS
efectiva.
Identificación de
objetos
Es posible
identificar dos tipos de objetos : básicos y agregados.
Un objeto básico es una unidad
de información que se crea durante el análisis, el diseño, el código o la
prueba.
Por ejemplo, un
objeto básico puede ser una sección de una especificación de
requerimientos, parte de un modelo de diseño, código fuente para un
componente o una suite de casos de prueba que se utilice para ejercitar el
código.
Un objeto
agregado es una colección de objetos básicos y de otros objetos
agregados.
Por ejemplo, un
DesignSpecification es un objeto agregado. Conceptualmente, puede
vérsele como una lista nominada (identificada) de punteros que especifican
objetos agregados, como ArchitecturalModel y DataModel, y objetos básicos,
como ComponentN y UMLClass-DiagramN.
Control de versiones
El control de versión
combina procedimientos y herramientas para administrar diferentes versiones de
objetos de configuración que se crean durante el proceso de software.
Un sistema
de control de versión implementa o se integra directamente con cuatro
grandes capacidades:
1) una base de
datos de proyecto (repositorio) que almacena todos los objetos de
configuración relevantes,
2) una capacidad de
administración de versión que almacena todas las versiones de un objeto de
configuración (o que permite la construcción de cualquier versión usando
diferencias de las versiones pasadas)
3) una facilidad para
elaboración que le permite recopilar todos los objetos de configuración
relevantes y construir una versión específica del software.
Además, los sistemas
de control de versión y de control de cambio con frecuencia
implementan una capacidad de rastreador de conflictos (también llamado
rastreador de errores) que permite al equipo registrar y rastrear el
estado de todos los conflictos sobresalientes asociados con cada objeto de
configuración.
Algunos sistemas de
control de versión establecen un conjunto de cambio, una colección
de todos los cambios (en relación con cierta configuración de referencia)
que se requieren para crear una versión específica del software.
Control de cambios
El control de cambios es una actividad procedimental que garantiza la calidad y la consistencia conforme se realizan cambios a un objeto de configuración. El proceso de control de cambios comienza con una petición de cambios, conduce a una decisión para hacer o rechazar la petición del cambio y culmina con una actualización controlada del ICS que debe cambiarse.
Auditoría
Una auditoría de
configuración del software complementa la revisión técnica al valorar
un objeto de configuración acerca de las características que por lo
general no se consideran durante la revisión.
La auditoría hace y
responde las siguientes preguntas:
1. ¿Se realizó el
cambio especificado en la OCI? ¿Se incorporó alguna modificación adicional?
2. ¿Se llevó a cabo
una revisión técnica para valorar la exactitud técnica?
3. ¿Se siguió el
proceso del software y se aplicaron adecuadamente los estándares de ingeniería de
software?
4. El cambio se
“resaltó” en el ICS? ¿Se especificaron la fecha del cambio y el autor
del cambio? ¿Los atributos del objeto de configuración reflejan el cambio?
5. ¿Se siguieron los
procedimientos ACS para anotar, registrar y reportar el cambio?
6. ¿Los ICS
relacionados se actualizaron adecuadamente?
Informe de estados
El reporte del estado
de la configuración (en ocasiones llamado contabilidad de estado) es
una tarea ACS que responde las siguientes preguntas:
1) ¿Qué
ocurrió?
2) ¿Quién lo hizo?
3)
¿Cuándo ocurrió?
4) ¿Qué más se
afectará?
Cada vez que se le
asigna a un ICS una nueva identificación o que se le actualiza, se hace
una entrada REC. Cada ocasión que el ACC aprueba un cambio (es decir, emite
una OCI), se hace una entrada REC. Cada vez que se lleva a cabo una
auditoría de la configuración, los resultados se reportan como parte de la
tarea REC. La salida del REC puede colocarse en una base de datos en línea
o en un sitio web, de modo que los desarrolladores de software o el
personal de apoyo puedan acceder a la información del cambio mediante
categorías de palabras clave. Además, regularmente se genera un reporte
REC y se tiene la intención de mantener al tanto de los cambios importantes
a los gerentes y profesionales.
Gestión de la
configuración para la ingeniería web
Los desarrolladores de webapps con
frecuencia usan un modelo de proceso iterativo incremental que aplica
muchos principios derivados del desarrollo de software ágil (capítulo 3).
Al usar este método, un equipo de ingeniería con frecuencia desarrolla un
incremento de webapp en un periodo muy corto, usando un enfoque impulsado
por el cliente. Los incrementos posteriores agregan contenido y
funcionalidad adicionales, y es probable que cada uno implemente cambios
que conduzcan a aumento de contenido, mejor usabilidad, estética mejorada,
mejor navegación, desempeño aumentado y seguridad más fuerte. Por tanto,
en el mundo ágil de las webapps, el cambio se ve de manera un poco diferente.
Resumen
La administración de la configuración
del software es una actividad sombrilla que se aplica a lo largo del
proceso de software. La ACS identifica, controla, audita y reporta las
modificaciones que invariablemente ocurren mientras el software se
desarrolla y después de que se libera a un cliente. Todos los productos de
trabajo creados como fases de la ingeniería de software se vuelven parte
de una configuración del software. La configuración se organiza de manera que
permite el control ordenado del cambio.
La auditoría de la configuración es una
actividad SQA que ayuda a garantizar que la calidad se conserva conforme
se realizan cambios. El reporte de estado proporciona información
acerca de cada cambio a quienes necesitan conocerla.
La administración de la configuración
para webapps es similar en muchos aspectos a la ACS para software
convencional. Sin embargo, cada una de las tareas núcleo ACS debe
dinamizarse para hacerla tan magra como sea posible y deben implementarse
provisiones especiales para la administración del contenido.
Propósitos
Las siguientes son las razones
clave para implementar un Sistema de Gestión de Configuración de Software:
- Actualización
constante de las diferentes personas que trabajan en el software.
- Un
proyecto de configuración de software puede contener varias versiones,
ramas y autores, y el equipo puede estar disperso geográficamente y
trabajar simultáneamente.
- Los
cambios en los requisitos de los usuarios, las políticas, los presupuestos
y los plazos deben ajustarse.
- El
software debe poder ejecutarse en una variedad de plataformas y sistemas
operativos.
- Ayuda
en el desarrollo de la coordinación de las partes interesadas
- El
proceso SCM también es útil para controlar los costos de los cambios en el
sistema.
Planeación de la configuración
La administración de la configuración del software
es un conjunto de actividades que se desarrollaron para administrar el
cambio a lo largo del ciclo de vida del software de computadora.
Elementos de la configuración
- Elementos componentes: conjunto de
herramientas acopladas dentro de un sistema de administración de
archivos (por ejemplo, base de datos) que permite el acceso a
cada ítem de configuración del software, así como su gestión.
- Elementos de proceso: colección de acciones
y tareas que definen un enfoque efectivo de la gestión del cambio (y
actividades relacionadas) para todos los elementos
constituyentes involucrados en la administración, ingeniería y uso
del software.
- Elementos de construcción: conjunto de
herramientas que automatizan la construcción de software al
asegurarse de que se ensambló el conjunto adecuado de
componentes validados (es decir, la versión correcta).
- Elementos humanos: conjunto de
herramientas y características de proceso (que abarcan otros
elementos AC) utilizados por el equipo de software para implementar ACS
efectiva.
Identificación de
objetos
Es posible
identificar dos tipos de objetos : básicos y agregados.
Un objeto básico es una unidad
de información que se crea durante el análisis, el diseño, el código o la
prueba.
Por ejemplo, un
objeto básico puede ser una sección de una especificación de
requerimientos, parte de un modelo de diseño, código fuente para un
componente o una suite de casos de prueba que se utilice para ejercitar el
código.
Un objeto
agregado es una colección de objetos básicos y de otros objetos
agregados.
Por ejemplo, un
DesignSpecification es un objeto agregado. Conceptualmente, puede
vérsele como una lista nominada (identificada) de punteros que especifican
objetos agregados, como ArchitecturalModel y DataModel, y objetos básicos,
como ComponentN y UMLClass-DiagramN.
Control de versiones
El control de versión
combina procedimientos y herramientas para administrar diferentes versiones de
objetos de configuración que se crean durante el proceso de software.
Un sistema
de control de versión implementa o se integra directamente con cuatro
grandes capacidades:
1) una base de
datos de proyecto (repositorio) que almacena todos los objetos de
configuración relevantes,
2) una capacidad de
administración de versión que almacena todas las versiones de un objeto de
configuración (o que permite la construcción de cualquier versión usando
diferencias de las versiones pasadas)
3) una facilidad para
elaboración que le permite recopilar todos los objetos de configuración
relevantes y construir una versión específica del software.
Además, los sistemas
de control de versión y de control de cambio con frecuencia
implementan una capacidad de rastreador de conflictos (también llamado
rastreador de errores) que permite al equipo registrar y rastrear el
estado de todos los conflictos sobresalientes asociados con cada objeto de
configuración.
Algunos sistemas de
control de versión establecen un conjunto de cambio, una colección
de todos los cambios (en relación con cierta configuración de referencia)
que se requieren para crear una versión específica del software.
Control de cambios
El control de cambios es una actividad procedimental que garantiza la calidad y la consistencia conforme se realizan cambios a un objeto de configuración. El proceso de control de cambios comienza con una petición de cambios, conduce a una decisión para hacer o rechazar la petición del cambio y culmina con una actualización controlada del ICS que debe cambiarse.
Auditoría
Una auditoría de
configuración del software complementa la revisión técnica al valorar
un objeto de configuración acerca de las características que por lo
general no se consideran durante la revisión.
La auditoría hace y
responde las siguientes preguntas:
1. ¿Se realizó el
cambio especificado en la OCI? ¿Se incorporó alguna modificación adicional?
2. ¿Se llevó a cabo
una revisión técnica para valorar la exactitud técnica?
3. ¿Se siguió el
proceso del software y se aplicaron adecuadamente los estándares de ingeniería de
software?
4. El cambio se
“resaltó” en el ICS? ¿Se especificaron la fecha del cambio y el autor
del cambio? ¿Los atributos del objeto de configuración reflejan el cambio?
5. ¿Se siguieron los
procedimientos ACS para anotar, registrar y reportar el cambio?
6. ¿Los ICS
relacionados se actualizaron adecuadamente?
Informe de estados
El reporte del estado
de la configuración (en ocasiones llamado contabilidad de estado) es
una tarea ACS que responde las siguientes preguntas:
1) ¿Qué
ocurrió?
2) ¿Quién lo hizo?
3)
¿Cuándo ocurrió?
4) ¿Qué más se
afectará?
Cada vez que se le
asigna a un ICS una nueva identificación o que se le actualiza, se hace
una entrada REC. Cada ocasión que el ACC aprueba un cambio (es decir, emite
una OCI), se hace una entrada REC. Cada vez que se lleva a cabo una
auditoría de la configuración, los resultados se reportan como parte de la
tarea REC. La salida del REC puede colocarse en una base de datos en línea
o en un sitio web, de modo que los desarrolladores de software o el
personal de apoyo puedan acceder a la información del cambio mediante
categorías de palabras clave. Además, regularmente se genera un reporte
REC y se tiene la intención de mantener al tanto de los cambios importantes
a los gerentes y profesionales.
Gestión de la configuración para la ingeniería web
Los desarrolladores de webapps con
frecuencia usan un modelo de proceso iterativo incremental que aplica
muchos principios derivados del desarrollo de software ágil (capítulo 3).
Al usar este método, un equipo de ingeniería con frecuencia desarrolla un
incremento de webapp en un periodo muy corto, usando un enfoque impulsado
por el cliente. Los incrementos posteriores agregan contenido y
funcionalidad adicionales, y es probable que cada uno implemente cambios
que conduzcan a aumento de contenido, mejor usabilidad, estética mejorada,
mejor navegación, desempeño aumentado y seguridad más fuerte. Por tanto,
en el mundo ágil de las webapps, el cambio se ve de manera un poco diferente.
Resumen
La administración de la configuración del software es una actividad sombrilla que se aplica a lo largo del proceso de software. La ACS identifica, controla, audita y reporta las modificaciones que invariablemente ocurren mientras el software se desarrolla y después de que se libera a un cliente. Todos los productos de trabajo creados como fases de la ingeniería de software se vuelven parte de una configuración del software. La configuración se organiza de manera que permite el control ordenado del cambio.
La auditoría de la configuración es una
actividad SQA que ayuda a garantizar que la calidad se conserva conforme
se realizan cambios. El reporte de estado proporciona información
acerca de cada cambio a quienes necesitan conocerla.
La administración de la configuración
para webapps es similar en muchos aspectos a la ACS para software
convencional. Sin embargo, cada una de las tareas núcleo ACS debe
dinamizarse para hacerla tan magra como sea posible y deben implementarse
provisiones especiales para la administración del contenido.

