Você está na página 1de 13

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software

Indice de Contenido
1 2 3 INTRODUCCIN........................................................................................................................ 2 CONCEPTO DE CALIDAD DEL SOFTWARE. ......................................................................... 2 MODELOS PARA LA CALIDAD DEL SOFTWARE. ................................................................ 3 3.1 3.2 3.3 4 4.1 4.2 4.3 MODELO DE MCCALL. ............................................................................................................... 3 MODELO DE CALIDAD DE BOEHM, BROWN Y LIPOW..................................................................... 6 MODELO DE CALIDAD DE SEGN LA ISO-9126. (1991). .............................................................. 7 AREAS CLAVE DEL EQUIPO DE DESARROLLO.............................................................................. 9 FACTORES QUE INFLUYEN EN LA CALIDAD Y PRODUCTIVIDAD. ................................................... 10 GARANTA DE LA CALIDAD DEL SOFTWARE ................................................................................ 11

CALIDAD EN EL DESARROLLO VS. CONTROL DE CALIDAD............................................. 9

Lic. Angel Baspineiro V.

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software

1 Introduccin.
Cuando se habla de la Ing. de Software para la construccin de sistemas, existe un criterio que ha sido muy generalizado, ampliamente difundido, pero tal vez no en la misma medida aplicado. Y este es: debemos construir sistemas tiles y de calidad. Utiles. Que cumplan con los requerimientos del usuario. Que tengan xito, osea que la organizacin logre con ellos algo que no alcanzara sin ellos. De calidad. Que cumplan con un conjunto de reas clave del desarrollo de sistemas. Pero se ver que la calidad no es tan fcil de definir, incluso no existe una definicin nica, completa y definitiva. Algunos autores sostienen que la calidad es indefinible por que es simple, inmediata y directa.

2 Concepto de calidad del software.


Antes de definir explcitamente que se entiende por calidad, se definir y explicar la importancia de las reas clave en el desarrollo de sistemas. Una de las causas mas fuertes para que sucediera la crisis del software, fue la falta de productividad. Resumindose en ella los motivos de la crisis del software : Falta de comunicacin con los usuarios. No existan construcciones de sistemas modulares, para as bajar el esfuerzo de ajuste y extensin. La mantenibilidad, no era un atributo del software. Esto quiere decir que nunca se pensaba al sistema en funcin del cambio. El esfuerzo de mantenimiento era alto. Entonces, la solucin era obviamente incrementar la productividad, que significaba resolver todos los problemas que dieron lugar a la crisis. Para esto debamos establecer reas clave. Segn la administracin, no todas las reas de una gestin brindan el mismo rendimiento ante idnticos esfuerzos, es decir, que en algunas las mejoras por unidad de esfuerzo sern mas significativas que en otras. Esas son las llamadas reas clave, y en principio son las reas sobre las que se ha desarrollar nuestra gestin. Analizando la distribucin de costos que insume un producto de software, salta a primera vista que el porcentaje mas alto se lleva el mantenimiento (70% a 80%), una actividad posterior al desarrollo. Entonces una manera de ser mas productivos es usar nuestros esfuerzos en nuevos sistemas y no as en mantener sistemas ya

Lic. Angel Baspineiro V.

Ingeniera de Sistemas SIS325-Planificacion, Ctrl y Calidad del SW. U.S.F.X.Ch. Tema : Calidad del Software hechos. Para esto debemos pensar el diseo de un sistema en funcin del cambio futuro, establecer una proceso para lograr especificaciones mantenibles. Se ha detectado un rea clave : la mantenibilidad. Otra rea clave que se deduce al pensar en como bajar los costos es la confiabilidad o fiabilidad, porque un producto confiable ayuda a bajar los costos de mantenimiento. Durante el desarrollo, se han revisado las distintas etapas de este, para que los errores no lleguen al usuario final sin ser detectados, de tal forma que el usuario pueda confiar en el software. Tanto la confiabilidad como la mantenibilidad son un complejo de cualidades, pero adems no son las nicas reas clave, existen otras reas de gestin no menos importantes como la portabilidad y la eficiencia. En verdad, veremos que estas reas se convertirn en factores de calidad y que sus cualidades sern las mtricas que se usarn para medirlas, cuando se hable de modelos de calidad. Se tomar la definicin de calidad que da McCall, que por supuesto es suceptible de ser ampliada o modificada : Es la concordancia con los requerimientos 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 Tomando esta definicin se puede decir que un sistema que no cumple con lo que se esperaba de el, en cuanto a funcionalidad y rendimiento, carece de calidad. Tambin se puede concluir que un sistema que no ha sido desarrollado usando una ingeniera, difcilmente lograr tener calidad, por que incluso la legibilidad del cdigo, que es una caracterstica implcita de la visin de ingeniera, podra no existir. Sin embargo, la definicin no es mas importante que saber como incorporar este elemento en nuestro producto, es por esto que muchos investigadores, ingenierios en software, a travs de los aos han ido estableciendo y mejorando distintos modelos para la calidad del software, que tratamos a continuacin.

