Anda di halaman 1dari 16

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica

Unidad 4: Calidad enfocada al desarrollo de software


Objetivo: Conocer y aplicar los estndares de calidad para el desarrollo de software.

4.1. Qu es la calidad del software.


Calidad Hasta los desarrolladores de software exhaustos estn de acuerdo en que es importante crear software de alta calidad. Pero, cmo se define la calidad? En el sentido ms amplio, calidad del software es el cumplimiento de los requisitos de funcionalidad y desempeo explcitamente establecidos, de los estndares de desarrollo explcitamente documentados y de las caractersticas implcitas que se esperan de todo software desarrollado profesionalmente. Es indudable que esta definicin podra modificarse o extenderse y debatirse interminablemente. En cuanto a los objetivos de este libro, la definicin sirve para destacar tres puntos importantes: 1. Los requisitos del software son la base de las medidas de calidad. La falta concordancia con estos requisitos es una falta de calidad. 2. Los estndares especificados definen un conjunto de criterios de desarrollo que guan la ingeniera del software. Si no se siguen los criterios, el resultado ser, casi seguramente, la falta de calidad. 3. A menudo se soslaya un conjunto de requisitos implcitos (por ejemplo, el deseo de alcanzar la facilidad de uso). Si el software cumple con sus requisitos explcitos pero no con los implcitos, la calidad del software estar en duda. La calidad del software es una compleja combinacin de factores que variarn entre diferentes aplicaciones y los distintos clientes que las solicitan. En las siguientes secciones se identifican los factores que afectan la calidad del software y se describe las actividades humanas que deben desarrollarse para alcanzarla. Calidad del software Es el grado con el que un sistema, componente o proceso cumple los requisitos especificados y las necesidades o expectativas del cliente o usuario. Es la concordancia con los requisitos funcionales y de rendimiento explcitamente establecidos con los estndares de desarrollo explcitamente documentados y con las caractersticas implcitas que se espera de todo software desarrollado profesionalmente. La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinnimo de eficiencia, flexibilidad, correccin, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad. La calidad del software es medible y vara de un sistema a otro o de un programa a otro. 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. L.S.C.A. Ral Monforte Chuln MORCH Systems 1

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Se puede decir que la calidad de software es el conjunto de caractersticas de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implcitas. Los requisitos del software son la base de las medidas de calidad. Y la falta de concordancia con los requisitos es una falta de calidad. Todos los estndares o metodologas definen un conjunto de criterios de desarrollo que guan la forma en que se aplica la ingeniera del software. Si no se sigue ninguna metodologa siempre habr falta de Calidad. Tambin existen algunos requisitos implcitos o expectativas que a menudo no se mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de un buen mantenimiento) que tambin pueden implicar una falta de calidad. Calidad en la ingeniera del software: En una versin sucinta la calidad en la ingeniera del software es un grupo de caractersticas que representa la efectividad y la eficiencia de un sistema de informacin. Es importante enfatizar en dos puntos: Un software de calidad debe ser eficaz, es decir, que debe realizar las funciones establecidas, debe ser amigable. Un usuario debe utilizar el software porque produce resultados confiables, realiza todas las operaciones que se requieren, ejecuta las operaciones en un tiempo aceptado y es fcilmente usado por el grupo de usuarios a quien este dirigido. Un software de calidad debe ser eficiente, es decir el costo de su desarrollo tomando todos los recursos y el costo de su operacin debe ser tal que las organizaciones involucradas en su desarrollo y uso obtengan el mximo beneficio o por lo menos un beneficio aceptable en un perodo de tiempo establecido. Para ilustrar el concepto de calidad de manera ms profunda, es necesario considerar algunos aspectos fundamentales que caracterizan al software de calidad como son: solidez, exactitud, completitud, mantenibilidad, reutilizabilidad, claridad en la documentacin, entre otros que sern descritos a continuacin.

