Gestión de Proyectos

Anuncio
Tema III:
Gestión de la Configuración.
Diana Marcela Sánchez Fúquene
Ingeniería del Software de Gestión
Introducción

Gestión de la Configuración del Software (GCS / SCM)
◦ Def.- Arte de identificar, organizar, revisar y controlar las modificaciones que
sufre el software que construye un equipo de desarrollo
◦ Aplicado durante el proceso de software
◦ Gestión de la configuración ≡ Gestión de cambios

Mantenimiento SW (actividades de soporte) ≠ GCS
◦ Mantenimiento:
 Def.- Conjunto de actividades posteriores a la entrega del SW al cliente
◦ Gestión de la configuración
 Def.- Conjunto de actividades de seguimiento desde el inicio hasta el final del proyecto
(circulación del sw)

Objetivo
◦ Maximizar la producción minimizando los errores
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
2
Introducción

Cambio
◦ Actividades de autoprotección




Identificar el cambio
Controlar el cambio
Garantizar que el cambio se implemente adecuadamente
Informar del cambio a todos los interesados
◦ Orígenes del cambio
 Cambios en el mercado o en el negocio que afectan a
los requisitos
 Cambios hechos por el cliente en los datos o en la
funcionalidad del sistema
 Reorganización de las prioridades del proyecto
 Restricciones de tiempo o de dinero
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
3
Gestión de Proyectos:
GCS – Conceptos básicos

Configuración
◦ La ordenación de un sistema o componente informático según se ha definido
por la naturaleza, número e interconexiones de sus partes constituyentes

Configuración Software
◦ Los requisitos, diseño, e implementación que definen una versión particular de
un sistema o de un componente del sistema [IEEE Std. 610.12-1990]

Elemento de Configuración (Configuration item) (EC)
◦ Agregación de hardware y software, o de ambos, diseñada para la
gestión de configuración y que se trata como una única entidad en el
proceso de gestión de configuración. Ejemplos






Especificación de requisitos
Plan de gestión de configuración software
Plan del proyecto
Modelo funcional del sistema
Código fuente
Plan de pruebas…
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
4
Gestión de Proyectos:
GCS – Conceptos básicos

Configuración software = Conjunto de elementos que contienen toda la
información producida por el proceso software
Programas
• Código fuente
• Ejecutables
Proceso
de
Ingeniería
Documentos

Datos
Elemento de configuración = conjunto de partes en las cuales se divide el
software y sobre las cuales se quieren controlar los cambios
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
5
Gestión de Proyectos:
GCS – Conceptos básicos

Línea base (LB)
◦ Elemento central de la disciplina de GCS  Parte
fundamental del desarrollo de software
◦ Marca el final de una fase del ciclo de vida del
software
◦ Def.1- Especificación o producto revisado que sirve
como base para el posterior desarrollo y sólo puede
cambiarse por procedimientos formales de control de
cambios  hito en el plan de desarrollo
◦ Def.2- Configuración operativa del sistema software
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
6
Gestión de Proyectos:
GCS – Conceptos básicos

Línea base (LB). Idea lógica
LB modificada
Tareas de
Ingeniería
del
Software
Revisiones
técnicas
formales
Base de datos del proyecto
• Líneas Base:
 Especificación del sistema
 Requisitos del software
 Especificaciones de diseño
 Código fuente
 Planes/Procedimientos/Pruebas
 Sistema de funcionamiento
LB aprobada
LB almacenada
LB extraída
Controle
s GCS
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
7
Gestión de Proyectos:
GCS – Conceptos básicos

Línea base (LB). Ejemplos
◦ LB Funcional: al final de la fase de análisis. Plan de análisis,
req. del sistema, plan de calidad, plan de gestión de la
configuración, plan de pruebas de aceptación.
◦ LB de Asignación: al final de la fase de diseño de alto nivel.
Arquitectura, interfaces de subsistemas, plan de pruebas de
sistema.
◦ LB de Diseño: al final de la fase de diseño detallado. Diseño
de subsistemas y plan de pruebas de integración.
◦ LB de Producto: al final de la codificación. Código fuente,
objeto y ejecutable, resultados de pruebas de integración y
versión preliminar de los manuales.
◦ LB de Explotación: al final de la implantación. Resultados de
pruebas de sistema y documentación de usuario.
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
8
Gestión de Proyectos:
GCS – Conceptos básicos

Gestión de la Configuración del Software
(GCS)
◦ Def.- Disciplina que identifica la configuración de un
sistema en puntos discretos del tiempo, con el
objetivo de controlar sistemáticamente los cambios de
esa configuración y mantener su calidad y
trazabilidad a través del ciclo de vida del sistema.

