Calidad Del Software

Texto completo

(1)

Conceptos de calidad del Software

Conceptos de calidad del Software

Proceso eficaz de software que se aplica de manera que crea un producto útil que Proceso eficaz de software que se aplica de manera que crea un producto útil que proporciona valor medible a quienes lo producen y quienes lo utilizan.

proporciona valor medible a quienes lo producen y quienes lo utilizan. Un

Un

 pro

 proces

ces o

o eficaz de software

eficaz de software

establece la infraestructura que da apoyo a cualquierestablece la infraestructura que da apoyo a cualquier esfuerzo de elaboración de un producto de software de

esfuerzo de elaboración de un producto de software de alta calidad.alta calidad. Un

Un

 pr

 produc

oducto

to útil

útil

entrega contenido, funciones y características que el usuario finalentrega contenido, funciones y características que el usuario final desea; sin embargo, de igual importancia es que entrega estos activos en forma desea; sin embargo, de igual importancia es que entrega estos activos en forma confiable y libre de errores.

confiable y libre de errores.  Al

 Al

agr

agr eg

eg a

ar

r val

valor para e

or para el productor y

l productor y pa

para el usuari

ra el usuari o

o

de un producto, el software dede un producto, el software de alta calidad proporciona beneficios a la organización que lo produce y a la comunidad alta calidad proporciona beneficios a la organización que lo produce y a la comunidad de usuarios finales

de usuarios finales

Factores de la calidad ISO 9126

Factores de la calidad ISO 9126

El estándar ISO 9126 se desarrolló con la intención de identificar los atributos clave del El estándar ISO 9126 se desarrolló con la intención de identificar los atributos clave del software de cómputo.

software de cómputo.

Funcionalidad.

Funcionalidad.

Grado en el que el software satisface las necesidades planteadasGrado en el que el software satisface las necesidades planteadas según las

según las establecen los atributos siguientes: establecen los atributos siguientes: adaptabiladaptabilidad, exactitud, idad, exactitud, interoperabiinteroperabilidad,lidad, cumplimiento y seguridad.

cumplimiento y seguridad.

Confiabilidad.

Confiabilidad.

Cantidad de tiempo que el software se encuentra disponible para su uso,Cantidad de tiempo que el software se encuentra disponible para su uso, según lo indican los siguientes atributos: madurez, tolerancia a fallas y r

según lo indican los siguientes atributos: madurez, tolerancia a fallas y r ecuperaecuperación.ción.

Usabilidad.

Usabilidad.

Grado en el que el software es fácil de usar, según lo indican los siguientesGrado en el que el software es fácil de usar, según lo indican los siguientes subatributos: entendible, aprendible y operable.

subatributos: entendible, aprendible y operable.

Eficiencia.

Eficiencia.

Grado en el que el software emplea óptimamente los recursos del sistema,Grado en el que el software emplea óptimamente los recursos del sistema, según lo indican los subatributos siguientes: comportamiento del tiempo y de los según lo indican los subatributos siguientes: comportamiento del tiempo y de los recursos.

recursos.

Facilidad de recibir mantenimiento.

Facilidad de recibir mantenimiento.

Facilidad con la que pueden efectuarseFacilidad con la que pueden efectuarse reparaciones al software, según lo indican los atributos que siguen: analizable, reparaciones al software, según lo indican los atributos que siguen: analizable, cambiable, estable, susceptible de someterse a

cambiable, estable, susceptible de someterse a pruebas.pruebas.

Portabilidad.

Portabilidad.

Facilidad con la que el software puede llevarse de un ambiente a otroFacilidad con la que el software puede llevarse de un ambiente a otro según lo indican los siguientes atributos: adaptable, instalable, conformidad y sustituible. según lo indican los siguientes atributos: adaptable, instalable, conformidad y sustituible.

Factores de calidad que se persiguen

Factores de calidad que se persiguen

