Software Configuration Management

  • Upload
    hcabria

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

  • 1. Introduccin a la administracin de

    la configuracin

    Software Configuration Management

    (SCM)

    Parte 1

    Anlisis y diseo de sistemas 2

    Clase 1 Ing. William Samuel Guevara Orellana

  • Gestin de Administracin de

    Configuracin

    Problema: El cambio constante

    Solucin: Administracin de Configuraciones

  • Pregunta???

    Cuales son los cambios que creen ustedes

    que ocurren en un proyecto de software?

  • Los problemas que

    usualmente nos enfrentamos

    El cambio se encuentra presente en todo el

    ciclo de vida de una aplicacin.

    Desarrollo simultaneo, ya que la arquitectura

    nos hace tener componentes en comn para

    varios desarrolladores.

  • Los problemas

  • Los problemas en control de

    versiones

    Archivos perdidos: se que lo escrib, pero no se dnde lo puse ...

    Referencias perdidas: sola funcionar, pero usa libreras que ya no estn ...

    Sobrescribir el cdigo de otro: desarrolladores que

    hacen distintos cambios en el mismo cdigo

    sobrescribiendo su trabajo mutuamente

    No hay botn deshacer: los nuevos cambios son peores,

    pero no se puede volver atrs ...

    Qu versin tiene el cliente? A cul corresponde el

    error?

  • Los problemas en control de

    versiones

    La versin actual del cdigo se sobrescribe

    por una anterior.

    Una actualizacin crtica se descarta de la

    versin final.

    Se hacen cambios a una versin incorrecta

    del cdigo.

    Reaparecen errores ya corregidos.

    No se logra determinar qu versiones de

    archivos van en una entrega.

  • Entropa vrs. Actividad de

    cambio

    La entropa aumenta en el software en forma

    continua a menos que acciones de control sean

    aplicadas sobre los cambios.

    Ej. Legacy systems

    Dcadas de cambios

    sin documentar por lo

    que deben

    interpretarse las reglas

    del negocio a travs

    de ingeniera inversa

    sobre el cdigo

  • Qu es la configuracin?

    La configuracin de un sistema son las caractersticas fsicas de hardware, firmware o software que en conjunto sirven un propsito especfico tambin puede ser entendido como una versin especfica de hardware, firmware o software que sirven a un propsito especfico

  • La administracin de la configuracin es

    entonces

    la disciplina de identificar la configuracin de un

    sistema en distintos puntos en el tiempo con el

    propsito de controlar de manera sistemtica

    cambios a la configuracin y mantener la

    integridad de dicha configuracin a lo largo del

    ciclo de vida del sistema SEI:

    Las disciplinas y tcnicas de iniciacin, evaluacin y control de cambios sobre productos de software durante y despus del proceso de

    desarrollo

  • Pregunta?

    Porque es importante una buena

    administracin de la configuracin?

  • Misin u objetivo de CM

    Custodiar la integridad del productos.

    Acompaar la actividad de cambio con actividades de

    control.

    Gestionar los tipos de cambio permitidos a lo largo del

    ciclo de vida del producto.

    Brindar acceso al componente adecuado.

    Maximizar la productividad y minimizar los errores.

    Tener un repositorio (depsito) nico para los

    entregables.

    Tener una base histrica con los cambios del producto

    durante el tiempo.

  • Formas que un cambio afecta

    el proyecto

    Incrementa la complejidad del software

    Incrementa la complejidad del entorno

    Debo de saber como manejar el cambio

    durante el ciclo de vida o durante mi

    metodologa de desarrollo.

  • Cambio Incrementando la complejidad del Software

    Con este tipo de cambio nos referimos a modificaciones

    que sufre directamente el producto de software en s sin

    incluir consideraciones del entorno. Tamao

    Lneas de cdigo

    Nuevos Mdulos (Cambio de arquitectura)

    Grabar versiones que conforman el baseline del sistema de software

    Incrementando el nmero de plataformas sobre las cuales el sistema

    opera La organizacin de test se ve afectada.

    SCM tool debera ejecutarse en todas las plataformas que el producto corre

  • Cambio Incrementando la complejidad del entorno

    Team Size

    Incrementar el tamao del team significa aumentar la cantidad de

    lneas de comunicacin.

    Acceso concurrente a los componentes aumenta.

    Complejidad en el merge de los cambios en paralelo.

    Distribucin geogrfica del team

    Comunicacin ms compleja.

  • Cambio Siguiendo el cambio del ciclo de vida

    El ciclo de vida determina dos aspectos que influyen sobre el plan

    de SCM: cantidad de versiones que deber administrar y etapas

    durante las cuales aceptar sean efectuados cambios sobre el

    producto en s.

    La rigidez de los controles ser directamente proporcional al avance

    del proyecto en la fase.

    A medida que me acerco al final de la fase, debo estar

    acercndome a tener algn entregable listo (versin). Esto hace que

    las restricciones para modificar el software sean incrementadas

    para asegurar que no existan desvos, solo los cambios de urgencia

    o muy bien justificados tendrn lugar en esta etapa.

  • Manejo de SCM en las

    organizaciones

    Establecer:

    Cmo identifica y gestiona una organizacin las muchas versiones existentes de un programa (y su documentacin), de forma que se puedan introducir cambios eficientemente

    Cmo controla la organizacin los cambios antes y despus de que el software sea distribuido al cliente

    Quin tiene la responsabilidad de aprobar y de asignar prioridades a los cambios

    Qu mecanismo se usa para avisar a otros de los cambios realizados

    Cmo podemos garantizar que los cambios se han llevado a cabo adecuadamente

  • Examen Corto

    Colocar su nombre, carnet y fecha en una

    hoja y responder a las siguientes preguntas.

    Cuales son los problemas que nos enfrentamos

    ante los diferentes cambios en un proyecto de

    software, hablando especficamente de la parte

    de software.

    Cuales son los tipos de complejidades que se

    dan al momento de un cambio.

    Cuando hablamos de configuracin a que nos

    referimos.

    Que es la administracin de la configuracin.

  • Actividades generales de la

    configuracin del cambio Identificacin de los ECS individuales

    Control de versiones

    Control de cambios

    Auditoria de la configuracin del software

    Generacin de informes sobre cambios de configuracin

  • ECS (Elemento de

    Configuracin de Software)

    Una configuracin de software es el conjunto de

    elementos que componen toda la informacin producida

    en el proceso de desarrollo de software.

    Cada uno de estos elementos se denomina: Elemento de Configuracin de Software (ECS)

    Los ECS pertenecen a alguna de las siguientes

    categoras:

    Programas (cdigo fuente y ejecutables)

    Documentos tcnicos o de usuario que describen los

    programas

    Datos internos o externos al programa

  • Ejemplos de ECS

    Los elementos de configuracin del software incluyen:

    Ejecutables.

    Cdigo Fuente.

    Modelos de datos.

    Modelos de procesos.

    Especificaciones de requisitos.

    Pruebas.

    Y para cada uno de estos elementos se almacenar al menos:

    Nombre.

    Versin.

    Estado.

    Localizacin.

  • LINEA BASE (Baseline)

    Es una especificacin o producto que se ha

    revisado formalmente y sobre el cual se ha

    llegado a un acuerdo y, que de ah en

    adelante, sirve como base para un desarrollo

    o modificacin posterior. (IEEE) 610.12/1990

  • Lnea Base:

  • Donde se ve la Lnea Base en

    Rup?

  • En la metodologa espiral,

    donde se ve la Lnea Base:

  • Antes de que un elemento de configuracin

    de software se convierta en una lnea base,

    un cambio se puede llevar a cabo rpida e

    informalmente, pero una vez se establece

    como lnea base, se le pueden hacer

    cambios pero aplicando un procedimiento

    formal para evaluar y verificar cada cambio.

  • ECS DE LINEAS BASE Y BASE DE DATOS

    DEL PROYECTO

  • Diagrama Clases Genrico

    GCS

  • De este modelo es posible obtener informacin acerca de:

    1. Los tipos de elementos sometidos a Gestin de Configuracin.

    2. Las relaciones entre dichos elementos.

    3. Las dependencias para la creacin de versiones al momento de

    analizar la introduccin de un cambio. Es posible conocer como un

    cambio en un elemento afectara a los dems.

    4. Los usuarios que generaron cada versin de un elemento.

  • Control de Versiones:

    Es la combinacin de herramientas y

    procedimientos para gestionar las versiones

    de los objetos de configuracin creadas

    durante el proceso de Ing. de Software.

  • Ejemplo:

    Si los cambios son mayores:

    Nomina V1.0, Nomina V2.0,etc.

    Si los cambios son menores: Nomina V1.1,

    Nomina 1.2, etc.

    Cambios pequeos de emergencia:

    Nomina V1.1.1, Nomina1.1.2, etc.

  • Software para manejo de

    Versiones o Repositorio:

    Visual SourceSafe herramienta de control de versiones de Microsoft; orientada a equipos pequeos.

    Visual Studio Team Foundation Server (anteriormente

    Team System) Plataforma que automatiza el proceso de entrega del software y le da las herramientas que

    necesita para gestionar eficazmente los proyectos de

    desarrollo de software a travs del ciclo de vida de IT.

    Subversion (svn) inspirado en CVS.

    Mercurial escrito en Python como un recambio en software libre de Bitkeeper; descentralizado, que

    pretende ser rpido, ligero, portable y fcil de usar

  • Control de Cambios:

    Combinacin de procesos, procedimientos

    humanos y herramientas automticas para

    proporcionar un mecanismo para identificar,

    controlar el acceso y manejar cambios tanto

    al producto como a los baselines del

    proyecto.

  • Proceso de Control de

    Cambios:

    Peticin de cambio

    Evaluacin del cambio: Esfuerzo tcnico, efectos secundarios,

    impacto sobre otros componentes, costos.

    Informe de Cambios (resultados evaluacin) a la ACC (Autoridad de

    Control de Cambios).

    Se genera una OCI (Orden de Cambio de Ingeniera) para cada

    cambio: qu se cambiar; restricciones, criterios de revisin y

    auditora.

    Objeto dado de baja

    Realizacin del cambio

    Revisin del cambio.

    Objeto dado de alta aplicando mecanismos de control de versin.

  • Pregunta??

    Que diferencias se ven entre un control de

    versiones y un control de cambios?

    Colocar su nombre en una hoja y responder

    la pregunta.

  • ESPACIOS DE TRABAJO

    Debe definirse una poltica de manejo del

    espacio de trabajo. Ejemplo, cada uno

    tendr un espacio de trabajo propio donde

    hace modificaciones y al final habr un

    espacio de integracin donde se cree una

    nueva versin que contenga, de manera

    integrada, las modificaciones de cada uno.

  • Ejemplo:

    Por ejemplo: se puede definir una

    configuracin de partida o Baseline ( el

    conjunto de los mdulos iniciales) .

    Cada miembro del grupo tendr su propio

    espacio de trabajo privado donde har las

    modificaciones sobre su baseline. Luego se

    crea un espacio de integracin donde se

    integran los cambios de todos en una nueva

    versin.

  • Ejemplo:

  • AUDITORIA DE LA

    CONFIGURACIN

    Verificar que los cambios se han realizado

    correctamente mediante:

    RevisionesTcnicas Formales (RTF): Se centra en la

    correccin tcnica del ECS que ha sido modificado. Las

    revisiones verifican que el software bajo revisin cumple

    los requerimientos. Descubre errores en la funcin, la

    lgica o la implementacin. Garantiza que el software

    ha sido representado de acuerdo a los estndares

    predefinidos y los efectos secundarios de su

    modificacin.

  • AUDITORIA DE LA

    CONFIGURACIN

    Se pregunta:

    Se realiz el cambio especificado en la OCI?

    Hay otras modificaciones?

    Se siguieron los estndares de I.S?

    Se hizo un RTF para evaluar la correccin tcnica?

    Se registraron los cambios, fecha y el autor del cambio?

    Se ha divulgado siguiendo procedimientos de GCS?

    Se actualizaron correctamente los ECS?

  • INFORMES

    Qu pas?

    Quin lo hizo?

    Cundo pas?

    Que ms se vio afectado?

  • Tarea

    Investigar como se maneja en RUP el control de Cambios o

    Configuraciones.

    Investigar mnimo 3 herramientas de software para el control de

    versiones:

    Caractersticas

    Funcionamiento bsico.

    Mandar link de video donde muestre funcionamiento de la

    herramienta.

    Enviado en un solo documento .pdf por correo electrnico a

    [email protected]

    Asunto: Tarea1_Carne_Nombre

    Fecha Limite de entrega: Miercoles 5 de diciembre del 2012 a

    media noche.

  • Bibliografia

    Software Configuration Management Trung Hung

    http://cnx.org/content/m14730/latest/

    Administracin de configuraciones http://www-2.dc.uba.ar/materias/isoft2/2005_02/clases/SCM%20Class%2020050926_CONNOTAS.pdf

    http://eisc.univalle.edu.co/cursos/web/material/750092M/80/clase7_configuracion.pdf

    http://www.histaintl.com/soluciones/configuracion/configuracion.php