Atributos de Calidad del Software - Project...

35
Atributos de Calidad del Software

Transcript of Atributos de Calidad del Software - Project...

Atributos de Calidad del Software

► Los usuarios comúnmente se centran en lo que el sistema debe hacer por ellos y no piensan en otros atributos que el software debe tener.

► Son los analistas los que deben estar pendientes de estos atributos que son igualmente importantes.

Atributos de Calidad (AC)

► Existen 12 atributos de calidad que se deben cuidar en el desarrollo de todo producto de software y se puede agrupar en AC importantes para el usuario y AC que son importantes para los desarrolladores.

►Cuando se analiza una situación se debe pensar que cuales de estos AC son básicos.

AC importantes para usuarios

►Disponibilidad ► Eficiencia ► Flexibilidad ► Integridad ► Interoperabilidad ►Confiabilidad ►Robustez ►Usable

AC importantes para desarrolladores

►Mantenimiento ► Portabilidad ►Reusable ►Comprobable ►Gestionable ► Seguridad

► Según el tipo de sistema algunos AC son claves: ▪ Ej.

►Sistemas Empotrados : Eficiencia y confiabilidad ►Sistemas Web : disponibilidad, integridad, y

mantenimiento, escalabilidad. ►Sistemas de escritorio: interoperabilidad y usable

Atributos que definen Calidad

► Los requerimientos del usuario son usualmente medibles o cuantificables.

► Los requerimientos de calidad no. ► Sin embargo los Ingenieros de sistemas deben

buscar mecanismos para medir y verificar todos los atributos.

► El IEEE 1992 aporta o facilita una guía para realizar este trabajo.

Atributos de Calidad

Atributos importantes para los usuarios

►Disponibilidad: Es el tiempo que el sistema estará disponible para los usuarios. ▪ Ej. El sistema debe esta disponible al menos el 99.5%

del tiempo entre semana de 6 a.m. a 12 m.n. y 99.95% del tiempo en fin de semana de 4 p.m. a 6p.m.

►Otros requerimientos de este tipo pueden hablar además de el rendimiento o la velocidad a la que debe estar disponible el sistema.

Atributos importantes para los usuarios (cont.)

► Eficiencia: es el atributo que dice cómo el sistema utiliza el equipo (procesador, espacio en disco, memoria, ancho de banda, etc). Si un sistema consume muchos recursos su rendimiento de ve afectado y por ende el usuario. ▪ Ej. Al menos 25% de la capacidad del procesador y

la RAM disponible para el sistema con condiciones pico.

Atributos importantes para los usuarios (cont.)

► Flexibilidad: es la medida que dice cuan fácil es agregar nuevas capacidades al sistema. ▪ Un programador que tenga al menos 6 meses de

experiencia dando soporte a este sistema debería ser capaz de instalar un dispositivo de salida externo (incluyendo modificación de código y pruebas) en no más de una hora.

Atributos importantes para los usuarios (cont.)

► Integridad: Es el atributo que habla de la seguridad de datos y sistema, accesos no autorizados, pérdida de información, protección contra virus, privacidad y seguridad de los datos. ▪ Ej. Sólo usuarios con privilegios de Auditores podrán

acceder a los historiales de transacciones de clientes.

Atributos importantes para los usuarios (cont.)

► Interoperabilidad: mide cuan fácil el sistema puede intercambiar datos o servicios con otros sistemas. ▪ Ej. El sistema debe ser capaz de importar cualquier

estructura química válida de … (tabla, archivo etc.)

Atributos importantes para los usuarios (cont.)

►Confiabilidad : Mide la probabilidad de que el software se ejecute sin errores por un periodo de tiempo. ▪ Ej. No más de 5 ejecuciones experimentales en

1000 pueden se pueden perder por fallas del producto.

Atributos importantes para los usuarios (cont.)

►Robustez : Es la medida que dice el grado en el cual el sistema continua operando con propiedad luego de una entrada inválida, defectos en la conexión o condiciones inesperadas. ▪ Ej. Si el editor falla antes de que el usuario guarde

su archivo, el editor deberá ser capaz de recuperar todos los cambios hechos en el archivo durante el último minuto.

Atributos importantes para los usuarios (cont.)

►Usable: Mide el esfuerzo requerido para preparar entradas, operaciones o para interpretar salidas del producto. Se refiere a que tanto el sistema es “amigable” con el usuario. ▪ Ej. Un usuario entrenado debería ser capaz de

ingresar una consulta completa en un promedio de 4 a 6 minutos.

Atributos importantes para los desarrolladores (cont.)

►Mantenimiento : Indica cuan fácil es corregir un defecto o realizar una modificación al sistema. ▪ Ej. Un programador deberá ser capaz de modificar

un reporte existente en 5 horas o menos de trabajo.

Atributos importantes para los desarrolladores (cont.)

► Portabilidad : Mide el esfuerzo requerido para migrar una parte del software de un ambiente operacional a otro.