Para hacer la evaluación, se necesita determinar atributos específicos y medibles (o Para hacer la evaluación, se necesita determinar atributos específicos y medibles (o alal menos reconocibles) de la interfaz. Por ejemplo [Bro03]:

menos reconocibles) de la interfaz. Por ejemplo [Bro03]:

Intuitiva

Intuitiva.

.

Grado en el que la interfaz sigue patrones esperados de uso, de modo queGrado en el que la interfaz sigue patrones esperados de uso, de modo que hasta un novato la

(2)

Eficiencia.

Grado en el que es posible localizar o iniciar las operaciones y la información.

Robustez.

Grado en el que el software maneja entradas erróneas de datos o en el que se presenta interacción inapropiada por parte del usuario.

Riqueza.

Grado en el que la interfaz provee un conjunto abundante de características.

El dilema de la calidad del software

En una entrevista publicada en la web, Bertrand Meyer analiza lo que se denomina el dilema de la calidad:

Si produce un sistema de software de mala calidad, usted pierde porque nadie lo querrá comprar. Por otro lado, si dedica un tiempo infinito, demasiado esfuerzo y enormes sumas de dinero para obtener un elemento perfecto de software, entonces tomará tanto tiempo terminarlo y será tan caro de producir que de todos modos quedará fuera del negocio. En cualquier caso, habrá perdido la ventana de mercado, o simplemente habrá agotado sus recursos. De modo que las personas de la industria tratan de situarse en ese punto medio mágico donde el producto es suficientemente bueno para no ser rechazado de inmediato, no en la evaluación, pero tampoco es un objeto perfeccionista ni con demasiado trabajo que lo convierta en algo que requiera demasiado tiempo o dinero para ser terminado.

¿qué significa “suficientemente bueno”? El software suficientemente bueno contiene las funciones y características de alta calidad que desean los usuarios, pero al mismo tiempo tiene otras más oscuras y especializadas que contienen errores conocidos. El vendedor de software espera que la gran mayoría de usuarios finales perdone los errores gracias a que estén muy contentos con la funcionalidad de la aplicación.

El costo de la calidad

La calidad tiene un costo que puede estudiarse en términos de prevención, evaluación y falla. Los costos de prevención incluyen todas las acciones de la ingeniería de software diseñadas para prevenir los defectos. Los costos de evaluación están asociados con aquellas acciones que evalúan los productos del trabajo de software para determinar su calidad. Los costos de falla incluyen el precio interno de f allar y los efectos externos que precipitan la mala calidad.

Lograr la calidad del software

Es el resultado de la buena administración del proyecto y de una correcta práctica de la ingeniería de software. La administración y práctica se aplican en el contexto de cuatro actividades principales que ayudan al equipo de software a lograr una alta calidad en éste: métodos de la ingeniería de software, técnicas de administración de proyectos, acciones de control de calidad y aseguramiento de la calidad del software.

Métodos de la ingeniería de software:

ser capaz de crear un diseño que esté de acuerdo con el problema y que al mismo tiempo tenga características que lleven al software a las dimensiones y factores de calidad.

(3)

Técnicas de administración de proyectos:

  Las implicaciones son claras: si 1) un gerente de proyecto usa estimaciones para verificar que las fechas pueden cumplirse, 2) se comprenden las dependencias de las actividades programadas y el equipo resiste la tentación de usar atajos, 3) la planeación del riesgo se lleva a cabo de manera que los problemas no alienten el caos, entonces la calidad del software se verá influida de manera positiva.

Control de calidad:

El control de calidad incluye un conjunto de acciones de ingeniería de software que ayudan a asegurar que todo producto del trabajo cumpla sus metas de calidad.

Aseguramiento de la calidad:

El aseguramiento de la calidad establece la infraestructura de apoyo a los métodos sólidos de la ingeniería de software, la administración racional de proyectos y las acciones de control de calidad, todo de importancia crucial si se trata de elaborar software de alta calidad. La meta del aseguramiento de la calidad es proveer al equipo administrativo y técnico los datos necesarios para mantenerlo informado sobre la calidad del producto, con lo que obtiene perspectiva y confianza en que las acciones necesarias para lograr la calidad del producto funcionan.

