SlideShare uma empresa Scribd logo
1 de 50
Wilson Tineo
Ledwin R. Valdez C.
Francisco Cáceres
   Archivos perdidos: “se que lo escribí, pero no
    se dónde lo puse ...”
   Referencias perdidas: “solía funcionar, pero
    usa librerías que ya no están ...”
   Sobrescribir     el    código      de     otro:
    desarrolladores que hacen distintos cambios
    en el mismo código sobrescribiendo su
    trabajo mutuamente.
   No hay botón deshacer: los nuevos cambios
    son peores, pero no se puede volver atrás ...
   ¿Qué versión tiene el cliente? ¿A cuál
    corresponde el error?
   La versión actual del código se sobrescribe
    por una anterior.
   Una actualización crítica se descarta de la
    versión final.
   Se hacen cambios a una versión incorrecta del
    código.
   Reaparecen errores ya corregidos.
   No se logra determinar qué versiones de
    archivos van en una entrega.
Gestión de la Configuración del Software

   Actividad constante aplicada durante todo el
    proceso de ingeniería de software para
    identificar, organizar     y    controlar las
    modificaciones que sufre el software.
SCM      Software                  Configuration
 Management

   “Es el conjunto total de actividades utilizadas
    para administrar el contenido de un producto
    de software desde el principio hasta el final
    del proceso de desarrollo.” “Es la disciplina de
    administrar y controlar los cambios en la
    evolución de los sistemas de software”
Preguntas en el GCS:
-¿Cómo identificar las muchas versiones de un
 programa        y      su      documentación
 eficientemente?
-¿Cómo controlar la organización de cambios
 antes y después de la distribución?
-¿Quién es el responsable de aprobar y asignar
 prioridades a los cambios?
-¿Cómo garantizar que los cambios se han
 hecho eficientemente?
-¿Qué mecanismos se usan para avisar a otros
 de los cambios realizados?
   En términos muy generales, la Gestión de
    Configuración del Software (GCS) se puede
    definir como una disciplina cuya misión es
    controlar la evolución de un sistema software.
   Según Babich, “El arte de coordinar el
    desarrollo de software para minimizar la
    confusión,     se   denomina      Gestión    de
    Configuración. La Gestión de Configuración
    es el arte de identificar, organizar y controlar
    las modificaciones que sufre el software que
    construye un equipo de programación. El
    objetivo es maximizar la productividad
    minimizando los errores.”
¿Qué papel juega la Gestión de Configuración
dentro de un Proyecto de Desarrollo de Software?
El éxito de un proyecto depende de la correcta
ejecución de 4 tipos de funciones:
Gestión         del       Proyecto:         incluye
fundamentalmente la Estimación, Planificación y
Seguimiento del proyecto, y la Organización,
Dirección y Gestión de Recursos Humanos.
Desarrollo Técnico: Actividades de Ingeniería

del Software a lo largo de todo el ciclo de vida del
producto (Análisis, Diseño, Codificación).

En resumen, la Gestión de Configuración es una
disciplina de control, dentro del proyecto.
-   Establecer y mantener la integridad de los
    productos generados durante un proyecto de
    desarrollo de software y a lo largo de todo el
    ciclo de vida del producto.

-   Evaluar y controlar los cambios sobre ellos,
    es decir, controlar la evolución del sistema
    software.

-   Facilitar la visibilidad sobre el producto.
   Para conseguir estos objetivos, la Gestión de
    Configuración plantea la realización de
    ciertas actividades. La definición estándar de
    Gestión de Configuración del Software, tal y
    como aparece en el estándar de IEEE, incluye
    las siguientes actividades:
-   Identificación de la Configuración:
    Consiste en identificar la estructura del
    producto, sus componentes y el tipo de
    estos, y en hacerlos únicos y accesibles de
    alguna forma.

-   Control        de   Cambios       en        la
    Configuración: Consiste en controlar       las
    versiones y entregas de un producto y      los
    cambios que se producen en él a lo largo   del
    ciclo de vida.
-   Generación de Informes de Estado:
    Consiste en informar acerca del estado de los
    componentes de un producto y de las
    solicitudes    de     cambio,     recogiendo
    estadísticas acerca de la evolución del
    producto.

-   Auditoría de la Configuración: Consiste
    en validar la completitud de un producto y la
    consistencia    entre    sus   componentes,
    asegurando que el producto es lo que el
    usuario quiere.
   Los sistemas que automatizan la gestión de
    configuración     suelen  incluir  algunas
    funciones adicionales, lo que nos lleva a
    ampliar la definición estándar con las
    siguientes actividades:

- Construcción: Consiste en gestionar la
 compilación y enlazado de los distintos
 componentes del producto software de una
 forma lo más eficiente posible.
-   Control del Trabajo en Equipo: Consiste en
    controlar las interacciones que se producen entre
    los múltiples desarrolladores de un producto,
    sobre todo cuando deben compartir ciertos
    componentes del producto.
