Fundamentos y Evaluación de Atributos de Calidad en Software

Otras materias5,26 KB

Contexto de los Atributos de Calidad

Contexto: Para implementar mejoras en la calidad, primero debe ser medida y analizada. En ese contexto aparecen los Quality Attributes para medir y analizar la calidad.

Atributos de calidad: Son elementos que caracterizan la calidad desde diferentes puntos de vista. Estos adquieren relevancia cuando se ponen en el contexto adecuado.

Listado de Atributos de Calidad

  • Accesibilidad
  • Disponibilidad
  • Extensibilidad
  • Interoperabilidad
  • Mantenibilidad
  • Modificabilidad
  • Operatividad
  • Portabilidad
  • Fiabilidad
  • Robustabilidad
  • Escalabilidad
  • Seguridad
  • Estabilidad
  • Soportabilidad
  • Testeabilidad
  • Usabilidad

Definiciones de Atributos Clave

Disponibilidad

Es la característica de un sistema que mide el grado de operación continua durante un período determinado de tiempo, dado un patrón de operación y requerimientos mínimos de uso.

Escalabilidad

Es una característica deseada de un sistema, la cual indica la habilidad de manejar el crecimiento del volumen de trabajo de una manera adecuada. Se destacan dos grandes maneras:

  • Escalar verticalmente: Agregando más recursos en un único nodo del sistema.
  • Escalar horizontalmente: Agregando más nodos al sistema.

Transaccionabilidad

Es la característica de un sistema que garantiza que los procesos se manejan como operaciones individuales e indivisibles, llamadas transacciones. Cada transacción debe finalizar exitosamente o fallar como una unidad completa; no puede quedar en un estado intermedio.

Robustez

Se refiere a la habilidad de monitorear y medir el nivel de performance (rendimiento), para diagnosticar errores y escribir información de traceo (seguimiento). Herramientas y frameworks relacionados:

  • Framework de Logging: Log4Net
  • Framework de Instrumentación: Microsoft Enterprise Instrumentation Framework (EIF)
  • ASP.NET Performance counters
  • Escritura en EventLog de Windows

Interoperabilidad

Es una propiedad relacionada a la habilidad de un sistema de intercambiar datos vía un conjunto predeterminado de formatos y de usar protocolos comunes para su comunicación.

Usabilidad

Denota la facilidad con la que las personas pueden utilizar una herramienta con el fin de llegar a su objetivo. Se refiere a la claridad con la que se efectúa la interacción de las personas con una interfaz de un sistema. Incluye:

  • Patrones UX
  • Librerías para facilitar la interacción
  • AJAX (JQuery, ASP.NET Ajax Library)
  • Silverlight

Seguridad

Contempla aspectos fundamentales como:

  • Autenticación y autorización
  • Identity y Principals (Customización)
  • Certificados SSL
  • Seguridad de contenido estático
  • Soporte de encriptación .NET Framework
  • Web Services

Testeabilidad

Es la característica de un sistema que indica su capacidad de ser sometida a pruebas.

Mantenibilidad

Se enfoca en la utilización de estándares:

  • Code analysis: FXCop y StyleCop
  • Código documentado: NDoc
  • Políticas de Branching
  • Principio KISS (Keep It Simple, Stupid)

Métodos de Evaluación de Arquitectura

Existen diversos métodos para evaluar la arquitectura de software basándose en sus atributos:

  • Quality Attributes Workshop (QAW)
  • Architecture Tradeoff Analysis Method (ATAM)
  • Software Architecture Analysis Method (SAAM)
  • Active Reviews for Intermediate Designs (ARID)

Quality Attribute Workshops (QAW)

El Quality Attribute Workshop (QAW) es un método facilitado que involucra a los stakeholders de un sistema de manera temprana en el ciclo de vida para descubrir los atributos de calidad clave en un sistema de software.

El objetivo de QAW es identificar escenarios desde el punto de vista de los diversos participantes, identificar riesgos (p. ej., baja performance, denegación de servicio) y posibles estrategias de mitigación (p. ej., replicación, prototipado, etc.).

Pasos del proceso QAW:

  1. Presentación e introducción al QAW
  2. Presentación de Negocios/Misión
  3. Presentación del Plan Arquitectónico
  4. Identificación de los Drivers Arquitectónicos
  5. Brainstorming de Escenarios
  6. Consolidación de Escenarios
  7. Priorización de Escenarios
  8. Refinamiento de escenarios

Reflexión y Buenas Prácticas

  • Tomar decisiones desde el inicio del proyecto.
  • Encontrar un balance entre los diferentes atributos de calidad.
  • Mantener la sencillez en el diseño.
  • Fomentar el trabajo iterativo.
  • Testear durante todo el ciclo de vida del proyecto.
  • Realizar pruebas de carga, rendimiento y concurrencia.
  • Integrar continuamente el código.

Descargar

PDF Word HTML