Los factores de calidad de McCall Los factores que afectan la calidad del software se dividen en dos grandes grupos: 1) los que se miden directamente (por ejemplo, defectos descubiertos durante la prueba), y 2) los que slo se miden indirectamente (por ejemplo, facilidad de uso o mantenimiento). En cada caso debe presentarse una medicin. Se debe comparar el software (programa, datos, documentos) con algn conjunto de datos y obtener as algn indicio sobre la calidad. Figura: Factores de la calidad del software de McCall. McCall, Richards y Walters [MCC77] propusieron una clasificacin til de los factores que afectan la calidad del software. Estos factores, que se muestran en la siguiente figura, se concentran en tres aspectos importantes de un producto de software: sus caractersticas operativas, su capacidad para experimentar cambios y su capacidad para adaptarse a nuevos entornos. Si se toman como referencia los factores indicados en la siguiente figura McCall y sus colegas proporcionan las siguientes descripciones: L.S.C.A. Ral Monforte Chuln MORCH Systems 2

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Operacin del producto: Correccin: El grado en que el programa cumple con su especificacin y satisface los objetivos que propuso el cliente. Este factor tiene una pregunta asociada: Hace lo que quiero? Confiabilidad: El grado en que se esperara que un programa desempee su funcin con la precisin requerida. La pregunta asociada a este factor sera: Lo hace de forma fiable todo el tiempo? Eficiencia: La cantidad de cdigo y de recursos de cmputo necesarios para que un programa realice su funcin. La pregunta asociada a este factor sera: Se ejecutar en mi hardware lo mejor que pueda? Integridad: El grado de control sobre el acceso al software o los datos por parte de las personas no autorizadas. La pregunta asociada a este factor sera: Es seguro el sistema? Facilidad de uso: El esfuerzo necesario para aprender, operar y preparar los datos de entrada de un programa e interpretar la salida. La pregunta asociada a este factor sera: Est diseado para ser usado? Revisin del producto: Facilidad de mantenimiento: El esfuerzo necesario para localizar y corregir un error en un programa. La pregunta asociada a este factor sera: Puedo corregirlo? Flexibilidad: El esfuerzo necesario para modificar un programa en operacin. La pregunta asociada a este factor sera: Puedo cambiarlo? Facilidad de prueba: El esfuerzo que demanda probar un programa con el fin de asegurar que realiza su funcin. La pregunta asociada a este factor sera: Puedo probarlo?. Transicin del producto: Portabilidad: El esfuerzo necesario para transferir el programa de un entorno de hardware o software a otro. Este factor tiene una pregunta asociada: Podr usarlo en otra mquina? Facilidad de reutilizacin: El grado en que un programa (o partes de l) puede reutilizarse en otras aplicaciones (en relacin con el empaquetamiento y el alcance de las funciones que realiza el programa). Este factor tiene una pregunta asociada: Podr reusar alguna parte del software? Interoperabilidad: El esfuerzo necesario para acoplar un sistema con otro. Este factor tiene una pregunta asociada: Podr hacerlo interactuar con otro sistema? La calidad de un producto es una funcin del bien que hace al mundo. Tom DeMarco Es importante indicar que la calidad se extiende a las caractersticas tcnicas de los modelos de anlisis y diseo, as como a la realizacin del cdigo fuente de stos. Modelos de alta calidad (en el sentido tcnico) darn lugar a software de alta calidad, desde el punto de vista del cliente. Es difcil, y en algunos casos imposibles, desarrollar medidas directas de estos factores de la calidad. En realidad, muchas de las mtricas que definen McCall slo se miden subjetivamente. Es comn que las mtricas adquieran la forma de una lista de comprobacin que se emplea para asignar una graduacin a atributos especficos del software. L.S.C.A. Ral Monforte Chuln MORCH Systems 3

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Factores de calidad del estndar ISO 9126 El estndar ISO 9126 se desarroll como un intento por identificar los atributos de calidad para el software de computadora. El estndar identifica seis atributos clave de la calidad: Funcionalidad: El grado en que el software satisface las necesidades que indican los siguientes subatributos: idoneidad, exactitud, interoperabilidad, cumplimiento y seguridad. Confiabilidad: La cantidad de tiempo en que el software est disponible para usarlo segn los siguientes subatributos: madurez, tolerancia a fallas y facilidad de recuperacin. Facilidad de uso: La facilidad con que se usa el software de acuerdo con los siguientes subatributos: facilidad de comprensin, facilidad de aprendizaje y operabilidad. Eficiencia: El grado en que el software emplea en forma ptima los recursos del sistema, como lo indican los siguientes subatributos: comportamiento en el tiempo, comportamiento de los recursos. Facilidad de mantenimiento: La facilidad con que se repara el software de acuerdo con los siguientes subatributos: facilidad de anlisis, facilidad de cambio, estabilidad y facilidad de prueba. Portabilidad: La facilidad con que se lleva el soitware de un entorno a otro segn los siguientes subatributos: adaptabilidad, facilidad para instalarse, cumplimiento, facilidad para reemplazarse. Al igual que otros factores de calidad del software los factores ISO 9126 no necesariamente se prestan a la medicin directa. Sin embargo, proporcionan una base valiosa para las medidas indirectas y una lista de verificacin excelente para evaluar la calidad de un sistema. Es importante indicar que la calidad se extiende a las caractersticas tcnicas de los modelos de anlisis y diseo, as como a la realizacin del cdigo fuente de stos. Modelos de alta calidad (en el sentido tcnico) darn lugar a software de alta calidad, desde el punto de vista del cliente.

4.2 Cmo obtener calidad de software (mtodos, metodologas, estndares).