-   Control de Versiones: Consiste en mantener
    un registro histórico de las diferentes versiones
    por las que pasan los componentes de un
    producto, que permita la recuperación de
    cualquiera de ellas.
-   Gestión de Problemas: Consiste en realizar
    un seguimiento de la evolución de los problemas
    que afectan al producto.
- Número elevado de componentes a
controlar: A medida que progresa el proceso de
desarrollo de Software el número de componentes
crece rápidamente.
- Pero el problema realmente surge porque
en el proceso toma parte otra variable: el
CAMBIO. Como dice la ley de la Ingeniería de
Sistemas de Bersoff,
“sin importar en qué momento del ciclo de vida
del sistema nos encontremos, sistema informático
cambiará, y el deseo de cambiarlo persistirá a lo
largo de todo el ciclo de vida”.
La Gestión de Configuración está también
fuertemente relacionada con el problema del
mantenimiento del software.
Sin una buena Gestión de Configuración, el
mantenimiento de un producto puede ser una
verdadera pesadilla.
Tiene también una gran influencia sobre otros
aspectos del desarrollo de software, como son:

-Las   metodologías: Las actividades de
Gestión de Configuración deberán integrarse
con la metodología de desarrollo que utilice la
empresa. Su planificación dependerá de las
fases que establezca la metodología, los
productos que se generen, etc.
-   El entorno de desarrollo de software:
    cómo fuertemente integrada está la gestión de
    configuraciones con el resto de las capacidades
    del entorno de desarrollo, y qué tipo de
    funciones de Gestión de Configuración permite.
-   El modelo de proceso software: puesto que
    afecta a la forma en que los desarrolladores
    hacen su trabajo, imponiendo políticas y
    procedimientos, y supervisando la forma en que
    se realiza este trabajo. La Gestión de
    Configuración desempeña un papel importante
    a la hora de conseguir incrementar el nivel de
    madurez del proceso software de una
    organización.
-   La calidad del producto software:
    puesto que contribuye a mantener la
    integridad del producto.

-   La organización: puesto que por lo general
    se suele implantar una solución global, que
    afecta a toda la organización, y requiere del
    establecimiento     de   nuevos    roles    y
    responsabilidades que deberán integrarse en
    la organización del proyecto.
Al conjunto de toda la información y productos
utilizados o producidos en un proyecto como
resultado del proceso de Ingeniería de Software
se     le  denomina     CONFIGURACIÓN       DEL
SOFTWARE.
A cada uno de los componentes de la
configuración del software se le va a llamar
ELEMENTO DE CONFIGURACIÓN DEL SOFTWARE
(ECS). El ECS es la unidad de trabajo para la
GCS.

El término CONFIGURACIÓN DEL SOFTWARE
designa, por tanto, el conjunto de todos los
elementos de configuración del software de un
proyecto.
Se pueden considerar como Elementos de
 Configuración del Software los siguientes
 componentes:

   1.   La especificación del sistema.
   2.   El plan del proyecto software.
   3.   La especificación de requisitos software.
   4.   Un prototipo, ejecutable o en papel.
   5.   El diseño preliminar.
   6.   El diseño detallado.
   7.   El código fuente.
   8.   Programas ejecutables, entre otros
Como ya hemos visto, uno de los objetivos
principales de la Gestión de Configuración va a
ser el de gestionar los cambios que se
producen en el sistema a lo largo de su ciclo de
vida.

Para controlar los cambios sin impedir los
cambios justificados se utiliza el concepto de
LÍNEA BASE o “BASELINE”.
Se puede definir una VERSIÓN como una
instancia de un elemento de configuración, en
un momento dado del proceso de desarrollo,
que es almacenada en un repositorio, y que
puede ser recuperada en cualquier momento
para su uso o modificación.

A las distintas versiones que aparecen en el
tiempo, según se va avanzando en el desarrollo
de un elemento, se les suele llamar también
REVISIONES.
Entre las distintas revisiones de un elemento de
configuración se pueden establecer relaciones
de sucesión temporal.

Una representación posible para las diferentes
revisiones de un elemento y sus relaciones de
sucesión es mediante un GRAFO DE EVOLUCIÓN
o grafo de revisión.
   La manera más fácil de crear una nueva
    revisión de un ECS es realizar una
    modificación sobre la revisión más reciente.
    De esta manera las revisiones van formando
    una cadena, a la que se suele llamar CADENA
    DE REVISIÓN. Cada revisión en la cadena es
    una actualización de, y viene a sustituir a la
    revisión anterior. Normalmente se trabajará
    sobre la última revisión de la cadena, que es
    la más actual, aunque las anteriores también
    deben ser accesibles.
Cada una de las revisiones de un ECS se debe
poder identificar de manera única, siendo
común utilizar un esquema numérico, donde
cada nueva versión recibe un número sucesivo.
La Gestión de Configuración debe permitir
también especificar y gestionar distintas
VARIANTES de los elementos de configuración.
Las variantes son versiones de un elemento de
configuración     que    coexisten   en un
determinado momento y que se diferencian
entre sí en ciertas características.

