Gesetion de configuracion del_software

50
Wilson Tineo Ledwin R. Valdez C. Francisco Cáceres

description

Gestión de configuración del software

Transcript of Gesetion de configuracion del_software

Page 1: Gesetion de configuracion del_software

Wilson TineoLedwin R. Valdez C.Francisco Cáceres

Page 2: Gesetion de configuracion del_software

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 ...

Page 3: Gesetion de configuracion del_software

¿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.

Page 4: Gesetion de configuracion del_software

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.

Page 5: Gesetion de configuracion del_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”

Page 6: Gesetion de configuracion del_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?

Page 7: Gesetion de configuracion del_software

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.

Page 8: Gesetion de configuracion del_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.”

Page 9: Gesetion de configuracion del_software

¿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.

Page 10: Gesetion de configuracion del_software

- 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.

Page 11: Gesetion de configuracion del_software

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:

Page 12: Gesetion de configuracion del_software

- 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.

Page 13: Gesetion de configuracion del_software

- 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.

Page 14: Gesetion de configuracion del_software
Page 15: Gesetion de configuracion del_software

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.

Page 16: Gesetion de configuracion del_software

- 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.

Page 17: Gesetion de configuracion del_software

- 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”.

Page 18: Gesetion de configuracion del_software

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.

Page 19: Gesetion de configuracion del_software

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.

Page 20: Gesetion de configuracion del_software

- 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.

Page 21: Gesetion de configuracion del_software

- 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.

Page 22: Gesetion de configuracion del_software

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.

Page 23: Gesetion de configuracion 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.

Page 24: Gesetion de configuracion del_software

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

Page 25: Gesetion de configuracion del_software

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 deLÍNEA BASE o “BASELINE”.

Page 26: Gesetion de configuracion del_software

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.

Page 27: Gesetion de configuracion del_software

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.

Page 28: Gesetion de configuracion del_software

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.

Page 29: Gesetion de configuracion del_software

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.

Page 30: Gesetion de configuracion del_software

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.

Page 31: Gesetion de configuracion del_software
Page 32: Gesetion de configuracion del_software

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.

Page 33: Gesetion de configuracion del_software

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.

Page 34: Gesetion de configuracion del_software

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.

Page 35: Gesetion de configuracion del_software

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.

Page 36: Gesetion de configuracion del_software

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:

Page 37: Gesetion de configuracion del_software

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.

Page 38: Gesetion de configuracion del_software
Page 39: Gesetion de configuracion del_software
Page 40: Gesetion de configuracion del_software
Page 41: Gesetion de configuracion del_software

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.

Page 42: Gesetion de configuracion del_software

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).

Page 43: Gesetion de configuracion del_software
Page 44: Gesetion de configuracion del_software
Page 45: Gesetion de configuracion del_software
Page 46: Gesetion de configuracion del_software
Page 47: Gesetion de configuracion del_software
Page 48: Gesetion de configuracion del_software

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.

Page 49: Gesetion de configuracion del_software

[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

Page 50: Gesetion de configuracion del_software

[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