Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Atributos de Calidad – No Funcionales
2
Atributos de Calidad – Escenarios
Problemas Comunes
•Definición poco sustentable (“el sistema debe ser modificable”, todos son
modificables) o
•Solapamiento de los atributos (problemas de seguridad afectan a la disponibilidad y
a la usabilidad).
3
Atributos de Calidad – Escenarios
Elemento Descripción
4
Introducción TácPcas
Las tác2cas son decisiones de que Penen como objePvo
lograr los atributosde calidad.
•Restriccionesde Arquitectura
• Conceptual Integrity
• Robustness
• Buildability
5
Atributos de Calidad – No Funcionales
Performance
Availability (Disponibilidad)
Security (Seguridad)
Testability (Testeabilidad)
Modifiability (Modificabilidad)
Usability (Usabilidad)
6
Performance
“Es el grado en el cual el sistema o componente lleva a cabo una
funcionalidad especifica dada una restricción de velocidad, precisión,
etc. y el uso eficiente de los recursos”
7
Performance
Ej. Los usuarios inician 1.000 transacciones X, por minuto (probabilidad) bajo
condiciones normales, de 9 a 18:00hs, el sistema debe procesarlas (resultado
en pantalla) en una latencia menor a 3 segundos.
Elemento Descripción
Origen del Estímulo. Usuarios. Definir el tipo de Usuario si es necesario.
Estimulo. Inicio de Tx X. Probabilístico. 1.000 tx por minuto
Ambiente. Procesamiento Normal. De 9 a 18. Carga Normal.
8
TácPcas Performance – Pasos previos
Requerimientos
• Evitar el “lo más rápido posible”.
¿Qué se puede medir?
• Consumo de recursos
• Procesador, memoria, disco, red, etc
• Latencia
• ContenPon, Availability, Dependency in another ComputaPon
• Escalabilidad
Medición y profiling
• Medición del consumo de los recursos durante la ejecución.
• Se necesitan datos de prueba realistas(no necesariamente “reales”)
9
TácPcas para lograr Performance
Demanda Resource ArbitraPon
• Incrementar la eficiencia computacional • First‐in / First‐out (FIFO)
• Fixed Priority
• Eliminar el overhead computacional
• Dynamic priority
• Bound ExecuPon Times • StaPc Scheduling
• Bound Queue Size
Resource Management
• Concurrencia
• threads especializados por tarea
• MúlPples threads equivalentes
• Tamaño de transacciones
• MúlPples copias de los datos. Caching
• Incrementar los Recursos disponibles
10
Disponibilidad (Availability)
“Es el grado de operabilidad de un sistema o componente”
11
Disponibilidad y Costo
12
Disponibilidad (Availability)
Dentro de Disponibilidad, generalmente agrupamos los
siguientes atributos:
Confiabilidad
Recuperación de desastres
Tolerancia a Fallos
13
Disponibilidad
Ej. “Si el Middleware Pene alguna falla y no recibe pedidos, para transacciones que
necesitan ser procesadas de manera asincrónicas se debe auditar en un archivo de
log y se debe reintentar X veces con un intervalo de Y segundos”
Elemento Descripción
Origen del Estímulo. El Middleware está caído
Estimulo. Transacciones asincrónicas a procesar
Ambiente. En todo momento
14
TácPcas para lograr Disponibilidad
Detecciónde fallas
• Ping + Echo / Heartbeat
• ExcepPons
Recuperación
• Preparación y reparación
• VoPng / Cluster / Redundancia acPva/ pasiva/ spare
• Transparent Failover. Session replicaPon.
• Reinserción –Shadow / ResynchronizaPon / Checkpoint
Prevención
• Removal from Service / Process Monitor
• Transacciones
• TácPcas de Integración
• Colas
• Replicación de datos
• Dejarlo en un estado intermedio y después terminar.
15
Atributos de Calidad – Modifiability
“Está relacionado con costo del cambio. Los aspectos a tener en cuenta
son, que hay que cambiar, cuando y quien.”
16
Atributos de Calidad – Modifiability
Ej. “Un stakeholder desea que el sistema publique algún servicio para ser
consumido por otra aplicación (y no por pantalla) luego de que el sistema
esté en su primera release de producción y el Pempo de desarrollo (analisis,
design, code, test y deploy) no supere los 25 días desde la aprobación del
Change Request.”
Elemento Descripción
Origen del Estímulo. Stakeholder
Estimulo. Desea agregar funcionalidad
Ambiente. Etapa de Mantenimiento
17
TácPcas para lograr Modifiability
La mayoría de las tácPcas pasan por“localizar” las modificaciones, evitando los
“ripple effects”
Efecto“ripple”(ondas)
– Es la aparición de efectos inesperados en lugares posiblemente remotos del sistema
después de hacer un cambio.
– Muestra un acoplamiento indeseado.
18
TácPcas para lograr Modifiability
Tipos de “ripples” Defer Binding Time
• Sintaxis de datos o servicios • Polimorphism
• SemánPca de datos o servicios • Adherence To Defined Protocols
• Secuencia • ConfiguraPon Files
• IdenPdad/ Ubicación/ Existencia • Dependency InjecPon
• Calidadde servicio
• RunPme RegistraPon
• Comportamiento
19
Seguridad
20
Seguridad
Se puede caracterizar de la siguiente manera:
• No Repudio
• Confidencialidad
• Integridad
• Aseguramiento
• Disponibilidad
• Auditoria
21
Seguridad
Ej. “Si el administrador de accesos (seguridad) realiza, agrega o quita algún rol a
cualquier usuario, estos cambio deben ser reflejados de manera inmediata en
la sesión del usuario a la cual se le modificaron los accesos”
Elemento Descripción
Origen del Estímulo. Administrador de Accesos
Estimulo. Cambio de roles
Ambiente. En cualquier momento
22
TácPcas para lograr Seguridad
Resistencia frente a ataques
• AutenPcación de usuarios
• Autorización de usuarios
• Confidencialidad de los datos (encripción, VPN, SSL)
• Integridad de los datos (redundancia, checksums, hash, firmas)
• Limitar la exposición o el acceso (DMZ)
Detecciónde ataques
Recuperación
• Recuperación, restoraPon
• IdenPficación, Auditoría
23
Testability
“Es el grado de facilidad que 8ene un sistema para ser probada en su
comple8tud, ya sea unitariamente, integración, aceptación y regresión”
24
Testability
Ej. “Un testeador unitario que realiza el test de un componente X debe poder
ejecutar los scripts y debe poder llegar a un nivel de complePtud del 70% en 4
horas”
Elemento Descripción
Origen del Estímulo. Tester unitario
Estimulo. Testear el componente
Ambiente. En etapa de desarrollo y mantenimiento.
Componentes. Componente X
Respuesta. 70% de completitud
Medida de la 4 horas
Respuesta.
25
TacPcas para lograr Testability
Tipos de Test
• Unitario
• Integración
• Aceptación
• Performance / Carga/ Stress
• Regresión
Escenarios
• Casos de test
• Juegos de datos
• Casos básicos,
• Casos extremos.
• Test Driven Design (contract first)
26
TacPcas para lograr Testability
Test Unitario
• Modularidad
• Separar interfaz de implementación
• Mock Objects
• Configuraciónes pecíficas para tesPng
• Inversion Of Control / Dependency InjecPon
• Interfaces de tesPng especializadas
Regresión
• AutomaPzación de tests
• AutomaPzación de los juegos de datos
• Manejo de las dependencias de ejecución
• AutomaPzación de la corrida, periódica o por eventos
27
TacPcas para lograr Testability
Integración
• Manejo de las dependencias de ejecución
• Transacciones individuales
• Transacción global.
Aceptación
• AutomaPzación de Input / Output
• Record / playback
• Simulación de pedidos hwp
• Simulación de teclado/mouse
• Scripts
Performance
• Monitoreo (procesador, memoria, red)
• Simulación de tráfico usando robots
28
TacPcas para lograr Testability
OtrasTácPcas
• Debugging
• Breakpoints
• Avance paso a paso
• Exploración del estado de variables
• Logging
• Manejo de excepciones y mensajes
• Capacidad de modificar el programa en runPme
• Lenguaje
• Arquitectura
• Similitud de entornos de desarrollo / test/ producción
• Acceso a los entornos de test/ producción
29
Usabilidad
“Es el grado de facilidad del sistema para ser operado”
Áreas:
• Aprendizaje
• Uso eficiente
• Minimizar el impacto de los errores
• Adaptabilidad
• Incrementar la saPsfacción del usuario.
30
Usabilidad
31
Usabilidad
Ej. Los usuarios del modulo X, una vez que ejecutan cualquier acción, el sistema
debe proveer posibilidad de cancelarlas durante su ejecución y quedar como
antes de la ejecución de la misma
Elemento Descripción
Origen del Estímulo. Usuarios del módulo X
Estimulo. Minimizar el impacto de error cancelando operaciones
Ambiente. Procesamiento Normal. Carga Normal.
Componentes. Módulo X
Respuesta. Transacción cancelada
Medida de la Sistema integro antes de la ejecución
Respuesta.
32
TácPcas para lograr Usabilidad
IntuiPvidad, ¿¿quées intuiPvo??
• Adecuación a estándares
• Consistencia
• Metáfora de Interación
• Información de contexto
• CanPdad de información, evitar información supérflua
Velocidad
33
TácPcas para lograr Buildability
Brindar al equipo de fábrica un conjunto de herramientas que le resulten úPles y
suficientes a la hora de construir la aplicación, y que permitan construirla en
forma eficiente
Claridad
• Resolución de servicios genéricos
Expresividad
• DeclaraPvidad
• Lenguajes y abstracciones
Consistencia
• Reusabilidad
• Motores de reglas
Simplicidad
34
TácPcas para lograr Robustez
Conceptual Integrity
Centralización de servicios
• Manejo de transacciones
• Manejo de situaciones excepcionales
• Administración de recursos(porej: conecciones de base de datos)
Procesode desarrollo
• Estructura de tests de arquitectura
• Source ConfiguraPon Management
• PolíPcas de usodel repositorio de código
• PolíPcas de liberación de entregables
• AutomaPzación
35
Conflictos Entre los Atributos de Calidad
A veces los atributos conflictúan entre sí y hay que elegir.
Una tácPca pude beneficiar a un atributo y perjudicar a
otro.
Otras veces conflictúancon los requerimientos del negocio
• Cost
• Time To Market
Dos principios
• UPlidad
• Simplicidad
36
Comentarios Finales
La clasificación planteada no quiere decir que sea estricta, todo lo contrario, es
una buena manera de agrupar pero no siempre Pene que ser de esta manera.
37
Referencia
[SAinPracPce] Len Bass, Paul Clements, Rick Kazman, Sorware Architecture in
PracPce, Second EdiPon. Addison Wesley, 2003, ISBN 0‐321‐15495‐9.
Sorware Architecture in PracPce, Second EdiPon. Len Bass, Paul Clements, Rick
Kazman. Addison Wesley, 2003, ISBN 0‐321‐ 15495‐9.
38