Una variante no reemplaza a otra, como ocurre
con las revisiones.
Las variantes pueden ser temporales o
permanentes. Variante temporal es toda aquella
que se acabará mezclando con otra variante en
algún momento del desarrollo.

En ciertas ocasiones es necesario que varias
personas trabajen simultáneamente sobre la
misma versión de un objeto, y para que no
ocurran conflictos entre ellas, se crea una
variante distinta para cada persona, para que
puedan trabajar en paralelo.
   Una vez que todas ellas han acabado las
    modificaciones, es necesario mezclar todas
    las variantes para que la versión resultante
    contenga todos los cambios realizados. Las
    variantes temporales deben evitarse, y en
    todo caso mezclarse lo antes posible, ya que
    a medida que pasa el tiempo divergirán más
    de la versión original y entre sí, y resultará
    más difícil su fusión.
Por otro lado, las variantes permanentes
aparecen para dar respuesta a conjuntos
distintos de requisitos, y tampoco se llegarán a
mezclar entre sí. Podemos dividir este tipo de
variantes en dos categorías:

Variantes    de requisitos de usuario:
Tenemos distintos usuarios con distintos
requisitos. El caso más típico es el idioma
usado por estos.
Variantes  de plataforma: Debemos realizar
una variante por cada sistema operativo o
plataforma hardware sobre la que deseemos
que funcione nuestra aplicación.
Una posibilidad es almacenar únicamente la
última versión de cada uno de los ECS del
sistema,   pero  esto   puede   plantearnos
numerosos problemas.

Las herramientas de control de versiones o
gestión de revisiones nos ayudan a crear,
identificar y almacenar nuevas versiones, al
mismo tiempo que se mantienen las versiones
anteriores.
El modelo de trabajo sobre el que se basan la
mayoría de las herramientas de gestión de
revisión es el de la figura:
Las herramientas de control de versiones
utilizan maneras más eficientes para almacenar
las versiones, para disminuir la cantidad de
espacio requerido.

Normalmente estas herramientas no almacenan
físicamente todas las versiones, sino solamente
una de ellas, que puede ser la primera o la
última. Sin embargo, nos permiten recuperar
cualquier otra versión.
   1 Introducción (dos párrafos).
   2 Gestion de la configuracion:
   3 Aspectos organizacionales y legales.
   4 Organigrama y responsabilidades.
   5 Flujo de trabajo y procedimientos.
   6 Control de calidad.
   7 Descripción de actividades:
   8 Identificación de ítems.
   9 Gestión de cambios.
   10 Gestión de entregas.
   11 Auditorias: base de datos de la
    configuración.
   12 Planificación temporal.
   13 Recursos: humanos, físicos y
    herramientas.
   14 Mantenimiento y actualización del plan
    (medidas).
   Angelica Antonio, Gestion de la Configuracion, D
   M. Ben-Menachem, Software Configuration Management Guidebook, McGraw-Hill
   Book Company, 1994
   Bryan, W., Chadbourne, C., Siegel, S., Software Configuration Management, IEEE
   Computer Society Press, 1980.
   Compton, Stephen B. Conner, Guy R., Configuration Management for Software; edited
   by Joan R. Callahan, New York : Van Nostrand Reinhold, 1994.
   Dart, S., Tool Configuration Assistant, Second International Software Configuration
   Management Workshop, ACM SIGSOFT Software Engineering Notes, Octubre 1989.
   Dart, S. and Feiler, P., Configuration Management in CASE Tools and Environments,
   Third International Workshop on Computer-Aided Software Engineering (CASE 89),
   IEEE Computer Society, Julio 1989.
   Dart, S. A., The Past, Present and Future of Configuration Management, Proceedings
   of the IFIP World Congress, Madrid, Spain, Septiembre 1992.
   Krane, Steven P. Modeling the Configuration Management process, University of
   Colorado, Boulder, Dept. of Computer Science, 1989.
   SEI Bridge, Configuration Management: State of the Art, Software Engineering
   Institute, Carnegie-Mellon University, Marzo 1990.
   Tichy, W., Design, Implementation and Evaluation of a Revision Control System, 6th
   International Conference on Software Engineering Tokyo, Septiembre 1982, pp. 58-67.
   [Babich, 86], W. Babich, Software Configuration Management, Addison-
    Wesley,
   1986
   [Berlack, 92], H.R. Berlack, Software Configuration Management, John Wiley &
   Sons, 1992
   [Bersoff, 80a], E.H. Bersoff, V. Henderson, S. Siegel, Software Configuration
   Management: An Investment in Product Integrity, Prentice-Hall, 1980
   [Bersoff, 80b], E.H. Bersoff, V. Henderson, S. Siegel, Software Configuration
   Management: A Tutorial, IEEE Computer Society Press, 1980
   [Bersoff, 84], E.H. Bersoff, Elements of Software Configuration Management, IEEE
   Transactions on Software Engineering, Vol. SE-10, Nº 1, pp. 79-87, Enero,
    1984
   [Bersoff, 91], E.H. Bersoff, A.M. Davis, Impacts of Life Cycle Models on Software
   Configuration Management, Communications of the ACM, Vol. 34, Nº 8, pp.
    104-
   117, Agosto, 1991
   [Buckley, 95], F.J. Buckley, Implementing Configuration Management: hardware,
   Software, and Firmware, 2ª edición, IEEE Computer Society, 1995
   [Conde, 86], D. Conde, Bibliography on Version Control and Configuration
   Management, ACM SIGSOFT Software Engineering Notes, Vol. 11, Nº 3, pp.
    81-84,
   Julio, 1986
   [Harvey, 86], K.E. Harvey, Summary of the SEI Workshop on Software
   Configuration Management, Technical Report CMU/SEI-86-TR-5, Software
   Engineering Institute, Carnegie Mellon University, Pittsburgh, Diciembre, 1986
   [Humphrey, 89], W.S. Humphrey, Managing the Software Process, SEI Series in
   Software Engineering, Addison Wesley, 1989
   [Pressman, 93], R. Pressman, Ingeniería del Software, 3ª edición, McGraw-Hill, 1993
   [Tichy, 88], W.F. Tichy, Tools for Software Configuration Management, Proceedings
   of the International Workshop on Software Version and Configuration
    Control,
   pp. 1-20, Grassau, Alemania, Enero, 1988
   [Whitgift, 91], D. Whitgift, Methods and Tools for Software Configuration
   Management, John Wiley & Sons, 1991
   Ingenieri ade Software II, Pablo Sanchez Barreiro, DPTO. DE MATEMÁTICAS, ESTADÍSTICA
    Y
   COMPUTACIÓN