Actividades de la GCS
◦
◦
◦
◦
Identificación
Control
Auditoría
Contabilidad del estado
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
9
Gestión de Proyectos:
GCS – Actividades

Identificación de la configuración
◦ Para controlar y gestionar los elementos de la
configuración
◦ Tareas:
 Identificación de los EC y de las LB
 Registrar los elementos a controlar
 Mantenimiento de las listas de elementos y líneas base
 Nombrado de los EC
 Asignación de identificadores únicos para elementos y
versiones
 Obtención de los EC
 Identificación de las bibliotecas de almacén de documentación
de GCS
 Descripción de los procedimientos de almacenaje y
recuperación de los elementos controlados
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
10
Gestión de Proyectos:
GCS – Actividades

Identificación de objetos
◦ Identificación única
 Organización siguiendo un enfoque OO
 Tipos de objetos
 Básicos: unidad de información creada por un ingeniero de
software durante alguna fase de IS
 P. ej.: Parte de un documento (“Unidad de Texto”)
 Compuestos
◦ Relaciones - Lenguaje Interconexión de Módulos
 Interdependencias entre objetos
 Construcción automática de una versión
 Sirven para valorar el impacto de un cambio en el
proyecto software
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
11
Gestión de Proyectos:
GCS – Actividades

Control de la configuración
◦ Petición, evaluación, aprobación o desaprobación e
implementación de los cambios a los EC de la LB.
Correcciones y mejoras
◦ Tareas:
 Identificación y documentación de la necesidad del cambio
(petición)
 Especificación de procedimientos de solicitud de cambio
 Prioridad, fecha, autor, descripción del cambio…
 Análisis y evaluación de la petición de cambio
 Descripción del impacto análisis a realizar para evaluar el impacto del
cambio
 Aprobación o desaprobación de los cambios
 Descripción de los responsables de aceptar/rechazar el cambio
 Implementación de los cambios
 Actividades para verificar e implementar los cambios
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
12
Gestión de Proyectos:
GCS – Actividades

Contabilidad del estado de la
configuración
◦ Define e implementa los procedimientos para
poder ofrecer una vista del proceso
(visibilidad) y para poder registrar la evolución
del producto (trazabilidad)
◦ Mecanismos para determinar qué ha ocurrido
en el proceso de desarrollo y cuándo
◦ Beneficio de llevar una contabilidad del estado
de la configuración: ahorro de tiempo y
dinero al no repetir cosas previamente hechas
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
13
Gestión de Proyectos:
GCS – Actividades

Informes de Estado
◦ Definen:




¿Qué pasó?
¿Quién lo hizo?
¿Cuándo pasó?
¿Qué más se vio afectado?
◦ Realización:




Cuando se crea o actualiza un EC
Cuando se emite una “orden de cambio”
Cada vez que se realiza una actividad de auditoría
…
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
14
Gestión de Proyectos:
GCS – Actividades

Auditorías y revisiones de la configuración
◦ Def.- Medio por el cual una organización asegura que los
desarrolladores han hecho su trabajo de forma que se
satisfacen todas las responsabilidades externas
◦ Objetivo: asegurarse de que un cambio ha sido
implementado correctamente.
◦ Auditoría de Configuración: Costosa en tiempo y recursos
 Dificultad técnica
 Experiencia de los auditores
 Mejora la calidad
◦ Características de la auditorías de configuración:
 Garantiza que los elementos auditados están completos y siguen
las normas de GCS
 Garantizan que la LB corresponde con la descripción de sus
elementos
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
15
Gestión de Proyectos:
GCS – Actividades

Auditoría de la Configuración
◦ Alternativas
 Revisión técnica formal
 Auditoría de la configuración del software
◦ Realizada por el Grupo de Calidad (Comité de Control
de la Calidad)
◦ Factores que tiene en cuenta:






¿Se han seguido las pautas descritas en la “Orden de Cambio”?
¿Se ha informado de los cambios?
¿Se han actualizado los EC relacionados?
¿Se ha seguido el estándar?
¿Es correcto (técnicamente) el cambio?
…
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
16
Gestión de Proyectos:
GCS – Elementos

Elementos de un sistema de GCS:
◦ Componentes: Herramientas de gestión y acceso
a los ítems de configuración
◦ Procesos: Procedimientos y tareas utilizadas para
la gestión de los cambios
◦ E. de Construcción: Herramientas de
construcción automática de software para
validación
◦ E. Humanos: Equipo de desarrollo de
SW/Auditores
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
17
Gestión de Proyectos:
GCS – Plan de gestión

