Subido por Federico Farias

AtributosCalidad

Anuncio
Universidad
Nacional de
General
Sarmiento
Ingeniería de Software
Atributos de Calidad.
Atributos de Calidad
8La funcionalidad es sólo una parte de lo que un sistema debe hacer.
8Además, están los atributos de calidad (“ilities”), que hablan de
características específicas que debe tener el sistema. Necesitamos
conocerlos para definir una arquitectura.
0Ejemplo: portabilidad, flexibilidad, usabilidad.
8Es una forma alternativa (más reciente) de llamar a los requerimientos
no funcionales
8En muchos casos, los atributos de calidad se afectan entre si. Por
ejemplo, portabilidad vs. performance o flexibilidad vs. performance
8La importancia de estos atributos varía con el dominio para el cual se
construye el software.
Ingeniería de Requerimientos
8Requerimientos Funcionales “de negocio”
8Atributos de Calidad Requeridos
8Restricciones.
Distintas clasificaciones de atributos de calidad
8IEEE Std 1061 / ISO 9126
0Efficiency
0Functionality
0Maintainability
0Portability
0Reliability
0Usability
8MITRE
Efficiency
Reliability
Maintainability
Interoperability
Integrity
Correctness
Flexibility
Usability
Expandability
Reusability
Survivability
Verifiability
Portability
Atributos de calidad: Apertura en ISO 9126
8Funcionalidad
0Adecuación – Corrección – Interoperabilidad – Seguridad –
Conformidad
8Fiabilidad (Reliability)
0Madurez – Tolerancia a Fallas – Recuperabilidad
8Usabilidad
0Aprendibilidad – Comprensibilidad – Operabilidad – Atractividad
8Eficiencia
0Comportamiento Temporal – Utilización de Recursos
8Mantenibilidad
0Analizabilidad – Cambiabilidad – Estabilidad – Facilidad de Prueba
8Portabilidad
0Adaptabilidad – Instalabilidad – Coexistencia – Reemplazabilidad
Atributos de Calidad
8Vamos a revisar los siguientes:
8Disponibilidad
8Facilidad de cambios
8Performance
8Escalabilidad
8Seguridad
8Facilidad de testeo
8Usabilidad
Atributos de Calidad - Disponibilidad
8Relacionada con fallas (“failures”) en el sistema y sus consecuencias
asociadas.
8Un “failure” ocurre cuando un sistema no entrega más un servicio de
acuerdo con su especificación.
8Esas “failures” son observables por los usuarios (personas u otros
sistemas).
8Error <> Defecto (defect) <> Fault <> Failure
8Tiempo de reparación = tiempo hasta que la falla no es más observable
8Disponibilidad = probabilidad de que un sistema esté disponible cuando se
lo necesite
0D = Mean Time to Failure / (Mean Time to Failure + Mean Time to
Repair)
8Los “downtimes” programados no se consideran
8Relativamente fácil de especificar, difícil de verificar
Atributos de Calidad - Facilidad de cambios
8Relacionado con el costo de los cambios. Uno de los atributos de calidad
más difíciles de expresar.
8Temas importantes:
0¿Qué puede cambiar?
0Funcionalidad
0Plataforma
0Otros atributos de calidad
0Interfaces
8¿Quién y dónde se hace el cambio?
0Usuarios, desarrolladores, administradores
0Código, configuración, parametrización
8Una vez que un cambio se especifica, debe ser diseñado, implementado,
probado y liberado.
Atributos de Calidad - Performance
8Relacionado con el tiempo que le lleva al sistema responder a un evento
que ocurre (interrupciones, mensajes, pedidos de usuarios o paso del
tiempo).
0Latencia: tiempo entre la llegada del estímulo y el inicio de la
respuesta del sistema
0“Jitter”: variación en la latencia
0Deadlines: límites de tiempo para un proceso
0Throughput: cantidad de transacciones que el sistema puede
procesar en un período de tiempo
0Eventos no procesados
8Difícil de expresar. Depende de volúmenes del sistema, equipamiento en
uso y versiones de sistema operativo y otros software de base.
Atributos de Calidad - Seguridad
8Habilidad de un sistema para resistir usos no autorizados y seguir
proveyendo sus servicios a usuarios legítimos. Incluye:
0Nonrepudiation: mecanismos para asegurar que quienes hicieron algo
no puedan negarlo
0Condifencialidad: propiedad por la cual datos o servicios son
protegidos de accesos no autorizados
0Integridad: propiedad por la cual datos o servicios se brindan como
fue previsto.
0Disponibilidad (en el contexto de seguridad): que un sistema esté
disponible para su uso legítimo
0Auditabilidad: habilidad de un sistema para hacer un seguimiento de
actividades realizadas
Atributos de Calidad - Facilidad de testeo
8Facilidad que presenta un sistema para que se ejecuten sobre él
actividades de testing.
8Para eso se debe poder controlar el estado interno de un componente y
poder ver sus outputs. Normalmente se utilizan los llamados “test harness”
(hay herramientas comerciales que los implementan).
Atributos de Calidad – Otros Atributos
8Usabilidad: Relacionada con la facilidad con la cual un usuario puede
cumplir una tarea o utilizar un servicio ofrecido por el sistema y el tipo de
soporte que provee el sistema.
0Aprender la funcionalidad del sistema
0Usar el sistema eficientemente
0Minimizar el impacto de los errores
0Adaptar el sistema a las necesidades de los usuarios
0Aumentar confianza y satisfacción
8Escalabilidad: una medida de qué tan bien una solución sigue cumpliendo
con sus requerimientos al cambiar los volúmenes del problema que resuelve
8Portabilidad: facilidad de un sistema para poder ser operado en distintas
plataformas.
Especificación de Atributos de Calidad (SEI)
8Quality Attribute Scenario, formado por:
0Fuente del estímulo: Interna o externa
0Estímulo: condición que debe ser tenida en cuenta al llegar al sistema
0Entorno: condiciones en las cuales ocurre el estímulo
0Artifact: el sistema o partes de él afectadas por el estímulo
0Response: qué hace el sistema ante la llegada del estímulo
0Resonse measure: cuantificación de un atributo de la respuesta
Fuente: Software Architectures in Practice, 2ndEdition. Bass, Clements y Kazman. SEI Series in Software
Engineering, Addison Wesley, 2003.
Descargar