Mais conteúdo relacionado

Mais procurados

Semana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestionSemana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestionGiovani Ramirez
 
Sistema de Gestión del cambio
Sistema de Gestión del cambioSistema de Gestión del cambio
Sistema de Gestión del cambioJogni Santana
 
Semana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosSemana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosGiovani Ramirez
 
Doc 5 plan de configuración de software ieee-828 (cm)-01
Doc 5   plan de configuración de software ieee-828 (cm)-01Doc 5   plan de configuración de software ieee-828 (cm)-01
Doc 5 plan de configuración de software ieee-828 (cm)-01Fanny Lorena Rivera Vera
 
Gestión de la configuración
Gestión de la configuraciónGestión de la configuración
Gestión de la configuraciónJhon Barrera
 
Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”
Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”
Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”Sorey García
 
Gestión de la Configuración - Fundamentos de la Gestión TI
Gestión de la Configuración - Fundamentos de la Gestión TIGestión de la Configuración - Fundamentos de la Gestión TI
Gestión de la Configuración - Fundamentos de la Gestión TIaajo13
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del softwareYaniris Sepulveda
 
ADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACIONADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACIONHERNAN JIMENEZ
 
Gestión y configuración de software(9)
Gestión y configuración de software(9)Gestión y configuración de software(9)
Gestión y configuración de software(9)León Leon
 
C21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcialC21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcialHugo Strks
 
C21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcialC21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcialHugo Strks
 
Métricas del proceso y proyecto - Procesos de Ingeniería de software
Métricas del proceso y proyecto - Procesos de Ingeniería de softwareMétricas del proceso y proyecto - Procesos de Ingeniería de software
Métricas del proceso y proyecto - Procesos de Ingeniería de softwareGalo Lalangui
 

Mais procurados (20)

Semana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestionSemana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestion
 
Sistema de Gestión del cambio
Sistema de Gestión del cambioSistema de Gestión del cambio
Sistema de Gestión del cambio
 
Semana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosSemana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambios
 
Doc 5 plan de configuración de software ieee-828 (cm)-01
Doc 5   plan de configuración de software ieee-828 (cm)-01Doc 5   plan de configuración de software ieee-828 (cm)-01
Doc 5 plan de configuración de software ieee-828 (cm)-01
 
Gestión de la configuración
Gestión de la configuraciónGestión de la configuración
Gestión de la configuración
 
Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”
Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”
Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”
 
Gestión de la Configuración - Fundamentos de la Gestión TI
Gestión de la Configuración - Fundamentos de la Gestión TIGestión de la Configuración - Fundamentos de la Gestión TI
Gestión de la Configuración - Fundamentos de la Gestión TI
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
ADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACIONADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACION
 
SCM ejmplo
SCM ejmploSCM ejmplo
SCM ejmplo
 
Gestión y configuración de software(9)
Gestión y configuración de software(9)Gestión y configuración de software(9)
Gestión y configuración de software(9)
 
C21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcialC21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftware-segundo parcial
 
Control de cambios
Control de cambiosControl de cambios
Control de cambios
 
Tema5 apartado5
Tema5 apartado5Tema5 apartado5
Tema5 apartado5
 
Ejemplo SMC
Ejemplo SMCEjemplo SMC
Ejemplo SMC
 
Capitulo 11 parte1 (2)
Capitulo 11 parte1 (2)Capitulo 11 parte1 (2)
Capitulo 11 parte1 (2)
 
