Apunte de Atributos de Calidad (Ingeniería II)

De Cuba-Wiki

Plantilla:Back

Atributos y Tácticas

Availability

Fault Detection

  • Ping/echo
  • Heartbeat
  • Exception

Recovery

Preparation and Repair

  • Voting
  • Active redundancy
  • Passive redundancy
  • Spare

Reintroduction

  • Shadow
  • State resync
  • Rollback

Prevention

  • Removal from service
  • Transactions
  • Process monitor

Modifiability

Localize Changes

  • Semantic coherence
  • Anticipate expected changes
  • Generalize module
  • Limit possible options
  • Abstract common services

Prevent Ripples

  • Information hiding
  • Mantain existing interfaces
  • Restrict communication paths
  • Use intermediary

Defer Binding Time

El objetivo de esta categoría de tácticas no es disminuir la cantidad de módulos impactados por un cambio sino reducir los tiempos de deployment de modificaciones y permitir la realización de cambios por nondevelopers o fuera de design time.

  • Runtime registration
  • Config files
  • Polymorphism
  • Component replacement
  • Adherence to defined protocols

Performance

Performance se refiere exclusivamente a optimización de tiempos.

Las tácticas de performance se basan en que el tiempo que pasa entre un pedido y la respuesta se debe o bien a consumo de recursos por parte de ese pedido (sea CPU o IO) o bien a que se encuentre bloqueado a la espera de un recurso o del resultado de otro cálculo.

Resource Demand

  • Increase computation efficiency
  • Reduce computational overhead
  • Manage event rate
  • Control frequency sampling

Resource Management

  • Introduce concurrency
  • Mantain multiple copies
  • Increase available resources

Resource Arbitration

La arbitración de recursos se basa en el scheduling utilizado para otorgar recursos a quienes lo soliciten, para lo cual pueden usarse distintos esquemas:

  • FIFO: El primer pedido en pedir un recurso lo recibe, se tratan todos los requests por igual.
  • Fixed priority: Se asigna una prioridad fija a cada pedido o stream de pedidos. Puede ser por semantic importance, o basado en la longitud de los deadlines o de los períodos.
  • Dynamic priority: Puede ser round-robin o earliest deadline first.
  • Static: El asignamiento de recursos se determina offline.

Security

Resisting Attacks

  • Authenticate users: Solicitar algún tipo de autenticación, desde user/pass hasta biometrics.
  • Authorize users: Definir los permisos para un usuario ya autenticado; los permisos pueden definirse sobre usuarios o sobre roles.
  • Maintain data confidentiality: Proteger datos de ser accedidos por usuarios no autorizados, principalmente via encripción de los datos.
  • Maintain integrity: La integridad puede mantenerse enviando info extra, como ser hashes o checksums.
  • Limit exposure: Un ataque generalmente permite al intruso obtener toda la data del host; al limitar los servicios a distintos hosts se limita la cantidad de data expuesta ante un solo ataque exitoso.
  • Limit access: Uso de firewalls y demilitarized zones para proveer servicios a hosts conocidos y desconocidos.

Detecting Attacks

Se logra agregando un sistema de detección de intrusos que analiza patterns de tráfico en la red y los compara contra el histórico. Debe tener acceso a la red, ser configurable y poder guardar los logs de patterns de tráfico.

Recovering from Attacks

Se divide en dos partes. Restoration implica volver a un estado anterior que se sabe seguro previo al ataque. Identification permite saber quién fue el autor del ataque.

Restoration

Utiliza tácticas de availability para recuperar un estado válido. Puede ser mediante checkpoints, redundancia, etc.

Identification

Requiere el uso de un audit trail para guardar quién fue el usuario que realizó cada transacción. Permite, además de seguir a un atacante, la no repudiación y ayuda a la recuperación del sistema junto a las tácticas de availability.

Testability

Usability

Concerns

  • Interfaz de usuarios
  • Procedo de negocio
  • Calidad de información
  • Alinear la capacidad del usuario con la interfaz
  • Crecimiento de la productividad con el aprendizaje de uso.

Tácticas

  • Support User Interface
  • Support User Initiative (Cancel, Undo o Agregatte)
  • Support System Initiative (User model, System model, System Task)