2. Calidad del software
La calidad del software es el conjunto de cualidades que lo caracterizan y que
determinan su utilidad y existencia. La calidad es sinónimo de eficiencia,
flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad,
seguridad e integridad.
La obtención de un software con calidad implica la utilización de metodologías
o procedimientos estándares para el análisis, diseño, programación y prueba
del software que permitan uniformar la filosofía 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.
3. Modelos calidad del software
CMM (capacidad del modelo de madurez): El CMM tiene
como objetivo evaluar los procesos en sus distintos
niveles de madurez, identificar los niveles a través de los
cuales una organización debe formarse para establecer
una cultura de excelencia en la ingeniería de software.
ISO (Organización Internacional de Normalización): La
norma ISO/IEC 9003 proporciona una guia necesaria en
las organizaciones para la aplicacion de la ISO 9001 a la
adquisicion de sumistro, desarrollo, operacion y
mantenimiento de software y sus servicios relacionados.
Identifica todos los aspectos que deberian ser tratados y
es independiente de la tecnologia, modelos de ciclos de
vida, procesos de desarrollo y estructuras
organizacionales
4. Normativa iso 9000
Pone a disposición de un auditor o certificador los
procesos internos, de forma que este indique si
cumple o no la normativa al 100%, audita el
sistema; Si los resultados son positivos se emite la
certificación y cada cierto tiempo se tiene que
renovar; La certificación es costosa, a
consecuencia de costes que ocasionan la lejanía
y el tiempo de duración de proceso (aprox. 6
meses). Se certifica la empresa y la metodología
para el desarrollo de la aplicación.
5. Tipos de medidas
•
Número de errores durante un periodo determinado.
•
Fallo en la codificación o diseño de un sistema que
causa que el programa no funcione correctamente o
falle.
•
Tamaño de un producto informático (líneas de código)
•
Métrica de punto función: relaciona funcionalidades
que ofrecía.
•
Estimación de costes y esfuerzos.
•
COCOMO
6.
7. Utilidad de la medida del
software
Consecuencia de su proceso interno de asegurar la calidad,
cuantificar los atributos que constituyen la calidad para
el usuario final, ahí tenemos los resultados cuantitativos. Saber
que aquello que al usuario final le interesa lo tenga o no un
producto y permita cuantificar almacenar otros productos.
Normativa ISO 9126, medida de la calidad de software
descomponiendo atributos, para no tener márgenes de error e
interpretación.
Atributo de funcionalidad.
Atributo de capacidad de respuesta frente a errores externos.
Atributo de nivel de seguridad. La calidad no puede existir sin
seguridad, un producto sin seguridad seria un producto sin
calidad. El observador o usuario final indica que atributos más o
menos importantes de seguridad.
10. LOS FACTORES DE CALIDAD SIRVEN PARA
DESCOMPONER
EL
CONCEPTO
DE
«CALIDAD» EN OTROS MÁS SENCILLOS, PARA
FACILITAR SU CONTROL, Y SU MEDICIÓN.
11. FACTORES OPERATIVOS:
•
CORRECCIÓN: EL SOFTWARE CUMPLE CON
LAS ESPECIFICACIONES.
•
FIABILIDAD: GRADO QUE EL SOFTWARE ES
CONFIABLE.
•
EFICIENCIA: NECESIDAD DE RECURSOS DEL
SOFTWARE Y HARDWARE DEL PRODUCTO.
•
SEGURIDAD: GRADO EN EL QUE PUEDE
CONTROLARSE EL ACCESO AL SOFTWARE Y
A LOS DATOS.
•
FACILIDAD DE USO: GRADO DE ESFUERZO
NECESARIO PARA UTILIZAR EL SOFTWARE.
12. FACTORES DE MANTENIMIENTO:
• FLEXIBILIDAD: ESFUERZO NECESARIO
PARA MODIFICAR UN PROGRAMA.
• FACILIDAD DE PRUEBA: ESFUERZO
REQUERIDO PARA REALIZAR LAS
PRUEBAS DE UN PROGRAMA.
• FACILIDAD
DE MANTENIMIENTO:
ESFUERZO
REQUERIDO
PARA
LOCALIZAR Y REPARAR UN ERROR.
13. FACTORES EVOLUTIVOS:
•
PORTABILIDAD: FACILIDAD DE INMIGRAR
UN SOFTWARE DE UN ENTORNO DE
OPERACIÓN A OTRO.
•
CAPACIDAD DE REUTILIZACIÓN: GRADO DE
UN PROGRAMA O PARTE DEL MISMO SE
PUEDE UTILIZAR EN OTRAS APLICACIONES.
•
CAPACIDAD
DE
INTEROPERACIÓN:
ESFUERZO NECESARIO PARA QUE UN
SOFTWARE OPERE CONJUNTAMENTE CON
OTROS SISTEMAS.