Uno de los problemas que se afrontan actualmente en la esfera de la computacin es la calidad del software. Desde la dcada del 70, este tema ha sido motivo de preocupacin para especialistas, ingenieros, investigadores y comercializadores de softwares, los cuales han realizado gran cantidad de investigaciones al respecto con dos objetivos fundamentales: Cmo obtener un software con calidad? Cmo evaluar la calidad del software? Ambas interrogantes conllevan amplias respuestas, pero estn estrechamente ligadas con el concepto de la calidad del software, que es el resultado de la primera y la fuente de la segunda. La obtencin de un software con calidad implica la utilizacin de metodologas o procedimientos estndares para el anlisis, diseo, programacin y prueba del software que permitan uniformar la filosofa de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software. La poltica establecida debe estar sustentada sobre tres principios bsicos: tecnolgico, administrativo y ergonmico. El principio tecnolgico define las tcnicas a utilizar en el proceso de desarrollo del software. L.S.C.A. Ral Monforte Chuln MORCH Systems 4

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica El principio administrativo contempla las funciones de planificacin y control del desarrollo del software, as como la organizacin del ambiente o centro de ingeniera de software. El principio ergonmico define la interfaz entre el usuario y el ambiente automatizado. La adopcin de una buena poltica contribuye en gran medida a lograr la calidad del software, pero no la asegura. Para el aseguramiento de la calidad es necesario su control o evaluacin. Todas las metodologas y herramientas tienen un nico fin producir software de gran calidad Cmo asegurar la calidad del software? Establecimiento de un sistema de calidad o Gestin de la calidad o Planificacin de la calidad o Definicin de polticas de calidad Uso de tcnicas de verificacin y validacin del software o Revisiones e inspeccin de los productos de software o Pruebas de programas Gestin de la Configuracin del Software Uso de normas y estndares de calidad Evaluacin y mejoramiento de los procesos de software

4.3. Cmo controlar la calidad del software.


Para controlar la calidad del software es necesario, ante todo, definir los parmetros, indicadores o criterios de medicin, ya que, como bien plantea Tom De Marco, "usted no puede controlar lo que no se puede medir". Las cualidades para medir la calidad del software son definidas por innumerables autores, los cuales las denominan y agrupan de formas diferentes. Por ejemplo, John Wiley define mtricas de calidad y criterios, donde cada mtrica se obtiene a partir de combinaciones de los diferentes criterios. La Metodologa para la evaluacin de la calidad de los medios de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro niveles jerrquicos: factor, criterio, mtrica, elemento de evaluacin, donde cada nivel inferior contiene los indicadores que conforman el nivel precedente. Otros autores identifican la calidad con el nivel de complejidad del software y definen dos categoras de mtricas: de complejidad de programa o cdigo, y de complejidad de sistema o estructura. Todos los autores coinciden en que 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, se debe establecer el proceso de control, que requiere los siguientes pasos: Definir el software que va a ser controlado: clasificacin por tipo, esfera 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 periciales y herramientas automatizadas para medir los criterios de clculo. Definir las regulaciones organizativas para realizar el control: quines participan en el control de la calidad, cundo se realiza, qu documentos deben ser revisados y elaborados, etc. L.S.C.A. Ral Monforte Chuln MORCH Systems 5

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica A partir del anlisis de todo lo anterior, nuestro centro se encuentra enfrascado en un proyecto para el Aseguramiento de la Calidad del Software (ACS), vlido para cualquier entidad que se dedique a la investigacin, produccin y comercializacin del software, el cual incluye la elaboracin de un Sistema de Indicadores de la Calidad del Software, la confeccin de una Metodologa para el Aseguramiento de la Calidad del Software y el desarrollo de herramientas manuales y automatizadas de apoyo para la aplicacin de las tcnicas y procedimientos del ACS, de forma tal que se conforme un Sistema de Aseguramiento de la Calidad del Software.

4.4 Costo de la calidad del software.