Plan de gestión de configuración software
◦ Plan de GCS IEEE Std. 828-2005 ≠
Plan del Proyecto IEEE Std 1058.1-1987
◦ Secciones:
I.
II.
III.
IV.
V.
VI.
Introducción
Gestión de la GCS (¿quién?)
Actividades de GCS (¿qué?)
Calendario de GCS (¿cuándo?)
Recursos de GCS (¿cómo?)
Mantenimiento del plan de GCS
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
18
Gestión de Proyectos:
GCS – Plan de gestión

Sección I. Introducción. Partes incluidas:
◦ Objetivo: visión general simplificada
◦ Elementos:
 Propósito: razón de ser y audiencia. Sistema al que se aplicará
(breve).
 Alcance:
Descripción del Proyecto Software
Identificación de los EC
Software a incluir dentro del plan
Limitaciones y suposiciones de impacto (coste, calendario, capacidad
de realizar el GCS)
 Intereses del Plan: qué incluye y qué no




 Definiciones: basadas en definiciones estándar (Punto de
control, liberación, línea base, etc)
 Referencias: políticas, directivas, procedimientos, estándares,
terminología, etc.
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
19
Gestión de Proyectos:
GCS – Plan de gestión

Sección II. Gestión de la GCS
◦ Objetivo: Asignación de responsabilidades y
autoridades para las actividades de GCS
◦ Elementos:
 Organización: unidades organizativas (técnicas y de
gestión), roles y relaciones entre las unidades
 Responsabilidades de la GCS: asignación de
actividades de GCS a las unidades organizativas
 Políticas, directivas y procedimientos aplicables:
impacto y uso
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
20
Gestión de Proyectos:
GCS – Plan de gestión

Sección III. Actividades de GCS
◦ Objetivo: identificar las funciones y tareas requeridas para
gestionar la configuración del sistema.
◦ Partes:
 Descripción de las tareas de GCS:




Identificación
Control de la configuración (cambios y versiones)
Contabilidad del estado (informes)
Auditorías y revisiones
 Control de la interfaz: coordinación entre los ECS y los cambios
en los elementos externos (HW, SW de soporte, etc)
 Interfaz software: acuerdos compartidos entre el programa y otras
entidades software
 Interfaz hardware: acuerdos compartidos entre el programa y las
características de cualquier hw. del entorno
 Control del “subcontratista/vendedor”: gestión del software
adquirido (tanto terminado como en producción)
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
21
Gestión de Proyectos:
GCS – Plan de gestión

Sección IV. Calendarios de GCS
◦ Objetivo: establecer la secuencia y coordinación para
las actividades de GCS

Sección V. Recursos de GCS
◦ Objetivo : identificar las herramientas software,
técnicas, equipamiento, personal y entrenamiento
necesario para las tareas de GCS

Sección VI. Mantenimiento del plan de GCS
◦ Objetivo : identificar las actividades y responsabilidades
necesarias para asegurar la planificación continua de
la GCS durante el ciclo de vida del proyecto
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
22
Gestión de Proyectos:
GCS – Proceso

Proceso de GCS
◦ Objetivo de GCS: Garantía de calidad del SW
◦ Tareas del proceso de GCS (según sus objetivos):





Identificación de objetos / ítems
ECS
Control de versiones
Control de cambios
Evolución del
Auditorías de CS
ECS a través
Generación informes
de las tareas
de GCS (ciclo
de vida)
Software (versión X.Y)
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
23
Gestión de Proyectos:
GCS – Control de cambios

Control de Cambios
◦ Generar un mecanismo para llevar el control de los cambios
 Protocolos de actuación para personas
 Herramientas de automatización de cambios
◦ Aplicación de políticas de gestión de cambios informales salvo en
el proceso de conversión de EC a Línea Base (crítico)
◦ Procesos a controlar
 Baja del objeto en la biblioteca
 Alta del objeto en la biblioteca
 Aplicación de la política de versiones sobre los objetos  Control de
versiones
◦ Elementos a definir:
 Control de acceso al repositorio (seguridad y permisos)  “Autoridad
de Control de Cambios”
 Control de sincronización (concurrencia de acceso al repositorio)
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
24
Gestión de Proyectos:
GCS – Control de versiones

Control de Versiones
◦ Procedimientos y herramientas para la gestión
de las versiones de los Objetos de
Configuración
◦ Conocer todos los componentes asociados a
una versión determinada.
2.0
1.0
1.1
2.1
1.2
1.3
1.1.1
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
25
Gestión de Proyectos:
GCS – Control de versiones

