- Introducción
- Calidad del SW
- Líneas base
- Elementos de la configuración de SW
- Gestión de configuración de SW
- Proceso de GCS
- Identificación de la configuración GCS
- Control de configuración
- Control de versiones
- Auditoría de la configuración
- Modelos estándares de GCS
- La vinculación de estándares
- Plan de gestión de configuración de SW
- Conclusiones
Introducción
A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción del mismo, y posteriormente desde el inicio del mantenimiento hasta su retiro, se van realizando una serie de cambios, tanto en el código como en la documentación asociada. La Gestión de Configuración del Software es una disciplina encargada del control de la evolución de los productos de software.Como todo proceso, la Gestión de Configuración también puede ser sistematizada y automatizada, lo que se denomina un Sistema de Gestión de Configuración (SGC). Actualmente existen en el mercado diversas herramientas que permiten apoyar una o más actividades de la Gestión de Configuración. La gestión de la configuración del software es uno de los procesos clave para toda organización dedicada a la Ingeniería del Software.
DEFINICIONES
Gestión de Configuración es el proceso de identificar y definir los elementos en el sistema, controlando el cambio de estos elementos a lo largo de su ciclo de vida, registrando y reportando el estado de los elementos y las solicitudes de cambio, y verificando que los elementos estén completos y que sean los correctos. El propósito de la Gestión de Configuración del Software es establecer y mantener la integridad de los productos de software a través del ciclo de vida del proceso de software. La Gestión de Configuración del Software implica la identificación de la Configuración del software en puntos dados en el tiempo, el control sistemático de los cambios en la Configuración y el mantenimiento de la integridad y trazabilidad de la Configuración a través del ciclo de vida del software.
Calidad del SW
La calidad del software es una preocupación a la que se dedican muchos esfuerzos. Sin embargo, el software casi nunca es perfecto. Todo proyecto tiene como objetivo producir software de la mejor calidad posible, que cumpla, y si puede supere las expectativas de los usuarios.
CALIDAD
Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.
Es la cualidad de todos los productos, no solamente de equipos sino también de programas.
En el desarrollo de software, la calidad de diseño acompaña a la calidad de los requisitos, especificaciones y diseño del sistema. La calidad de concordancia es un aspecto centrado principalmente en la implementación; Si la implementación sigue al diseño, y el sistema resultante cumple con los objetivos de requisitos y de rendimiento, la calidad de concordancia es alta.
Calidad de software
Características propias del software aquellas que tu quieres controlar y asegurar, el software es un producto inmaterial que no se fabrica, tampoco se degradan físicamente, sino que se desarrolla. El software puede tener errores, incidencias pero no son similares a lo que cualquier equipo de carácter físico.
La calidad del software se encuentra casi a la par de la calidad tradicional, ligeramente detrás debido a que la calidad tradicional tiene varias décadas de historia, mientras que la calidad de software tiene entre 50 y 30 años de haber surgido.
Certificación del software.
Consecuencia de un proceso que es asegurar la calidad pero nunca es el objetivo final. La calidad de software no se certifica, lo que se certifica son los procedimientos para construir un software de calidad, los procedimientos deben ser correctos y estar en función de la normalización (ISO 9000, CMMI, Microsoft…).
Normativa ISO 9000
Pone a disposición de un auditor o certificador los procesos internos, de forma que este indique si cumple o no la normativa al 100%, audita el sistema; Si los resultados son positivos se emite la certificación y cada cierto tiempo se tiene que renovar; La certificación es costosa, a consecuencia de costes que ocasionan la lejanía y el tiempo de duración de proceso (aprox. 6 meses). Se certifica la empresa y la metodología para el desarrollo de la aplicación
Medición del software
En el software lo que se mide son atributos propios del mismo, se descompone un atributo general en otros más simples de medir, a veces se mide bien o mal ya que la descomposición del atributo genérico de calidad en otros sub-atributos se torna irreal, se mide con datos estadísticos no avalados, es imposible decir que la medición se hace en forma correcta.
El concepto de medida va de más a menos, va de lo general a lo concreto y lo concreto es asociado a la métrica, cuya combinación te daría el nivel de calidad o seguridad de tu producto. Las ciencias bien estructuradas se basan en medidas bien hechas, se basan en la matemática.
Líneas base
Una línea base es un concepto de gestión de la configuración que lleva a controlar los cambios sin impedir seriamente los cambios justificados. El Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) 610.12/1990 define una línea base como:
Una especificación o producto que se ha revisado formalmente y sobre los que se ha llegado a un acuerdo, y que de ahí en adelante sirve como base para un desarrollo posterior y que puede cambiarse solamente a través de procedimientos formales de control de cambios.
La IEEE define una línea base como:
Una especificación o producto que se ha revisado formalmente y sobre los que se ha llegado a un acuerdo, y que de ahí en adelante sirve como base para un desarrollo posterior y que puede cambiarse solamente a través de procedimientos formales de control de cambios.
Elementos de la configuración de SW
Un elemento de la configuración del software es la información creada como parte del proceso de ingeniería un ECS (elemento de configuración de software) es un documento, un conjunto completo de casos de prueba o un componente de un programa 40
dado. Los siguientes ECS son el objetivo de las técnicas de gestión de configuración y forman un conjunto de líneas base:
1) Especificación del sistema
2) Plan de proyecto
3) a. Especificación de requisitos
b. Prototipo ejecutable o "en papel"
4) Manual de usuario preliminar
5) Especificación de diseños
a. Descripción del diseño de datos
b. Descripción del diseño arquitectónico
c. Descripciones del diseño de los módulos
d. Descripciones del diseño de interfaces
e. Descripciones de los objetos (si se utilizan técnicas de P.O.O)
6) Listados del código fuente
7) a. Plan y procedimiento de pruebas
b. Casos de prueba y resultados registrados
8) Manuales de operación de y de instalación
9) Programas ejecutables
a. Módulos, código ejecutable
b. Módulos enlazados
10) Descripción de la base de datos
a. Esquema y estructura de archivos
b. contenido inicial
11) Manual del usuario final
12) Documentos de mantenimiento
a. Informes de problemas del software
b. Peticiones de mantenimiento
c. Ordenes de cambios e ingeniería.
13) Estándares y procedimientos de ingeniería del software
Es importante considerar poner las herramientas de desarrollo de software bajo control de configuración. Es decir congelar la versiones de editores, compiladores y otras herramientas CASE utilizadas durantes el desarrollo, un cambio en las versiones utilizadas puede que produzca resultados diferentes que la versión original.
Los ECS se organizan como objetos de configuración que deben ser catalogados por la base de datos del proyecto con un nombre único. Un ECS tiene un nombre y atributos, y está conectado a otros objetos mediante relaciones.
Gestión de configuración de SW
La GCS es un elemento importante de garantía de calidad es responsable de controlar los cambios. Sin embargo también se debe identificar los ECS individuales. El proceso se puede definir en cinco tareas de CGS:
Identificación
Control de versiones
Control de cambios
Auditorias de configuración
Generación de informes
Proceso de GCS
Se denomina Gestión de la Configuración al conjunto de procesos destinados a asegurar la calidad de todo producto obtenido durante cualquiera de las etapas del desarrollo de un Sistema de Información (S.I.), a través del estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versión estable de cada elemento para toda persona involucrada en el citado desarrollo. Estos dos elementos (control de cambios y control de versiones de todos los elementos del S.I.) facilitan también el mantenimiento de los sistemas al proporcionar una imagen detallada del sistema en cada etapa del desarrollo. La gestión de la configuración se realiza durante todas las fases del desarrollo de un sistema de información, incluyendo el mantenimiento y control de cambios, una vez realizada la puesta en producción.
Identificación de la configuración GCS
Se pueden identificar dos tipos de los objetos básicos y los objetos compuestos.
Un objeto básico es una unidad de texto creada durante el análisis, diseño, codificación o prueba. Un objeto compuesto es una colección de objetos básicos u objetos compuestos. Cada objeto tiene un conjunto de características que los identifican como únicos. El nombre del objeto es una cadena de caracteres que identifica al objeto sin ambigüedad. La descripción del objeto es una lista de elementos de datos que identifican:
El tipo de ECS (documento, programa, datos) que está representado por el objeto.
Un identificador del proyecto; y la información de la versión y/o el cambio.
El esquema de identificación de los objetos de software debe tener en cuenta que los objetos evolucionan a lo largo del proceso de ingeniería, por lo que se puede crear un grafo de evolución (figura 1.3)
Control de configuración
CONTROL DE CAMBIOS
En un gran proyecto de desarrollo de software, el cambio incontrolado lleva rápidamente al caos. El control de cambios combina los procedimientos humanos y las herramientas automáticas para proporcionar un mecanismo para el control de cambio.
El control de cambios es un mecanismo para la evaluación y aprobación de los cambios hechos a elementos de la configuración software durante el ciclo de vida.
Pueden establecerse tres distintos tipos de control:
1) Control individual, antes de aprobarse un nuevo elemento.
2) Control de Gestión (u organizado), conduce a la aprobación de un nuevo elemento.
3) Control formal, se realiza durante el mantenimiento. 1. Control individual (o informal)
Cuando un elemento de la configuración está bajo control individual, el técnico responsable cambia la documentación como se requiere. Aunque se mantiene un registro informal de revisiones, tales registros no se ponen generalmente en el documento. El control individual se aplica durante las etapas más importantes del desarrollo del documento y se caracteriza por los cambios frecuentes.
2. Control de gestión
Implica un procedimiento de revisión y aprobación para cada cambio propuesto en la
configuración. Como en el control individual, el control a nivel de proyecto ocurre durante el proceso de desarrollo pero es usado después de que haya sido aprobado un elemento de la configuración software. Este nivel de control de cambios se caracteriza por tener menos cambios que el control individual. Cada cambio es registrado formalmente y es visible para la gestión.
3. Control de cambios formal
Ocurre durante la fase de mantenimiento del ciclo de vida software (el producto ya está
implantado). El impacto de cada tarea de mantenimiento se evalúa por un Comité de Control de Cambios (CCC), el cual aprueba las modificaciones de la configuración software.
El proceso de control
El control de cambios se aplica, según hemos visto, allá donde un elemento de la configuración software va a cambiar.
El flujo del proceso de control de la GCS se ilustra en la siguiente figura:
Control de versiones
El control de versiones combina procedimientos y herramientas para gestionar las versiones de los objetos de configuración creadas durante el proceso de ingeniería del software.
"La gestión de configuración permite a un usuario especificar configuraciones alternativas del sistema de software mediante la selección de las versiones adecuadas. Esto se puede gestionar asociando atributos a cada versión del software y permitiendo luego especificar y construir una configuración describiendo el conjunto de atributos deseado."
Los atributos pueden ser tan sencillos como un número específico de versión asociado a cada objeto o tan complejos como una cadena de variables lógicas que especifiquen tipos de cambios funcionales aplicados al sistema.
Auditoría de la configuración
¿Cómo podemos asegurar que el cambio se ha implementado correctamente? La respuesta es doble: 1) revisiones técnicas formales y 2) auditorias de configuración del software.
Las revisiones técnicas formales se centran en la corrección técnica del elemento de configuración que ha sido modificado. Los revisores evalúan el ECS para determinar la consistencia con otros ECS, las omisiones o los posibles efectos secundarios.
Una auditoria de configuración del software complementa la revisión técnica formal al comprobar características que generalmente no tiene en cuenta la revisión. La auditoria se plantea y responde con las siguientes preguntas:
¿Se ha hecho el cambio especificado en la OCI? ¿Se han incorporado modificaciones adicionales?
¿Se ha llevado a cabo una revisión técnica formal para evaluar la corrección técnica?
¿Se han seguido adecuadamente los estándares de ingeniería de software?
¿Se han "recalcado" los cambios en el ECS?¿Se han especificado la fecha del cambio y el autor?¿Reflejan los cambios los atributos del objeto de configuración?
¿Se han seguido procedimientos del GCS para señalar el cambio, registrarlo y divulgarlo?
¿Se han actualizado adecuadamente todos los ECS relacionados?
11. Gestión de configuración en el mantenimiento de software.En el mantenimiento de software, cobra importancia la función del Comité de Control de Cambios (CCC), que se encarga de recibir, estudiar y aprobar las solicitudes de cambio en el software que son presentadas, sea por los usuarios o por los propios encargados del mantenimiento. En este caso, las funciones de control y de auditoria se vuelven casi indispensables, pues es necesario mantener registro de todas las solicitudes de cambio presentadas y del estado actual de cada una de ellas. Un sistema de Gestión de Configuración que apoye la Gestión de solicitudes de cambio, debería permitir el registro por parte de los usuarios de las solicitudes de cambio, su revisión por parte del CCC, y si son aprobadas la creación de ordenes de cambio. Un cambio implica generalmente la actualización tanto del Código fuente, como de los documentos de especificación de requisitos, análisis y diseño, casos de prueba y manuales. Por lo tanto, en el escenario anterior, resulta de utilidad mantener un registro de las dependencias entre los elementos de Configuración. El cambio se vera reflejado en la creación de nuevas versiones de los elementos respectivos.
12. Gestión en la distribución del software a las PC- UsuariosCuando se pone en producción un software, se distribuyen copias del mismo entre los diversos usuarios del sistema. En este escenario, un sistema de Gestión de Configuración debería permitir registrar las Configuraciones (conjunto de versiones de elementos de Configuración) que cuenta cada PC – usuario. Puede ocurrir, que si un mismo sistema se vende a distintos clientes, en algún momento surjan requerimientos contradictorios o necesidades que lleven a la creación de variantes de los elementos de Configuración. El sistema de Gestión de Configuración apoyaría entonces al momento de estudiar una solicitud de un usuario a conocer cual es la Configuración con la que esta trabajando.
13. INFORMES DE ESTADO
La generación de informes de estado de la configuración es una tarea de GCS que responde a las siguientes preguntas:
1) ¿Qué pasó?
2) ¿Quién lo hizo?
3) ¿Cuándo pasó?
4) ¿Que más se vio afectado?
La generación de informes de estado de la configuración desempeña un papel vital en el éxito del proyecto de desarrollo de software. Cuando aparece involucrada mucha gente es muy fácil que no exista una buena comunicación. Pueden darse errores entre las personas desarrolladoras del software. El IEC ayuda a eliminar esos problemas, mejorando la comunicación entre todas las personas involucradas.
Modelos estándares de GCS
Durante las dos últimas décadas se han propuesto varios estándares de gestión de configuración del software.
MODELO DE MADUREZ DE CAPACIDADES (CMM)
Describe un marco de referencia para el desarrollo y mantenimiento de software Constituye un modelo en el que el mejoramiento de los procesos es implementado de forma incremental. Organiza las etapas para evolucionar los procesos de software en cinco niveles: inicial, definido, repetible, gestionado y optimizado [Dunaway, 1996] [Farley, 2000] [Cruz, 2002]
LA ORGANIZACIÓN INTERNACIONAL PARA LA ESTANDARIZACIÓN (ISO)
Promueve la estandarización internacional. En relación al software, existe la guía o reglas generales ISO 9000-3. es una guía y no una norma. La ISO 9000 del 2000 identifica ocho principios de gestión de la calidad:
* Enfoque al cliente
* Liderazgo
* Participación del personal
* Enfoque basado en procesos
* Enfoque de sistema para la gestión
* Mejora continua
* Enfoque basado en hechos para la toma de decisión
* Relaciones mutuamente beneficiosas con el proveedor.
INSTITUTO DE INGENIEROS ELÉCTRICOS Y ELECTRÓNICOS (IEEE)
IEEE 730, este estándar permitió identificar los aspectos más importantes para la realización del plan de aseguramiento de la calidad
Entre lo documentos normativos:
* IEEE Guide to Software Configuration Management, American National Standards Institute, (1042-1987)
* IEEE Standard for Software Configuration Management Plans, American National Standards Institute (828-1990).
La vinculación de estándares
Existe una estrecha relación en todos estos modelos. CMM pueden cumplir con las exigencias de las certificaciones de ISO.
Los aspectos con los que cumplen en ambos niveles podría resultar suficiente para certificarse como ISO .Entonces pudiera haber organizaciones no maduras (CMM) o por debajo del nivel 3 que obtuvieran la certificación ISO.
De manera general, si una organización se considera posible candidata a ISO, es probable que esté cerca de alcanzar el nivel 2. Las que están en el nivel 3 con completa seguridad serán certificadas ISO9001. [Zhang, 2001].
Vinculación de ISO y CMM
BENEFICIOS DE LA GCS
Reduce el esfuerzo necesario para gestionar y realizar el cambio – mejora la productividad
Conduce a una mejora de la integridad y seguridad del software – incremento de la calidad
Genera información sobre el proceso – mejora de la gestión del control
Mantiene una base de datos de desarrollo de software – mejor registro y seguimiento de informes.
Plan de gestión de configuración de SW
Contenidos:
Introducción (Propósito, Alcance, Definiciones, Acrónimos y Abreviaturas, Referencias, Apreciación Global
Gestión de la Configuración del SW (Organización, Responsabilidades e Interfaces, Herramientas, Ambientes e Infraestructura)
El Programa de CM (Identificación de la Conf(Métodos de Identificación, LB del Proyecto; Control de la Conf y de los Cambios ( Procesamiento y Aprobación de la solicitud de Cambio, Tablero de Control de Cambio (Change Control Board, CCB); Contabilidad de Estado de la Conf ( Almacenamiento de los Medios del Proyecto y Proceso de Release, Auditorias y Reportes)
Fechas Principales
Entrenamiento y Recursos
Control del Subcontratado y del Vendedor de SW
Conclusiones
La finalidad de la Gestión y configuración del Software es el conocer la estructura de procesos y herramientas para aplicar dentro de la construcción del software que nos ayudan a controlar los cambios.
Es importante considerar ciertas modificaciones que pueden ocurrirle al software dentro de todo el proceso de ingeniería para asegurar su control y calidad.
Autor:
Ostin dicson
ING. DE SOFTWARE
ING. FERNANDO MEJIA
1201
Desarrollo Pratica FINAL
Santo Domingo:D.N
Fundada el 12 de Enero del 1966