3 Modelos para la calidad del software.


3.1 Modelo de McCall.

Segn McCall, existen tres aspectos importantes de un producto de software (Ver Figura 1):

Lic. Angel Baspineiro V.


Capacida d de Capacidad de adaptarse a nuevos

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software

Figura 1. Y adems, plantea que existen diversos factores que afectan a la calidad, vista desde estos tres puntos. Los factores que afectan a la capacidad de soportar cambios que tiene el software son : Facilidad de mantenimiento (mantenibilidad). Flexibilidad. Facilidad de Prueba (Evaluabilidad). Los factores que afectan a la capacidad de adaptarse a nuevos entornos que tiene el software son : Portabilidad. Reusabilidad. Interoperabilidad. Finalmente, los factores que afectan a las caractersticas operacionales que tiene el software son: Correccin. Fiabilidad. Eficiencia. Integridad. (Seguridad). Facilidad de uso.

Lic. Angel Baspineiro V.

Ingeniera de Sistemas SIS325-Planificacion, Ctrl y Calidad del SW. U.S.F.X.Ch. Tema : Calidad del Software A la vez, Mccall, plantea que cada uno de estos factores es un complejo de cualidades y si se quisiera medir en que grado se cumple o no con un factor determinado, se debera obtener primero una valoracin de las mtricas que lo componen. Como muchas mtricas son compartidas por muchos factores, los factores de calidad no son en s mutuamente excluyentes como parecan. La

Factores y Mtricas de calidad (McCall)


FACTOR
Interoperabilidad Facilidad de uso Facil de probar Mantenibilidad Reusabilidad Portabilidad

METRICA
Facilidad de auditora Exactitud Normalizacin de las comunicaciones Completitud Complejidad Concisin Consistencia Estandarizacin de los datos Tolerancia de error Eficiencia en la ejecucin Facilidad de expansin Generalidad Independ. del hardware Instrumentacin Modularidad Facilidad de operacin Seguridad Auto-Documentacin Simplicidad Indep. Del Sistema Facilidad de traza Capacitacin

X X X X X X X X X X X X X X X X X X X X X X X X X X X X

Flexibilidad

Integridad

Correcion

Fiabilidad

Eficiencia

X X X

X X X X X

X X X

X X

X X

X X

X X X

relacin entre factores y mtricas se muestra en la tabla.

Lic. Angel Baspineiro V.

Ingeniera de Sistemas SIS325-Planificacion, Ctrl y Calidad del SW. U.S.F.X.Ch. Tema : Calidad del Software La facilidad de auditora, es la facilidad con que se puede comprobar la conformidad con los estndares. Exactitud, es la precisin de los clculos y emisin de resultados. Normalizacin de las comunicaciones, se refiere al grado con que se usan los estndares de comunicacin. Completitud. En que grado han sido implementadas las funciones para el sistema. Consistencia. El grado en que las especificaciones externas se corresponden con las especificaciones internas. Estandarizacin de los datos. El uso de estructuras de datos y tipos estndar. Tolerancia al error. En que medida el sistema puede controlar los errores, para que estos no causen daos mayores. Eficiencia en la ejecucin. El rendimiento, muchas veces llamada performance que alcanza el sistema. Facilidad de expansin. El grado en que se puede ampliar el diseo arquitectnico, procedural o de datos. Generalidad. El grado en que el sistema es general, pero sin embargo puede ser parametrizado para adaptarse a situaciones en particular. Independencia del hardware. El grado en que el software es independiente del hardware sobre el que opera. Instrumentacin. El grado en que el programa muestra su propio funcionamiento e identifica errores que aparecen. Modularidad. La independencia funcional que alcanzan los componentes del programa, gracias a haber aplicado los principios de un buen diseo como son el bajo acoplamiento y alta cohesin. Facilidad de operacin. La medida en que se combina la facilidad de realizar una operacin en el sistema con el control que debe tener el usuario en dicha operacin. Seguridad. Mecanismos de seguridad lgica. Auto-documentacin. El grado en que el cdigo fuente proporciona documentacin significativa. Simplicidad. El grado en que un programa puede ser entendido sin dificultad. Independencia del sistema. El grado en que el software es independiente del S.O. y otras restricciones del ambiente en que se ejecuta. Facilidad de traza. Poder partir del codigo y llegar a la especificacin de requerimientos al seguir una pista. Capacitacin. El grado en que software ayuda para permitir que nuevos usuarios usen el sistema. 3.2 Modelo de calidad de Boehm, Brown y Lipow.

