Professional Documents
Culture Documents
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
NDICE
Presentacin Red de contenidos
Pgina
7 8
Unidad de aprendizaje 1
1.1 Tema 1 : Calidad de Software 1.1.1. : Definicin de Calidad 1.1.2. : Poltica de Calidad 1.1.3. : Terminologa segn ISO 8402 1.1.4. : Definicin de Calidad de Software 1.2 Tema 2 : Aseguramiento y Control de Calidad 1.2.1. : SQA (Software Quality Assurance) no es lo mismo que SQC (Software Quality Control) 1.2.2. : Funciones Generales del SQA 1.3 Tema 3 : Modelo de Procesos 1.3.1. : El Proceso de Desarrollo de Software 1.3.2. : Normas Relacionados con el Proceso de Desarrollo de Software 1.3.3. : Los Procesos ISO 12207:2008 1.4 Tema 4 : Modelo de Ciclo de Vida de Software 1.4.1. : Codificar y Corregir (Code-and-Fix) 1.4.2. : Modelo en Cascada 1.4.3. : Desarrollo Evolutivo 1.4.4. : Desarrollo Formal de Sistemas 1.4.5. : Desarrollo Basado en Reutilizacin 1.4.6. : Procesos Iterativos 1.4.7. : Cul es el modelo de procesos ms adecuado?
10 10 11 11 13 20 21
22 25 27 30
34 35 35 35 37 38 39 40 42
CIBERTEC
CARRERAS PROFESIONALES
1.5 Tema 5 : Verificacin y Validacin 1.5.1. : Verificacin 1.5.2. : Validacin 1.5.3. : Ventajas de las Revisiones de Software 1.5.4. : Desventajas de las Revisiones de Software 1.5.5. : Revisiones Informales y Formales
44 44 44 45 45 45
Unidad de aprendizaje 2
2.1 Tema 6 : Modelos de Calidad de Software 2.1.1. : Introduccin 2.1.2. : Perspectivas de Calidad 2.1.3. : Calidad desde el Punto de Vista del Proceso 2.1.4. : Calidad desde el Punto de Vista del Producto 2.1.5. : Calidad desde el Punto de Vista de las Personas 2.2 Tema 7 : Mtricas de Calidad de Producto Software 2.2.1. : ISO/IEC 9126-1 Modelo de Calidad 2.2.2. : ISO/IEC 9126-2 Mtricas Externas 2.2.3. : ISO/IEC 9126-3 Mtricas Internas 2.2.4. : Relacin entre las Mtricas Internas y Externas 2.2.5. : ISO/IEC 9126-4 Mtricas para Calidad en Uso 2.2.6. : ISO/IEC 25000:2005 SquaRE 2.3 Tema 8 : Evaluacin de Mtricas 2.3.1. : Definiciones 2.3.2. : Proceso de Evaluacin
85 86 86 87 88 89 90 91 93 93 94 95 96 98 98 98
Unidad de aprendizaje 3
3.1 Tema 9 : Pruebas de Software 3.1.1. : Principios Generales de las Pruebas 3.2 Tema 10 : Ciclo de Vida de las Pruebas 3.2.1 3.2.2 Planeacin y Control de Pruebas Anlisis y Diseo de las Pruebas
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
3.3 Tema 11 : Estrategia de Pruebas 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 Casos de Prueba Diseo de Casos de Prueba Realizar Casos de Prueba Informe y Seguimiento de Pruebas Relacin entre las Pruebas y la Depuracin
CIBERTEC
CARRERAS PROFESIONALES
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
PRESENTACIN
Calidad de Software pertenece a la lnea formativa y se dicta en la carrera de Computacin e Informtica y de Administracin y Sistemas. Brinda los conceptos fundamentales de calidad que deben ser considerados en los proyectos de desarrollo de sistemas de software. El manual para el curso ha sido diseado bajo la modalidad de unidades de aprendizaje, las que se desarrollan durante semanas determinadas. En cada una de ellas, hallar los logros, que debe alcanzar al final de la unidad; el tema tratado, el cual ser ampliamente desarrollado; y los contenidos, que debe desarrollar, es decir, los subtemas. Por ltimo, encontrar las actividades que deber desarrollar en cada sesin, que le permitirn reforzar lo aprendido en la clase. El curso tiene un formato terico prctico. Los conceptos desarrollados son aplicados en el proyecto Integrado de Quinto Ciclo, desarrollado en el curso de Desarrollo de Aplicaciones Web 1, y se complementa con los temas del curso de Gestin de Proyectos de TI. Los conceptos y las tcnicas de control de calidad se implementan tambin en el curso de Anlisis y Diseo de Sistemas III de la carrera de Administracin y Sistemas, con verificaciones de entregables previamente establecidos. .
CIBERTEC
CARRERAS PROFESIONALES
RED DE CONTENIDOS
Calidad de Software
Mtricas de Software
Pruebas de Software
Calidad de Software
Pruebas de Software
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
CALIDAD DE SOFTWARE
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al trmino de la unidad de aprendizaje, el alumno disea la lista de verificacin del Reporte de Especificacin de Software y el Plan de Desarrollo considerando los requerimientos previamente definidos por el Lder Usuario para el proyecto integrado de quinto ciclo.
TEMARIO
1.1. Tema 1: Calidad de Software 1.1.1. Definicin de Calidad 1.1.2. Poltica de Calidad 1.1.3. Terminologa segn ISO 8402 1.1.4. Definicin de Calidad de Software 1.1.4.1. Control de Calidad 1.1.4.2. Aseguramiento de Calidad 1.2. Tema 2: Aseguramiento y Control de Calidad 1.2.1. SQA (Software Quality Assurance) no es lo mismo que SQC (Software 1.2.2.
1.3. Tema 3: Modelo de Procesos 1.3.1. El Proceso de Desarrollo de Software 1.3.2. Normas Relacionadas con el Proceso de Desarrollo de Software 1.3.2.1. Conceptos Clave 1.3.2.2. Ciclos de Vida, Procesos, Productos 1.3.3. Los Procesos ISO 12207:2008 1.4. Tema 4: Modelo de Ciclo de Vida de Software 1.4.1. Codificar y Corregir (Code-and-Fix) 1.4.2. Modelo en Cascada 1.4.3. Desarrollo Evolutivo 1.4.4. Desarrollo Formal de Sistemas 1.4.5. Desarrollo Basado en Reutilizacin 1.4.6. Procesos Iterativos 1.4.6.1. Desarrollo Incremental 1.4.6.2. Desarrollo en Espiral 1.4.7. Cul es el modelo de procesos ms adecuado? 1.5. Tema 5: Verificacin y Validacin de Software 1.5.1. Verificacin 1.5.2. Validacin 1.5.3. Ventajas de las Revisiones de Software 1.5.4. Desventajas de las Revisiones de Software 1.5.5. Revisiones Informales y Formales
CIBERTEC
CARRERAS PROFESIONALES
10
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
11
Existen muchas definiciones de calidad y muchos trminos que se utilizan en la gestin de la misma. Para la ISO 8402 (International Standard Organization), complemento de normas de las series de normas ISO 9000, define La Calidad como: "El conjunto de caractersticas de una entidad que le confieren la aptitud para satisfacer las necesidades establecidas e implcitas. Tambin podra decirse que es la conformidad con los requisitos y el grado de excelencia. En un servicio la calidad se define como la diferencia entre la percepcin del servicio y la expectativa que el cliente tena del mismo. Calidad tambin es la satisfaccin del cliente. La calidad la definen los clientes, por lo que la oferta deber estar de acuerdo los lo que ellos definen (sus exigencias) y entonces deber producirse exactamente lo que dichos clientes desean, en el plazo convenido y al mnimo costo e incluso anticiparse a sus necesidades satisfaciendo sus expectativas, lo que dar una ventaja competitiva frente a la competencia. La calidad no solo hace referencia a que un producto o servicio se ajuste a las exigencias. La percepcin que los clientes tienen sobre su empresa est basada en el producto o servicio que les suministra, pero tambin en el contacto diario que mantienen con los directivos. El concepto de calidad abarca no slo como se atienden las exigencias de sus clientes sino tambin la forma en que se hace, cmo se atiende el telfono, la rapidez con que se satisfacen consultas, tener nuevos servicios cuando se los requiere, asegurarse que la factura que sale de la empresa es la correcta. Cada contacto, llamados momentos de la verdad con el cliente, muestra un reflejo de la compaa a los ojos de ese cliente. El recepcionista que atiende las llamadas, los agentes de seguridad que controlan los accesos, los ascensoristas que transportan a la gente y la orientan, los administrativos que envan las facturas, los dictmenes de los abogados, todos deben involucrarse en el concepto de calidad, en satisfacer las exigencias del cliente, en crear una compaa con clase reconocida. La calidad es un concepto objetivo que cada empleado puede comprender y evaluar, y sobre el cual puede asumir responsabilidades. La nica forma de alcanzar el objetivo de calidad es: 1. Comprender las exigencias de los clientes externos. 2. Conocer a fondo los procesos internos que le permitan satisfacer esas exigencias. 3. Desarrollar un sistema y cultura empresarial que le aseguren que los errores son evitados o eliminados
CIBERTEC
CARRERAS PROFESIONALES
12
Se proporciona orientacin precisa para que ejecutivos y mandos elaboren planes concretos de accin. Se cohesiona la organizacin para el cumplimiento de los objetivos de calidad. Se refuerza el compromiso del personal.
La poltica de calidad debe ser: Adecuada a la empresa. Coherente con las necesidades y expectativas de sus clientes. Muy simple y fcilmente comprensible para que sea comunicable y entendida sin dificultad.
En cuanto a su contenido, debera hacer referencia a: Los grandes objetivos de la empresa. Los colectivos que en ella conviven: personal, accionistas, clientes, proveedores. La disponibilidad de los recursos necesarios; por ejemplo, formacin. La va a utilizar (ISO, Mejora Continua, etc.).
Es la totalidad de aspectos y caractersticas de un producto o servicio que se refieren a su capacidad para satisfacer necesidades dadas en la adecuacin de sus objetivos'. El Instituto de Ingeniera de Software (SEI) en su modelo CMM define la calidad como: El grado en el cual un sistema, componente o proceso cumple con los requisitos especificados. El grado en el cual el sistema, componente o proceso cumple con las expectativas del cliente o usuario.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
13
El QS debe tener el volumen y alcance suficiente para conseguir los objetivos de calidad. El QS de una organizacin est fundamentalmente previsto para satisfacer las necesidades internas de la organizacin. Es ms amplio que los requerimientos de un cliente concreto que nicamente valore el QS que le interesa (directamente). Para finalidades contractuales o vinculantes en la valoracin de la calidad, se puede exigir que se ponga de manifiesto la realizacin de ciertos elementos del QS.
6. Aseguramiento de la Calidad: Es un conjunto de actividades preestablecidas y sistematizadas, aplicadas al sistema de calidad, que ha sido demostrado que son necesarias para dar confianza adecuada de que un producto o servicio satisfar los requisitos para la calidad. 7. Accin Correctiva: Accin tomada para eliminar las causas de una no conformidad, defecto o cualquier situacin indeseable existente, para evitar su repeticin. 8. Accin Preventiva: Accin tomada para eliminar las causas de una no conformidad, defecto o cualquier situacin indeseable potencial, con el fin de evitar que se produzca. 9. Conformidad: Cumplimiento de requisitos especificados. 10. Costos de la no Calidad: Costos asociados con la provisin de productos o servicios de baja calidad. 11. Defectos: No cumplimiento de un requisito o de una expectativa razonable, ligada a un uso previsto, incluyendo los relativos a la seguridad. 12. Inspeccin: Actividades como medir, examinar, ensayar o comparar una o ms caractersticas de un producto o servicio, y comparar los resultados con los requisitos especificados, con el fin de determinar la conformidad con respecto a cada una de esas caractersticas. 13. No Conformidad: No satisfaccin de un requisito especificado. 14. Trazabilidad: Aptitud de reconstruir la historia, la utilizacin o la localizacin de un producto por medio de identificaciones registradas. 15. Validacin: Confirmacin por examen y aporte de evidencias objetivas de que los requisitos particulares para un uso especfico previsto han sido satisfechos. 16. Verificacin: Confirmacin por examen y aporte de evidencias objetivas que los requisitos especificados han sido satisfechos.
CIBERTEC
CARRERAS PROFESIONALES
14
C L I E N T E S
R E Q U I S I T O S
Entrada
S A T I S F A C C I O N Producto o Servicio
Salida
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
15
La Calidad del Software es medible y vara de un sistema a otro o de un programa a otro. Por ejemplo: un software elaborado para el control de naves espaciales debe ser confiable al nivel de "cero fallas"; un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad; mientras que un producto de software para ser explotado durante un largo perodo (10 aos o ms) necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotacin. La Calidad del Software puede medirse despus de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas derivados de imperfecciones en el diseo, por lo que es imprescindible tener en cuenta tanto la obtencin de la calidad como su control durante todas las etapas del ciclo de vida del software. Existen varios factores que determinan la calidad del software y la eficiencia de la organizacin, entre ellos estn la complejidad del producto, las tecnologas y las personas, as como algunas condiciones de entorno que tambin tienen su impacto, estas pueden ser condiciones de gestin (plazo de entrega, restricciones dentro de la organizacin), entornos de desarrollo y caractersticas del cliente, sin embargo en el centro de todas ellas se encuentra el proceso. El proceso es el nico factor de los controlables al mejorar la calidad del software y su rendimiento en la organizacin. Analizando y mejorando el proceso se puede obtener mejores productos.
Los ejes de desarrollo de software se relacionan con la calidad de la siguiente forma: 1. 2. 3. 4. Persona: PSP, TSP Producto: McCall, Boehm, ISO/IEC 9126-1 Proceso: CMM, ISO/IEC 15504 Mejora continua del proceso: IDEAL, ISO/IEC 15504, SPI
Por lo tanto:
CIBERTEC
CARRERAS PROFESIONALES
16
1.1.4.1. Control de Calidad: Para controlar la Calidad del Software es necesario, definir los parmetros, indicadores o criterios de medicin. El software posee determinados ndices medibles que son las bases para la calidad, el control y el perfeccionamiento de la productividad. Una vez seleccionados los ndices de calidad, debe establecerse el proceso de control, que requiere los siguientes pasos: 1. Definir el software que va a ser controlado: clasificacin por tipo, mbito de aplicacin, complejidad, etc., de acuerdo con los estndares establecidos para el desarrollo del software. Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada clase de software es necesario definir los indicadores y sus magnitudes. Crear o determinar los mtodos de valoracin de los indicadores: mtodos manuales como cuestionarios o encuestas estndares para la medicin de criterios parciales y herramientas automatizadas para medir los criterios de clculo.
2.
3.
Los procedimientos pueden variar en cada organizacin, pero lo importante es que estn escritos, personalizados, adaptados a los procesos de la organizacin y, lo que es ms importante, que se cumplan. La Calidad del Software debe implementarse a lo largo de todo el ciclo de vida, debe correr paralela desde la planificacin del producto hasta la fase de produccin del mismo.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
17
Para ello se cuenta con una serie de ayudas, a travs de distintas actividades para la implantacin del control de calidad en el desarrollo que son: Aplicacin de metodologa y tcnicas de desarrollo Reutilizacin de procesos de revisin formales Prueba del software Ajustes a los estndares de desarrollo Control de cambios, mediciones y recopilacin de informacin Gestin de informes sobre el control de calidad Para la fase de Planificacin, se pueden utilizar elementos y herramientas propias de la Gestin de proyectos, como la: Estimacin de la duracin, costo y esfuerzo para la construccin del producto. En lo referido a la estimacin habr que tener presentes las Mtricas de software Planificacin de tareas que hay que realizar, asignacin de personas, tiempo, costo y otros parmetros para construccin del producto Para los procesos de Anlisis y Diseo deberemos contar con: Sistemas de obtencin de requisitos Mtricas de software Herramientas de Generacin de Datos Casos de Prueba En los procesos de Construccin y pruebas deberamos usar: Herramientas de Gestin de la Configuracin Herramientas de Simulacin Casos de Pruebas Y, finalmente, para el proceso de Produccin, bsicamente debemos utilizar: Herramientas de monitoreo de resultados Pruebas de produccin Definir las regulaciones organizativas para realizar el control: quienes participan en el control de calidad, cundo se realiza, qu documentos deben ser revisados y elaborados, etc. El Instituto de Ingeniera de Software (SEI) en su modelo CMM define la calidad como: El grado en el cual un sistema, componente o proceso cumple con los requisitos especificados. El grado en el cual el sistema, componente o proceso cumple con las expectativas del cliente o usuario.
CIBERTEC
CARRERAS PROFESIONALES
18
1.1.4.2. Aseguramiento de Calidad: Es el conjunto de actividades planificadas y sistemticas necesarias para aportar la confianza adecuada en que el producto (software) satisfacer los requisitos dados de calidad. El aseguramiento pretende dar confianza en que el producto tiene calidad. Aseguramiento de calidad se enfoca en identificar y evaluar los defectos que puedan afectar al software. Si los errores se pueden identificar de forma temprana en el proceso de software, las caractersticas del diseo de software se pueden especificar de modo que eliminarn o controlarn los peligros potenciales, al corregir los errores mucho antes en cada etapa es decir durante el proceso, ahorrando esfuerzos, tiempo y recursos. Sridharan (Sridharan, 2000) indica que mientras el software que se est desarrollando rene los requerimientos y su desempeo sea el esperado, es preciso que se supervisen las actividades de desarrollo del software y su rendimiento, en distintas oportunidades durante cada fase del ciclo de vida. Este es el papel del aseguramiento de la calidad del software. Hay tres aspectos muy importantes con relacin aseguramiento de la calidad del software: (Wiegers, 1990) i) La calidad no se puede probar, se construye. al
ii) El aseguramiento de la calidad del software no es una tarea que se realiza en una fase particular del ciclo de vida de desarrollo. iii) Las actividades asociadas con el aseguramiento de la calidad del software deben ser realizadas por personas que no estn directamente involucradas en el esfuerzo de desarrollo. El aseguramiento de la calidad de software comprende una gran variedad de tareas: i) Participar en descripcin del proyecto de software.
ii) Auditar el producto de software para verificar el cumplimiento del proceso de software definido. iii) Asegurar que las divergencias en el trabajo de software sean documentadas de acuerdo a los estndares definidos. iv) Almacenar cualquier inconformidad y reportarla a la gerencia media. v) Revisiones del software que se aplican durante cada paso del desarrollo del mismo. Las revisiones del software se aplican en varios momentos del desarrollo, tanto en el anlisis como en el diseo y la codificacin, de manera que puedan ser eliminados cuanto antes.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
19
vi) Gestin de configuraciones de software (control de la documentacin del software y de los cambios realizados). El proceso de control de cambios contribuye directamente a la calidad del software.
El grupo de aseguramiento de calidad participa en la revisin de los productos seleccionados para determinar si se conforman o no a los procedimientos, normas o criterios especificados, siendo totalmente independiente del equipo de desarrollo. Las actividades a realizar por el grupo de aseguramiento de calidad vienen gobernadas por el plan. Sus funciones estn dirigidas a: i) Identificar las posibles desviaciones en los estndares aplicados, as como en los requisitos y procedimientos especificados.
ii) Comprobar que se han llevado a cabo las medidas preventivas o correctivas necesarias. iii) Las revisiones son una de las actividades ms importantes del aseguramiento de la calidad, debido a que permiten eliminar defectos lo ms pronto posible, cuando son menos costosos de corregir. Es importante sealar que la calidad de un producto software no se puede referir nicamente a obtener un producto sin errores. La especificacin de la calidad del software debe ser ms detallada y exacta, y el camino para ello es la formalizacin de la calidad mediante un modelo de calidad. Un modelo de calidad es un conjunto de buenas prcticas para el desarrollo del software, enfocado en los procesos de gestin y desarrollo de proyectos, cuyo objetivo es el desarrollo de productos de calidad de manera consistente y predecible.
CIBERTEC
CARRERAS PROFESIONALES
20
Existen distintos marcos de trabajo que nos ayudan a mejorar los procesos de calidad de software. La finalidad de estos modelos es la de mejorar los procesos de software, brindar pautas para efectuar evaluaciones de la unidad informtica, determinar la potencialidad y la efectividad de sus procesos, as como la madurez de la empresa. Se busca mejorar los procesos de software, aumentar la productividad la calidad reduciendo su costo.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
21
CIBERTEC
CARRERAS PROFESIONALES
22
Desde el punto de vista del aseguramiento, Don Reifer define SQA como El aseguramiento de la calidad del software es el sistema de mtodos y procedimientos usados para asegurar que el producto de software alcanza sus requerimientos. El sistema involucra la planificacin, estimacin y monitoreo de las actividades de desarrollo realizadas por otros. Desde el punto de vista de la capacidad de uso Schulmeyer y McManus definen SQA como Las actividades sistemticas que proveen evidencia de la capacidad o disponibilidad de uso del producto de software total.
1.2.1.
SQA (Software Quality Assurance) no es lo mismo que SQC (Software Quality Control)
Generalmente cuando le preguntamos a un profesional de sistemas que es lo que entiende por aseguramiento de la calidad del software, inmediatamente comienza a hablar de testing, algunos de ellos incluyen a la validacin y verificacin y luego empiezan a hablar de revisiones, las cuales son slo extensiones del testing. Es decir, a menudo hay una confusin entre SQA y el testing (el cual actualmente forma parte del rea de control de calidad del software SQC). Haciendo slo testing y revisiones no aseguramos la calidad de los productos, sino aseguramos el cumplimiento de especificaciones tanto funcionales como tcnicas. En el desarrollo de software la diferencia entre SQC y SQA no est clara y estos trminos a menudo se confunden, SQA se encarga de controlar el cumplimiento del proceso, mientras que SQC son aquellas acciones del aseguramiento de la calidad que proporcionan un medio para controlar y medir las caractersticas de un elemento, proceso o facilidad respecto a los requisitos establecidos. La Tabla 1 muestra las diferencias entre Aseguramiento de la calidad (SQA) y Control de calidad (SQC)
SQA Asegura la adherencia a los procesos, estndares y planes. Evala que los procesos, planes y estndares utilizados en el proyecto cumplan con los estndares organizacionales Revisa procesos
Verifica que los productos de trabajo cumplan con los estndares de calidad especificados en el plan de proyecto. Revisa el contenido del producto
En conclusin, el rol del SQA es auditar que los distintos equipos de la organizacin, inclusive el de SQC siguen los procedimientos, estndares y procesos establecidos. El equipo de SQA debera
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
23
establecer mtricas para medir la efectividad del proceso. Como complemento el rol de SQC es tomar una actitud activa de verificacin y validacin del resultado o salida del proceso implementado.
1.2.2.
CIBERTEC
CARRERAS PROFESIONALES
24
Como responsable de la elaboracin del proceso El trabajo del equipo de SQA es participar en la definicin de los planes, procesos, estndares y procedimientos para asegurar que se ajustan a las necesidades del proyecto y que pueden ser usados para realizar las evaluaciones de QA y cumplir los requerimientos del proyecto y las polticas de la organizacin. Para cumplir este rol el aseguramiento de la calidad debera comenzar en las fases tempranas del proyecto. Para ser efectivo, el equipo que realiza SQA debe ser independiente de la organizacin de desarrollo. Aunque tener un grupo de auditora independiente es difcil de aplicar en organizaciones chicas donde hay pequeos ambientes de desarrollos. Pero si la organizacin es madura y tiene una cultura orientada a la calidad, la funcin de SQA puede estar embebida en el proceso. Cuando el equipo de SQA esta embebido en el proceso, se deben resolver varios inconvenientes para garantizar la objetividad:
Todo aquel que realice actividades de aseguramiento de la calidad debera estar entrenado en el aseguramiento de la calidad. Las actividades de aseguramiento de la calidad realizadas para un producto deberan ser separadas de aquellas involucradas en el desarrollo y mantenimiento del mismo. Debe estar disponible un canal de comunicacin independiente en el nivel apropiado de la gerencia para poder escalar las no conformidades cuando sea necesario.
El equipo de SQA provee a la gerencia de informacin fehaciente, objetiva en el momento adecuado. La clave aqu est en que el grupo de SQA provee a la gerencia de informacin tcnica objetiva. La gerencia necesita ver a la gente de SQA como una fuente de informacin significativa que puede ayudarla a tomar decisiones difciles. La Gerencia usa esta informacin para tomar decisiones de negocio apropiadas. La objetividad en la evaluacin de calidad de los procesos y productos es crtica para el xito del proyecto. La objetividad se logra con independencia del equipo de SQA y sentido comn o criterio. Hay diferentes maneras de realizar evaluaciones objetivas, entre las que se incluyen: Auditoras formales realizadas por un rea de SQA independiente de la organizacin. Revisiones de a pares que pueden ser realizadas con distintos niveles de formalidad. Revisiones rigurosas en el lugar de desarrollo. Revisiones distribuidas y comentarios del producto.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
25
La tarea del equipo de SQA es un conjunto planificado de tareas, actividades y acciones ejecutadas independientemente de la organizacin que desarrolla software, que provee a la gerencia del proyecto informacin fehaciente en un momento preciso que puede ser usada para tomar decisiones de negocio apropiadas
CIBERTEC
CARRERAS PROFESIONALES
26
iii) Los costos del software son difciles de prever y normalmente superan las estimaciones. iv) La modificacin del software es una tarea difcil y costosa. v) El software se suele presentar fuera del plazo establecido y con menos prestaciones de las consideradas inicialmente.
vi) Normalmente, es difcil cambiar de entorno hardware usando el mismo software. vii) El aprovechamiento ptimo de los recursos (personas, tiempo, dinero, herramientas, etc.) no suele cumplirse. Segn el Centro Experimental de Ingeniera de Software (CEIS), el estudio de mercado The Chaos Report realizado por Standish Group Internactional en 1996, concluy que slo un 16% de los proyectos de software son exitosos (terminan dentro de plazos y costos y cumplen los requerimientos acordados). Otro 53% sobrepasa costos y plazos y cumple parcialmente los requerimientos. El resto ni siquiera llega al trmino. Algunas deficiencias comunes en el desarrollo de software son: i) ii) Escasa o tarda validacin con el cliente. Inadecuada gestin de los requisitos.
iii) No existe medicin del proceso ni registro de datos histricos. iv) Estimaciones imprevistas de plazos y costos. v) Excesiva e irracional presin en los plazos.
vi) Escaso o deficiente control en el progreso del proceso de desarrollo. vii) No se hace gestin de riesgos formalmente. viii) No se realiza un proceso formal de pruebas. ix) No se realizan revisiones tcnicas formales e inspecciones de cdigo.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
27
El primer reconocimiento pblico de la existencia de problemas en la produccin de software tuvo lugar en la conferencia organizada en 1968 por la Comisin de Ciencias de la OTAN en Garmisch (Alemania), dicha situacin problemtica se denomin crisis del software. En esta conferencia, as como en la siguiente realizada en Roma en 1969, se estipul el inters hacia los aspectos tcnicos y administrativos en el desarrollo y mantenimiento de productos software. Se pretenda acordar las bases para una ingeniera de construccin de software. Segn Fritz Bauer lo que se necesitaba era establecer y usar principios de ingeniera orientados a obtener software de manera econmica, que sea fiable y funcione eficientemente sobre mquinas reales. Esta definicin marcaba posibles cuestiones tales como: Cules son los principios robustos de la ingeniera aplicables al desarrollo de software de computadora? Cmo construimos el software econmicamente para que sea fiable? Qu se necesita para crear programas de computadora que funcionen eficientemente no en una mquina sino en diferentes mquinas reales?. Sin embargo, dicho planteamiento adems deba incluir otros aspectos, tales como: mejora de la calidad del software, satisfaccin del cliente, mediciones y mtricas, etc. El IEEE Standard Glossary of Software Engineering Terminology (Stad. 610.121990) ha desarrollado una definicin ms completa para ingeniera del software: La aplicacin de un enfoque sistemtico, disciplinado y cuantificable para el desarrollo, operacin y mantenimiento del software; es decir, la aplicacin de ingeniera al software. El estudio de enfoques en Pressman caracteriza la Ingeniera de Software como una tecnologa multicapa, ilustrada en la Figura 3.1.
Dichas capas se describen a continuacin: 1. Cualquier disciplina de ingeniera (incluida la ingeniera del software) debe descansar sobre un esfuerzo de organizacin de calidad. La gestin total de la calidad y las filosofas similares fomentan una cultura continua de mejoras de procesos que conduce al desarrollo de enfoques cada vez ms robustos para la ingeniera del software. 2. El fundamento de la ingeniera de software es la capa proceso. El proceso define un marco de trabajo para un conjunto de reas clave, las cuales forman la base del control de gestin de proyectos de software y establecen el contexto en el cual: se aplican los mtodos tcnicos, se producen resultados de trabajo, se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.
CIBERTEC
CARRERAS PROFESIONALES
28
3. Los mtodos de la ingeniera de software indican cmo construir tcnicamente el software. Los mtodos abarcan una gran gama de tareas que incluyen anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento. Estos mtodos dependen de un conjunto de principios bsicos que gobiernan cada rea de la tecnologa e incluyen actividades de modelado y otras tcnicas descriptivas. 4. Las herramientas de la ingeniera del software proporcionan un soporte automtico o semi-automtico para el proceso y los mtodos, a estas herramientas se les llama herramientas CASE (Computer-Aided Software Engineering). Dado lo anterior, el objetivo de la ingeniera de software es lograr productos de software de calidad (tanto en su forma final como durante su elaboracin), mediante un proceso apoyado por mtodos y herramientas. A continuacin nos enfocaremos en el proceso necesario para elaborar un producto de software.
1.3.1.
2.
3.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
29
4.
El proceso de desarrollo de software no es nico. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difcil automatizar todo un proceso de desarrollo de software.
A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos: 1. Especificacin de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. 2. Diseo e Implementacin: Se disea y construye el software de acuerdo a la especificacin. 3. Validacin: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. 4. Evolucin: El software debe evolucionar, para adaptarse a las necesidades del cliente. Adems de estas actividades fundamentales, Pressman menciona un conjunto de actividades protectoras, que se aplican a lo largo de todo el proceso del software. Ellas se sealan a continuacin: 1. Seguimiento y control de proyecto de software. 2. Revisiones tcnicas formales. 3. Garanta de calidad del software. 4. Gestin de configuracin del software. 5. Preparacin y produccin de documentos. 6. Gestin de reutilizacin. 7. Mediciones. 8. Gestin de riesgos.
CIBERTEC
CARRERAS PROFESIONALES
30
Pressman caracteriza un proceso de desarrollo de software como se muestra en la Figura 2.3. Los elementos involucrados se describen a continuacin: 1. Un marco comn del proceso, definiendo un pequeo nmero de actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamao o complejidad. 2. Un conjunto de tareas, cada uno es una coleccin de tareas de ingeniera del software, hitos de proyectos, entregas y productos de trabajo del software, y puntos de garanta de calidad, que permiten que las actividades del marco de trabajo se adapten a las caractersticas del proyecto de software y los requisitos del equipo del proyecto. 3. Las actividades de proteccin, tales como garanta de calidad del software, gestin de configuracin del software y medicin, abarcan el modelo del proceso. Las actividades de proteccin son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.
Otra perspectiva utilizada para determinar los elementos del proceso de desarrollo de software es establecer las relaciones entre elementos que permitan responder Quin debe hacer Qu, Cundo y Cmo debe hacerlo.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
31
En la Figura 3.4 se muestran los elementos de un proceso de desarrollo de software y sus relaciones. As las interrogantes se responden de la siguiente forma: 1. Quin: Las Personas participantes en el proyecto de desarrollo desempeando uno o ms Roles especficos. 2. Qu: Un Artefacto es producido por un Rol en una de sus Actividades. Los Artefactos se especifican utilizando Notaciones especficas. Las Herramientas apoyan la elaboracin de Artefactos soportando ciertas Notaciones. 3. Cmo y Cundo: Las Actividades son una serie de pasos que lleva a cabo un Rol durante el proceso de desarrollo. El avance del proyecto est controlado mediante hitos que establecen un determinado estado de terminacin de ciertos Artefactos. La composicin y sincrona de las actividades est basada en un conjunto de Principios y Prcticas. Las Prcticas y Principios enfatizan ciertas actividades y/o la forma como deben realizarse, por ejemplo: desarrollar iterativamente, gestionar requisitos, desarrollo basado en componentes, modelar visualmente, verificar continuamente la calidad, gestionar los cambios, etc.
1.3.2.
CIBERTEC
CARRERAS PROFESIONALES
32
En el tema de calidad a nivel de procesos se han desarrollado diversas propuestas para la industria en general como es el caso de los modelos: Malcom Baldrige, EFQM e ISO 9001, entre otros; los mismos que en alguna medida han sido utilizados por las organizaciones que desarrollan software. Un caso particular es la ISO/IEC 90003, que es una gua de aplicacin de la ISO 9001:2000 para el sector informtico. En el campo de las tecnologas de informacin, relacionado a procesos de software, se tienen una variedad creciente de propuestas y estndares que han ido evolucionando o mejorando de acuerdo al desarrollo tecnolgico. Existen varios modelos que cubren diversos aspectos y han sido desarrollados con distintos propsitos. Entre los modelos relacionados de manera directa o indirecta con los procesos de software se pueden mencionar: ISO/IEC 12207 (procesos del ciclo de vida de software), CMMI (modelo de madurez y capacidad integrada, antes CMM-Sw), RUP (Rational Unified Processes), ISO/IEC 20000 (gestin de servicios de TI), ITIL (biblioteca de infraestructura de tecnologas de informacin), ISO/IEC 15504 (modelo para la evaluacin de capacidades de procesos y madurez de organizaciones), IDEAL (mejora de procesos recomendado para CMMI), PSP (proceso de software para persona), TSP (proceso de software para equipos de trabajo), SCAMPI (mtodo de evaluacin de procesos usado para CMMI), Quick Locus (mtodo ligero brasileo de evaluacin de CMMI), PMBOK (Cuerpo de conocimiento de gestin de proyectos de PMI), ISO 10006 (directrices para la calidad en la gestin de proyectos), MoProSoft (modelo de procesos de referencia mexicano), EvalProSoft (mtodo de evaluacin basado en 15504 para MoProSoft), SIMEP-Sw (conjunto de modelos ligeros para mejor de procesos, colombiano), MPS.BR (modelos de mejor y evaluacin de procesos brasileos), TMMI (modelo de madurez para Pruebas de Software), SPIRE (modelo de mejora de la regin Europea), TOPS (mejora de procesos para pymes), PROCESSUS, IMPACT y RAPID entre otros. El modelo de madurez organizacional es uno de los tipos de modelos que ha recibido ms atencin en los ltimos aos. Dentro del campo de la informtica se tienen entre otros a CMMI, MoProSoft, el par ISO/IEC12207-ISO/IEC 15504 y TMMI; y fuera del campo de la informtica se tiene a OPM3, SOA-MM, BP-MM y GIMM de una lista mayor de propuestas. Todos estos modelos que pueden tener aspectos diferentes influenciados por el dominio donde aplican, estn vinculados necesariamente por el concepto que tratan de representar: un modelo de madurez organizacional; sin embargo al no existir algn referente que oriente como definir este tema, es posible que cada cual adopte el suyo propio.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
33
1.3.2.1.
Conceptos Clave i) Proceso: Conjunto de actividades mutuamente relacionadas o que interactan, las cuales transforman elementos de entrada en resultados. NTP-ISO/IEC 12207 Procesos del Ciclo de Vida del Software.
ii) Modelo: Esquema terico, generalmente en forma matemtica, de un sistema o de una realidad compleja. DRAE iii) Ciclo de desarrollo de software:
CIBERTEC
CARRERAS PROFESIONALES
34
Periodo de tiempo que comienza con la decisin de desarrollar el producto software y termina cuando el software es entregado. IEEE Std. 610.12-1990 Software Engineering Terminology iv) Ciclo de vida de software: Periodo de tiempo que comienza cuando el producto software es concebido y termina cuando el software no est disponible permanentemente para el usuario (retirada del software) . IEEE Std. 610.12-1990 Software Engineering Terminology. v) Estados del ciclo de vida del software: Constituye cada uno de los momentos (estados) por las que pasa (evoluciona) el producto software. Ing. Software. R.Fairley
1.3.2.2.
Ciclos de Vida, Procesos, Productos Considerando al ciclo de vida como la evolucin del producto de software, se infiere que dentro de cada una de las etapas del ciclo de vida se implementen procesos de desarrollo.
Proceso
Ciclos de vida
Necesidades
Especificacin de Requisitos
Diseo
Codigo
Sistema Software
Obtener Requisitos
Disear Sistema
Codificar
Probar
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
35
De la definicin de proceso se infiere que cada proceso genera productos, tal como se muestra a continuacin:
1.3.3.
CIBERTEC
CARRERAS PROFESIONALES
36
CICLO DE VIDA: :
Nace
Muere
INVOLUCRADOS (STAKEHOLDERS)
Adquirientes,
proveedores,
usuarios, ...
DETALLES: :
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
37
1.4.1.
Se trata de primero implementar algo de cdigo y luego pensar acerca de requisitos, diseo, validacin, y mantenimiento. Este modelo tiene tres problemas principales: Despus de un nmero de correcciones, el cdigo puede tener una muy mala estructura, hace que los arreglos sean muy costosos. Frecuentemente, an el software bien diseado, no se ajusta a las necesidades del usuario, por lo que es rechazado o su reconstruccin es muy cara. El cdigo es difcil de reparar por su pobre preparacin para probar y modificar.
1.4.2.
Modelo en Cascada
El primer modelo de desarrollo de software que se public se deriv de otros procesos de ingeniera. ste toma las actividades fundamentales del proceso de especificacin, desarrollo, validacin y evolucin y las representa como fases separadas del proceso.
CIBERTEC
CARRERAS PROFESIONALES
38
El modelo en cascada consta de las siguientes fases: 1. Definicin de los requisitos: Los servicios, restricciones y objetivos son establecidos con los usuarios del sistema. Se busca hacer esta definicin en detalle. 2. Diseo de software: Se particiona el sistema en sistemas de software o hardware. Se establece la arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los componentes del sistema. 3. Implementacin y pruebas unitarias: Construccin de los mdulos y unidades de software. Se realizan pruebas de cada unidad. 4. Integracin y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se entrega el conjunto probado al cliente. 5. Operacin y mantenimiento: Generalmente es la fase ms larga. El sistema es puesto en marcha y se realiza la correccin de errores descubiertos. Se realizan mejoras de implementacin. Se identifican nuevos requisitos. La interaccin entre fases puede observarse en la Figura 4.1. Cada fase tiene como resultado documentos que deben ser aprobados por el usuario. Una fase no comienza hasta que termine la fase anterior y generalmente se incluye la correccin de los problemas encontrados en fases previas.
En la prctica, este modelo no es lineal, e involucra varias iteraciones e interaccin entre las distintas fases de desarrollo. Algunos problemas que se observan en el modelo de cascada son: Las iteraciones son costosas e implican rehacer trabajo debido a la produccin y aprobacin de documentos. Aunque son pocas iteraciones, es normal congelar parte del desarrollo y continuar con las siguientes fases.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
39
Los problemas se dejan para su posterior resolucin, lo que lleva a que estos sean ignorados o corregidos de una forma poco elegante. Existe una alta probabilidad de que el software no cumpla con los requisitos del usuario por el largo tiempo de entrega del producto. Es inflexible a la hora de evolucionar para incorporar nuevos requisitos. Es difcil responder a cambios en los requisitos.
Este modelo slo debe usarse si se entienden a plenitud los requisitos. An se utiliza como parte de proyectos grandes.
1.4.3.
Desarrollo Evolutivo
La idea detrs de este modelo es el desarrollo de una implantacin del sistema inicial, exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el sistema adecuado. En la Figura 4.2 se observa cmo las actividades concurrentes: especificacin, desarrollo y validacin, se realizan durante el desarrollo de las versiones hasta llegar al producto final. Una ventaja de este modelo es que se obtiene una rpida retroalimentacin del usuario, ya que las actividades de especificacin, desarrollo y pruebas se ejecutan en cada iteracin.
Existen dos tipos de desarrollo evolutivo: Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene ms claras. El sistema evoluciona conforme se aaden nuevas caractersticas propuestas por el usuario.
CIBERTEC
CARRERAS PROFESIONALES
40
Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no estn claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos. Entre los puntos favorables de este modelo estn: La especificacin puede desarrollarse de forma creciente. Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad del software. Es ms efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente.
Desde una perspectiva de ingeniera y administracin se identifican los siguientes problemas: Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar rpido, no es efectivo producir documentos que reflejen cada versin del sistema. Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura del software haciendo costoso el mantenimiento. Se requieren tcnicas y herramientas: Para el rpido desarrollo se necesitan herramientas que pueden ser incompatibles con otras o que poca gente sabe utilizar.
Este modelo es efectivo en proyectos pequeos (menos de 100.000 lneas de cdigo) o medianos (hasta 500.000 lneas de cdigo) con poco tiempo para su desarrollo y sin generar documentacin para cada versin. Para proyectos largos es mejor combinar lo mejor del modelo de cascada y evolutivo: se puede hacer un prototipo global del sistema y posteriormente reimplementarlo con un acercamiento ms estructurado. Los subsistemas con requisitos bien definidos y estables se pueden programar utilizando cascada y la interfaz de usuario se puede especificar utilizando un enfoque exploratorio.
1.4.4.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
41
La Figura 4.3 ilustra un paradigma ideal de programacin automtica. Se distinguen dos fases globales: especificacin (incluyendo validacin) y transformacin. Las caractersticas principales de este paradigma son: La especificacin es formal y ejecutable constituye el primer prototipo del sistema). La especificacin es validada mediante prototipado. Posteriormente, a travs de transformaciones formales especificacin se convierte en la implementacin del sistema. la
En el ltimo paso de transformacin se obtiene una implementacin en un lenguaje de programacin determinado. El mantenimiento se realiza sobre la especificacin (no sobre el cdigo fuente), la documentacin es generada automticamente y el mantenimiento es realizado por repeticin del proceso (no mediante parches sobre la implementacin).
Observaciones sobre el desarrollo formal de sistemas: Permite demostrar la correccin del sistema durante el proceso de transformacin. As, las pruebas que verifican la correspondencia con la especificacin no son necesarias. Es atractivo sobre todo para sistemas donde hay requisitos de seguridad y confiabilidad importantes. Requiere desarrolladores especializados y experimentados en este proceso para llevarse a cabo.
1.4.5.
CIBERTEC
CARRERAS PROFESIONALES
42
A continuacin se describe cada fase: 1. Anlisis de componentes: Se determina qu componentes pueden ser utilizados para el sistema en cuestin. Casi siempre hay que hacer ajustes para adecuarlos. 2. Modificacin de requisitos: Se adaptan (en lo posible) los requisitos para concordar con los componentes de la etapa anterior. Si no se puede realizar modificaciones en los requisitos, hay que seguir buscando componentes ms adecuados (fase 1). 3. Diseo del sistema con reutilizacin: Se disea o reutiliza el marco de trabajo para el sistema. Se debe tener en cuenta los componentes localizados en la fase 2 para disear o determinar este marco. 4. Desarrollo e integracin: El software que no puede comprarse, se desarrolla. Se integran los componentes y subsistemas. La integracin es parte del desarrollo en lugar de una actividad separada. Las ventajas de este modelo son: Disminuye el costo y esfuerzo de desarrollo. Reduce el tiempo de entrega. Disminuye los riesgos durante el desarrollo.
Desventajas de este modelo: Los compromisos en los requisitos son inevitables, por lo cual puede que el software no cumpla las expectativas del cliente. Las actualizaciones de los componentes adquiridos no estn en manos de los desarrolladores del sistema.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
43
1.4.6.
Procesos Iterativos
A continuacin se expondrn dos enfoques hbridos, especialmente diseados para el soporte de las iteraciones: Desarrollo Incremental. Desarrollo en Espiral. Desarrollo Incremental Mills sugiri el enfoque incremental de desarrollo como una forma de reducir la repeticin del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema (ver Figura 4.5). Es una combinacin del Modelo de Cascada y Modelo Evolutivo. Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad para retrasar las decisiones hasta tener experiencia en el sistema. Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o evolutivo, dependiendo del conocimiento que se tenga sobre los requisitos a implementar. Si se tiene un buen conocimiento, se puede optar por cascada, si es dudoso, evolutivo.
1.4.6.1.
Entre las ventajas del modelo incremental se encuentran: Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento. Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema. Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento. Las partes ms importantes del sistema son entregadas primero, por lo cual se realizan ms pruebas en estos mdulos y se disminuye el riesgo de fallos.
CIBERTEC
CARRERAS PROFESIONALES
44
Algunas de las desventajas identificadas para este modelo son: Cada incremento debe ser pequeo para limitar el riesgo (menos de 20.000 lneas). Cada incremento debe aumentar la funcionalidad. Es difcil establecer las correspondencias requisitos contra los incrementos. de los
Es difcil detectar las unidades o servicios genricos para todo el sistema. 1.4.6.2. Desarrollo en Espiral El modelo de desarrollo en espiral (ver Figura 4.6) es actualmente uno de los ms conocidos y fue propuesto por Boehm. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra. Cada ciclo de desarrollo se divide en cuatro fases: 1. Definicin de objetivos: Se definen los objetivos. Se definen las restricciones del proceso y del producto. Se realiza un diseo detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas dependiendo de estos. 2. Evaluacin y reduccin de riesgos: Se realiza un anlisis detallado de cada riesgo identificado. Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los riesgos. 3. Desarrollo y validacin: Se escoge el modelo de desarrollo despus de la evaluacin del riesgo. El modelo que se utilizar (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado para esa fase.
4. Planificacin: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto. Este modelo a diferencia de los otros toma en consideracin explcitamente el riesgo, esta es una actividad importante en la administracin del proyecto. El ciclo de vida inicia con la definicin de los objetivos. De acuerdo a las restricciones se determinan distintas alternativas. Se identifican los riesgos al sopesar los objetivos contra las alternativas. Se evalan los riesgos con actividades como anlisis detallado, simulacin, prototipos, etc. Se desarrolla un poco el sistema. Se planifica la siguiente fase.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
45
1.4.7.
CIBERTEC
CARRERAS PROFESIONALES
46
Funciona con requisitos y Modelo de Proceso arquitectura no predefinidos Codificar y Corregir Cascada Evolutivo exploratorio Evolutivo prototipado Desarrollo formal de sistemas Desarrollo orientado a la reutilizacin Incremental Espiral Bajo Bajo Medio o Alto Alto Bajo Medio
Produce software altamente fiable Bajo Alto Alto Medio Alto Bajo a Alto
Gestin de riesgos Bajo Bajo Bajo Medio Bajo a Medio Bajo a Medio
Visin del Permite progreso por el correcciones Cliente y el Jefe sobre la marcha de Proyecto Alto Bajo Bajo Alto Bajo Alto Medio Bajo Bajo Alto Bajo Alto
Bajo Alto
Alto Alto
Medio Alto
Bajo Medio
Bajo Medio
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
47
En la Figura 5.1 se puede apreciar que cuando se aplica la tcnica dinmica, normalmente se usan pruebas; y cuando se aplica tcnica esttica se utilizan revisiones.
1.5.1.
Verificacin
Segn la ISO-IEC 12207, la Verificacin es el proceso para determinar si los productos software de una actividad cumplen con los requerimientos o condiciones que tienen impuestas por las actividades precedentes. La verificacin permite comprobar que el artefacto producido en un proceso corresponde con el que se utiliz a la entrada del proceso. La verificacin permite responder la pregunta: Estamos construyendo el producto en forma correcta? La verificacin se orienta al proceso.
CIBERTEC
CARRERAS PROFESIONALES
48
1.5.2.
Validacin
Segn la ISO-IEC 12207, la Validacin es el proceso para determinar si los requerimientos y el sistema o producto software, tal como se ha construido, cumple con su uso especfico previsto. La validacin se puede llevar a cabo en etapas tempranas. La validacin permite comprobar si el artefacto producido es lo que el usuario necesita. La validacin permite responder la pregunta: Estamos construyendo el producto correcto? La validacin se orienta al producto.
Las actividades de verificacin y validacin deben desarrollarse a lo largo de todo el ciclo de vida de software (ver Figura 5.2).
1.5.3.
1.5.4.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
49
1.5.5.
CIBERTEC
CARRERAS PROFESIONALES
50
Actividades
Los alumnos debern presentar los documentos de Reportes de Especificacin de Software del proyecto integrado, manual de usuario y Reporte de Diseo de Software utilizando los formatos adjuntos. Los alumnos debern elaborar un plan de verificacin y de validacin de los entregables que se desarrollarn como parte del proyecto integrado de quinto ciclo. Los alumnos debern elaborar las listas de verificacin del RES las que aplicarn en juego de roles como parte del ciclo de proyecto integrado. Los alumnos harn el seguimiento de levantamiento de las observaciones en una segunda revisin de pares del RES.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
51
Formatos
1. RES Reporte de Especificacin de Software
[Este documento es la plantilla base para elaborar el documento Reporte de Especificacin de Software. Los textos que aparecen entre parntesis rectos son explicaciones de que debe contener cada seccin. Dichos textos se deben seleccionar y sustituir por el contenido que corresponda. En caso que alguna de las secciones del presente documento no aplique a su proyecto pueden usarse las frases No hay cambios, No hay impacto en esta seccin, La solucin que se est implementando no tiene impacto en esta seccin, No aplican para el proyecto (No borrar secciones del documento)]
CIBERTEC
CARRERAS PROFESIONALES
52
HISTORIAL DE REVISIONES
Versin
Autor
Descripcin
Fecha de Elaboracin
Fecha de Revisin
<x.y.z>
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
53
Contenido
1. 2. 3.
3.1. 3.2. 3.3. 3.4.
4.
4.1. LISTA DE CASOS DE USO DE NEGOCIO.............................................................................. 55 4.1.1. LISTA DE ACTORES DEL NEGOCIO ................................................................................... 55 4.1.2. DIAGRAMA GENERAL DE CASO DEL NEGOCIO ................................................................ 55 4.1.3. ESPECIFICACIN DE LOS CASOS DE USO DEL NEGOCIO ............................................... 55 CUN01 NOMBRE DEL CASO DE USO DEL NEGOCIO ...................................................................... 55 4.2. REALIZACIN DE LOS CASOS DE USO DE NEGOCIO .......................................................... 56 4.3. LISTA DE TRABAJADORES DE NEGOCIO............................................................................... 56 4.4. REGLAS DE NEGOCIO ............................................................................................................ 56
5. 6. 7.
7.1. 7.2. 7.3. 7.4. 7.5. 7.6. 7.7. 7.8.
Requisitos Funcionales .................................................................. 57 Requisitos No Funcionales............................................................ 57 Modelo de Casos de Uso del Sistema........................................ 60
LISTA DE ACTORES DE SISTEMA .......................................................................................... 60 DIAGRAMA DE ACTORES DEL SISTEMA ................................................................................ 61 ARQUITECTURA DEL SISTEMA DIAGRAMA DE PAQUETES ............................................... 61 LISTA DE CASOS DE USO DEL SISTEMA POR PAQUETE...................................................... 61 DIAGRAMA DE CASOS DE USO POR PAQUETE ..................................................................... 61 PRIORIZACIN DE LOS CASOS DE USO DEL SISTEMA ....................................................... 61 MATRIZ DE MODELO DE NEGOCIO Y MODELO DE SISTEMA .............................................. 62 ESPECIFICACIN DE LOS CASOS DE USO DEL SISTEMA .................................................... 62
CUS01 Nombre del caso de Uso ..................................................................................................... 63
8. 9. 10. 11.
Flujo General de Navegacin ....................................................... 64 Esquema de Seguridad .................................................................. 64 Modelo de Anlisis ........................................................................ 65 Modelo Conceptual ....................................................................... 66
CIBERTEC
CARRERAS PROFESIONALES
54
1.
Antecedentes
[Describa la situacin actual y las necesidades o problemas que se pretende atender. Recuerde que debe tomar como informacin base lo registrado en el Reporte de Solicitud de Requerimiento (RSRQ).] Nota: Para el caso de los cursos de quinto y sexto ciclo se puede tomar como referencia tambin el documento de planificacin del proyecto (PP)
2.
Objetivos [Referidos a los objetivos del negocio alineados al producto software. Es la explicacin resumida de los resultados que el negocio quiere lograr con el sistema, estos pueden ser la solucin de alguno o varios problemas, la generacin de nuevas oportunidades de negocio, alguna mejora que los usuarios o clientes necesitan o mejorar la informacin para la toma de decisiones directivas o ejecutivas. Recuerde que puede tomar como informacin base lo registrado en el Reporte de solicitud de requerimiento (SRQ).]
Nota: Para el caso de los cursos de quinto y sexto ciclo se puede tomar como referencia tambin el documento de planificacin de proyecto (PP).]
3.
Alcance
3.1. Dentro del Alcance [En esta seccin deber incluir el alcance funcional del producto software, dicho alcance se encuentra tambin definido en el documento de Planificacin de Proyecto (PP). Es posible detallar el alcance siempre y cuando no vare en cuanto al original definido en el PP. Nota: Para los cursos de ADSI y ADSII se define despus de haber sido obtenida la Matriz de Actividades Vs. Requisitos.]
3.2.
Fuera del Alcance [En esta seccin deber incluir lo que no es parte del alcance funcional del producto software. Se puede tomar como referencia lo indicado en el documento de PP. Es posible detallar lo que queda fuera del alcance siempre y cuando no vare en cuanto al original definido en el PP. Nota: Para los cursos de ADSI y ADSII se define despus de haber sido obtenida la Matriz de Actividades Vs. Requisitos.]
3.3.
Restricciones [En esta seccin deber incluir las restricciones de la solucin propuesta relacionados al software, hardware y a la funcionalidad as como lo referido a los lmites que impone la empresa contratante en el desarrollo del producto software.] Nota: Para el caso de los cursos de quinto y sexto ciclo puede tomar como referencia la seccin de restricciones del documento de planificacin de proyecto (PP).
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
55
3.4.
Supuestos [En esta seccin deber incluir los principales supuestos relacionados con la implementacin del sistema y lo referido a lo que la empresa contratante posee a nivel de tecnologas de informacin.] Nota: Para el caso de los cursos de quinto y sexto ciclo puede tomar como referencia la seccin de supuestos del documento de planificacin de proyecto (PP).
4.
Procesos de Negocio
4.1. Lista de Casos de Uso de Negocio [En esta seccin deber listar los casos de uso de negocio que se obtuvieron a partir de los procesos de negocio identificados dentro del mbito de la solucin y a los cuales se les dar el soporte con el producto software. Cada Caso de Uso de Negocio deber ser identificado con un cdigo nico y correlativo. Ejemplo CUN01. De ser necesario deber incorporar un diagrama de casos de uso de negocio.]
Caso de uso del negocio CUN01 [Nombre del CUN01] CUN02 [Nombre del CUN02]
Descripcin
[Descripcin del flujo de trabajo del CUN01.] [Descripcin del flujo de trabajo del CUN02.]
4.1.1. Lista de Actores del Negocio [En esta seccin deber listar a los actores de negocio incluyendo una descripcin por cada uno.]
Descripcin
4.1.2. Diagrama General de Caso del Negocio [En esta seccin deber graficar el Diagrama general de Casos de uso del Negocio.] 4.1.3. Especificacin de los Casos de Uso del Negocio [Por cada caso de uso de negocio deber indicar el flujo de trabajo del Caso de Uso del Negocio. Deber usar la plantilla que a continuacin se detalla: CUN01 Nombre del Caso de Uso del Negocio 1. Breve Descripcin
CIBERTEC
CARRERAS PROFESIONALES
56
3.
Descripcin
4.4.
Reglas de Negocio [En esta seccin deber identificar las reglas que regulan la estructura del negocio y cmo ellos operan afectando el funcionamiento de los procesos de negocio. Dichas reglas de negocio son las que se considerarn para el diseo del sistema. Cada Regla de Negocio deber ser identificada con un cdigo nico y correlativo. Ejemplo: RN01. Para identificar las reglas de negocio puede considerar la siguiente clasificacin: Reglas de Estructura: Ejemplo (Todo pedido debe ser realizado por un cliente, y que el mismo debe estar dado de alta. Adems una vez que el cliente haya hecho algn pedido, se deber garantizar que no es posible eliminarlo, al menos que previamente se eliminen todos sus pedidos) Reglas de Derivacin: Ejemplo (El total de un pedido se puede calcular a partir de distintas lneas que lo componen, mientras que el total de cada lnea se puede calcular a partir del nmero de unidades vendidas y el precio por unidad) Reglas de Interfaz o de Modelo de Datos: Ejemplo (No hay precio de artculos negativos, el sexo de una persona slo puede ser masculino o
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
57
femenino, una fecha tiene que ser siempre una fecha vlida - no existe 30 de febrero) Reglas de Operacin o Reglas de Flujo: Ejemplo (Un cliente puede hacer una peticin de anlisis al laboratorio que anota un encargado: hecho esto, se genera un parte para uno o ms analistas, estos realizan las mediciones correspondientes y devuelven los partes con la informacin pertinente, a partir de la cual se genera un informe de anlisis, que ser un anlisis vlido solo cuando sea firmado por los responsables de garantizar su correccin)
Cdigo
RN-001 RN-002
RN-00n
5.
Requisitos Funcionales
[De acuerdo a lo solicitado explcitamente por el rea usuaria, listar todos los requisitos funcionales del producto software. Considere que los requisitos funcionales que liste debern ser asociados posteriormente a los casos de uso (funciones de software). Cada Requisito Funcional deber ser identificado con un cdigo nico y correlativo. Ejemplo: RF01. Nota: Esta lista proviene de la Matriz de Actividades Vs. Requisitos. Y de la Matriz de Requisitos Funcionales Adicionales.]
Descripcin [Descripcin detallada del requisito funcional.] [Descripcin detallada del requisito funcional 1.] [Descripcin detallada del requisito funcional 2.] .... [Descripcin detallada del requisito funcional n.]
6.
Requisitos No Funcionales
[Listar los requisitos no funcionales los mismos que debern ser considerados para el modelo de calidad de producto. Cada Requisito No Funcional deber ser identificado con un cdigo nico y correlativo. Ejemplo: RNF01.]
CIBERTEC
CARRERAS PROFESIONALES
58
Tipo de Requisito
Restricciones Diseo del
Cdigo
Descripcin funcional.]
Implementacin
[Definir cualquier tipo de restriccin de diseo, tales como: proceso de desarrollo de software, sistemas operativos, RNF-001 lenguajes de programacin, administrador de base de datos, conexin a la BD, generador de reportes, manejo de informacin, etc.]
RNF-002
Componentes Adquirir
[Identificar los componentes que se deben adquirir o tener en cuenta, para llevar acabo RNF-003 el desarrollo y ejecucin del sistema. Ejemplo: lenguajes de programacin, servidores, estaciones de trabajo, etc.]
RNF-004
Interfaces de Usuario [Describir las interfaces de usuario que sern implementados en el software. Esto incluye RNF-005 por ejemplo: formatos de la pantalla, pgina o esquemas de las ventanas, reportes, mens, etc.]
RNF-006
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
59
Tipo de Requisito
Interfaces Hardware de
Cdigo
Descripcin
Implementacin
[Definir cualquier interfase de hardware RNF-007 que ser soportado por el software, incluyendo estructura lgica, direcciones fsicas, etc.]
RNF-008
Interfaces Software
[Especificar el uso de otros productos software RNF-009 requeridos e interfaces con otros sistemas de la aplicacin.]
RNF-010
Interfaces Comunicaciones
[Describir las interfaces de comunicacin para otros sistemas RNF-011 dispositivos, tales como: redes de rea local, dispositivos de serie remota.]
RNF-012
[Descripcin detallada del requisito no funcional 12.] [Descripcin detallada del requisito no funcional 13.] [Descripcin detallada del requisito no funcional 14.] [Descripcin detallada del requisito no funcional 15.]
Requerimientos Licenciamiento
de
[Identificar las licencias RNF-013 que se requieran para el desarrollo del sistema.]
RNF-014
CIBERTEC
CARRERAS PROFESIONALES
60
Tipo de Requisito
Cdigo
RNF-016
Descripcin
[Descripcin detallada del requisito no funcional 16.] [Descripcin detallada del requisito no funcional 17.] [Descripcin detallada del requisito no funcional 18.]
Implementacin
RNF-018
Requisitos del Sistema [Especificar los requerimientos de plataforma tecnolgica RNF-019 necesarios para el diseo y el desarrollo del sistema.] [Descripcin detallada del requisito no funcional 19.]
RNF-020
Requisitos Desempeo
[Listar y especificar los requisitos de desempeo con los que debe trabajar RNF-021 el sistema. Ejemplo: Tiempo de respuesta en alguna consulta del sistema.]
RNF-022
7.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
61
Descripcin
7.2.
7.3.
Arquitectura del Sistema Diagrama de Paquetes [Incorpore el diagrama de paquetes que representa la arquitectura modular del sistema. Cada Paquete deber ser identificado con un cdigo nico y correlativo. Ejemplo: P01.]
7.4.
Lista de Casos de Uso del Sistema por Paquete [En esta seccin deber listar todos los casos de uso del sistema que se han identificado. Para hacerlo deber tomar como referencia la organizacin del sistema de acuerdo al diagrama de paquetes del punto 7.3.]
Paquete: P01 Nombre del Paquete Caso de uso del sistema Descripcin
CUS01 [Nombre del Caso [Descripcin del caso de uso. En la de Uso] descripcin deber indicar las acciones que permitir el caso de uso.] CUS02 [Nombre del Caso [Descripcin del caso de uso. En la de Uso] descripcin deber indicar las acciones que permitir el caso de uso.] 7.5. Diagrama de Casos de Uso por Paquete [Incorpore el diagrama de casos del uso del sistema de acuerdo a los paquetes y la lista trabajada en el punto 7.4.]
0,3
0,2
RIESGO
0,1
IMPACTO RNF
IMPORTANCIA COMPLEJIDAD
TOTAL
CIBERTEC
CARRERAS PROFESIONALES
62
Ciclo de desarrollo
Ncleo central o Ciclo 0 Ciclo 1
7.7.
Matriz de Modelo de Negocio y Modelo de Sistema [En esta seccin deber incluir una matriz en la que se pueda evidenciar la trazabilidad entre los procesos de negocio y las funciones del producto software.]
Actividad a automatizar
Requerimiento funcional
RF001 Requisito Funcional
Nombre N Nombre
Actividad a ser automatizada Actividad a ser automatizada Actividad a ser automatizada
Responsable N Nombre
Trabajador de Negocio Trabajador de Negocio Trabajador de Negocio
7.8.
Caso de uso:
Actor(es): Propsito: Caso de asociado: Resumen:
uso Indicar si existe algn caso de uso asociado. De no haber indicar No Aplica. Describir brevemente el caso de uso. Para ello deber indicar como empieza el caso de uso, que actividades desarrolla y como termina. Indicar la clasificacin del caso de uso Indicar el(los) asociados. cdigos de requisitos funcionales
Clasificacin Requisitos
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
63
Indicar el propsito
3. Breve Descripcin
Indicar el flujo bsico de eventos Es posible hacer referencia a las reglas de negocio.
5. Sub Flujos
Descripcin de la precondicin
8. Pos condiciones
CIBERTEC
CARRERAS PROFESIONALES
64
8.
Ver Agenda
Encargar Accin
Agenda
Ver Acciones
Ver Alarmas
Accin Propia
APLICACION
Clientes
Consultar Parmetros
Tablas
Resultados
Acciones Enviadas
9.
Esquema de Seguridad
[En esta se documenta los esquemas de seguridad en base a perfiles y su acceso a su informacin. Para ello se utiliza una matriz de perfiles de usuario y accesos por Aplicativo/Mdulo/Funcin.]
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
65
Funciones por Mdulo Mdulo A Consulta de informacin de empresas Consulta de operadores autorizados Modificacin de operadores autorizados Mdulo B Modificacin de cuentas afiliadas Modificacin de combinaciones autorizadas
... X
Perfil N x
x x
x x
X X
x x
x x
x x
X X
x x
CIBERTEC
CARRERAS PROFESIONALES
66
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
67
2.
MU Manual de Usuario
[Este documento es la plantilla base para elaborar el Manual de Usuario. Los textos que aparecen entre parntesis rectos son explicaciones de que debe contener cada seccin. Dichos textos se deben seleccionar y sustituir por el contenido que corresponda. En caso que alguna de las secciones del presente documento no aplique al sistema desarrollado pueden usarse las frases No hay cambios, No hay impacto en esta seccin, La solucin que se est implementando no tiene impacto en esta seccin, No aplican para el sistema (No borrar secciones del documento)]
CIBERTEC
CARRERAS PROFESIONALES
68
HISTORIAL DE REVISIONES
Versin
Autor
Descripcin
Fecha de Elaboracin
Fecha de Revisin
<x.y.z>
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
69
Contenido
1. 2. 3. 4. 5.
5.1.
Objetivo del Documento ................................................................ 70 Descripcin General del Sistema................................................ 70 Alcance del Sistema ........................................................................ 70 Ingreso al Sistema .......................................................................... 70 Funciones del Sistema ................................................................... 72
NOMBRE DE LA OPCIN ........................................................................................................ 72
CIBERTEC
CARRERAS PROFESIONALES
70
13. Descripcin General del Sistema [Resuma de manera general las funciones que el sistema implementa para dar soporte a las necesidades y requerimientos de los usuarios finales]
El sistema permite la generacin del Registro de Incidentes para la atencin correctiva solicitada por los usuarios va telefnica o personalmente. Asimismo, se podr realizar un control de las atenciones realizadas, de las horas hombres invertidos y los materiales e insumos utilizados. Adems, este sistema permitir automatizar los paquetes de servicios con lo que se mejora el control de activos. Siendo una de las necesidades bsicas de la empresa el conocer la localizacin de las mquinas atendidas, as como las mquinas con las que podra contar el cliente registrado. En este sistema se implementar las opciones necesarias para el registro de los datos mencionados
14. Alcance del Sistema [Describa las funciones que el sistema implementa, indicando el nombre de la funcin y detallndola a nivel de usuario]
Funcionalidad detallada Descripcin de la funcin implementada indicando las actividades que permite realizar Permite registrar la solicitud de reparacin de maquinaria con los datos del cliente y las mquinas a reparar
Registrar incidentes
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
71
Ingresar Usuario
Ingresar contrasea
Las siguientes pantallas, mostrarn una barra de men que permite el acceso a las funcionalidades que se mencionan a continuacin:
Men Principal Registrar Incidentes Generar O/T de Inspeccin Generar O/T Registrar Inf.de Liquidacin Aprobar Prefactura Generar Factura. Mantener de Clientes Mantener Equipo Mantener Paquetes
CIBERTEC
CARRERAS PROFESIONALES
72
REGISTRAR INCIDENTES Al ingresar al sistema, el usuario seleccionar la opcin de men Registrar Incidentes que lo llevar a la opcin Nuevo Registro de Incidentes.
En esta pantalla el sistema cargar los datos del Registrador (usuario logueado) as como la fecha del da. Aqu deber seguir los siguientes pasos:
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
73
Se mostrar la opcin Buscar Cliente donde deber: 1.Ingresar el nombre del cliente
2. Seleccione
El sistema listar los clientes que cumplan con el filtro ingresado. Luego el usuario deber escoger el Cliente que desee seleccionando el cono seleccionar ( ).
CIBERTEC
CARRERAS PROFESIONALES
74
Seleccione haciendo
El sistema regresar a la pantalla de Registro de Incidentes donde se cargar en la memoria los datos del cliente seleccionado. Luego, el usuario deber:
1.Seleccionar sucursal
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
75
1.Seleccione la maquinaria.
3.Hacer clic en El sistema cargar en la grilla los datos de la avera. Para ingresar nuevas mquinas deber repetir los mismos pasos y para eliminarla se deber:
CIBERTEC
CARRERAS PROFESIONALES
76
2.Hacer clic en la opcin Finalmente seleccionar la opcin GUARDAR y con ello se mostrar el mensaje de confirmacin.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
77
DERECHOS DE USO La presente documentacin es propiedad de Maskiner S.A. y tiene carcter de confidencial y no podr ser objeto de reproduccin total o parcial, tratamiento informtico ni transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, registro o cualquiera otro. Asimismo tampoco podr ser objeto de prstamo, alquiler o cualquier forma de cesin de uso sin el permiso previo y escrito de Maskiner S.A., titular del copyright. El incumplimiento de las limitaciones sealadas por cualquier persona que tenga acceso a la documentacin ser perseguida conforme a ley.
Trminos de Confidencialidad:
Este manual est destinado exclusivamente para Maskiner S.A. Su contenido no debe ser revelado, duplicado, usado, o publicado total o parcialmente, fuera de su organizacin, o a cualquier otra empresa, sin una autorizacin expresa escrita del proveedor. As mismo, el proveedor se compromete a no divulgar total o parcialmente el contenido de este documento referido a necesidades o requerimientos especficos para Maskiner S.A., as como ningn tema de negocios relacionado y que fuere mencionado en reuniones de trabajo previas.
CIBERTEC
CARRERAS PROFESIONALES
78
3.
[Este documento es la plantilla base para elaborar el documento Reporte de Diseo de Software. Los textos que aparecen entre parntesis rectos son explicaciones de que debe contener cada seccin. Dichos textos se deben seleccionar y sustituir por el contenido que corresponda. En caso que alguna de las secciones del presente documento no aplique a su proyecto pueden usarse las frases No hay cambios, No hay impacto en esta seccin, La solucin que se est implementando no tiene impacto en esta seccin, No aplican para el proyecto (No borrar secciones del documento)]
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
79
HISTORIAL DE REVISIONES
Versin
Autor
Descripcin
Fecha de Elaboracin
Fecha de Revisin
CIBERTEC
CARRERAS PROFESIONALES
80
Contenido
1.
1.1. 1.2. 1.3.
Introduccin ...................................................................................... 81
PROPSITO ............................................................................................................................ 81 ALCANCE ................................................................................................................................ 81 DEFINICIONES, ACRNIMOS Y ABREVIATURAS .................................................................. 81
REFERENCIAS ......................................................................................................................... 82
2. 3. 4. 5.
5.1.
Vista General de la Arquitectura ................................................ 82 Metas y Restricciones de la Arquitectura ............................... 83 Vista de Casos de Uso .................................................................... 83 Vista Lgica ........................................................................................ 83
REALIZACIN DE CASOS DE USO MODELO DE ANLISIS .............................................. 84
5.1.1. 5.1.2.
5.2. 5.3. 5.4.
Cdigo del CUS Nombre del CUS .......................................... 84 Diagrama de Clases de Anlisis ............................................... 84
5.4.1.
5.4.1.1. 5.4.1.2. 5.4.1.3. 5.4.1.4. 5.4.1.5. 5.4.1.6.
5.4.2.
5.4.2.1. 5.4.2.2.
6. 7.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
81
1.
Introduccin
[Describa de manera breve el contenido del documento orientando descripcin hacia la utilidad que la misma busca. Recuerde que para elaboracin del documento debe considerar lo desarrollado en el Reporte Especificacin de Software (RES) y que es posible que en esta seccin pueda complementar la informacin del documento base RES.] la la de se
1.1.
Propsito
[En esta seccin se debe proporcionar una visin general de la arquitectura del sistema haciendo referencia a las diferentes vistas que implementarn los diferentes aspectos.]
1.2.
Alcance
[Indicar cul es el alcance del documento. Considere que en el RES se ha desarrollado la Vista de Sistema (funcional) y que para completar la visin total es necesario incluir la vista de arquitectura, vista lgica, vista de implementacin, vista de despliegue y vista de datos. A menudo es necesario incluir una representacin de la arquitectura con consideraciones de infraestructura tecnolgica, relacin con otros sistemas y una vista de procesos en donde se describe la descomposicin del sistema en procesos y los mtodos de comunicacin del sistema.]
1.3.
1.3.1. Definiciones
[Indique cada una de las definiciones que son relevantes para el entendimiento del presente documento. Cada definicin deber ir acompaada de una breve descripcin.]
Descripcin Trabajador encargado de procesar las rectificaciones de los ciudadanos que lo solicitan. Tambin coordina las entregas de hologramas.
1.3.2. Acrnimos
[Indique cada una de los acrnimos que son relevantes para el entendimiento del presente documento, para el entendimiento de la arquitectura propuesta y para el diseo detallado. Cada acrnimo deber ir acompaada de una breve descripcin.]
Acrnimo RUP
CIBERTEC
CARRERAS PROFESIONALES
82
1.3.3. Abreviaturas
[Indique cada una de las abreviaturas que son relevantes para el entendimiento del presente documento, para el entendimiento de la arquitectura propuesta y para el diseo detallado. Cada abreviatura deber ir acompaada de una breve descripcin.]
Acrnimo SIGA
1.4.
Referencias
[Mencione los documentos que sirven como entrada, o salida, y herramientas que se usarn para el desarrollo del presente documento.]
2.
A continuacin se muestra la Arquitectura del Sistema ABC, sta est dividida en tres capas: Capa de Presentacin Capa de Negocios Capa de Integracin As mismo la aplicacin por un criterio de funcionalidad se ha dividido en seis mdulos: Mdulo de Administracin del Negocio Mdulo de Empaquetamiento Mdulo de Mensajera Mdulo de Administracin de Datos Servicios Web X12 Componentes EDI
Web SGSS
Capa de Presentacin
Base de Datos 1
Base de Datos 2
Base de Datos N
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
83
que tendr el sistema, adems de brindar una visin general del sistema. En el grfico, se observa la distribucin en tres capas de la arquitectura, las cuales se describen a continuacin. Capa de presentacin En esta capa se encuentra la aplicacin Web dedicada a la administracin y configuracin DEL SISTEMA XYZ, la cual estar conformada por las pantallas de presentacin al usuario. Estas aplicaciones Web sern pginas ASP.NET. Capa de Lgica de Negocio Esta capa provee todo lo que es la lgica del negocio, es decir la funcionalidad del sistema, ya sean los procesos administrativos, y los procesos referidos a la elegibilidad, crdito hospitalario (cartas de garanta) y crdito ambulatorio (pedidos de reembolso). Adems, en esta capa se encuentran los servicios publicados, como los Web Services y los Servicios EDI sobre TCP/IP. Capa de acceso a datos Esta capa provee los servicios y conexiones a la base de datos requeridos por la capa de lgica de Negocio. Por otro lado, el manejador de base de datos utilizado para este sistema ser Microsoft SQL Server 2000.
3.
4.
5.
Vista Lgica
[La vista lgica est representada por los diagrama de clases del sistema donde se muestran sus relaciones estructurales y de herencia. La definicin de clase incluye definiciones para atributos y operaciones. El modelo de casos del punto 3 del presente documento uso aporta informacin para establecer las clases, objetos, atributos y operaciones.]
CIBERTEC
CARRERAS PROFESIONALES
84
5.1.
5.1.1. Cdigo del CUS Nombre del CUS Nombre del Escenario
[Identifica el escenario a ser realizado y una breve descripcin. Se recomienda identificar con un cdigo nico a cada escenario. Por ejemplo ESC01]
5.2.
Modelo Conceptual
[Esta seccin ilustra cmo a partir de las clases del tipo entidad se pueden identificar una primera propuesta de modelo de persistencia. Para ello se utiliza un diagrama clases por cada paquete que forma parte de la arquitectura del sistema. Se puede hacer uso de tarjetas CRC para documentar las responsabilidades y colaboraciones de cada clase de persistencia identificada.]
5.3.
Modelo Lgico
[El modelo lgico es el refinamiento del Modelo Conceptual. Aqu se reducen y/o aumentan clases y slo quedan aquellas que van a ser diseadas como tablas de la Base de Datos. El modelo lgico debe representarse con un diagrama de clases de acuerdo a la arquitectura propuesta. Tenga presente que para la transformacin del modelo conceptual al modelo lgico se debe tener en cuenta: Pasar las reglas de negocio Colocar las multiplicidades entre clases Identificar los atributos de Enlace o Clase de Enlace de las asociaciones de muchos a muchos NO INCLUIR los atributos identificadores de la clase (se agregarn en el modelo fsico) Incluir los atributos de las clases que se necesitan para satisfacer los requerimientos del sistema Documentar un registro de glosario de trminos
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
85
Verificar que las reglas de negocio se sigan cumpliendo. Se sugiere que por cada clase se tenga un diccionario que incluya el nombre, el tipo, la descripcin, atributos, tipo de dato, visibilidad y valor inicial] Nombre Tipo Descripcin Atributo Nombre atributo del Nombre de la Clase Tipo de Clase (Ejemplo Entidad) Descripcin de la clase identificando que representa Tipo de Dato Integer / String / Boolean Visibilidad Pblico Privado / Valor inicial
5.4.
Modelo de Diseo
[En esta seccin debe representar el refinamiento del modelo de anlisis considerando los requisitos no funcionales identificados en el RES.]
CIBERTEC
CARRERAS PROFESIONALES
86
<<layer>> Presentacion
<<layer>> Business
<<layer>> Integration
5.4.1.1.
Capa de Presentacin
[Identifique las clases de diseo de la capa de presentacin. Ordene dicha identificacin utilizando los paquetes al interior de las capas denominados subsistemas.]
5.4.1.2.
Capa de Negocio
[Identifique las clases de diseo de la capa de negocio. Ordene dicha identificacin utilizando los paquetes al interior de las capas denominados subsistemas.]
5.4.1.3.
Capa de Integracin
[Identifique las clases de diseo de la capa de integracin. Ordene dicha identificacin utilizando los paquetes al interior de las capas denominados subsistemas.]
5.4.1.4.
Capa de Datos
[Identifique las clases de diseo de la capa de datos. Ordene dicha identificacin utilizando los
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
87
5.4.1.5.
Capa de Entidad
[Identifique las clases de diseo de la capa de entidad. Ordene dicha identificacin utilizando los paquetes al interior de las capas denominados subsistemas.]
5.4.1.6.
5.4.2.1.
5.4.2.2.
CIBERTEC
CARRERAS PROFESIONALES
88
6.
Vista de Despliegue
[En esta seccin se describen unas o ms configuraciones fsicas de la red (hardware) que se usarn para el despliegue de los componentes de software que forman parte de la solucin. Para ello puede usar un Diagrama de Despliegue indicando como mnimo, para cada configuracin, en qu nodos fsicos (computadoras, CPU) se ejecuta el software y sus interconexiones (bus, LAN, punto a punto, y as sucesivamente). De ser posible se debe incluir un mapeo de los procesos de la vista de procesos sobre los nodos fsicos. Adems deber especificar los detalles tcnicos de cada nodo en la vista de despliegue.]
Sistema Operativo Windows 2000/XP/2003 Professsional Internet Explorer 6.0 o superior PC Cliente Interno PC Cliente Interno
Intranet Sistema Operativo Windows 2003 Server IIS (Internet Information Server) Net Framework 2.0
Sistema Operativo Windows 2003 Server COM+ (Component Services) Net Framewok 2.0
Servidor COM+
Servidor BD
Sistema Operativo Windows 2003 Server SQL Server 2000 Sistemas: Spring (Macro) Contabilidad MC Adelantos (Macro) Provisiones (Macro) Inmuebles Propios
Internet Web Service Interface Spring PagoActivo HOST Mainframe IBM ZSeries Comprobantes Contabilidad
7.
Vista de Datos [Se debe describir la perspectiva persistente del almacenaje de datos del sistema. Deber incluir el Modelo de Base de Datos Lgico y Fsico, as como el diccionario de datos.]
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
89
Resumen
El desarrollo de sistemas hoy en da ha tomado gran importancia en el mundo siendo sta cada vez ms creciente. Aunque esta importancia tienda a aumentar, no todo tiene una buena perspectiva, existen inconvenientes en el desarrollo de los sistemas: grandes retrasos en la programacin, inconsistencia en su funcionamiento, entre otros; pero lo ms importante es la falta de calidad, punto de gran inters e importancia para el logro de eficiencia y productividad de los sistemas. Es claro que si un sistema presenta errores al momento de ser utilizado, ese producto pierde confiabilidad a los ojos del usuario hasta el nivel que podra ser desechado como un producto defectuoso. Por esta razn los proyectos de sistemas que presentan fallas impiden que el sistema funcione como era de esperarse o que sea utilizado en su totalidad. Por ello, es necesario definir e impulsar lneas de accin tendientes a mejorar el sistema producido. Dentro de estas lneas de accin est la relacionada con el proceso mismo del desarrollo del sistema, y como necesidad primordial, la de realizar una investigacin que permita conocer de primera mano el estado en que se encuentra su proceso de desarrollo. Si desea saber ms acerca de estos temas, puede consultar las siguientes pginas. http://www.calidaddelsoftware.com Aqu encontrar diferentes temas relacionados con la mejora de procesos de desarrollo de software. http://alarcos.inf-cr.uclm.es/Competisoft/ Aqu encontrar diferentes temas relacionados con la mejora de procesos enfocadas a pequeas empresas.
CIBERTEC
CARRERAS PROFESIONALES
90
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
91
UNIDAD DE APRENDIZAJE
MTRICAS DE SOFTWARE
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al trmino de la unidad de aprendizaje, el alumno elabora un catlogo de mtricas de funcionalidad relacionadas con el producto software en desarrollo en el curso de Desarrollo de Aplicaciones Web I.
TEMARIO
2.1. Tema 6: Modelos de Calidad de Software 2.1.1. Introduccin 2.1.2. Perspectivas de Calidad 2.1.3. Calidad desde el Punto de Vista del Proceso 2.1.4. Calidad desde el Punto de Vista del Producto 2.1.5. Calidad desde el Punto de Vista de las Personas 2.2. Tema 7: Mtricas de Calidad de Producto Software 2.2.1. ISO/IEC 9126-1 Modelo de Calidad 2.2.2. ISO/IEC 9126-2 Mtricas Externas 2.2.3. ISO/IEC 9126-3 Mtricas Internas 2.2.4. Relacin Entre las Mtricas Internas y Externas 2.2.5. ISO/IEC 9126-4 Mtricas para Calidad en Uso 2.2.6. ISO/IEC 25000:2005 - SQuaRE 2.3. Tema 8: Evaluacin de Mtricas 2.3.1. Definiciones 2.3.2. Proceso de Evaluacin
CIBERTEC
CARRERAS PROFESIONALES
92
2.1.2.
Perspectivas de Calidad
Es necesario tener en cuenta cuales son las principales perspectivas cuando se habla de La Calidad. Como se puede observar en la siguiente figura, existen tres perspectivas bien diferenciadas y relacionadas entre s, que en el caso del software seran:
La calidad desde el punto de vista del producto: que tiene en cuenta las caractersticas internas y externas del producto software en s. La calidad desde el punto de vista de los procesos: que tiene en cuenta las tareas, actividades y procesos que se siguen para obtener el producto software. La calidad desde el punto de vista de las personas: evaluando la formacin, experiencia, etc. de las personas involucradas en los procesos para obtener el producto software.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
93
2.1.3.
Calidad desde el Punto de Vista del Proceso La calidad desde el punto de vista del proceso considera el hecho que el control de calidad no se realiza slo al sistema en s mismo, sino tambin se abarca todas las actividades de los procesos utilizados para desarrollar el producto software. En este sentido en cada una de las etapas del ciclo de vida de producto se llevarn actividades de control de calidad, garantizando se ha verificado y validado cada uno de los componentes de tal forma que se asegura la calidad del producto a partir del aseguramiento de la calidad del proceso. Es cierto que mientras ms se invierta en calidad del proceso mayores sern los costos pero tambin es cierto que mayores sern los beneficios obtenidos en la fase de mantenimiento del software. La calidad del software, por lo tanto, no se disea y planifica cuando ya se tiene el producto; muy por el contrario se planifica desde las primeras etapas del ciclo de vida del producto. Una de las formas de evaluar la calidad es ejecutando revisiones, las que permiten establecer un marco comn para la definicin de distintas etapas de revisin en el ciclo de vida del software este mecanismo no slo est pensado para las etapas tempranas del ciclo de vida, sino que tambin puede - y debe ser utilizado en etapas como la de prueba de software y mantenimiento. El mecanismo ms comn para su implementacin es la reunin de revisin, la cual deber regirse, para asegurar su xito, por una buena planificacin, control y, sobre todo, por la participacin dedicada de todos y cada uno de los involucrados. Para implementar los conceptos de calidad desde el punto de vista del proceso tambin existen diferentes Modelos y/o Estndares de Calidad que proporcionan un marco comn para orientar los esfuerzos de aseguramiento de calidad. Por ejemplo la norma ISO/IEC 15504, tambin conocida como SPICE (Software Process Improvement and Capability dEtermination), es una norma internacional para establecer y mejorar la capacidad y madurez de los procesos de las organizaciones, proporcionando los principios requeridos para realizar una
CIBERTEC
CARRERAS PROFESIONALES
94
evaluacin de la calidad de los procesos. Esta norma se puede utilizar junto con la ISO/IEC 12207 que establece un conjunto de buenas prcticas para guiar a las organizaciones en la mejora de sus procesos de desarrollo y mantenimiento de software. Dicha norma define 43 procesos que pueden aplicarse durante la adquisicin de un producto o servicio software y durante el suministro, desarrollo, operacin, mantenimiento y evolucin de productos software. La norma ISO/IEC 15504 permite adems realizar evaluaciones usando niveles de madurez. Los niveles de madurez son conjuntos predefinidos de procesos que ayudan a una organizacin a mejorar en el desarrollo software evolucionando por los distintos niveles. En esta norma, se han establecido 6 niveles que indican la madurez de la organizacin. Como se observa en la Figura No. 2.2., el nivel inferior (nivel 0) se corresponde con una organizacin inmadura, los siguientes niveles van haciendo crecer a la organizacin en su madurez, hasta el mximo nivel, el nivel 5.
La consecucin de los niveles de madurez es de forma escalonada, esto significa que para alcanzar un determinado nivel de madurez deben haberse alcanzado tambin los niveles inferiores. Cada nivel de madurez estar formado por un conjunto de procesos, estos procesos se definen en los esquemas de certificacin
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
95
Al utilizar los Modelos de Calidad de Producto, se lleva la calidad a algo concreto, algo que se puede definir, que se puede medir y, sobre todo, que se puede planificar. Tambin permiten identificar y comprender las relaciones que se establecen y existen entre las diferentes caractersticas de un producto de software. La calidad del producto de software abarca los siguientes aspectos:
Calidad Interna: que se puede medir a partir de las caractersticas intrnsecas del producto, por ejemplo el cdigo fuente. Calidad Externa: que se puede medir a partir del comportamiento del producto, por ejemplo durante la ejecucin de una prueba. Calidad en Uso: que se puede medir durante la utilizacin efectiva que hace del producto el usuario final.
Para lograr la calidad suficiente en estos tres aspectos es necesario conocer con suficiente detalle las necesidades reales y expectativas de los usuarios.
CIBERTEC
CARRERAS PROFESIONALES
96
2.1.5.
En la tabla 3 se muestra una lista resumida de algunos modelos y estndares de calidad. Nivel de Calidad Modelo de Calidad de SW CMMi TickIT Bootstrap Proceso Six Sigma Software Estndar de Calidad de SW ISO 9003 ISO 12207 ISO 15504 (SPICE) IEE/IEA 12207 ISO 20000 ITIL Cobit ISO 9126-1 ISO 25000 (SQUARE) IEEE Std. 1061-1998
Producto
Personas
Gilb GQM Mc Call Furps Boehm SATC Dromey C-QM Metodologa SQAE WebEQM Personal SW Process (PSP) Team SW Process (TSP)
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
97
Eficiencia Es rpido y minimalista en cuanto al uso de recursos? Mantenibilidad Es fcil de modificar y verificar? Portabilidad Es fcil de transferir de un ambiente a otro?
Tabla No. 4 Caractersticas de ISO 9126 y aspecto que atiende cada una
La ISO/IEC 9126 est formada por las siguientes partes: Parte 1 Modelo de Calidad Parte 2 Mtricas Externas Parte 3 Mtricas Internas Parte 4 Calidad en Uso
CIBERTEC
CARRERAS PROFESIONALES
98
Las caractersticas definidas son aplicables a todo tipo de software. Las caractersticas y subcaractersticas proveen una terminologa consistente respecto de la calidad del producto del software. Esta Norma permite especificar y evaluar la calidad del software desde distintas perspectivas, las cuales estn asociadas a la adquisicin, requerimientos, desarrollo, uso, evaluacin, soporte, mantenimiento, aseguramiento de la calidad, y auditoria del software. Puede ser usada por desarrolladores, evaluadores independientes y grupos de aseguramiento de la calidad responsable de especificar y evaluar la calidad del software. La evaluacin de los productos de software que satisfacen las necesidades de calidad del software es uno de los procesos del ciclo de vida de desarrollo del software. La calidad del producto de software puede ser evaluada por medio de la medicin de atributos internos, externos o a travs de la calidad en uso (Figura 2.3). El objetivo es que el producto tenga el efecto requerido en un contexto particular de uso. La calidad del proceso contribuye a mejorar la calidad del producto, y la calidad del producto contribuye a mejorar la calidad en uso. Evaluar y mejorar la calidad de un proceso contribuye a mejorar la calidad del producto; y esto contribuye a mejorar la calidad en uso. De manera similar, evaluar la calidad en uso puede mejorar la calidad del producto, y evaluar un producto puede mejorar un proceso.
Las necesidades de calidad del usuario contribuyen a especificar los requisitos de calidad externa, los cuales contribuyen a especificar los requisitos de calidad interna. La calidad interna indica la existencia de calidad externa y sta indica la existencia de calidad en uso (Figura No. 2.4).
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
99
CIBERTEC
CARRERAS PROFESIONALES
100
mtricas de ISO/IEC TR 9126-2 para definir requerimientos, evaluar productos de software, medir aspectos de calidad y otros propsitos. Los usuarios de ISO/IEC TR 9126-2 pueden seleccionar o modificar y aplicar mtricas y mediciones a partir de ISO/IEC TR 9126-2 o pueden definir mtricas especficas de la aplicacin para su dominio de aplicacin en particular. ISO/IEC TR 9126-2 es usada junto con ISO/IEC 9126-1. ISO/IEC TR 9126-2 contiene una explicacin de cmo aplicar las mtricas de calidad del software, un conjunto bsico de mtricas para cada Subcaracterstica y un ejemplo de cmo aplicar las mtricas durante el ciclo de vida del producto de software. ISO/IEC TR 9126-2 no asigna un rango de valores para estas mtricas en niveles de porcentajes o grados de conformidad, debido a que estos valores son definidos en cada producto de software o en una parte del producto de software, dependiendo de factores tales como la categora del software, nivel de integridad y necesidades del usuario. Algunos atributos pueden tener un rango de valores deseable, el cual no depende de las necesidades especficas del usuario pero si depende de factores genricos; por ejemplo factores humanos.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
101
durante el ciclo de vida del producto de software. ISO/IEC TR 9126-3 no asigna un rango de valores para estas mtricas en niveles de porcentajes o grados de conformidad, debido a que estos valores son definidos en cada producto de software o en una parte del producto de software, dependiendo de factores tales como la categora del software, nivel de integridad y necesidades del usuario. Algunos atributos pueden tener un rango de valores deseable, el cual no depende de las necesidades especficas del usuario pero si depende de factores genricos; por ejemplo factores humanos. En la tabla No. 5 se muestra un ejemplo de mtrica, tanto para calidad externa como para calidad interna. Note que las entradas para la medicin difieren.
Mtodo de Aplicacin
Frmula
X=1-A/B Nmero de funciones en que se detectaron Valor A problemas en la evaluacin Valor B Nmero de funciones evaluadas Interpretacin del valor 0<=X<=1 medido Lo ms cerca de 1,0 es lo mejor Especificacin de requerimientos Entrada para la medicin Reporte de validacin
Adecuacin Funcional (Calidad Interna) Cun adecuadas son las funciones revisadas? Contar el nmero de funciones implementadas en las que se detect problemas para realizar las tareas especificadas y comparar con las funciones implementadas. Se puede medir lo siguiente: - todas o parte de las especificaciones de diseno - mdulos/partes completadas de productos de software X=1-A/B Nmero de funciones en que se detectaron problemas en la evaluacin Nmero de funciones revisadas 0<=X<=1 Lo ms cerca de 1,0 es lo mejor Especificacin de requerimientos Reporte de validacin
CIBERTEC
CARRERAS PROFESIONALES
102
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
103
1.
Establecer un modelo de calidad para el producto software, definiendo las caractersticas y subcaractersticas que se deben tener en cuenta. Definir el proceso de evaluacin de la calidad del producto software, con el fin de poder establecer la calidad en funcin del modelo.
2.
La familia de normas ISO 25000 est actualmente en estado de desarrollo y desde el punto de vista de la calidad del producto, su objetivo es sustituir a dos normas: 1. ISO/IEC 9126: que es el conjunto de normas que hasta ahora defina el modelo de calidad para el producto software. 2. ISO/IEC 14598: que es el conjunto de normas que determina el proceso para evaluar el producto software. Por los tanto, mientras la norma ISO/IEC 15504 est orientada a los procesos y puede ser utilizada para evaluar la capacidad de los mismos y la madurez de una organizacin respecto a sus procesos, la familia ISO 25000 est orientada al producto software, permitiendo definir el modelo de calidad y el proceso a seguir para evaluar dicho producto. Finalmente la principal relacin entre estas normas radica en que la serie de normas ISO 25000 se puede utilizar como referencia cuando se evalan los procesos de medicin y aseguramiento de la calidad de una organizacin.
CIBERTEC
CARRERAS PROFESIONALES
104
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
105
Reporte de evaluacin: Documento que presenta resultados de evaluacin informacin relevante a una evaluacin. Solicitante de evaluacin: Persona u organizacin que solicita una evaluacin.
otra
En la figura No. 2.8 se presenta una propuesta de niveles de puntuacin de las mtricas que debern ser evaluadas para las caractersticas de calidad que se definieron, de acuerdo al modelo, para el componente de producto.
Nivel Actual
Mnimo aceptable
Peor caso
Inaceptable Insatisfactorio
Escala de Medicin
Niveles de Puntuacin
CIBERTEC
CARRERAS PROFESIONALES
106
Ejemplo:
A continuacin se presenta un ejemplo de una modelo de calidad con la definicin de mtricas de calidad externa.
Proyecto Componente Caracterstica peso % SISTEMA DE ADMINISTRACIN DE HORARIOS ACADMICOS P01-DISPONIBILIDAD Sub-Caractersticas Aplicabilidad Precisin Seguridad Interoperabilidad Conformidad de funcionalidad Cambiabilidad Analizabilidad Estabilidad Testeabilidad Conformidad de facilidad de mantenimiento Entendibilidad Facilidad de aprendizaje Atractividad Operabilidad Conformidad de usabilidad Madurez Tolerancia a fallos Recuperabilidad Conformidad de fiabilidad Comportamiento en el tiempo Utilizacin de recursos Conformidad de eficiencia Instalabilidad Adaptabilidad Co-existencia Reemplazabilidad Conformidad de Portabilidad peso 7.0 6.0 0.0 0.0 0.0 5.0 4.0 4.0 4.0 0.0 5.0 5.0 5.0 4.0 0.0 3.0 3.0 0.0 0.0 3.0 3.0 0.0 3.0 2.0 2.0 2.0 0.0 % 54% 46% 0% 0% 0% 29% 24% 24% 24% 0% 26% 26% 26% 21% 0% 50% 50% 0% 0% 50% 50% 0% 33% 22% 22% 22% 0%
Funcionalidad
7.0
30%
Facilidad de mantenimiento
5.0
22%
Usabilidad
4.0
17%
Fiabilidad
3.0
13%
Eficiencia
3.0
13%
Portabilidad
1.0
4%
P01 - DISPONIBILIDAD Carcaterstica Subcaraterstica Mtrica (Atributo de Calidad) Peso Valor de Mtrica RNF Las funciones del Mdulo de Disponibilidad deben ser adecuadas por lo menos en el 70% de los casos al proceso de Gestin 40% 70% de Horarios. Las funciones del Mdulo de Disponibilidad deben estar desarrolladas completamente por lo 33% 60% menos al 60%. Las funciones del Mdulo de Disponibilidad deben estar desarrolladas correctamente por lo 27% 60% menos al 60%. El 60% de las funciones del Mdulo de Disponibilidad deben realizar los clculos con la 42% 60% precisin de 2 decimales definida. El 60% de las funciones del Mdulo de Disponibilidad deben realizar los clculos correctos con la precisin de 2 decimales 33% 60% definida. El 50% de las funciones del Mdulo de Disponibilidad deben 25% 50% realizar los clculos correctos. %
Adecuacin funcional 6 Aplicabilidad Integridad de Implementacin funcional 5 Cobertura de implementacin funcional Funcionalidad Precisin esperada 5 Precisin Proveer la Informacin con un grado necesario de precisin 4 Exactitud de clculo 3 4
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
107
CATALOGO DE MTRICAS DE FUNCIONALIDAD SISTEMA DE ADMINISTRACIN DE HORARIOS ACADMICOS 1. P01 DISPONIBILIDAD 1.1. Mtricas de Aplicabilidad
FUN-APLIC-001 Funcionalidad FUN 7 Aplicabilidad APLIC 7 Adecuacion funcional 1 Cun adecuadas son las funciones evaluadas? Qu tan importante es que las funciones del Mdulo de Disponibilidad sean adecuadas al proceso de Gestin de Horarios Acadmicos? 40% 6 Cuntas de las funciones Crticas del Mdulo de Disponibilidad deben ser adecuadas al proceso de Gestin de Horarios Acadmicos? 70% Evaluar las funciones y contar las que son adecuadas respecto del total evaluadas. X =1A/B 0 1 100% Figura 2.11 Catlogo de Mtricas
Cdigo Caracterstica Abreviatura Caract. Peso Caract. Sub Caracterstica Abreviatura Sub Caract. Peso Sub Caract. Atributo Nro Atributo Enunciado 9126 u otro Pregunta (peso)
Mtrica Mtodo de aplicacin Frmula Primer valor (A) Segundo Valor (B) Valor Obtenido
CIBERTEC
CARRERAS PROFESIONALES
108
Actividades
Desarrollar el modelo de calidad de los principales componentes del sistema bajo desarrollo del proyecto integrado Definir las mtricas de calidad externa, para cada uno de los principales componentes del sistema bajo desarrollo del proyecto integrado, precisando el peso absoluto y el peso relativo en funcin a la escala definida. Actualizar el RES con los atributos de calidad previamente identificados. Definir el catlogo de mtricas. Actualizar el valor obtenido a partir del plan de pruebas y de evaluacin de mtricas.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
109
Resumen
El mundo globalizado exige cada vez ms la aplicacin de estndares internacionales que garanticen la calidad de los productos. Por esta razn, es necesario que todo aquel que se dedica al desarrollo de software incluya en sus procesos, estndares de calidad que permitan certificarse en alguno de los modelos. Aqu se ha presentado un estndar, el ISO 9126, el cual establece una gua para la evaluacin de la calidad de software, sin embargo es necesario que cada empresa dedicada a producir software trabaje en establecer su modelo de calidad que le permita valorar el nivel de excelencia de sus productos, en el que deber incluirse instrumentos de medicin que permitan calificar cuantitativamente cada una de las caractersticas aqu presentadas. Es importante mencionar, que dependiendo de los distintos tipos de aplicaciones las mtricas podrn variar, ya que aunque las caractersticas expuestas son comunes a la totalidad de los productos, cada software particular requiere una evaluacin especifica. Si desea saber ms acerca de estos temas, puede consultar las siguientes pginas. http://www.iso15504.es Aqu encontrar diferentes temas relacionados con la calidad orientada al proceso de software. http://iso25000.com Aqu encontrar diferentes temas relacionados con la calidad orientada al producto de software.
CIBERTEC
CARRERAS PROFESIONALES
110
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
111
UNIDAD DE APRENDIZAJE
PRUEBAS DE SOFTWARE
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al trmino de la unidad de aprendizaje, el alumno elabora un plan de pruebas en el que, haciendo uso de tcnicas de caja negra defina los casos prueba a ser aplicados a las funciones desarrolladas en el software del proyecto integrado de quinto ciclo. Asimismo deber generar el informe de pruebas en el que se demuestre la aplicacin de los casos de pruebas y adems se sustente el cumplimiento de las mtricas de funcionalidad.
TEMARIO
3.1. Tema 9: Pruebas de Software 3.1.1. Principios Generales de las Pruebas 3.2. Tema 10:Ciclo de Vida de las Pruebas 3.2.1. Planeacin y Control de Pruebas 3.2.2. Anlisis y Diseo de las Pruebas 3.2.3. Implementacin y Ejecucin de Pruebas 3.2.4. Evaluacin de Criterios de Salida y Reportes 3.2.5. Cierre de Pruebas 3.3. Tema 11: Estrategia de Pruebas 3.3.1. Casos de Prueba 3.3.2. Diseo de Casos de Prueba 3.3.3. Realizar Casos de Prueba 3.3.4. Informe y Seguimiento de Pruebas 3.3.5. Relacin entre las Pruebas y la Depuracin
CIBERTEC
CARRERAS PROFESIONALES
112
Las pruebas rigurosas a los sistemas y documentacin pueden ayudar a reducir el riesgo de ocurrencia de problemas durante la operacin y contribuyen a la calidad del sistema de software, si los defectos encontrados son corregidos antes de que el sistema sea liberado para uso operacional. Las pruebas de software pueden ser requeridas tambin para conocer los requisitos contractuales o trmites legales, o las especificaciones/estndares industriales. 2. Pruebas y Calidad:
Con la ayuda de las pruebas, es posible medir la calidad del software en trminos de defectos encontrados, tanto para requisitos funcionales o no funcionales y caractersticas. Las pruebas pueden dar la confianza sobre la calidad del software si encuentra pocos o ningn defecto. Se debe aprender de las lecciones de proyecto anteriores. Entendiendo las causas races de los defectos encontrado en otros proyectos, los procesos pueden ser mejorados, se debe evitar que esos efectos ocurran nuevamente y como consecuencia, mejorar la calidad de futuros sistemas. Esto es un aspecto del aseguramiento de la calidad. Las pruebas deben ser integradas como parte aseguramiento de la calidad 3. Cuntas pruebas son suficientes?: de las actividades del
En base al nivel de riesgo se determina cuantas pruebas se harn, incluyendo riesgos tcnicos, de negocio y elementos del proyecto como tiempo y presupuesto. Las pruebas deben proveer suficiente informacin a los involucrados para la toma de decisiones sobre la liberacin del software o sistema que est siendo probado, para el paso o la entrega siguiente del desarrollo a los clientes Una percepcin comn de las pruebas es que nicamente consiste en la ejecucin de scripts. Esto es parte de las pruebas, pero no todas las actividades de la fase de pruebas.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
113
Las actividades relacionadas a la fase de pruebas existen antes y despus de la ejecucin de pruebas: planeacin y control, eleccin de condiciones de pruebas, diseo de casos de prueba y revisin de resultados, evaluacin de criterios de salida, reportes del proceso de pruebas, finalizacin y clausura. Tambin incluye la revisin de documentos. Existen diferentes objetivos para probar: Encontrar defectos Aumentar la confianza sobre el nivel de calidad Prevenir defectos El diseo de pruebas de manera temprana en el ciclo de vida puede ayudar a prevenir que defectos san introducidos en el cdigo. La revisin de documentos (por ejemplo: Requerimientos) tambin puede ayudar a prevenir la aparicin de defectos en el cdigo. La depuracin y las pruebas son diferentes. Las pruebas pueden mostrar fallas causadas por defectos. La depuracin es la actividad de desarrollo que identifica la causa de un defecto, repara el cdigo y revisa que el defecto haya sido reparado correctamente. La informacin subsecuente del probador asegura que la correccin ha resuelto la falla. La responsabilidad para cada actividad es muy diferente.
CIBERTEC
CARRERAS PROFESIONALES
114
Para evitar la paradoja del pesticida, los casos de prueba necesitan ser revisados regularmente, deben escribirse nuevos casos de prueba para probar diferentes partes del software o sistema para potenciar el hallazgo de nuevos errores. Principio 6: Las pruebas son dependientes del contexto. Las pruebas son diferentes en diferentes conceptos. Por ejemplo, el software crtico para un banco es probado diferente a un sitio de comercio electrnico. Principio 7: La falacia de la ausencia de errores. Encontrar y reparar defectos no ayuda si la construccin del sistema es inoperable y no satisface las necesidades y expectativas del cliente.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
115
CIBERTEC
CARRERAS PROFESIONALES
116
Contempla las siguientes actividades: Revisin de las bases de pruebas (requerimientos, arquitectura, diseo, interfaces). Identificar y priorizar las condiciones de pruebas basadas en al anlisis de la especificacin, estructura. Diseo y priorizacin de casos de prueba. Identificar la informacin necesaria para probar para dar soporte a los casos e prueba y condiciones de prueba. Diseo del ambiente de prueba e identificacin de cualquiera herramienta o infraestructura requerida.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
117
Incluye las siguientes actividades: Revisin de que entregables planeados han sido entregados, cierre del reporte de incidentes o levantamiento de cambios, documentacin y aceptacin del sistema. Finalizacin y almacenamiento del ambiente de pruebas y la infraestructura para su posterior reuso. Anlisis de lecciones aprendidas para futuras liberaciones del proyecto y la mejora de la madurez de pruebas.
CIBERTEC
CARRERAS PROFESIONALES
118
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
119
Si los Casos de Prueba no son correctos, la Calidad del Sistema se pone en duda y las pruebas dejan de ser confiables. La Figura 3.2 muestra un modelo conceptual sobre los conceptos que estn asociados a los Casos de Prueba. En ella se puede observar que los Casos de Uso son la fuente principal de los Casos de Prueba, estos se encuentran como entregables del documento Plan de Pruebas. Los Casos de Prueba se pueden agrupar mediante Suite de Pruebas. Los Casos de Prueba estn relacionados con el nivel de la prueba y con el tipo de prueba, la cual a su vez contiene la tcnica que permite ejecutar el tipo de prueba. Los Casos de Prueba proveen las instrucciones para el procedimiento de las pruebas. El procedimiento de la prueba se conforma de pasos, condiciones, valores y resultados esperados y obtenidos. A su vez, el procedimiento de las pruebas puede ser automatizado a travs de los script de pruebas. Todos los conceptos indicados anteriormente permiten visionar el enfoque de pruebas: qu se probar, cmo, quin, cundo, para qu? Una vez ejecutados todos los Casos de Prueba, estos resultados deben reflejarse de manera global. Con ello, se establece si al validar el sistema se cumpli con los criterios de aceptacin definidos con el usuario.
CIBERTEC
CARRERAS PROFESIONALES
120
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
121
2. Identificar condiciones de entrada Las condiciones de entrada son parte del dominio de valores de entrada. Se pueden identificar condiciones de entrada con estados vlidos (V) y no vlidas (NV); asimismo se consideran condiciones de entrada con el estado que no se aplica (N/A) para un determinado escenario. Existen los siguientes tipos de condiciones de entrada: Miembro de un conjunto Lgico Valor Rango
Veamos un ejemplo. Considrese una aplicacin bancaria, donde el usuario puede conectarse al banco por Internet y realizar una serie de operaciones bancarias. Una vez accedido al banco con las siguientes medidas de seguridad (clave de acceso y dems), la
CIBERTEC
CARRERAS PROFESIONALES
122
informacin de entrada del procedimiento que gestiona las operaciones concretas a realizar por el usuario requiere las siguientes entradas: Cdigo de banco. En blanco o nmero de tres dgitos. En este ltimo caso, el primer dgito tiene que ser mayor que 1. Cdigo de sucursal. Un nmero de cuatro dgitos. El primero de ellos mayor de 0. Nmero de cuenta. Nmero de cinco dgitos. Clave personal. Valor alfanumrico de cinco posiciones. Orden. Este valor se seleccionar de una lista desplegable, segn la orden que se desee realizar. Puede estar en Seleccione Orden o una de las dos cadenas siguientes: Talonario o Movimientos En el caso Talonario el usuario recibir un talonario de cheques, mientras que en Movimientos recibir los movimientos del mes en curso. Si no se especifica este dato, el usuario recibir los dos documentos. A continuacin se muestra una tabla con estados de las condiciones de entrada para un caso de prueba por cada escenario: En base a la regla de generacin de Casos de prueba a partir de Clases de equivalencia, se deberan tener 12 casos de prueba.
CONDICIONES DE ENTRADA Cdigo de Nmero Clave Orden sucursal de cuenta personal V V V V NV V V V V V V V NV V V V V V V V NV V V V V V V V
Cdigo de banco V V V NV V V V
Resultado esperado Mensaje "Envo de talonarios" Mensaje "Envo de movimientos " Mensaje "Envo de talonarios y movimientos" Mensaje Cdigo de banco incorrecto Mensaje Cdigo de sucursal incorrecto Mensaje Nmero de cuenta incorrecto Mensaje Clave incorrecta
3. Definir clases de equivalencia Pueden usarse varias tcnicas para identificar los valores de los datos de entrada, la tcnica de particiones o clases de equivalencias es una de ellas.
CARRERAS PROFESIONALES
CIBERTEC
CALIDAD DE SOFTWARE
123
Las clases de equivalencia se identifican examinando cada condicin de entrada (normalmente una frase en la especificacin) y dividindola en dos o ms grupos. Se definen dos tipos de clases de equivalencia:
Condicin de Entrada Clases Vlidas Entrada En blanco Cdigo CEV<01> Clases No Vlidas Entrada Un valor no numrico Cdigo de banco < 200 Si est, es Rango 200 <= Cdigo de banco <= 999 CEV<02> Cdigo de banco > 999 Cdigo de sucursal < 1000 2 Cdigo de sucursal Rango 1000 <= Cdigo de sucursal <=9999 CEV<03> Cdigo de sucursal > 9999 Nmero de ms de cinco dgitos Nmero de menos de cinco dgitos Cadena de ms de cinco posiciones CEV<05> Cadena de menos de cinco posiciones CENV<05> CENV<06> CENV<07> CENV<08> CENV<09> CENV<03> CENV<04> Cdigo CENV<01> CENV<02>
Sec.
Cdigo de banco
Nmero de cuenta
Valor
CEV<04>
Clave personal
Valor
Orden
Clases Vlidas, que representan entradas vlidas al programa. Clases no Vlidas, que representan valores de entrada errneos.
Estas clases se pueden representar en una tabla. A continuacin se muestra las clases de equivalencia para el caso de gestin bancaria anterior:
CIBERTEC
CARRERAS PROFESIONALES
Clases de equivalencia CEV<02>, CEV<03>, CEV<04>, CEV<05>, CEV<07> CEV<01>, CEV<03>, CEV<04>, CEV<05>, CEV<08> CEV<02>, CEV<03>, CEV<04>, CEV<05>, CEV<06> CENV<01>, CEV<03>, CEV<04>, CEV<05>, CEV<07> CENV<04>, CEV<03>, CEV<04>, CEV<05>, CEV<07> CENV<07>, CEV<03>, CEV<04>, CEV<05>, CEV<07> CENV<09>, CEV<03>, CEV<04>, CEV<05>, CEV<07>
CONDICIONES DE ENTRADA Cdigo de Nmero de Clave personal sucursal cuenta 1000 9999 1001 1989 999 1989 1989 10000 99999 12345 12345 12345 123 12345 Aaaaa Zzzzz A1b2c 1a2b3 1a2b3 1a2b3
Orden Talonario Movimientos Seleccione Orden Seleccione Orden Seleccione Orden Seleccione Orden Seleccione Orden
Resultado esperado Mensaje "Envo de talonarios" Mensaje "Envo de movimientos " Mensaje "Envo de talonarios y movimientos" Mensaje Cdigo de banco incorrecto Mensaje Cdigo de sucursal incorrecto Mensaje Nmero de cuenta incorrecto Mensaje Clave incorrecta
CALIDAD DE SOFTWARE
125
El Histrico de Pruebas (Test Log) documenta todos los hechos relevantes ocurridos durante la ejecucin de las pruebas. El Test Log suele tener la siguiente estructura: Identificador. Descripcin de la prueba: elementos probados y entorno de la prueba. Anotacin de datos sobre cada hecho ocurrido (incluido el comienzo y el final de la prueba) El Informe de Incidente (Test Incident Report) documenta cada incidente (por ejemplo, una interrupcin en las pruebas debido a un corte del fluido elctrico, bloqueo del teclado) ocurrido en la prueba y que requiera de una posterior investigacin. El Informe de Incidente, debe tener la siguiente estructura:
CIBERTEC
CARRERAS PROFESIONALES
126
Identificador. Resumen del incidente. Descripcin de datos objetivos (fecha/hora, esperados) Impacto que tendr sobre las pruebas.
entradas,
resultados
El Informe Resumen de Pruebas (Test Summary Report) resume los resultados de las actividades de prueba (las sealadas en el propio informe) y aporta una evaluacin del software basada en dichos resultados. El Informe Resumen de Pruebas deber tener la siguiente estructura: Identificador. Resumen de la evaluacin de los elementos probados. Variaciones del software respecto de a su especificacin de diseo, as como las variaciones en las pruebas. Valoracin de la extensin de la prueba (cobertura lgica, funcional, de requisitos). Resumen de los resultados obtenidos en las pruebas. Evaluacin de cada elemento software sometido a prueba (evaluacin general del software incluyendo las limitaciones del mismo). Firmas y aprobaciones de quienes deban supervisar el informe.
CARRERAS PROFESIONALES
CIBERTEC
CALI DA D DE SOFTW AR E
127
Durante la Depuracin es necesario tener en cuenta lo siguiente, para el proceso de localizacin del error: Analizar la informacin y pensar (analizar bien, en lugar de aplicar un enfoque aleatorio de bsqueda del efecto). Al llegar a un punto muerto, pasar a otra cosa (refresca la mente). Al llegar a un punto muerto, describir el problema a otra persona (el simple hecho de describir el problema a alguien puede ayudar). Usar herramientas de depuracin slo como recurso secundario (no sustituir el anlisis mental). No experimentar cambiando el programa (no s qu est mal, as que cambiar esto y ver lo que sucede No). Se debe atacar los errores individualmente. Se debe fijar la atencin tambin en los datos (no slo en la lgica del programa). Durante el proceso de correccin del error, es necesario considerar las siguientes recomendaciones: Donde hay un defecto, suele haber ms (lo dice la experiencia). Debe fijarse el defecto, no sus sntomas (no debemos enmascarar sntomas, sino corregir el efecto). La probabilidad de corregir perfectamente un defecto no es del 100% (cuando se corrige, hay que probarlo). Cuidado con crear nuevos defectos (al corregir defectos se producen otro nuevos). La correccin debe situarnos temporalmente en la fase de diseo (hay que retocar desde el comienzo, no slo el cdigo). Cambiar el cdigo fuente, no el cdigo objeto.
CIBERTEC
CARRERAS PROFESIONALES
128
Actividades
Elaborar el plan de pruebas para determinar las pruebas que sern aplicadas en el proyecto integrado de quinto ciclo. Desarrollar los casos de prueba de las funciones principales del aplicativo bajo desarrollo en el curso de DAW1. Ejecutar los casos de prueba, para completar los resultados y compararlos con los resultados esperados. Elaborar el informe de pruebas indicando el resultado por cada uno de los mdulos del producto software probado. Evaluar las mtricas de calidad externa definidas en el modelo de calidad de producto software.
CARRERAS PROFESIONALES
CIBERTEC
CALI DA D DE SOFTW AR E
129
Formatos
PP Plan de Pruebas de Software
Plan de Pruebas
Versin <x.y.z>
CIBERTEC
CARRERAS PROFESIONALES
130
HISTORIAL DE REVISIONES
Versin
<x.y.z>
Autor
Descripcin
Fecha de Elaboracin
<Fecha de Elaboracin>
Fecha de Revisin
<Fecha de Revisin>
Revisado por
<Persona(s) que revisa(n) el documento>
CARRERAS PROFESIONALES
CIBERTEC
CALI DA D DE SOFTW AR E
131
Contenido
1.
1.1 1.2 2. 3. 3.1 3.2 4. 5. 6. 6.1 6.2
Introduccin
132 DEFINICIONES, ACRNIMOS Y ABREVIATURAS 132 DOCUMENTOS RELACIONADOS Objetivo 132 Alcance 132 DENTRO DEL ALCANCE 133 FUERA DEL MBITO 133 Roles y Recursos 133 Tcnica a utilizar 133 Enfoque de las Pruebas 133 Pruebas Funcionales 134 ACTIVIDADES 134 6.2.1DISEO DE LOS CASOS DE PRUEBA 134 6.2.2GENERACIN DE LOS CASOS DE PRUEBA 134 6.2.3DEFINICIN DE LOS PROCEDIMIENTOS DE PRUEBA 135 6.2.4EJECUCIN DE LOS CASOS DE PRUEBA 135 6.2.5REPORTAR Y DOCUMENTAR LAS PRUEBAS 136 6.2.6 ANLISIS DE RESULTADOS OBTENIDOS 136 132
7. Planificacin 137
CIBERTEC
CARRERAS PROFESIONALES
CALIDAD DE SOFTWARE
132
1.
Introduccin
[Describa de manera breve el contenido del documento orientando la descripcin hacia la utilidad que se quiere conseguir.] [El presente documento describe el plan de pruebas de sistema, esto abarca la metodologa, en donde se especifican mtodos, tcnicas y forma en que se disean, ejecutan, evalan y reportan los resultados de las pruebas de sistema Las pruebas de sistema a desarrollar, luego de leer este plan, se ejecutan en cuanto se ha finalizado con las pruebas de Integracin, ya que se debe tener el sistema completo para poner en prctica las pruebas de sistema. Luego de realizar las pruebas, se verificar si el sistema XYZ cumple con los requisitos exigidos por el usuario, en los cuales se debiera obtener los resultados esperados, de no ser as, se determina que se han encontrado errores que habr que reportar a los desarrolladores]
2.
Objetivo
[Describa de manera breve el propsito que se pretende alcanzar con la aplicacin del plan de pruebas.] El documento tiene como objetivo describir el plan a seguir para realizar las pruebas al Sistema, con lo cual se especifican etapas a seguir para disear, generar, definir procedimientos, ejecutar, evaluar y reportar los resultados obtenidos de las pruebas. Al disear y generar las pruebas, stas se validarn con las personas calificadas para ello, para luego ejecutarlas y tomar los resultados obtenidos. Finalmente los resultados se evaluarn y reportarn. Las pruebas del sistema tienen como objetivo ejercitar el sistema comprobando la integracin total del sistema, verificando el funcionamiento correcto de las interfaces entre los distintos subsistemas que lo componen.
3.
Alcance
[Describa de manera breve el alcance de las pruebas descritas en el plan de pruebas.] Las pruebas de sistema a realizar, sern pruebas funcionales sobre las funciones del sistema, a partir de las condiciones de entrada y evaluando los resultados obtenidos. No es necesario conocer la lgica del programa, nicamente la funcionalidad que debe realizar. Para probar correctamente el sistema, las pruebas se realizan basndose en los requerimientos establecidos por el usuario del sistema
CARRERAS PROFESIONALES
CIBERTEC CIBERTEC
Versin: x.y.z
3.2 Fuera del mbito Indicar que mdulos no sern objeto de la prueba
4.
Roles y Recursos
Listar los roles y recursos asignados al proyecto
RECURSOS HUMANOS Rol Mnimos recursos recomendados Responsabilidades especficas o comentarios Proporcionar una gestin adecuada. Responsabilidades: Proporcionar una direccin tcnica. Adquirir los recursos apropiados. Informar de la gestin. Identificar, priorizare implementar los casos de prueba. Responsabilidades: Generar el Plan de pruebas. Disear los Casos de prueba. Evaluar el esfuerzo de prueba. Ejecutar las pruebas. Responsabilidades: Ejecutar pruebas. Recuperar los errores. Documentar los defectos. Recurso
Gestor de prueba
Diseador de prueba
Probador
5.
Tcnica a utilizar
La tcnica a utilizar para las pruebas de sistema son las de Caja Negra.
6. Enfoque de las Pruebas
Los tipos de pruebas que se realizarn al software son:
133
134
6.1
Pruebas Funcionales Estn enfocadas a asegurar que el software realiza correctamente todas las funciones que se han detallado en los requerimientos dados por el usuario. Se realizan pruebas para cada caso de uso y cada una de las actividades a desarrollar se describe en la seccin 6.2
6.2
6.2.1
Diseo de los Casos de Prueba Para disear los casos de prueba de sistema, se identifica la tcnica de caja negra descrita en la seccin 5. Para confeccionar los casos de prueba con la tcnica Caja Negra, sta provee distintos mtodos. Los que se ocuparn son los siguientes: A partir de especificaciones formas de casos de uso. Particiones de Equivalencia (para condiciones de entrada de tipo valor, rango de valores, miembro de un conjunto y lgica). Anlisis de Valores Lmite (para condiciones de entrada de rango de valores, miembro de un conjunto y lgica)
6.2.2
Generacin de los Casos de Prueba En la generacin o creacin de los casos de prueba, se representan los datos que se utilizarn como condiciones de entrada para ejecutar el software a probar. En concreto, los casos de prueba determinan un conjunto de entradas, condiciones de ejecucin y resultados esperados para un caso de uso en particular. La tcnica de caja negra proporciona distintos criterios para generar los casos de prueba. A continuacin, en las tablas N 1 y 5 se presenta una tabla de formulario de casos de prueba para cada criterio determinado. En general, para la generacin de todos los casos de prueba se debe tener lo siguiente: Aplicativo: Nombre del aplicativo bajo pruebas. Requerimiento: Cdigo del Requerimiento Funcional asociado al CUS que se probar. Proceso: Mdulo en el que reside el CUS que se probar. Caso de Uso: Cdigo y nombre del CUS que se probar Responsable: Nombre del responsable de ejecucin de la prueba. Pre-Condiciones: Que pueden tener relacin con la precondicin del casos de uso. Propsito: Objetivo del caso de prueba. Escenario: Cdigo y nombre del escenario que ser desarrollado por el caso de prueba. Actividad: Descripcin de las acciones para ejercitar el caso de prueba, a partir de las condiciones de entrada (que son las entradas del sistema).
CARRERAS PROFESIONALES
CIBERTEC
Versin: x.y.z Clase de equivalencia: Cdigos de las clases de equivalencia que sern utilizados en la prueba. Resultado esperado: Es el resultado que producir el software al ejecutar dicho caso, lo que es necesario para detectar una posible falla en el programa, adems de observaciones en caso necesario.
Clase de equivalencia
Resultado Esperado
Tabla N1 Formulario de Casos de Prueba con uso de Criterios de Especificacin Formal, Clases de Equivalencia y Anlisis de Valores Lmite
6.2.3
Definicin de los procedimientos de prueba Para llevar a cabo el procedimiento de prueba, se ha determinado que las actividades de las pruebas funcionales, sern abordadas como se indica a continuacin: Que la encargada de Testing Claudia Melndez (T1), se ocupar de disear, generar, ejecutar y reportar los casos de prueba para los casos de uso de: Mdulo XYZ, Mdulo ABC; descritos en el Reporte de Especificacin de Software (RES) versin x.y.z. Que la encargada de Testing Nadia Aliaga (T2), se ocupar de disear, generar, ejecutar y reportar los casos de prueba para casos de uso de: Mdulo RST, Mdulo UVW; descritos en el Reporte de Especificacin de Software (RES) versin x.y.z Las fechas correspondientes a las actividades, mostrarn en la tabla N3 de la seccin 7. se
6.2.4
Ejecucin de los Casos de Prueba Para la ejecucin de los casos de prueba, teniendo el sistema XYZ integrado, se aplicarn las entradas descritas para cada caso de prueba generado en la seccin 6.2.2, a travs de las interfaces del sistema, para lo cual se deber generar la Tabla N2 de Resultados Obtenidos, en donde se ir comparando los 135
136
resultados obtenidos con los esperados para identificar las posibles fallas (que ocurren cuando un programa no se comporta adecuadamente, esto quiere decir que hay un defecto en el cdigo) y que a continuacin se presenta: Cdigo de Caso de Prueba Salida Esperada Salida obtenida (*)
Tabla N2 Tabla de Resultados Obtenidos (*): La respuesta de la salida obtenida deber ser el resultado de comparar la salida obtenida con la esperada: OK (la salida obtenida est dentro del rango previsto por la salida esperada), falla menor (la diferencia entre las salidas es una cuestin de formato), falla grave (el sistema no complet su salida o la complet pero se "cay" despus). 6.2.5 Reportar y Documentar las Pruebas Luego de haber ejecutado todos los casos de pruebas validados, stos se deben documentar, con el resultado de la ejecucin (salida obtenida), determinando el nmero de cules pasaron satisfactoriamente, cules no lo hicieron y adems que fallas se encontraron. Para el completo reporte de las pruebas, se deber generar un documento, Informe de Reportes de Casos de Prueba a Requerimientos Funcionales, que deber contener: Ttulo Fecha Realizado por Historial de versiones Dependiendo del criterio usado: Tabla de identificacin de clases de equivalencia Tablas de formulario de casos de prueba, aplicando el criterio de clases de equivalencia y anlisis de valores lmite (tabla N1, de la seccin 6.2.2) Tabla de Resultados Obtenidos (Tabla 2) con todos los casos de pruebas 6.2.6 Anlisis de Resultados Obtenidos Para realizar el anlisis de resultados obtenidos, se har de acuerdo a la tabla de resultados obtenidos (tabla N2), y se debern sacar conclusiones de acuerdo al nmero de aprobaciones (resultados esperados OK) y fallas encontradas (resultado obtenido falla menor o falla grave). Para el completo reporte de anlisis de resultados, se deber generar un documento que, deber ser llamado Informe de anlisis de resultados obtenidos de Pruebas a Requerimientos Funcionales, que deber contener: Cul es el estado actual del software, en cuanto al nivel probable de calidad que alcanz? Para esto, se debe determinar el porcentaje de salidas obtenidas con respuesta OK, las cuales se suman, obteniendo el total de nivel de satisfaccin de las pruebas a requerimientos funcionales. Se espera que este porcentaje sea superior a
CARRERAS PROFESIONALES
CIBERTEC
Versin: x.y.z un 85%, de lo contrario el sistema no estara cumpliendo con los atributos de calidad mnimos requerido por el equipo de Calidad. Cunto tiempo se llevaron los procesos de prueba? Se debe mencionar la cantidad de das u horas que se necesit. Cun efectivo fue el proceso de prueba? (cuntos fallas se detectaron?) Se deber dar el nmero de fallas encontradas. Qu tipo de fallas se producen? Se debe mencionar cuntas fallas menores y graves se registraron, cules fueron ms frecuentes Se debe realizar el proceso de depuracin? Esta interrogante se responder en caso de haber encontrado fallas en el sistema. En caso contrario, se comunica en el informe que se ha terminado el proceso de pruebas.
La ltima interrogante mencionada llevar a determinar en este informe si se termina el proceso de pruebas, esto para saber si se puede dar por concluido. En caso negativo, se debe planificar el proceso de depuracin dentro del informe de anlisis de resultados obtenidos. El proceso de depuracin consiste en arreglar las fallas en el sistema que generaron los casos de prueba ejecutados, para esto, se debe informar al lder relacionado, de modo que ste avise al programador correspondiente. Por lo tanto, el programador relacionado, deber depurar la falla encontrada (salida obtenida no esperada) y el ejecutor de las pruebas deber volver a ejecutar todos los casos de prueba nuevamente (casos de prueba que no se ejecutaron satisfactoriamente, y casos que se ejecutaron satisfactoriamente). La razn de esto, es confirmar que la correccin de un defecto no introdujo un nuevo defecto. Esto se debe dejar en claro en el informe de anlisis de resultados obtenidos.
7.
Planificacin
Se contemplan las actividades relacionadas con el plan de Pruebas, en donde se describe: Actividad Responsable, puede ser el equipo de testing (T1: Claudia Mndez y T2: Nadia Aliaga), SQA: Mariela Orrego, Lderes (Fabin Lpez, Daniel Vsquez, Alejandra Torres, Alfonso Morris) Comienzo: fecha en que comienza la actividad Trmino: fecha en que termina la actividad Duracin Actividad Casos de Prueba para Requerimientos Funcionales: nombre de mdulo 1 Casos de Prueba para Requerimientos Funcionales: nombre de Responsable T1 Comienzo do 05 do 05 05-06Trmino vi 10-06-05 Duracin
6 das
T2
05-06-
vi 10-06-05
6 das
137
138
mdulo 2 Informe de casos de pruebas de Sistema Revisin de Informe Correccin de informe Envo de pruebas a equipo Ejecucin de Casos de Prueba de Sistema Informe de Reportes de Pruebas de Sistema e Informe de anlisis de resultados obtenidos Revisin de Reporte e informe de anlisis Correccin de Reporte e informe de anlisis Envo de Informes de reporte y anlisis a equipo
1 da 3 das 1 da 1 da 2 das 1 da
1 da 1 da 1 da
CARRERAS PROFESIONALES
CIBERTEC
Versin: x.y.z
Resumen
La prueba del software es un elemento crtico para la garanta de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Adems, esta etapa implica: Verificar la interaccin de componentes. Verificar la integracin adecuada de los componentes. Verificar que todos los requisitos se han implementado correctamente. Identificar y asegurar que los defectos encontrados se han corregido antes de entregar el software al cliente. Disear pruebas que sistemticamente saquen a la luz diferentes clases de errores, hacindolo con la menor cantidad de tiempo y esfuerzo. La prueba es un proceso que se enfoca sobre la lgica interna del software y las funciones externas. La prueba es un proceso de ejecucin de un programa con la intencin de descubrir un error. Un buen caso de prueba es aquel que tiene alta probabilidad de mostrar un error no descubierto Una vez generado el cdigo fuente, es necesario probar el software para descubrir (y corregir) la mayor cantidad de errores posible antes de entregarlo al cliente. Su objetivo es disear una serie de casos de prueba que tengan una alta probabilidad de encontrar errores. Aqu es donde entran las tcnicas de prueba del software. Estas tcnicas proporcionan directrices sistemticas para pruebas de diseo que 1) comprueben la lgica interna y las interfaces de todo componente del software y 2) comprueben los dominios de entrada y salida del programa para descubrir errores en su funcin, comportamiento y desempeo. Durante las etapas iniciales del proceso, el desarrollador realiza todas las pruebas. Sin embargo, a medida que avanza este proceso se irn incorporando especialistas en pruebas.
139