Gesetion de configuracion del_software

  • 833 views
Uploaded on

Gestión de configuración del software

Gestión de configuración del software

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
833
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
56
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Wilson TineoLedwin 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óndentro de un Proyecto de Desarrollo de Software?El éxito de un proyecto depende de la correctaejecución de 4 tipos de funciones:Gestión del Proyecto: incluyefundamentalmente la Estimación, Planificación ySeguimiento del proyecto, y la Organización,Dirección y Gestión de Recursos Humanos.Desarrollo Técnico: Actividades de Ingenieríadel Software a lo largo de todo el ciclo de vida delproducto (Análisis, Diseño, Codificación).En resumen, la Gestión de Configuración es unadisciplina 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.  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.
  • 15. - 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.
  • 16. - Número elevado de componentes acontrolar: A medida que progresa el proceso dedesarrollo de Software el número de componentescrece rápidamente.- Pero el problema realmente surge porqueen el proceso toma parte otra variable: elCAMBIO. Como dice la ley de la Ingeniería deSistemas de Bersoff,“sin importar en qué momento del ciclo de vidadel sistema nos encontremos, sistema informáticocambiará, y el deseo de cambiarlo persistirá a lolargo de todo el ciclo de vida”.
  • 17. La Gestión de Configuración está tambiénfuertemente relacionada con el problema delmantenimiento del software.Sin una buena Gestión de Configuración, elmantenimiento de un producto puede ser unaverdadera pesadilla.
  • 18. Tiene también una gran influencia sobre otrosaspectos del desarrollo de software, como son:-Las metodologías: Las actividades deGestión de Configuración deberán integrarsecon la metodología de desarrollo que utilice laempresa. Su planificación dependerá de lasfases que establezca la metodología, losproductos que se generen, etc.
  • 19. - 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.
  • 20. - 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.
  • 21. Al conjunto de toda la información y productosutilizados o producidos en un proyecto comoresultado del proceso de Ingeniería de Softwarese le denomina CONFIGURACIÓN DELSOFTWARE.
  • 22. A cada uno de los componentes de laconfiguración del software se le va a llamarELEMENTO DE CONFIGURACIÓN DEL SOFTWARE(ECS). El ECS es la unidad de trabajo para laGCS.El término CONFIGURACIÓN DEL SOFTWAREdesigna, por tanto, el conjunto de todos loselementos de configuración del software de unproyecto.
  • 23. 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
  • 24. Como ya hemos visto, uno de los objetivosprincipales de la Gestión de Configuración va aser el de gestionar los cambios que seproducen en el sistema a lo largo de su ciclo devida.Para controlar los cambios sin impedir loscambios justificados se utiliza el concepto deLÍNEA BASE o “BASELINE”.
  • 25. Se puede definir una VERSIÓN como unainstancia de un elemento de configuración, enun momento dado del proceso de desarrollo,que es almacenada en un repositorio, y quepuede ser recuperada en cualquier momentopara su uso o modificación.A las distintas versiones que aparecen en eltiempo, según se va avanzando en el desarrollode un elemento, se les suele llamar tambiénREVISIONES.
  • 26. Entre las distintas revisiones de un elemento deconfiguración se pueden establecer relacionesde sucesión temporal.Una representación posible para las diferentesrevisiones de un elemento y sus relaciones desucesión es mediante un GRAFO DE EVOLUCIÓNo grafo de revisión.
  • 27.  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.
  • 28. Cada una de las revisiones de un ECS se debepoder identificar de manera única, siendocomún utilizar un esquema numérico, dondecada nueva versión recibe un número sucesivo.
  • 29. La Gestión de Configuración debe permitirtambién especificar y gestionar distintasVARIANTES de los elementos de configuración.Las variantes son versiones de un elemento deconfiguración que coexisten en undeterminado momento y que se diferencianentre sí en ciertas características.Una variante no reemplaza a otra, como ocurrecon las revisiones.
  • 30. Las variantes pueden ser temporales opermanentes. Variante temporal es toda aquellaque se acabará mezclando con otra variante enalgún momento del desarrollo.En ciertas ocasiones es necesario que variaspersonas trabajen simultáneamente sobre lamisma versión de un objeto, y para que noocurran conflictos entre ellas, se crea unavariante distinta para cada persona, para quepuedan trabajar en paralelo.
  • 31.  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.
  • 32. Por otro lado, las variantes permanentesaparecen para dar respuesta a conjuntosdistintos de requisitos, y tampoco se llegarán amezclar entre sí. Podemos dividir este tipo devariantes en dos categorías:Variantes de requisitos de usuario:Tenemos distintos usuarios con distintosrequisitos. El caso más típico es el idiomausado por estos.Variantes de plataforma: Debemos realizaruna variante por cada sistema operativo oplataforma hardware sobre la que deseemosque funcione nuestra aplicación.
  • 33. Una posibilidad es almacenar únicamente laúltima versión de cada uno de los ECS delsistema, pero esto puede plantearnosnumerosos problemas.Las herramientas de control de versiones ogestión de revisiones nos ayudan a crear,identificar y almacenar nuevas versiones, almismo tiempo que se mantienen las versionesanteriores.
  • 34. El modelo de trabajo sobre el que se basan lamayoría de las herramientas de gestión derevisión es el de la figura:
  • 35. Las herramientas de control de versionesutilizan maneras más eficientes para almacenarlas versiones, para disminuir la cantidad deespacio requerido.Normalmente estas herramientas no almacenanfísicamente todas las versiones, sino solamenteuna de ellas, que puede ser la primera o laúltima. Sin embargo, nos permiten recuperarcualquier otra versión.
  • 36.  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.
  • 37.  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).
  • 38.  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.
  • 39.  [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
  • 40.  [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