[[Nombre de la institución]] Guía para el establecimiento de una biblioteca del software [[fecha]] Versión 1.0 Guía para el establecimiento de una biblioteca del software Versión 1.0 [[Autor]] [[fecha]] Información del documento Título Identificador Guía para el establecimiento de una biblioteca del software Versión 1.0 Archivo Guía biblioteca.doc Autor Fecha Estado Aprobación del documento Gerente Técnico <firma> <fecha> <firma> <fecha> <firma> <fecha> <firma> <fecha> <firma> <fecha> <nombre> Responsable de SCM <nombre> [[cargo/posición]] <nombre> [[cargo/posición]] <nombre> [[cargo/posición]] <nombre> Registro de cambios Nro. de cambio Fecha Tipo(1) Descripción del cambio Autor Nro. de petición (1) A: Agregar – M: Modificar – E:Eliminar 1 Guía para el establecimiento de una biblioteca del software Versión 1.0 [[Autor]] [[fecha]] Tabla de Contenidos 1 2 3 4 5 Introducción ........................................................................................................................................ 3 1.1 PROPÓSITO .................................................................................................................................... 3 1.2 DESCRIPCIÓN DEL DOCUMENTO .................................................................................................... 3 1.3 GLOSARIO DE TÉRMINOS ............................................................................................................... 3 1.4 ACRÓNIMOS .................................................................................................................................. 4 Definición ............................................................................................................................................ 5 2.1 BIBLIOTECA PRINCIPAL ................................................................................................................. 5 2.2 BIBLIOTECA DE PRODUCCIÓN ........................................................................................................ 5 2.3 REPOSITORIO DEL SOFTWARE ........................................................................................................ 5 Establecimiento de la biblioteca ........................................................................................................ 6 Responsables ....................................................................................................................................... 7 Procedimientos.................................................................................................................................... 8 2 Guía para el establecimiento de una biblioteca del software Versión 1.0 1 1.1 [[Autor]] [[fecha]] Introducción Propósito El presente documento define y describe los principales tópicos a considerar durante el establecimiento de una biblioteca del software en una organización informática, con el propósito de guiar al responsable de su desarrollo. 1.2 Descripción del documento Capitulo 1 Introducción: breve descripción del propósito y los contenidos del documento.. Capítulo 2 Definición: definición del concepto de biblioteca del software y de su contenido. Capitulo 3 Establecimiento: etapas y consideraciones generales para el establecimiento de una biblioteca del software ara un proyecto de desarrollo. Capítulo 4 Responsables: definición de las responsabilidades asociadas a la biblioteca del software. Capítulo 5 Procedimientos: visión global de los procedimientos que deben definirse para el correcto funcionamiento de la biblioteca del software. 1.3 Glosario de términos Baseline Un baseline o línea base es uno o más documentos formalmente diseñados y corregidos en un tiempo específico del ciclo de vida de los ítems de configuración Biblioteca del software La biblioteca del software o software library es un almacenamiento controlado del software y su documentación asociada durante el desarrollo, uso y mantención del software. Bibliotecario (Program Librarian, PL) Encargado de respaldar al responsable de SCM en las tareas de almacenamiento de los baselines. Control de cambios El control de cambios es un proceso sistemático para evaluar, coordinar y decidir sobre los cambios propuestos, así como también, para monitorear la implantación e incorporación de aquellas modificaciones aprobadas a los baselines y la documentación asociada. Esta actividad asegura que los cambios sean propuestos, justificados, evaluados, coordinados, aprobados o rechazados, documentados e incorporados a un nuevo baseline. Comité de Control de Configuración (Configuration Control Board, CCB), máxima autoridad en la autorización de cambios. Ítem de configuración (Configuration Item, CI). Un CI es cualquier documento o artefacto que forma parte del software, factible de ser desarrollado y evaluado independientemente. 3 Guía para el establecimiento de una biblioteca del software Versión 1.0 1.4 [[Autor]] [[fecha]] Acrónimos <Lista de las abreviaciones utilizadas en el documento. > Acrónimo CI CCB PL SCM Significado Configuration Item, Ítem de Configuración Configuration Control Board, Comité del Control de la Configuración Program Librarian, Bibliotecario Software Configuration Management, Gestión de Configuración del Software 4 Guía para el establecimiento de una biblioteca del software Versión 1.0 2 [[Autor]] [[fecha]] Definición La biblioteca del software es uno de los pilares de la implantación del proceso de Gestión de Configuración del Software (Software Configuration Management, SCM), específicamente la base para el control y el informe sobre el estado de la configuración. Se define como un almacenamiento controlado del software y su documentación asociada durante el desarrollo, uso y mantención del software. Típicamente, se compone de una biblioteca principal, una biblioteca de producción, y un repositorio del software. La biblioteca principal contiene todos los ítems de configuración (Configuration Item, CI) revisados y aprobados, y por lo tanto pertenecientes a un baseline. La biblioteca de producción es la responsable de almacenar el software durante su construcción y prueba, una vez que éste sea aprobado pasa a la biblioteca principal. El repositorio es la entidad que almacena el software y su documentación una vez que éste ha sido liberado. 2.1 Biblioteca principal La biblioteca principal contiene todos aquellos CI que forman parte de un baseline y que, por lo tanto, se encuentran bajo un control formal de cambios. Normalmente, un CI entra a está biblioteca mediante una notificación de su aprobación, que describe el baseline al cual pertenece, su nombre e identificador. Tras ello se informa sobre su incorporación a los desarrolladores. Los permisos asociados a esta biblioteca son de lectura para todos los desarrolladores y de escritura sólo para aquellos desarrolladores autorizados en caso de cambios eventuales. 2.2 Biblioteca de producción La biblioteca de producción corresponde a la entidad en la cual se almacena el código durante su construcción y prueba. Generalmente, se divide en una biblioteca de trabajo y otra de soporte. La biblioteca de trabajo es el área en el cual los desarrolladores almacenan el código durante la construcción y prueba de unidad. Una vez que han finalizado las pruebas de unidad, el código es traspasado a la biblioteca de soporte junto con la documentación de diseño que lo acompaña. En este punto el código (sus módulos) se encuentra bajo control de configuración y debe ser modificado a través del procedimiento formal. Sobre la base del código existente en la biblioteca de soporte, se integra y prueba el sistema. Los CIs generados durante estas tareas también son almacenados en esta biblioteca. Sólo una vez que hayan finalizado las pruebas y se haya aprobado el sistema completo éste pasa a la biblioteca principal. 2.3 Repositorio del software El repositorio del software contiene la versión liberada del software y su documentación, y a él se van agregando las nuevas versiones una vez ya desarrolladas y aprobadas. Se compone de tres áreas, una con la versión liberada del software, una copia de respaldo, y una sección para los componentes reusables del software, disponible para su uso en otros proyectos. 5 Guía para el establecimiento de una biblioteca del software Versión 1.0 3 [[Autor]] [[fecha]] Establecimiento de la biblioteca La biblioteca del software para un proyecto de desarrollo debe ser diseñada durante la planificación del proyecto, de manera de poder establecer un control efectivo sobre los CIs durante todas las etapas del ciclo de vida del software. La primera biblioteca implantada debe ser la principal. Ésta debe ser constituida al inicio del proyecto, pues los primeros ítems que recibirá serán los planes del proyecto y la especificación de requerimientos. A lo largo del proyecto, se incorporarán otros ítems: documentos de diseño, código, documentación de las pruebas, manuales, etc. Todos estos ítems al encontrarse en la biblioteca principal, ya se hallan bajo control formal de cambios, por lo que su acceso es limitado. El responsable de la biblioteca deberá limitar su acceso, facilitando copias de los CIs a quienes así lo requieran para desarrollar sus labores cotidianas, y entregando copias para su modificación de acuerdo a las autorizaciones de cambio aprobadas por el CCB. Luego, con anterioridad a la fase de construcción o implementación debe establecerse la biblioteca de producción compuesta por la de trabajo y la de soporte. Especial cuidado debe ponerse en la definición de los accesos a la biblioteca de soporte, pues los CI ahí almacenados ya están bajo control formal de cambio. En cuanto a la biblioteca de trabajo, es necesario definir mecanismos de acceso a los ítems almacenados para así evitar problemas de concurrencia. El repositorio del software debe establecerse antes de la liberación del producto. Deben definirse muy claramente las autorizaciones y tipos de acceso. Para implantar cada una de estas bibliotecas es necesario estimar el tamaño físico de la biblioteca, definir responsabilidades, permisos de acceso y tipos de acceso. 6 Guía para el establecimiento de una biblioteca del software Versión 1.0 4 [[Autor]] [[fecha]] Responsables Habitualmente, las bibliotecas antes descritas se encuentran bajo la responsabilidad de un miembro del equipo de desarrollo, dedicado a ello en forma exclusiva. Mas, dado que es parte de las obligaciones de SCM establecer y mantener las bibliotecas del software es recomendable contar con un bibliotecario o program librarian (PL). El PL es responsable de todas las bibliotecas del software, por ende, de controlar su ingreso y el acceso a las baselines, garantizando el uso de los procedimientos formales definidos en cada plan de SCM. Las tareas de estos roles incluyen: Establecer y mantener el software y la documentación del proyecto de acuerdo a un proceso documentado Proveer a los desarrolladores las copias de los baselines requeridos para sus diferentes tareas. Mantener y distribuir un índice con el contenido de cada biblioteca. Entregar la copia original para la implementación de los cambios aprobados por el Comité de Control de Configuración. Informar a los desarrolladores sobre los cambios a los ítems Registrar y mantener copias de las antiguas versiones. Apoyar la elaboración de informe sobre el estado de la configuración. Por último, es relevante mencionar que el jefe de proyecto es responsable, junto al PL, de diseñar cada biblioteca, y los procedimientos de acceso a ella durante la planificación. Esta descripción puede constituirse como un documento independiente o como parte del plan de SCM. 7 Guía para el establecimiento de una biblioteca del software Versión 1.0 5 [[Autor]] [[fecha]] Procedimientos Para el uso adecuado de la biblioteca del software es necesario establecer procedimientos de establecimiento, operación, protección y control, todos los cuales deben formar parte de su descripción dentro del plan de SCM. Los procedimientos de establecimiento definen la estructura y la implantación de las bibliotecas. Los procedimientos de operación hacen mención a la forma en que la biblioteca accesa los diferentes tipos de CIs, y los de protección establecen los mecanismos de protección y seguridad. Por último, los procedimientos de control corresponden a la especificación de las actividades de ingreso, almacenamiento, actualización y distribución de los CIs contenidos en cada biblioteca. 8