C21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcialC21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcial
C21 cm23 eq4-gestiondelaconfiguraciondelsoftwareexpo-segundo parcial
 
Métricas del proceso y proyecto - Procesos de Ingeniería de software
Métricas del proceso y proyecto - Procesos de Ingeniería de softwareMétricas del proceso y proyecto - Procesos de Ingeniería de software
Métricas del proceso y proyecto - Procesos de Ingeniería de software
 

Destaque

Modelo cocomo
Modelo cocomoModelo cocomo
Modelo cocomoRoci_mary
 
DISPOSITIVOS DE ENTRADA Y SALIDA
DISPOSITIVOS DE ENTRADA Y SALIDADISPOSITIVOS DE ENTRADA Y SALIDA
DISPOSITIVOS DE ENTRADA Y SALIDAAlejandro Ordoñez
 
Planificacion De Proyectos De Software
Planificacion De Proyectos De SoftwarePlanificacion De Proyectos De Software
Planificacion De Proyectos De SoftwareIván Sanchez Vera
 
Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...
Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...
Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...SeFeDeK .
 
Dispositivo de entrada y salida
Dispositivo de entrada y salidaDispositivo de entrada y salida
Dispositivo de entrada y salidaDeisy Johana Rocha
 

Destaque (9)

Supply Chain Management
Supply Chain ManagementSupply Chain Management
Supply Chain Management
 
PROCESOS EN SCM
PROCESOS EN SCMPROCESOS EN SCM
PROCESOS EN SCM
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Modelo cocomo
Modelo cocomoModelo cocomo
Modelo cocomo
 
DISPOSITIVOS DE ENTRADA Y SALIDA
DISPOSITIVOS DE ENTRADA Y SALIDADISPOSITIVOS DE ENTRADA Y SALIDA
DISPOSITIVOS DE ENTRADA Y SALIDA
 
Planificacion De Proyectos De Software
Planificacion De Proyectos De SoftwarePlanificacion De Proyectos De Software
Planificacion De Proyectos De Software
 
Modelo cocomo
Modelo cocomoModelo cocomo
Modelo cocomo
 
Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...
Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...
Perifericos de Entrada y Salida - Tarjeta Gráfica, Tarjeta de Sonido y Monito...
 
Dispositivo de entrada y salida
Dispositivo de entrada y salidaDispositivo de entrada y salida
Dispositivo de entrada y salida
 