El costo de la calidad incluye todos los costos que genera la bsqueda de la calidad o que demanda el desarrollo de las actividades relacionadas con la calidad. Los estudios de costo de la calidad se llevan a cabo para ofrecer una lnea base para el costo de calidad y proporcionar una base normalizada de comparacin. La base de la normalizacin casi siempre es monetaria. Una vez que se han normalizado los costos de la calidad sobre una base monetaria, se tienen los datos necesarios para evaluar dnde se encuentran las oportunidades para mejorar los procesos. Ms todava, se puede evaluar el efecto de los cambios en trminos monetarios. Los costos de calidad se dividen en costos asociados con prevencin, evaluacin y fallas. Los costos de prevencin incluyen planificacin de la calidad, revisiones tcnicas formales, equipos de prueba y entrenamiento. Los costos de evaluacin incluyen actividades para comprender mejor la condicin del producto la primera vez a travs de cada proceso. Los ejemplos de costos de evaluacin incluyen inspeccin en el proceso y entre procesos, calibracin y mantenimiento de equipo y pruebas Los costos de fallas son aquellos que desapareceran si no aparecieran defectos antes de enviar un producto a los clientes estos costos se subdividen en costos de fallas internas y externas. Se incurren en los costos de fallas internas cuando se detecta un defecto en el producto, antes del envo. Los costos de fallas internas incluyen reelaboracin, reparacin y anlisis en modo de falla. Los costos de fallas externas se asocian con defectos que se detectan despus de que el producto ha sido enviado al cliente. Los ejemplos de costos de fallas externas son la resolucin de las quejas, devolucin y reemplazo del producto, soporte de ayuda en lnea y trabajo de garanta. Como se esperaba, los costos relativos para encontrar y repara un defecto aumentan sustancialmente conforme se pasa de la prevencin a detencin y de los de falla interna a falla externa.

4.5. Nomenclatura y certificacin ISO 9001:2000.


La familia de normas ISO 9000 (versin 1994) contiene ms de 20 documentos. La revisin del ao 2000 comprende cuatro normas principales apoyadas por varios reportes tcnicos. La ISO 9001 es la nica norma de requisitos de la serie; las normas ISO 9002 e ISO 9003 han sido retiradas. De acuerdo con el propsito de la norma ISO 9001, ser permitido omitir requisitos que no apliquen a una determinada organizacin. Como ejemplo de adaptacin, se incluye la omisin de diseo y desarrollo cuando estas actividades no se realizan en la organizacin. Las normas ISO 9001 e ISO 9004 son un "par consistente" de normas. La ISO 9001 contiene los requisitos y la ISO 9004 proporciona una gua para la mejora del desempeo del sistema de la calidad. La norma ISO 9004 revisada no es una gua para implementar la norma ISO 9001. La serie ISO 9000-2000 comprende cuatro normas principales: L.S.C.A. Ral Monforte Chuln MORCH Systems 6

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica ISO 9000 - Sistemas de Gestin de la Calidad Fundamentos y Vocabulario (reemplaza a la norma ISO 8402). ISO 9001 - Sistemas de Gestin de Calidad -- Requisitos. "Proporcionar confianza como resultado de demostracin de la conformidad de los productos / servicios con los requisitos establecidos." ISO 9004 - Sistemas de Gestin de Calidad Directrices para la mejora continua del desempeo. "Para que todos los interesados consigan beneficios a travs de la satisfaccin sostenida del cliente." ISO 10011 - Directrices para la auditoria de los sistemas de la calidad. Cambios en la norma ISO 9001 La revisin del ao 2000 de la norma ISO 9001 introduce nuevos requisitos con enfoque en la mejora continua y en las necesidades del cliente. Tambin modifica requisitos existentes y se desva de la estructura actual de 20 elementos. Los requisitos de la norma ISO 9001 han sido reorganizados en cinco tpicos principales como est indicado a continuacin: Sistema de gestin de la calidad . Requisitos generales del Sistema de gestin de calidad y requisitos de la documentacin Responsabilidades de la direccin. Compromiso, enfoque al cliente, poltica, planificacin, y comunicacin Gestin de los recursos. Recursos humanos, infraestructura y ambiente de trabajo. Realizacin del producto. Planificacin, procesos relacionados con el cliente, diseo, compras. Produccin y prestacin del servicio y control de los dispositivos de seguimiento y de medicin. Medicin, anlisis y mejora. Seguimiento y medicin, control del producto no conforme, anlisis de datos y mejora

4.6 La norma ISO/IEC 9126.


Este estndar est pensado para los desarrolladores, adquirentes, personal de aseguramiento de calidad y evaluadores independientes, responsables de especificar y evaluar la calidad del producto software. Por tanto, puede servir para validar la completitud de una definicin de requisitos, identificar requisitos de calidad de software, objetivos de diseo y prueba, criterios de aseguramiento de la calidad, etc. La calidad de cualquier proceso del ciclo de vida del software (estndar ISO 12.207) influye en la calidad del producto software que, a su vez, contribuye a mejorar la calidad en el uso del producto. La calidad del software puede evaluarse midiendo los atributos internos (medidas estticas o productos intermedios) o atributos externos (comportamiento del cdigo cuando se ejecuta).