►Reusabilidad: Indica el esfuerzo para reutilizar un componente de un sistema en otro. ▪ Ej. La funciones de la entrada de la estructura química

deben ser diseñadas para ser reusadas en el nivel de código objeto en otra aplicación.

Atributos importantes para los desarrolladores (cont.)

►Comprobable: se refiere al esfuerzo que se hace para buscar errores. ▪ Ej. La máxima complejidad “ciclomática” de un

módulo no puede exceder a 20.

Requerimientos de Rendimiento

►Definen que tan bien o que tan rápido el sistema debe realizar una función. Comprenden velocidad (base de datos, tiempo de respuesta, por ej.) capacidad ( concurrencia, por ej.), cronometrajes. ▪ Ej. El ciclo de control de temperatura debe ser

ejecutado completamente en 80 milisegundos.

Aseguramiento de la calidad del software

Introducción

Según el Instituto Internacional de Normas (International Standards Organization, ISO), calidad es "la totalidad de las características de un producto o servicio, que tienen que ver con su capacidad de satisfacer necesidades enunciadas o implícitas"

22

Calidad del Software

Es la "concordancia con las necesidades funcionales y de rendimiento explícitamente establecidas, con los estándares de desarrollo exp l í c i tamente documentados y con las características implícitas que se esperan de todo software desarrollado profesionalmente."

23

Características de Calidad

► Funcionalidad: existencia de un conjunto de funciones (servicios) para satisfacer necesidades.

►Confiabilidad: capacidad para mantener el nivel de desempeño bajo condiciones enunciadas y

períodos de tiempo enunciados.

►Utilizabilidad: esfuerzo necesario para el uso eficaz del sistema.

24

► Eficiencia: relación entre rendimiento y recursos utilizados.

► Mantenibilidad: esfuerzo necesario para realizar modificaciones especificadas.

► Portabilidad: capacidad de transferir un sistema de un ambiente a otro.

► Auditabilidad: facilidad para determinar que el sistema hace lo requerido, ni más ni menos.

25

Características de Calidad

Gestión de la Calidad de los Sistemas de Información

26

Aseguramiento de la calidad

► Producto: Un patrón planificado y sistemático de todas las acciones

necesarias para proveer la confianza adecuada en que el producto cumple con requer imientos técnicos preestablecidos.

► Proceso: Un patrón planificado y sistemático de todas las acciones

necesarias para proveer la confianza adecuada en que el proceso esté conforme con estándares preestablecidos.

27

Un principio básico del cual debe partirse es que la calidad de un producto de software se da por construcción. Las características de calidad son puestas en unproducto por su creador.

28

En síntesis

Buscar calidad en el proceso ⇒ obtener calidad

en el producto

Conocer productividad y calidad ⇒ poder mejorar

continuamente el rendimiento

29

Medios para lograr calidad

► Comprometer a la organización con la calidad

► Utilizar las mejores prácticas de ingeniería de software.

► Enfatizar prevención de defectos o su corrección temprana.

► Generar registros que permitan determinar eficacia y

eficiencia.

► Usar registros previos para la mejora continua del proceso.

► Apoyarse en herramientas donde sea pertinente.

30

Aseguramiento de la calidad - Responsabilidades:

► Documentar las políticas de aseguramiento de la calidad establecidas por la administración superior.

► Prescribir políticas y procedimientos para el control de la calidad.

► Proveer capacitación, orientación y asesoría internas en lo concerniente al control de la calidad.

31

► Dar seguimiento (“monitorear”) continuo a los productos de software y a los procesos de desarrollo, para introducir mejoras oportunas.

► Velar porque se cumplan los estándares y procedimientos establecidos, tanto para proceso como para producto.

► Establecer las medidas de aseguramiento de la calidad de los sistemas desarrollados por proveedores externos.

32

Aseguramiento de la calidad - Responsabilidades:

Control de Calidad

El control de la calidad es el conjunto de técnicas operativas y actividades utilizadas para satisfacer los requerimientos de calidad.

El control se enfatiza sobre productos, de manera que se pueda comprobar que satisfacen sus especificaciones o que cumplen con valores predeterminados para ciertos atributos.

33

El control de la calidad se aplica de diversas maneras:

► Verificar que un diseño cubre todos los requerimientos especificados para un sistema.

► Probar que un programa cumple con todos los casos de prueba pre-diseñados para él.

► Comprobar en una inspección que un módulo satisface su especificación.

► Medir el tiempo de respuesta en sistema de procesamiento de transacciones.

34

Pasos para el Control de la Calidad

1. Definir los atributos de calidad y sus niveles.

2. Definir el procedimiento de comprobación para cada atributo.

3. Ejecutar el procedimiento de comprobación sobre cada atributo.

4. Registrar el resultado de la comprobación. 5. Tomar acciones correctivas, registrarlas y darles

seguimiento.

35