Está en la página 1de 45

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
willgo021983@gmail.com
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