L.S.C.A. Ral Monforte Chuln MORCH Systems

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Este estndar se desarrollo como un intento por identificar los atributos de calidad para el software de computadora. El estndar identifica seis atributos clave de la vida. 1. La funcionalidad se subdivide en cinco subcaractersticas: Adecuacin: La capacidad del producto software para proporcionar un conjunto apropiado de funciones para tareas especficas y objetivos de los usuarios. Exactitud: La capacidad del producto software para proporcionar los resultados o efectos correctos y con el grado de precisin acordado. Interoperabilidad: La capacidad del producto software para interactuar con uno o ms sistemas especificados. Seguridad: Referido a la capacidad del producto software para proteger la informacin y los datos. Conformidad: la capacidad del producto software para adaptarse a los estndares, convenciones o regulaciones en leyes y prescripciones relativos a la funcionalidad. 2. La fiabilidad se subdivide en cuatro subcaractersticas: Madurez: La capacidad del producto software para evitar fallos provocados por errores en el software. Tolerancia a fallos: La capacidad del producto software para mantener un nivel de rendimiento determinado en caso de defectos en el software o incumplimiento de su interfaz. Recuperabilidad: La capacidad del producto software para restablecer un determinado nivel de rendimiento y recuperar los datos afectados directamente en caso de ocurrir un fallo. Conformidad: La capacidad del producto software para adaptarse a estndares, convenciones y regulaciones referidas a la fiabilidad. 3. La usabilidad se subdivide en cinco subcaractersticas: Comprensibilidad: La capacidad del producto software para permitir al usuario que entienda si el software es adecuado, y como debe utilizarse para determinadas tareas y bajo ciertas condiciones de uso. Facilidad de aprendizaje: La capacidad del producto software para permitir al usuario aprender su aplicacin. Operabilidad: La capacidad del producto software para permitir que el usuario lo opere y lo controle. Atraccin: La capacidad del producto software para atraer al usuario. Conformidad: La capacidad del producto software para adaptarse a estndares, convenciones, guas de estilo y regulaciones relacionadas con la usabilidad. 4. La eficiencia se subdivide en tres subcaractersticas: Comportamiento temporal: La capacidad del producto software para proporcionar tiempos de respuesta y de procesamiento apropiados cuando realiza sus funciones bajo condiciones determinadas. Utilizacin de recursos: La capacidad del producto software para utilizar cantidades y tipos de recursos apropiados cuando el software realiza su funcin bajo determinadas condiciones. L.S.C.A. Ral Monforte Chuln MORCH Systems 8

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Conformidad: La capacidad del producto software para adaptarse a estndares o convenciones relacionadas con la eficiencia. 5. La mantenibilidad se subdivide en cinco subcaractersticas: Analizabilidad: Capacidad del producto software de diagnosticar sus deficiencias o causas de fallos, o de identificar las partes que deben ser modificadas. Cambiabilidad: Capacidad del producto software de permitir implementar una modificacin especificada. La implementacin incluye los cambios en el diseo, el cdigo y la documentacin. Estabilidad: Capacidad del producto software de evitar los efectos inesperados de las modificaciones. Facilidad de prueba: Capacidad del producto software de permitir validar las partes modificadas. Conformidad: Capacidad del producto software de cumplir los estndares o convenciones relativas a la mantenibilidad. 6. La portabilidad se subdivide en cinco subcaractersticas: Adaptabilidad: La capacidad del producto software para ser adaptado para ambientes determinados sin realizar acciones o aplicar medios, ms que los proporcionados para este propsito para el software considerado. Facilidad de instalacin: La capacidad del producto software para ser instalado en un ambiente determinado. Coexistencia: La capacidad del producto software para coexistir con otro software independiente en un ambiente comn compartiendo recursos. Reemplazabilidad: La capacidad del producto software para ser utilizado en lugar de otro producto de software para el mismo propsito en el mismo ambiente. Conformidad: La capacidad del producto software para adaptarse a estndares relacionados con la portabilidad.

4.7 Anlisis de factores que determinan la calidad del software.