Control de Versiones
◦ Elementos de un sistema de control de
versiones (genéricos):
 Base de datos del proyecto (repositorio)
 Gestor de versiones (almacena todas las versiones
y permite crear nuevas a partir de las versiones
almacenadas)
 Una facilidad para construir objetos de
configuración
 Gestor de errores
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
26
Gestión de Proyectos:
GCS – Control de versiones

Control de versiones
◦ Def.- “Versión” = forma particular que adopta un objeto de
configuración en un instante determinado
◦ Repositorios:
 Estrategias de versionado:
 Bloqueo-Modificación-Desbloqueo (problemático)  centralizado
 Copiar-Modificar-Mezclar (ideal)  centralizado o distribuido
 Tipos:
 Común (o grupal)
 Local: perteneciente a cada uno de los desarrolladores
◦ Evoluciones:
 Temporales: “Revisión” = conjunto de versiones en un instante
determinado
 Espaciales: “Variante” = versión de un componente o sistema que
evoluciona de forma separada al desarrollo principal
◦ Def.- “Delta” = conjunto de cambios de una versión con respecto a
la anterior
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
27
Gestión de Proyectos:
GCS – Control de versiones

Operaciones y conceptos habituales en el
control de versiones de documentos o
código fuente (CVS, Subversion, etc…)
◦ diff: se utiliza para saber la diferencia entre 2
ficheros produciendo un tercero (denominado
“delta” y que sigue un formato unificado).
 Delta = file (diff (A, B))
◦ patch: se utiliza para, a partir de un fichero origen
A y un archivo delta obtener la versión
modificada de A
 B = file (patch (A, Delta))
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
28
Gestión de Proyectos:
GCS – Control de versiones

Operaciones y conceptos (cont.)
◦ branch: acto de copiar un fichero original con
la intención (o no) de modificarlo
◦ merge: consiste en incorporar en un
repositorio los cambios que se produjeron en
otro de forma independiente
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
29
Gestión de Proyectos:
GCS – Control de versiones

Control de versiones: Ejemplo
ARCHIVO BASE
MERGE/BRANCH
0000 0000
0000 0000
MODIFICACION1
MODIFICACION2
0001 0001
1000 0001
DIFF de MODIFICACION1
DIFF de MODIFICACION1
---base
2007-03-05 16:01:00.0000
--- base
+++cambio1
2007-03-05 16:21:34.5000
--- cambio2 2007-03-05 17:43:40.3000
-0000 0000
-0000 0000
+0001 0001
+1000 0001
15/02/2010
2007-03-05 16:01:00.0000
Ing. Software de Gestión (LADE-ITIG)
30
Gestión de Proyectos:
GCS – Control de versiones

Herramientas de gestión de la configuración
◦
◦
◦
◦
◦
◦
◦
◦
◦
◦

CVS: Concurrent Version System. www.cvshome.org
CCC/Harvest de Computer Associates
ClearCase de Rational
PVCS de Merant
SourceForge de VA Software
SourroundSCM de Seapine Software
Vesta de Compac
Aegis
Subversion
Darc, Arch, Monotone, Codeville, Bitkeeper, etc…
Más herramientas en: CM//CrossRoads
(http://www.cmcrossroads.com/component/option,com_dire
ctory/Itemid,86/ )
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
31
Bibliografía

R. S. Pressman. Software Engineering: A Practitioner's Approach. Ed. McGraw Hill, 2005. 6th Edition. Cap.
27.

M. Piattini. Análisis y Diseño detallado de Aplicaciones Informáticas de Gestión. Ed. Ra-Ma. 1996

IEEE Std 610.12-1990. IEEE Standard Glossary of Software Engineering Terminology

IEEE Std 828-2005. IEEE Standard for Software Configuration Management Plans.

IEEE Std 1058.1-1987. IEEE Standard for Software Project Management Plans

LugFI, Grupo de usuarios de GNU/Linux de la Facultad de Ingeniería de la universidad de Buenos Aires,
Argentina. Introducción a los sistemas de control de versiones.
http://www.lug.fi.uba.ar/documentos/scms/index.php (bajo licencia GPL)

C. Michael Pilato, B. Collins-Sussman, B. W. Fitzpatrick. Control de versiones con Subversion. Ed. O’Reilly
Media, 2004. Libro “libre” (descargable de http://svnbook.red-bean.com/)

TortoiseSVN. Intefaz de Subversion para Windows: http://tortoisesvn.net/downloads

Manual de TortoiseSVN en español:
http://mesh.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.4.3-es.pdf

Cómo instalar un cliente de Subversion en 28 segundos: http://kopernix.com/?q=svnd_como
15/02/2010
Ing. Software de Gestión (LADE-ITIG)
32
Descargar