Barry Boehm, un conocido y adems precursor ingenierio de software de los 70 tambin realizo sus aportes propios al tema de la calidad del software. Por eso a Lic. Angel Baspineiro V. 6

Ingeniera de Sistemas SIS325-Planificacion, Ctrl y Calidad del SW. U.S.F.X.Ch. Tema : Calidad del Software continuacin se describimos el rbol de caracterizacin de la calidad del software que propuso junto a otros compaeros:
Portabilidad Confiabilidad Eficiencia Utilidad General dispositivos Utilidad Inmediata Ingeniera Humana Evaluabilidad. Mantenibilidad Entendibilidad Modificabilidad Independencia de dispositivos Autocontencin Precisin Completitud Robustez/ Integridad Consistencia Contabilizabilidad Eficiencia uso Accesibilidad Comunicatividad Autodescripcin Estructuracin Concisin Legibilidad Aumentabilidad

de

La conclusin de los autores es que no es posible resumir en un solo nmero todos los componentes y mtricas de calidad, sobre todo por que algunos componentes son conflictivos entre s. Por esto de acuerdo a las necesidades que se tienen del software, es que se derivan un orden de prioridades que le permite al administrador tomar decisiones sobre que tipo de atributos representan en el caso, la calidad del producto. Se puede ver en el rbol que la mantenibilidad y confiabilidad, que las habamos identificado como reas clave, agotan casi todo el conjunto de mtricas de calidad. Por tanto, se debe prestar mucha atencin en estas reas al desarrollar un sistema puesto que asientan la calidad en el producto final. 3.3 Modelo de calidad de segn la ISO-9126. (1991).

Despus de haber distintos progresos en el establecimiento de lo que es la calidad del software, la ISO (Organizacin Internacional para la Estandarizacin) trata de concluir sobre los modelos existentes y se puede decir que establece ciertas bases slidas para hablar de la calidad de un producto de software. En este apartado no se quiere profundizar en el tema, sin embargo existe mucho material escrito al cual se podran referir en caso necesario (Ver bibliografa), por ahora nos limitaremos a describir que es lo nuevo que incorpora este modelo. 1. La ISO-9126 establece las caractersticas de un modelo de calidad: Un modelo de calidad debera proveer una gua sistemtica para incluir la calidad en el software. Un modelo de calidad debera proveer una forma de identificar/clasificar sistemticamente caractersticas del software y defectos de calidad. Un modelo de calidad debera proveer una estructura que sea entendible hasta cierto nmero de niveles, refinable y adaptable. Lic. Angel Baspineiro V. 7

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software