Factores que determinan la calidad del software y se clasifican en tres grupos: Operaciones del producto: caractersticas operativas * Correccin (Hace lo que se le pide?): El grado en que una aplicacin satisface sus especificaciones y consigue los objetivos encomendados por el cliente. * Fiabilidad (Lo hace de forma fiable todo el tiempo?): El grado que se puede esperar de una aplicacin lleve a cabo las operaciones especificadas y con la precisin requerida. * Eficiencia (Qu recursos hardware y software necesito?): La cantidad de recursos hardware y software que necesita una aplicacin para realizar las operaciones con los tiempos de respuesta adecuados. * Integridad (Puedo controlar su uso?): El grado con que puede controlarse el acceso al software o a los datos a personal no autorizado. * Facilidad de uso (Es fcil y cmodo de manejar?): El esfuerzo requerido para aprender el manejo de una aplicacin, trabajar con ella, introducir datos y conseguir resultados. L.S.C.A. Ral Monforte Chuln MORCH Systems 9

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Revisin del producto: capacidad para soportar cambios * Facilidad de mantenimiento (Puedo localizar los fallos?) El esfuerzo requerido para localizar y reparar errores. * Flexibilidad (Puedo aadir nuevas opciones?) El esfuerzo requerido para modificar una aplicacin en funcionamiento. * Facilidad de prueba (Puedo probar todas las opciones?) El esfuerzo requerido para probar una aplicacin de forma que cumpla con lo especificado en los requisitos. Transicin del producto: adaptabilidad a nuevos entornos * Portabilidad (Podr usarlo en otra mquina?) El esfuerzo requerido para transferir la aplicacin a otro hardware o sistema operativo. * Rehusabilidad (Podr utilizar alguna parte del software en otra aplicacin?) Grado en que partes de una aplicacin pueden utilizarse en otras aplicaciones * Interoperabilidad (Podr comunicarse con otras aplicaciones o sistemas informticos? El esfuerzo necesario para comunicar la aplicacin con otras aplicaciones o sistemas informticos.

4.8 Anlisis del proceso del ciclo de vida del software.


Todo proyecto de ingeniera tiene unos fines ligados a la obtencin de un producto, proceso o servicio que es necesario generar a travs de diversas actividades. Algunas de estas actividades pueden agruparse en fases porque globalmente contribuyen a obtener un producto intermedio, necesario para continuar hacia el producto final y facilitar la gestin del proyecto. Al conjunto de las fases empleadas se le denomina ciclo de vida. Sin embargo, la forma de agrupar las actividades, los objetivos de cada fase, los tipos de productos intermedios que se generan, etc. pueden ser muy diferentes dependiendo del tipo de producto o proceso a generar y de las tecnologas empleadas. La complejidad de las relaciones entre las distintas actividades crece exponencialmente con el tamao, con lo que rpidamente se hara inabordable si no fuera por la vieja tctica de divide y vencers. De esta forma la divisin de los proyectos en fases sucesivas es un primer paso para la reduccin de su complejidad, tratndose de escoger las partes de manera que sus relaciones entre s sean lo ms simples posibles. La definicin de un ciclo de vida facilita el control sobre los tiempos en que es necesario aplicar recursos de todo tipo (personal, equipos, suministros, etc.) al proyecto. Si el proyecto incluye subcontratacin de partes a otras organizaciones, el control del trabajo subcontratado se facilita en la medida en que esas partes encajen bien en la estructura de las fases. El control de calidad tambin se ve facilitado si la separacin entre fases se hace corresponder con puntos en los que sta deba verificarse (mediante comprobaciones sobre los productos parciales obtenidos). Elementos del ciclo de vida Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas planificables. Segn el modelo de ciclo de vida, la sucesin de fases puede ampliarse con bucles de realimentacin, de manera que lo que conceptualmente se considera una misma fase se pueda ejecutar ms de una vez a lo largo de un proyecto, recibiendo en cada pasada de ejecucin aportaciones de los resultados intermedios que se van produciendo (realimentacin).

L.S.C.A. Ral Monforte Chuln MORCH Systems

10

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Para un adecuado control de la progresin de las fases de un proyecto se hace necesario especificar con suficiente precisin los resultados evaluables, o sea, productos intermedios que deben resultar de las tareas incluidas en cada fase. Normalmente estos productos marcan los hitos entre fases.

Figura: Elementos del ciclo de vida A continuacin presentamos los distintos elementos que integran un ciclo de vida: Fases: Una fase es un conjunto de actividades relacionadas con un objetivo en el desarrollo del proyecto. Se construye agrupando tareas (actividades elementales) que pueden compartir un tramo determinado del tiempo de vida de un proyecto. La agrupacin temporal de tareas impone requisitos temporales correspondientes a la asignacin de recursos (humanos, financieros o materiales). Cuanto ms grande y complejo sea un proyecto, mayor detalle se necesitar en la definicin de las fases para que el contenido de cada una siga siendo manejable. De esta forma, cada fase de un proyecto puede considerarse un micro-proyecto en s mismo, compuesto por un conjunto de micro-fases. Otro motivo para descomponer una fase en subfases menores puede ser el inters de separar partes temporales del proyecto que se subcontraten a otras organizaciones, requiriendo distintos procesos de gestin. Figura: Esquema general de operacin de una fase Cada fase viene definida por un conjunto de elementos observables externamente, como son las actividades con las que se relaciona, los datos de entrada (resultados de la fase anterior, documentos o productos requeridos para la fase, experiencias de proyectos anteriores), los datos de

L.S.C.A. Ral Monforte Chuln MORCH Systems

11

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica salida (resultados a utilizar por la fase posterior, experiencia acumulada, pruebas o resultados efectuados) y la estructura interna de la fase. Entregables ("deliverables"). Son los productos intermedios que generan las fases. Pueden ser materiales (componentes, equipos) o inmateriales (documentos, software). Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuacin o no a los requisitos funcionales y de condiciones de realizacin previamente establecidos. Cada una de estas evaluaciones puede servir, adems, para la toma de decisiones a lo largo del desarrollo del proyecto. Tipos de modelo de ciclo de vida Las principales diferencias entre distintos modelos de ciclo de vida estn en: El alcance del ciclo dependiendo de hasta dnde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o, llevando la cosa al extremo, toda la historia del producto con su desarrollo, fabricacin, y modificaciones posteriores hasta su retirada del mercado. Las caractersticas (contenidos) de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto (no son lo mismo las tareas que deben realizarse para proyectar un avin que un puente), o de la organizacin (inters de reflejar en la divisin en fases aspectos de la divisin interna o externa del trabajo). La estructura de la sucesin de las fases que puede ser lineal, con prototipado, o en espiral. Vemoslo con ms detalle: Ciclo de vida lineal: Es el ms utilizado, siempre que es posible, precisamente por ser el ms sencillo. Consiste en descomponer la actividad global del proyecto en fases que se suceden de manera lineal, es decir, cada una se realiza una sola vez, cada una se realiza tras la anterior y antes que la siguiente. Con un ciclo lineal es fcil dividir las tareas entre equipos sucesivos, y prever los tiempos (sumando los de cada fase). Requiere que la actividad del proyecto pueda descomponerse de manera que una fase no necesite resultados de las siguientes (realimentacin), aunque pueden admitirse ciertos supuestos de realimentacin correctiva. Desde el punto de vista de la gestin (para decisiones de planificacin), requiere tambin que se sepa bien de antemano lo que va a ocurrir en cada fase antes de empezarla. Ciclo de vida con prototipado: A menudo ocurre en desarrollos de productos con innovaciones importantes, o cuando se prev la utilizacin de tecnologas nuevas o poco probadas, que las incertidumbres sobre los resultados realmente alcanzables, o las ignorancias sobre el comportamiento de las tecnologas, impiden iniciar un proyecto lineal con especificaciones cerradas. Si no se conoce exactamente cmo desarrollar un determinado producto o cules son las especificaciones de forma precisa, suele recurrirse a definir especificaciones iniciales para hacer un prototipo, o sea, un producto parcial (no hace falta que contenga funciones que se consideren triviales o suficientemente probadas) y provisional (no se va a fabricar realmente para clientes, por lo que tiene menos restricciones de coste y/o prestaciones). Este tipo de procedimiento es muy utilizado en desarrollo avanzado. La experiencia del desarrollo del prototipo y su evaluacin deben permitir la definicin de las especificaciones ms completas y seguras para el producto definitivo.

L.S.C.A. Ral Monforte Chuln MORCH Systems

12

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica A diferencia del modelo lineal, puede decirse que el ciclo de vida con prototipado repite las fases de definicin, diseo y construccin dos veces: para el prototipo y para el producto real.

Figura: Ciclo de vida prototipado Ciclo de vida en espiral El ciclo de vida en espiral puede considerarse como una generalizacin del anterior para los casos en que no basta con una sola evaluacin de un prototipo para asegurar la desaparicin de incertidumbres y/o ignorancias. El propio producto a lo largo de su desarrollo puede as considerarse como una sucesin de prototipos que progresan hasta llegar a alcanzar el estado deseado. En cada ciclo (espirales) las especificaciones del producto se van resolviendo paulatinamente. A menudo la fuente de incertidumbres es el propio cliente , que aunque sepa en trminos generales lo que quiere, no es capaz de definirlo en todos sus aspectos sin ver como unos influyen en otros. En estos casos la evaluacin de los resultados por el cliente no puede esperar a la entrega final y puede ser necesaria repetidas veces.

Figura: Ciclo de vida en espiral El esquema del ciclo de vida para estos casos puede representarse por un bucle en espiral, donde los cuadrantes son, habitualmente, fases de especificacin, diseo, realizacin y evaluacin (o conceptos y trminos anlogos). En cada vuelta el producto gana en madurez (aproximacin al final deseado) hasta que en una vuelta la evaluacin lo apruebe y el bucle pueda abandonarse. L.S.C.A. Ral Monforte Chuln MORCH Systems 13

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica Objetivos de cada fase Dentro de cada fase general de un modelo de ciclo de vida, se pueden establecer una serie de objetivos y tareas que lo caracterizan. Tabla: Objetivos de cada fase. Fase de definicin (qu hacer?) Estudio de viabilidad. Conocer los requisitos que debe satisfacer el sistema (funciones y limitaciones de contexto). Asegurar que los requisitos son alcanzables. Formalizar el acuerdo con los usuarios. Realizar una planificacin detallada. Fase de diseo (cmo hacerlo? Soluciones en coste, tiempo y calidad) Identificar soluciones tecnolgicas para cada una de las funciones del sistema. Asignar recursos materiales para cada una de las funciones. Establecer mtodos de validacin del diseo. Ajustar las especificaciones del producto. Fase de construccin Generar el producto o servicio pretendido con el proyecto. Integrar los elementos subcontratados o adquiridos externamente. Validar que el producto obtenido satisface los requisitos de diseo previamente definidos y realizar, si es necesario, los ajustes necesarios en dicho diseo para corregir posibles lagunas, errores o inconsistencias. Fase de mantenimiento y operacin Operacin: asegurar que el uso del proyecto es el pretendido. Mantenimiento (nos referimos a un mantenimiento no habitual, es decir, aquel que no se limita a reparar averas o desgastes habituales -este es el caso del mantenimiento en productos software, ya que en un programa no cabe hablar de averas o de desgaste):

4.9 Funciones de evaluacin del software.


Las primeras propuestas de funcin de evaluacin estaban orientadas a tener una evaluacin esttica de la posicin basada fundamentalmente en el concepto de material. Rpidamente se capt que esta evaluacin no era suficiente, considerando que en el software existen factores estructurales los cuales afectarn a largo plazo el curso de este, por lo cual es muy probable que el programa no encuentre las consecuencias de esta situacin en su bsqueda en profundidad. Estos aspectos, denominados "Posicinales" debieron incluirse en la funcin de evaluacin. La construccin de un sistema software tiene como objetivo satisfacer una necesidad planteada por un cliente. Pero cmo puede saber un desarrollador si el producto construido se corresponde exactamente con lo que el cliente les pidi? y cmo puede un desarrollador estar seguro de que el producto que ha construido va a funcionar correctamente? Una de las posibles soluciones a este problema podra ser que el cliente evaluase el sistema que se ha construido una vez terminado. Sin embargo, esto tiene varias implicaciones: 1. Por una parte, puede que el cliente descubra que el producto desarrollado no cumple con sus expectativas, esto es, que el producto no hace lo que l esperara que hiciera. Sin embargo, el producto ha sido terminado, por lo que habra que comenzar de nuevo el desarrollo? L.S.C.A. Ral Monforte Chuln MORCH Systems 14

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica 2. Por otra parte, la comprobacin que el cliente podra realizar no sirve para comprobar que no hay errores en el software, puesto que ello depende de la porcin del programa que se est ejecutando en el momento de esta comprobacin, pudiendo existir errores en otras partes del programa que no se ejecuten en ese momento. Por lo tanto, lo recomendable es que el producto software vaya siendo evaluado a medida que se va construyendo. Por lo tanto, como veremos posteriormente, se hace necesario llevar a cabo, en paralelo al proceso de desarrollo, un proceso de evaluacin o comprobacin de los distintos productos o modelos que se van generando, en el que participarn desarrolladores y clientes. Con el fin de entregar a los clientes productos satisfactorios, el software debe alcanzar ciertos niveles de calidad. Para alcanzar buenos niveles de calidad el nmero de defectos necesita mantenerse bajo mnimos. Independientemente de la descomposicin de calidad que se elija, el nivel de propensin de faltas de un sistema software afecta siempre a varios de los atributos de calidad. En particular, fiabilidad y funcionalidad son siempre los ms afectados. No obstante, no existe una relacin bien establecida entre las faltas y la fiabilidad y funcionalidad. O dicho de otro modo, entre las faltas y los fallos. Todas las faltas de un producto software no se manifiestan como fallos. Las faltas se convierten en fallos cuando el usuario de un sistema software nota un comportamiento errneo. Para que un sistema software alcance un nivel alto de calidad se requiere que el nmero de fallos sea bajo. Pero para mantener los fallos a niveles mnimos las faltas necesariamente deben tambin estar en niveles mnimos.

Eso es todo amigos!! ..........................y recuerden

Lema: La vida es bella, nica e irrepetible vvela hoy, como si fuera el ltimo da de tu vida. MORCH Systems Le doy gracias a Dios por hacer el cielo con todas sus estrellas, porque una estrella eres t y el cielo es tu amistad..Gracias a Dios eres mi amigo con todo y tu amistad. MORCH Systems. Dios te Bendiga hoy, maana y siempre; a ti, a toda tu familia y a todos tu amigos. L.S.C.A. Ral Monforte Chuln MORCH Systems 15

Instituto Tecnolgico Superior de Coatzacoalcos Calidad de Software - Sexto Semestre - Licenciatura en Informtica MORCH Systems.

L.S.C.A. Ral Monforte Chuln MORCH Systems

16

Anda mungkin juga menyukai