TÉCNICAS DE REVISIÓN

Las revisiones del software son un “filtro” para el proceso del software. Es decir, se aplican en varios puntos durante la ingeniería de software y sirven para descubrir errores y defectos a fin de poder eliminarlos. Las revisiones del software “purifican” los productos del trabajo de la ingeniería de software, incluso los modelos de requerimientos y diseño, código y datos de prueba.

Amplificación y eliminación del defecto

Para ilustrar la generación y detección de errores durante las acciones de diseño y generación de código de un proceso de software, puede usarse un modelo de amplificación del defecto. En la figura se ilustra esquemáticamente el modelo. Un cuadro representa una acción de la ingeniería de software. Durante la acción, los errores se generan de manera inadvertida. La revisión puede fracasar en descubrir los errores nuevos que se generan y los cometidos en etapas anteriores, lo que da como resultado cierto número de errores pasados por alto. En ciertos casos, los errores de etapas anteriores ignorados son amplificados (en un factor x de amplificación) por el trabajo en curso. Las subdivisiones de los cuadros representan a cada una de estas características y al porcentaje de eficiencia de la detección de errores, que es una función de la profundidad de la revisión.

(4)

MÉTRICAS DE REVISIÓN Y SU EMPLEO

 Aunque se han definido muchas métricas para las revisiones técnicas, un conjunto relativamente pequeño da una perspectiva útil. Las siguientes métricas para la revisión pueden obtenerse conforme se efectúe ésta:

Esfuerzo de preparación, Ep: esfuerzo (en horas-hombre) requerido para revisar un producto del trabajo antes de la reunión de revisión real.

Esfuerzo de evaluación, Ea: esfuerzo requerido (en horas-hombre) que se dedica a la revisión real.

Esfuerzo de la repetición, Er : esfuerzo (en horas-hombre) que se dedica a la corrección de los errores descubiertos durante la revisión.

Tamaño del producto del trabajo, TPT : medición del tamaño del producto del trabajo que se ha revisado (por ejemplo, número de modelos UML o número de páginas de documento o de líneas de código).

Errores menores detectados, Errmenores: número de errores detectados que pueden clasificarse como menores (requieren menos de algún esfuerzo especificado para corregirse).

Errores mayores detectados, Err mayores: número de errores encontrados que pueden clasificarse como mayores (requieren más que algún esfuerzo especificado para corregirse).

Estas métricas pueden mejorarse, asociando el tipo de producto del trabajo que se revisó con las métricas obtenidas.

Análisis de las métricas

 Antes de comenzar el análisis deben hacerse algunos cálculos sencillos. El esfuerzo total de revisión y el número total de errores descubiertos se definen como sigue:

E revisión =Ep + Ea + Er

Errtot =Errmenores + Errmayores

La densidad del error representa los errores encontrados por unidad de producto del trabajo revisada.

Densidad del error= Errtot / TPT

Si las revisiones se llevan a cabo para varios tipos distintos de productos del trabajo (por ejemplo, modelo de requerimientos, modelo del diseño, código, casos de prueba, etc.), el porcentaje de errores no descubiertos por cada revisión se confronta con el número total de errores detectados en todas las revisiones. Además, puede calcularse la densidad del error para cada producto del trabajo.

(5)

Una vez recabados los datos para muchas revisiones efectuadas en muchos proyectos, los valores promedio de la densidad del error permiten estimar el número de errores por hallar en un nuevo documento (aún no revisado).

Eficacia del costo de las revisiones

Es difícil medir en tiempo real la eficacia del costo de cualquier revisión técnica. Una organización de ingeniería de software puede evaluar la eficacia de las revisiones y su relación costo-beneficio sólo después de que éstas han terminado, de que las unidades de medida de la revisión se han recabado, de que los datos promedio han sido calculados y de que la calidad posterior del software ha sido medida (med iante pruebas).

Figure

Actualización...

Referencias

Actualización...