2. Establece concretamente que la calidad esta compuesta por un conjunto de caractersticas que se pueden dividir en dos grupos : las caractersticas de alto nivel y las caractersticas de bajo nivel que sostienen, o que hacen posible la calidad. Esto se corresponde exactamente con lo que hasta este punto se entenda por factores y mtricas. Por ejemplo, una caracterstica de alto nivel es la mantenibilidad, que a su vez esta compuesto por un conjunto de atributos subordinados o de bajo nivel que son : Analizabilidad. (o Entendibilidad) Estabilidad. Testeabilidad. (o Evaluabilidad) Modificabilidad. 3. Se establece que aunque a priori las caractersticas de alto nivel son mutuamente excluyentes (confiabilidad, eficiencia, mantenibilidad, etc.) en realidad se sobreponen cuando vemos las caractersticas de bajo nivel que comparten. 4. La ISO-9126 establece claramente que un software de calidad no es aquel que tiene todas las caractersticas de calidad imaginables, si no es aquel que cumple con aquellas caractersticas de alto nivel que han sido estratgicamente elegidas, acorde a las necesidades mas importantes que se tenan para el software. 5. Este modelo de calidad hace mayor nfasis que otros en la reusabilidad, ponindola como una caracterstica de alto nivel. Adems define la siguientes caractersticas de alto nivel deseables en todo software. Funcionalidad. Mantenibilidad. Confiabilidad. Portabilidad. Usabilidad. Eficiencia. Reusabilidad. Casi todas estas caractersticas se definen por s mismas, sin embargo destacaremos la definicin que se da de reusabilidad o software reusable : es aquel que usa caractersticas estndar de un lenguaje, no depende del hardware, y su implementacin es simple, bien definida, encapsulada y cumple con una funcin especfica, no usa variables globales o provoca efectos colaterales. 6. Se establece una clasificacin para las caractersticas de bajo nivel que sostienen o hacen posible la calidad, en cuatro categoras bsicas :

Lic. Angel Baspineiro V.

Ingeniera de Sistemas SIS325-Planificacion, Ctrl y Calidad del SW. U.S.F.X.Ch. Tema : Calidad del Software Caractersticas de correccin. (Ej. Precisin) Caractersticas de descripcin. (Ej. Legibilidad) Caractersticas estructurales (Ej. Concisin) Caractersticas de modularidad(Ej. Expandibilidad).

4 Calidad en el desarrollo vs. Control de calidad.


El control de calidad generalmente se lo realiza al final cuando el producto ha sido terminado, si tiene algn defecto se realizan los ajustes necesarios para corregir el problema. Como los sistemas no son obtenidos en serie no se puede aplicar este tipo de control, sino es necesario poner todos los esfuerzos en controlar la calidad durante el desarrollo. 4.1 Areas Clave del Equipo de Desarrollo.

(1) Documentacin. Responsable: Jefe de documentacin. Tarea clave: Mantener accesible y actualizada toda la informacin del sistema. Metas: Retraso no mayor a tres das. Recuperacin inmediata de cualquier proyecto. Plan: Utilizacin de bases de datos, diccionario de datos y modelos.
(2) Productividad.

Responsables: Gerente tcnico, Diseador. Tarea clave: Aumentar las lneas cdigo ao por persona. Mejorar el sistema de desarrollo. Disminuir la tarea de mantenimiento por fallas. Metas: A menos 2500 lneas cdigo ao por persona. Triplicar la cantidad de mdulos por tiempo. Bajar la rotacin de mdulos al 70% del actual. Plan: Disponer de profesionales de primera lnea. Poseer software de apoyo a la produccin de diseo. (3) Mantenimiento. Responsables: Diseador, Jefe de control de calidad, Encargado de subsistema. Tarea clave: Mejorar la respuesta al usuario por cambio leve en las especificaciones. Minimizar las fallas de operacin. Metas: La repuesta debe tardar mximo 5 das hbiles. Identificar el 90% de errores cometidos en el sistema antes de su implantacin definitiva. Plan: Utilizar el diseo modular estructurado. Realizar pruebas y revisiones estructuradas. (4) Control de Proyecto. Lic. Angel Baspineiro V. 9

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software

Responsable: Gerente tcnico. Tarea clave: Estimar costos, plazos y tareas con el control sobre el efecto de los retrasos. Metas: Reconocer al cliente diferencias de costo superiores al 5% dentro de los 10 das hbiles de producidos. Plan: Utilizar herramientas Pert, Gantt, Costos y Mtricas. (5) Eficiencia en la comunicacin. Responsable: Analista de sistemas. Tarea clave: Expresar especificaciones externas en trminos comprensibles por el usuario y sin ambigedad para el equipo de desarrollo. Metas: Reducir al 50% las horas dedicadas al intercambio de informacin y de aprobacin por el usuario. Plan: Utilizar el anlisis estructurado y otras tcnicas estructuradas.
(6) Integridad conceptual.