Semelhante a Gestión Configuración Software (GCS

Semelhante a Gestión Configuración Software (GCS (20)

Gestión de la Configuración.pptx
Gestión de la Configuración.pptxGestión de la Configuración.pptx
Gestión de la Configuración.pptx
 
Scm
ScmScm
Scm
 
Gestion de configuracion de software.pptx
Gestion de configuracion de software.pptxGestion de configuracion de software.pptx
Gestion de configuracion de software.pptx
 
Gestipn software.pptx
Gestipn software.pptxGestipn software.pptx
Gestipn software.pptx
 
Gestión de configuración del software.pptx
Gestión de configuración del software.pptxGestión de configuración del software.pptx
Gestión de configuración del software.pptx
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
 
Jose r ojas ii
Jose r ojas iiJose r ojas ii
Jose r ojas ii
 
Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.Ciclo de vida de un proyecto de Software.
Ciclo de vida de un proyecto de Software.
 
Lineas de productos de software
Lineas de productos de softwareLineas de productos de software
Lineas de productos de software
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Metodo watch y LPS
Metodo watch y LPSMetodo watch y LPS
Metodo watch y LPS
 
Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +
 
Georgy jose sanchez
Georgy jose sanchezGeorgy jose sanchez
Georgy jose sanchez
 
Las fases del ciclo de vida de desarrollo
Las fases del ciclo de vida de desarrolloLas fases del ciclo de vida de desarrollo
Las fases del ciclo de vida de desarrollo
 
Ciclodevidadeunsistema
CiclodevidadeunsistemaCiclodevidadeunsistema
Ciclodevidadeunsistema
 
Miguel rojas
Miguel rojasMiguel rojas
Miguel rojas
 
AMSI
AMSIAMSI
AMSI
 
Proceso software
Proceso softwareProceso software
Proceso software
 
RUP
RUPRUP
RUP
 

Gestión Configuración Software (GCS

  • 1. Wilson Tineo Ledwin R. Valdez C. Francisco Cáceres
  • 2. Archivos perdidos: “se que lo escribí, pero no se dónde lo puse ...”  Referencias perdidas: “solía funcionar, pero usa librerías que ya no están ...”  Sobrescribir el código de otro: desarrolladores que hacen distintos cambios en el mismo código sobrescribiendo su trabajo mutuamente.  No hay botón deshacer: los nuevos cambios son peores, pero no se puede volver atrás ...
  • 3. ¿Qué versión tiene el cliente? ¿A cuál corresponde el error?  La versión actual del código se sobrescribe por una anterior.  Una actualización crítica se descarta de la versión final.  Se hacen cambios a una versión incorrecta del código.  Reaparecen errores ya corregidos.  No se logra determinar qué versiones de archivos van en una entrega.
  • 4. Gestión de la Configuración del Software  Actividad constante aplicada durante todo el proceso de ingeniería de software para identificar, organizar y controlar las modificaciones que sufre el software.
  • 5. SCM Software Configuration Management  “Es el conjunto total de actividades utilizadas para administrar el contenido de un producto de software desde el principio hasta el final del proceso de desarrollo.” “Es la disciplina de administrar y controlar los cambios en la evolución de los sistemas de software”
  • 6. Preguntas en el GCS: -¿Cómo identificar las muchas versiones de un programa y su documentación eficientemente? -¿Cómo controlar la organización de cambios antes y después de la distribución? -¿Quién es el responsable de aprobar y asignar prioridades a los cambios? -¿Cómo garantizar que los cambios se han hecho eficientemente? -¿Qué mecanismos se usan para avisar a otros de los cambios realizados?
  • 7. En términos muy generales, la Gestión de Configuración del Software (GCS) se puede definir como una disciplina cuya misión es controlar la evolución de un sistema software.
  • 8. Según Babich, “El arte de coordinar el desarrollo de software para minimizar la confusión, se denomina Gestión de Configuración. La Gestión de Configuración es el arte de identificar, organizar y controlar las modificaciones que sufre el software que construye un equipo de programación. El objetivo es maximizar la productividad minimizando los errores.”
  • 9. ¿Qué papel juega la Gestión de Configuración dentro de un Proyecto de Desarrollo de Software? El éxito de un proyecto depende de la correcta ejecución de 4 tipos de funciones: Gestión del Proyecto: incluye fundamentalmente la Estimación, Planificación y Seguimiento del proyecto, y la Organización, Dirección y Gestión de Recursos Humanos. Desarrollo Técnico: Actividades de Ingeniería del Software a lo largo de todo el ciclo de vida del producto (Análisis, Diseño, Codificación). En resumen, la Gestión de Configuración es una disciplina de control, dentro del proyecto.
  • 10. - Establecer y mantener la integridad de los productos generados durante un proyecto de desarrollo de software y a lo largo de todo el ciclo de vida del producto. - Evaluar y controlar los cambios sobre ellos, es decir, controlar la evolución del sistema software. - Facilitar la visibilidad sobre el producto.
  • 11. Para conseguir estos objetivos, la Gestión de Configuración plantea la realización de ciertas actividades. La definición estándar de Gestión de Configuración del Software, tal y como aparece en el estándar de IEEE, incluye las siguientes actividades:
  • 12. - Identificación de la Configuración: Consiste en identificar la estructura del producto, sus componentes y el tipo de estos, y en hacerlos únicos y accesibles de alguna forma. - Control de Cambios en la Configuración: Consiste en controlar las versiones y entregas de un producto y los cambios que se producen en él a lo largo del ciclo de vida.
  • 13. - Generación de Informes de Estado: Consiste en informar acerca del estado de los componentes de un producto y de las solicitudes de cambio, recogiendo estadísticas acerca de la evolución del producto. - Auditoría de la Configuración: Consiste en validar la completitud de un producto y la consistencia entre sus componentes, asegurando que el producto es lo que el usuario quiere.
  • 14.
  • 15. Los sistemas que automatizan la gestión de configuración suelen incluir algunas funciones adicionales, lo que nos lleva a ampliar la definición estándar con las siguientes actividades: - Construcción: Consiste en gestionar la compilación y enlazado de los distintos componentes del producto software de una forma lo más eficiente posible.
  • 16. - Control del Trabajo en Equipo: Consiste en controlar las interacciones que se producen entre los múltiples desarrolladores de un producto, sobre todo cuando deben compartir ciertos componentes del producto. - Control de Versiones: Consiste en mantener un registro histórico de las diferentes versiones por las que pasan los componentes de un producto, que permita la recuperación de cualquiera de ellas. - Gestión de Problemas: Consiste en realizar un seguimiento de la evolución de los problemas que afectan al producto.
  • 17. - Número elevado de componentes a controlar: A medida que progresa el proceso de desarrollo de Software el número de componentes crece rápidamente. - Pero el problema realmente surge porque en el proceso toma parte otra variable: el CAMBIO. Como dice la ley de la Ingeniería de Sistemas de Bersoff, “sin importar en qué momento del ciclo de vida del sistema nos encontremos, sistema informático cambiará, y el deseo de cambiarlo persistirá a lo largo de todo el ciclo de vida”.
  • 18. La Gestión de Configuración está también fuertemente relacionada con el problema del mantenimiento del software. Sin una buena Gestión de Configuración, el mantenimiento de un producto puede ser una verdadera pesadilla.
  • 19. Tiene también una gran influencia sobre otros aspectos del desarrollo de software, como son: -Las metodologías: Las actividades de Gestión de Configuración deberán integrarse con la metodología de desarrollo que utilice la empresa. Su planificación dependerá de las fases que establezca la metodología, los productos que se generen, etc.
  • 20. - El entorno de desarrollo de software: cómo fuertemente integrada está la gestión de configuraciones con el resto de las capacidades del entorno de desarrollo, y qué tipo de funciones de Gestión de Configuración permite. - El modelo de proceso software: puesto que afecta a la forma en que los desarrolladores hacen su trabajo, imponiendo políticas y procedimientos, y supervisando la forma en que se realiza este trabajo. La Gestión de Configuración desempeña un papel importante a la hora de conseguir incrementar el nivel de madurez del proceso software de una organización.
  • 21. - La calidad del producto software: puesto que contribuye a mantener la integridad del producto. - La organización: puesto que por lo general se suele implantar una solución global, que afecta a toda la organización, y requiere del establecimiento de nuevos roles y responsabilidades que deberán integrarse en la organización del proyecto.
  • 22. Al conjunto de toda la información y productos utilizados o producidos en un proyecto como resultado del proceso de Ingeniería de Software se le denomina CONFIGURACIÓN DEL SOFTWARE.
  • 23. A cada uno de los componentes de la configuración del software se le va a llamar ELEMENTO DE CONFIGURACIÓN DEL SOFTWARE (ECS). El ECS es la unidad de trabajo para la GCS. El término CONFIGURACIÓN DEL SOFTWARE designa, por tanto, el conjunto de todos los elementos de configuración del software de un proyecto.
  • 24. Se pueden considerar como Elementos de Configuración del Software los siguientes componentes:  1. La especificación del sistema.  2. El plan del proyecto software.  3. La especificación de requisitos software.  4. Un prototipo, ejecutable o en papel.  5. El diseño preliminar.  6. El diseño detallado.  7. El código fuente.  8. Programas ejecutables, entre otros
  • 25. Como ya hemos visto, uno de los objetivos principales de la Gestión de Configuración va a ser el de gestionar los cambios que se producen en el sistema a lo largo de su ciclo de vida. Para controlar los cambios sin impedir los cambios justificados se utiliza el concepto de LÍNEA BASE o “BASELINE”.
  • 26. Se puede definir una VERSIÓN como una instancia de un elemento de configuración, en un momento dado del proceso de desarrollo, que es almacenada en un repositorio, y que puede ser recuperada en cualquier momento para su uso o modificación. A las distintas versiones que aparecen en el tiempo, según se va avanzando en el desarrollo de un elemento, se les suele llamar también REVISIONES.
  • 27. Entre las distintas revisiones de un elemento de configuración se pueden establecer relaciones de sucesión temporal. Una representación posible para las diferentes revisiones de un elemento y sus relaciones de sucesión es mediante un GRAFO DE EVOLUCIÓN o grafo de revisión.
  • 28. La manera más fácil de crear una nueva revisión de un ECS es realizar una modificación sobre la revisión más reciente. De esta manera las revisiones van formando una cadena, a la que se suele llamar CADENA DE REVISIÓN. Cada revisión en la cadena es una actualización de, y viene a sustituir a la revisión anterior. Normalmente se trabajará sobre la última revisión de la cadena, que es la más actual, aunque las anteriores también deben ser accesibles.
  • 29. Cada una de las revisiones de un ECS se debe poder identificar de manera única, siendo común utilizar un esquema numérico, donde cada nueva versión recibe un número sucesivo.
  • 30. La Gestión de Configuración debe permitir también especificar y gestionar distintas VARIANTES de los elementos de configuración. Las variantes son versiones de un elemento de configuración que coexisten en un determinado momento y que se diferencian entre sí en ciertas características. Una variante no reemplaza a otra, como ocurre con las revisiones.
  • 31.
  • 32. Las variantes pueden ser temporales o permanentes. Variante temporal es toda aquella que se acabará mezclando con otra variante en algún momento del desarrollo. En ciertas ocasiones es necesario que varias personas trabajen simultáneamente sobre la misma versión de un objeto, y para que no ocurran conflictos entre ellas, se crea una variante distinta para cada persona, para que puedan trabajar en paralelo.
  • 33. Una vez que todas ellas han acabado las modificaciones, es necesario mezclar todas las variantes para que la versión resultante contenga todos los cambios realizados. Las variantes temporales deben evitarse, y en todo caso mezclarse lo antes posible, ya que a medida que pasa el tiempo divergirán más de la versión original y entre sí, y resultará más difícil su fusión.
  • 34. Por otro lado, las variantes permanentes aparecen para dar respuesta a conjuntos distintos de requisitos, y tampoco se llegarán a mezclar entre sí. Podemos dividir este tipo de variantes en dos categorías: Variantes de requisitos de usuario: Tenemos distintos usuarios con distintos requisitos. El caso más típico es el idioma usado por estos. Variantes de plataforma: Debemos realizar una variante por cada sistema operativo o plataforma hardware sobre la que deseemos que funcione nuestra aplicación.
  • 35. Una posibilidad es almacenar únicamente la última versión de cada uno de los ECS del sistema, pero esto puede plantearnos numerosos problemas. Las herramientas de control de versiones o gestión de revisiones nos ayudan a crear, identificar y almacenar nuevas versiones, al mismo tiempo que se mantienen las versiones anteriores.
  • 36. El modelo de trabajo sobre el que se basan la mayoría de las herramientas de gestión de revisión es el de la figura:
  • 37. Las herramientas de control de versiones utilizan maneras más eficientes para almacenar las versiones, para disminuir la cantidad de espacio requerido. Normalmente estas herramientas no almacenan físicamente todas las versiones, sino solamente una de ellas, que puede ser la primera o la última. Sin embargo, nos permiten recuperar cualquier otra versión.
  • 38.
  • 39.
  • 40.
  • 41. 1 Introducción (dos párrafos).  2 Gestion de la configuracion:  3 Aspectos organizacionales y legales.  4 Organigrama y responsabilidades.  5 Flujo de trabajo y procedimientos.  6 Control de calidad.  7 Descripción de actividades:  8 Identificación de ítems.  9 Gestión de cambios.  10 Gestión de entregas.
  • 42. 11 Auditorias: base de datos de la configuración.  12 Planificación temporal.  13 Recursos: humanos, físicos y herramientas.  14 Mantenimiento y actualización del plan (medidas).
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48. Angelica Antonio, Gestion de la Configuracion, D  M. Ben-Menachem, Software Configuration Management Guidebook, McGraw-Hill  Book Company, 1994  Bryan, W., Chadbourne, C., Siegel, S., Software Configuration Management, IEEE  Computer Society Press, 1980.  Compton, Stephen B. Conner, Guy R., Configuration Management for Software; edited  by Joan R. Callahan, New York : Van Nostrand Reinhold, 1994.  Dart, S., Tool Configuration Assistant, Second International Software Configuration  Management Workshop, ACM SIGSOFT Software Engineering Notes, Octubre 1989.  Dart, S. and Feiler, P., Configuration Management in CASE Tools and Environments,  Third International Workshop on Computer-Aided Software Engineering (CASE 89),  IEEE Computer Society, Julio 1989.  Dart, S. A., The Past, Present and Future of Configuration Management, Proceedings  of the IFIP World Congress, Madrid, Spain, Septiembre 1992.  Krane, Steven P. Modeling the Configuration Management process, University of  Colorado, Boulder, Dept. of Computer Science, 1989.  SEI Bridge, Configuration Management: State of the Art, Software Engineering  Institute, Carnegie-Mellon University, Marzo 1990.  Tichy, W., Design, Implementation and Evaluation of a Revision Control System, 6th  International Conference on Software Engineering Tokyo, Septiembre 1982, pp. 58-67.
  • 49. [Babich, 86], W. Babich, Software Configuration Management, Addison- Wesley,  1986  [Berlack, 92], H.R. Berlack, Software Configuration Management, John Wiley &  Sons, 1992  [Bersoff, 80a], E.H. Bersoff, V. Henderson, S. Siegel, Software Configuration  Management: An Investment in Product Integrity, Prentice-Hall, 1980  [Bersoff, 80b], E.H. Bersoff, V. Henderson, S. Siegel, Software Configuration  Management: A Tutorial, IEEE Computer Society Press, 1980  [Bersoff, 84], E.H. Bersoff, Elements of Software Configuration Management, IEEE  Transactions on Software Engineering, Vol. SE-10, Nº 1, pp. 79-87, Enero, 1984  [Bersoff, 91], E.H. Bersoff, A.M. Davis, Impacts of Life Cycle Models on Software  Configuration Management, Communications of the ACM, Vol. 34, Nº 8, pp. 104-  117, Agosto, 1991
  • 50. [Buckley, 95], F.J. Buckley, Implementing Configuration Management: hardware,  Software, and Firmware, 2ª edición, IEEE Computer Society, 1995  [Conde, 86], D. Conde, Bibliography on Version Control and Configuration  Management, ACM SIGSOFT Software Engineering Notes, Vol. 11, Nº 3, pp. 81-84,  Julio, 1986  [Harvey, 86], K.E. Harvey, Summary of the SEI Workshop on Software  Configuration Management, Technical Report CMU/SEI-86-TR-5, Software  Engineering Institute, Carnegie Mellon University, Pittsburgh, Diciembre, 1986  [Humphrey, 89], W.S. Humphrey, Managing the Software Process, SEI Series in  Software Engineering, Addison Wesley, 1989  [Pressman, 93], R. Pressman, Ingeniería del Software, 3ª edición, McGraw-Hill, 1993  [Tichy, 88], W.F. Tichy, Tools for Software Configuration Management, Proceedings  of the International Workshop on Software Version and Configuration Control,  pp. 1-20, Grassau, Alemania, Enero, 1988  [Whitgift, 91], D. Whitgift, Methods and Tools for Software Configuration  Management, John Wiley & Sons, 1991  Ingenieri ade Software II, Pablo Sanchez Barreiro, DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y  COMPUTACIÓN