Responsable: Diseador. Tarea clave: Mantener las funciones del sistema, coherentes, sencillas y completas. Metas: Reducir tiempos de entrenamiento de usuarios. Plan: Diseo estructurado o tcnicas estructuradas. (7) Consistencia y Seguridad. Responsable: Administrador de la base de datos. Tarea clave: Garantizar la coherencia de los datos del sistema entre s y con el objeto modelado. Metas: Estandarizar el 100% de los datos, normalizarlos e independizar su almacenamiento de los proceso que los usan. Plan: Utilizar tecnologa de bases de datos relacionales.
(8) Moral.

Responsable: Gerente tcnico. Tarea clave: Concientizar al personal en la persecucin de objetivos comunes. Metas: Eliminar en lo posible la rotacin del personal. Plan: Capacitacin y conciencia en los miembros del grupo. 4.2 Factores que Influyen en la Calidad y Productividad.

(1) Habilidad individual:

Destreza de quienes hacen el desarrollo terico como analistas, ingenieros, tcnicos y programadores.

Lic. Angel Baspineiro V.

10

Ingeniera de Sistemas SIS325-Planificacion, Ctrl y Calidad del SW. U.S.F.X.Ch. Tema : Calidad del Software (2) Comunicacin del equipo: La estructuracin del grupo de desarrollo, que puede ser jerrquico o democrtico. (3) Complejidad del producto: Un producto de poca complejidad tendr ms facilidad de ser un software de buena calidad. (4) Notacin apropiada: Facilita la comunicacin y por tanto aumenta la calidad y productividad. (5) Enfoque sistemtico: Las partes del sistema no deben tomarse por separado sino integralmente. (6) Nivel de tecnologa: Cuando mejor tecnologa se utilice en el desarrollo del producto, se obtendr productos de mejor calidad. (7) Confiabilidad requerida: Cuanto ms confiabilidad en un producto mejor calidad del mismo. (8) Tiempo disponible: Cuanto ms tiempo se disponga para el desarrollo, es probable que se obtenga un mejor producto. (9) Entendimiento del problema: Teniendo un conocimiento amplio del domino, se disminuye las posibilidades de error. (10) Estabilidad de requerimientos: Si se cambian los requerimientos, puede cambiar la estructura del sistema. (11) Destreza requerida: Se refiere a la habilidad de los miembros del grupo de desarrollo. (12) Facilidades y recursos: Eliminar toda clase de burocracia (estructura centralizada). (13) Entrenamiento: Haber tenido experiencia en proyectos similares. (14) Conocimientos de administracin: La creatividad en la administracin del proyecto y del grupo, influye en la calidad de producto. 4.3 Garanta de la calidad del software

Existen un conjunto de actividades que se deben realizar en el desarrollo de un sistema para ir gradualmente asentando la calidad el producto final: Aplicacin de metodologas, por que sin ellas no tendramos una visin de ingeniera para el producto. Revisiones tcnicas formales, osea reuniones del personal tecnico para poder validar cada etapa del desarrollo, descubriendo problemas de calidad. Prueba del software, no con la intencin de obtener un software con 0% de error, sino para garantizar la confianza en el. Ajuste a los estndares. Control del cambio. Como tener mantenimiento efectivo sino se tienen especificaciones mantenibles. Mediciones. No se puede controlar lo que no se puede medir. Tom de Marco. Registro y realizacin de informes. Adems de haber definido estas actividades, es importante que el rea de sistemas este bien organizada. A continuacin se describe un organigrama propuesto por Boria para esta rea : Lic. Angel Baspineiro V. 11

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software


Direcci n

Mtricas

Calidad

Modelos

Desarroll o

Serv. usuarios

Requerimientos

Adm.Datos

Operacin

Mesa de Apoyo

Programacin

Soporte Tcnico

Manejo de Config

Figura 2. Organigrama del area de sistemas.

Lic. Angel Baspineiro V.

12

Ingeniera de Sistemas SW. U.S.F.X.Ch.

SIS325-Planificacion, Ctrl y Calidad del Tema : Calidad del Software

5 Bibliografa.
Pressman, Robert. Ingeniera del Software : Un enfoque prctico. Boria, Jorge Luis. Ingeniera del Software. Ed. Kapeluz . Argentina. IEEE Transactions on Software Engineering. Vol 21. N 1, January 1995. Documentacin sobre Software Quality encontrada en la Web bajo el nombre de IEEE Transactions. Curso sobre Modelos,Procesos y mtricas. Dictado por J.L Boria, Nov 1992. Salta Argentina.

Lic. Angel Baspineiro V.

13

Você também pode gostar