8
06/04/2015 1 Arquitectura y Diseño de Sistemas 12 Lic. Ariel Trellini • DCIC • UNS Atributos de Calidad Medibles y No Medibles Atributos de Calidad Pueden ser medidos mientras que el sistema ejecuta ¿Devuelve la respuesta correcta? ¿Es fácil de usar? ¿Cuánto tarda en ejecutar un transacción? ¿Un usuario no autorizado puede vulnerar la seguridad? ¿Con qué frecuencia se cae o deja de funcionar? Medibles No pueden ser medidos mientas el sistema ejecuta, sino antes o después ¿Cuánto esfuerzo requiere su construcción? ¿Cuánto esfuerzo requiere su testeo? ¿Cuánto esfuerzo requiere su integración? ¿Cuánto costó? ¿Cuán fácil será de modificar? No Medibles Arquitectura y Diseño de Sistemas 13 Lic. Ariel Trellini • DCIC • UNS Clases de Cualidades Atributos de Calidad Cualidades del Sistema Cualidades Relativas al Negocio Cualidades de la Arquitectura Disponibilidad Modificabilidad Performance Seguridad Testeabilidad Usabilidad Etc. Aspectos del negocio que tienen impacto en decisiones arquitectura Cualidades de la arquitectura que suelen tener impacto en otros atributos de calidad. Integridad conceptual Correctitud y completitud Buildability (factibilidad de construcción) Etc. Time to market Vida útil del sistema Costo y beneficio Plan de evolución Etc. Aspectos relativos al funcionamiento del sistema. Pueden ser fehacientemente medibles o no. Atributos de Calidad Arquitectura y Diseño de Sistemas 14 Lic. Ariel Trellini • DCIC • UNS Cualidades Relativas al Negocio Atributos de Calidad Costo y Planificación Time To Market Costos y Beneficios Vida Útil Proyectada Integración con Sistemas Legados Marketing Mercado Apuntado Plan de Lanzamiento (incremental vs one-time) Organizacional Disponibilidad de equipo adecuada Experiencia en el dominio y tecnologías Arquitectura y Diseño de Sistemas 15 Lic. Ariel Trellini • DCIC • UNS Cualidades de la Arquitectura Atributos de Calidad Integridad Conceptual El sistema se construye a partir de un numero pequeño de estructuras arquitectónicas que interactúan en un numero pequeño de formas (predeterminadas) Se logra típicamente vía un solo arquitecto, o un grupo de arquitectos pequeño y coordinado Correctitud y Completitud Es esencial que tanto los requerimientos funcionales como las restricciones sean satisfechos por la arquitectura. Se utilizan evaluaciones formales para verificarlos (por ej, ATAM) Buildability Determina si el sistema puede ser construido con los recursos disponibles Equipo Conocimientos Herramientas / Componentes Arquitectura y Diseño de Sistemas 16 Lic. Ariel Trellini • DCIC • UNS Cómo Definir Atributos de Calidad Atributos de Calidad Existen 3 problemas para definir atributos de calidad Las definiciones provistas por un atributo no son testeables Ejemplo: “El sistema tiene que ser modificable” No es claro a qué cualidad pertenece un aspecto particular del sistema Ejemplo: ¿Una falla del sistema es un aspecto de disponibilidad, seguridad o usabilidad? Cada comunidad tiene su propio vocabulario Performance: Habla de “eventos” arribando en el sistema Seguridad: Habla de “ataques” arribando al sistema Disponibilidad: Habla de “fallas” de un sistema Usabilidad: Habla de “inputs de usuario” Un requerimiento de atributo de calidad debería ser testeable y no ambiguo. Para lograrlo, se utilizan escenarios de atributo de calidad como una forma de caracterizarlos. Arquitectura y Diseño de Sistemas 17 Lic. Ariel Trellini • DCIC • UNS Escenarios Generales vs Concretos Escenarios de Atributo de Calidad Atributos de Calidad Mecanismo que permite caracterizar/capturar aspectos de atributos de calidad de una forma que puede ser evaluado y utilizado en diseño Generales Concretos Son independientes del sistema y, potencialmente pueden pertenecer a cualquier sistema. Aquellos que son específicos al sistema en consideración. Definición Ejemplo Llega un requerimiento para hacer un cambio en la funcionalidad, y el cambio debe ser hecho en un momento particular dentro del proceso de desarrollo y dentro de un periodo de tiempo específico. Llega un requerimiento para agregar soporte a un nuevo browser para un sistema web y el cambio debe ser hecho en, como máximo, 2 semanas.

PowerPoint Presentationcs.uns.edu.ar/~atrellini/ayds/downloads/Clases/04. AyDS - Atributos... · Cualidades del Sistema Cualidades Relativas al Negocio Cualidades de la Arquitectura

Embed Size (px)

Citation preview

06/04/2015

1

Arquitectura y Diseño de Sistemas • 12 Lic. Ariel Trellini • DCIC • UNS

Atributos de Calidad Medibles y No Medibles

Atributos de Calidad

Pueden ser medidos mientras que el sistema ejecuta

¿Devuelve la respuesta correcta? ¿Es fácil de usar? ¿Cuánto tarda en ejecutar un

transacción? ¿Un usuario no autorizado puede

vulnerar la seguridad? ¿Con qué frecuencia se cae o deja

de funcionar?

Medibles

No pueden ser medidos mientas el sistema ejecuta, sino antes o después

¿Cuánto esfuerzo requiere su construcción?

¿Cuánto esfuerzo requiere su testeo?

¿Cuánto esfuerzo requiere su integración?

¿Cuánto costó? ¿Cuán fácil será de modificar?

No Medibles

Arquitectura y Diseño de Sistemas • 13 Lic. Ariel Trellini • DCIC • UNS

Clases de Cualidades

Atributos de Calidad

Cualidades del Sistema

Cualidades Relativas al Negocio

Cualidades de la Arquitectura

Disponibilidad Modificabilidad Performance Seguridad

Testeabilidad Usabilidad Etc.

Aspectos del negocio que tienen impacto en decisiones arquitectura

Cualidades de la arquitectura que suelen tener impacto en otros atributos de calidad.

Integridad conceptual Correctitud y completitud Buildability (factibilidad de construcción) Etc.

Time to market Vida útil del sistema Costo y beneficio Plan de evolución Etc.

Aspectos relativos al funcionamiento del sistema. Pueden ser fehacientemente medibles o no.

Atributos de Calidad

Arquitectura y Diseño de Sistemas • 14 Lic. Ariel Trellini • DCIC • UNS

Cualidades Relativas al Negocio

Atributos de Calidad

Costo y Planificación Time To Market

Costos y Beneficios

Vida Útil Proyectada

Integración con Sistemas Legados

Marketing Mercado Apuntado

Plan de Lanzamiento (incremental vs one-time)

Organizacional Disponibilidad de equipo adecuada

Experiencia en el dominio y tecnologías

Arquitectura y Diseño de Sistemas • 15 Lic. Ariel Trellini • DCIC • UNS

Cualidades de la Arquitectura

Atributos de Calidad

Integridad Conceptual El sistema se construye a partir de un numero pequeño de estructuras

arquitectónicas que interactúan en un numero pequeño de formas (predeterminadas)

Se logra típicamente vía un solo arquitecto, o un grupo de arquitectos pequeño y coordinado

Correctitud y Completitud Es esencial que tanto los requerimientos funcionales como las restricciones

sean satisfechos por la arquitectura.

Se utilizan evaluaciones formales para verificarlos (por ej, ATAM)

Buildability Determina si el sistema puede ser construido con los recursos disponibles

Equipo

Conocimientos

Herramientas / Componentes

Arquitectura y Diseño de Sistemas • 16 Lic. Ariel Trellini • DCIC • UNS

Cómo Definir Atributos de Calidad

Atributos de Calidad

Existen 3 problemas para definir atributos de calidad Las definiciones provistas por un atributo no son testeables

Ejemplo: “El sistema tiene que ser modificable”

No es claro a qué cualidad pertenece un aspecto particular del sistema

Ejemplo: ¿Una falla del sistema es un aspecto de disponibilidad, seguridad o usabilidad?

Cada comunidad tiene su propio vocabulario

Performance: Habla de “eventos” arribando en el sistema

Seguridad: Habla de “ataques” arribando al sistema

Disponibilidad: Habla de “fallas” de un sistema

Usabilidad: Habla de “inputs de usuario”

Un requerimiento de atributo de calidad debería ser testeable y no

ambiguo. Para lograrlo, se utilizan escenarios de atributo de calidad

como una forma de caracterizarlos.

Arquitectura y Diseño de Sistemas • 17 Lic. Ariel Trellini • DCIC • UNS

Escenarios Generales vs Concretos

Escenarios de Atributo de Calidad

Atributos de Calidad

Mecanismo que permite caracterizar/capturar aspectos

de atributos de calidad de una forma que puede ser

evaluado y utilizado en diseño

Generales Concretos

Son independientes del sistema y, potencialmente pueden pertenecer a cualquier sistema.

Aquellos que son específicos al sistema en consideración.

Definición

Ejemplo Llega un requerimiento para hacer un cambio en la funcionalidad, y el cambio debe ser hecho en un momento particular dentro del proceso de desarrollo y dentro de un periodo de tiempo específico.

Llega un requerimiento para agregar soporte a un nuevo browser para un sistema web y el cambio debe ser hecho en, como máximo, 2 semanas.

06/04/2015

2

Arquitectura y Diseño de Sistemas • 18 Lic. Ariel Trellini • DCIC • UNS

Atributos de Calidad Escenarios

Partes de un Escenario de Atributo de Calidad Estímulo. La condición a ser considerada cuando arriba al sistema.

Fuente de Estímulo. Es la entidad (humano, otro sistema, u otro actor) que generó el estímulo.

Ambiente. Las condiciones sobre las que ocurre el estímulo

Artefacto. El artefacto (componente, equipo, sistema entero) que es estimulado.

Respuesta. Define las acciones que el artefacto debería realizar como respuesta al estímulo.

Medida de la Respuesta. La medida de la respuesta por la cual el artefacto es evaluado.

Las partes de un Escenario de Atributo de Calidad

Arquitectura y Diseño de Sistemas • 19 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Atributos de Calidad

Definición

Consideraciones Cada táctica es una opción de diseño. Puede haber otras

Una táctica puede ser refinada en otras

Generalmente las tácticas para un atributo de calidad se organizan en una jerarquía.

¿Cómo se imparte portabilidad a un diseño? ¿Y performance? ¿E interoperabilidad?

Una táctica es una decision de diseño que influencia el control

de la respuesta de un atributo de calidad

Táctica para Controlar la RespuestaEstímulo Respuesta

Arquitectura y Diseño de Sistemas • 20 Lic. Ariel Trellini • DCIC • UNS

Definición

Áreas de Interés

Ejemplo: Disponibilidad

Atributos de Calidad

Es la probabilidad que tiene el Sistema de estar operativo

cuando se lo necesita. Se preocupa de las fallas del Sistema y

sus consecuencias asociadas:

Una falla ocurre cuando el Sistema no provee un servicio

consistente con sus especificaciones.

Dicha falla es observable por los usuarios del Sistema.

¿Cómo se detecta la falla? ¿Cuán frecuentemente ocurre? ¿Qué pasa cuando la falla ocurre? ¿Cuánto tiempo el Sistema puede

estar fuera de operación?

¿Cuándo una falla puede ocurrir de manera segura? ¿Cómo se puede evitar una falla?

¿Qué tipo de notificaciones son necesarias cuando ocurre una falla?

¿Cuánto tiempo toma su reparación?

Arquitectura y Diseño de Sistemas • 21 Lic. Ariel Trellini • DCIC • UNS

Fallas vs Defectos Las fallas son observables por los usuarios del Sistema, mientras que un

defecto no.

Cuando un defecto es observable por usuarios, pasa a ser una falla.

Si el Sistema puede corregir automáticamente los efectos de un defecto, entonces no se convierte en una falla

Medición

Atributos de Calidad Disponibilidad

Disponibilidad1 =tiempo medio de falla

tiempo medio de falla + tiempo medio de reparación

1 Los downtimes (fuera de servicio) planificados no son considerados en el cálculo.

Arquitectura y Diseño de Sistemas • 22 Lic. Ariel Trellini • DCIC • UNS

Requerimientos de Disponibilidad de Ejemplo

Atributos de Calidad Disponibilidad

Arquitectura y Diseño de Sistemas • 23 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Disponibilidad

Parte Valores Posibles

Fuente Interna al Sistema; externa al sistema

Estímulo Defecto: omisión, crash, timing incorrecto, respuesta incorrecta

Artefacto Procesadores del sistema, canales de comunicación, almacenamiento persistente, procesos

Ambiente Operación Normal, Inicio del Sistema, Modo de ReparaciónOperación Degradada (por ej, funcionalidad limitada)

Respuesta El Sistema detectaría un evento y haría una o varias de las siguientes acciones: Registrarlo Notificar a quienes corresponda, incluyendo el usuario y otros sistemas Deshabilitar las fuentes de eventos que causan el defecto o falla de acuerdo a

las reglas definidas Quedar no disponible por un intervalo de tiempo, hasta que se repare Continuar la operación en Modo Degradado mientras se repara.

Medida de la Respuesta

Intervalo de tiempo en el que el Sistema debe estar disponiblePorcentaje de disponibilidadTiempo para detectar la fallaTiempo para reparar la fallaTiempo que el Sistema puede funcionar en modo Degradado

06/04/2015

3

Arquitectura y Diseño de Sistemas • 24 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Disponibilidad

Fuente:Heartbeat

Monitor

Estímulo:Servidor no

respondeAmbiente:Operación Normal

Respuesta:Informar al

operador

Continuar la

operación

Medida de

Respuesta:Sin caídas

Artefacto:Proceso

“El heartbeat monitor determina que el servidor no responde ante operaciones normales. El sistema le informa al operador y continua operando sin tiempo de caídas.”

Arquitectura y Diseño de Sistemas • 25 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Atributos de Calidad Disponibilidad

Arquitectura y Diseño de Sistemas • 26 Lic. Ariel Trellini • DCIC • UNS

Definición

Áreas de Interés ¿Qué puede cambiar

(el artefacto)?

¿Cuándo se hace el cambio?

¿Quién lo hace?

Cuál es la probabilidad de cambio

Ejemplo: Modificabilidad

Atributos de Calidad

Es el costo (y riesgo) que tiene realizar un cambio en el Sistema.

Funcionalidad Plataforma (hw, so, middleware) Ambiente (sistemas con los que debe interoperar) Cualidades del Sistema (performance) Capacidad (# usuarios, # tx)

Codificación Compilación Build

Configuración Ejecución

Desarrollador Administrador de Sistema Usuario Final

Arquitectura y Diseño de Sistemas • 27 Lic. Ariel Trellini • DCIC • UNS

¿Cuál es el costo de hacer un sistema más modificable? El costo de introducir el/los mecanismo/s para hacer el sistema más

modificable

El costo de hacer la modificación usando el/los mecanismo/s

Para N modificaciones similares, una justificación simplificada para la creación de un mecanismo de cambios podría ser:

Atributos de Calidad Modificabilidad

Sin mecanismo Con mecanismo

Costo de Introducir el mecanismo

Cero Costo de crear el mecanismo

Costo de hacer la modificación El costo de cambiar el código fuente y testearlo

Costo de usar el mecanismo parahacer el cambio y testear el cambio

N x Costo de hacer el cambio sin el mecanismo

Costo de crear el mecanismo + (N x Costo de hacer el cambio usando el mecanismo)=>

* N es la cantidad de modificaciones del mismo tipo que se preven (una predicción)

Arquitectura y Diseño de Sistemas • 28 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Modificabilidad

Parte Valores Posibles

Fuente [Quién hace el cambio] Usuario final, desarrollador, administrador del sistema

Estímulo [Qué cambio debe hacerse] Deseo de agregar/modificar/eliminar funcionalidad, atributos de calidad, etc.

Artefacto [Qué tiene que cambiar] UI del sistema, plataforma, ambiente, sistemas con los que interactúa

Ambiente [Cuándo se hace el cambio] Ejecución, compilación, build, diseño

Respuesta Localizar los lugares a ser modificados Realizar las modificaciones sin afectar otras características del sistema Testear las modificaciones Instalar modificaciones

Medida de la Respuesta

Costo del cambio en términos de: Elementos afectados Esfuerzo Dinero Grado en que afecta a otras características del sistema.

Arquitectura y Diseño de Sistemas • 29 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Modificabilidad

Fuente:Desarrollador

Estímulo:Desea

modificar la

UI Ambiente:En tiempo de

diseño

Respuesta:La modificación es

hecha sin efectos

colaterales Medida de

Respuesta:3 horas

Artefacto:Código

“Un desarrollador desea cambiar la interfaz de usuario para que el color de fondo de la pantalla sea azul. El cambio se realizará sobre el código en tiempo de diseño, debiendo tomar no más de 3 horas en realizarlo y testearlo y sin tener efectos colaterales sobre el comportamiento del sistema.”

06/04/2015

4

Arquitectura y Diseño de Sistemas • 30 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Se basan en 4 variables Tamaño del un módulo

Siempre y cuando el criterio para dividir el módulo refleje el tipo de cambio que es probable de ocurrir

AcoplamientoReducir el acoplamiento entre dos módulos A y B disminuirá el costo esperado de cualquier modificación que afecte a uno de esos módulos.

CohesiónSi un módulo tiene una baja cohesión, puede ser mejorada eliminando responsabilidad no afectadas por los cambios previstos. Así se reduce la posibilidad de efectos colaterales.

Momento de implementación (binding time)En una arquitectura que propicia modificaciones tardías en el ciclo de vida, en promedio, un cambio costará menos que en una arquitectura que fuerza que la misma modificación sea hecha más temprano.

Atributos de Calidad Modificabilidad

Arquitectura y Diseño de Sistemas • 31 Lic. Ariel Trellini • DCIC • UNS

Atributos de Calidad Modificabilidad

Arquitectura y Diseño de Sistemas • 32 Lic. Ariel Trellini • DCIC • UNS

Definición

Consideraciones Origen de eventos

Patrón de arribo del eventos

Variable a evaluar

Ejemplo: Performance

Atributos de Calidad

Se ocupa básicamente de cuánto tiempo le toma al Sistema

responder cuando ocurre un evento.

De usuarios De otros sistemas Del mismo sistema

Periódico Estocástico Esporádico

Latencia Momento de procesamiento Throughput Varianza de la latencia Cantidad de eventos no procesados por exceso de carga Datos perdidos por exceso de carga

Arquitectura y Diseño de Sistemas • 33 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Performance

Parte Valores Posibles

Fuente Una de un número independiente de fuentes posibles

Estímulo Eventos periódicos arribanEventos estocásticos arribanEventos esporádicos arriban

Artefacto El sistema, uno de sus componentes, un conjunto de componentes

Ambiente Modo normalModo sobrecargadoModo emergencia

Respuesta Procesar el estímulo Cambiar el nivel de servicio

Medida de la Respuesta

Latencia Deadline, Throughput Varianza de latencia Tasa de pérdida de requerimientos Tasa de pérdida de datos.

Arquitectura y Diseño de Sistemas • 34 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Performance

Fuente:Usuarios

Estímulo:Instanciar

TransaccionesAmbiente:Bajo operación

normal

Respuesta:Transacciones

procesadasMedida de

Respuesta:Latencia

promedio de 2

segundos

Artefacto:Sistema

“Bajo una operación normal del sistema, las transacciones ejecutadas por los usuarios deberían resolverse, en promedio, en 2 segundos.”

Arquitectura y Diseño de Sistemas • 35 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Background

Tiempo de ProcesamientoLos eventos son manejados por la ejecución de uno o más componentes, cuyo tiempo utilizado es un recurso.

Contención de RecursosMuchos recursos pueden ser usados por un único cliente a la vez. Otros clientes deben esperar para acceder a ese recurso.

Tiempo de BloqueoUn cómputo puede estar bloqueado debido a contención sobre otro recurso, ya que el recurso no está disponible, o a que el cómputo depende del resultado de otro cómputo que aun no está disponible.

Disponibilidad de RecursosUn cómputo podría estar detenido debido a la no disponibilidad de un recurso: porque el recursos está offline, o porque está atravesando una falla.

Dependencia sobre otros cómputosUn cómputo puede tener que esperar porque debe sincronizarse con el resultado de otro cómputo

Atributos de Calidad Performance

06/04/2015

5

Arquitectura y Diseño de Sistemas • 36 Lic. Ariel Trellini • DCIC • UNS

Atributos de Calidad Performance

Arquitectura y Diseño de Sistemas • 37 Lic. Ariel Trellini • DCIC • UNS

Definición

Consideraciones Tipos de ataque

Acceder a datos/servicios a los que el usuario no está autorizado

Limitar el servicio a usuarios legítimos

La seguridad puede ser caracterizada en términos de:

Ejemplo: Seguridad

Atributos de Calidad

Es una medida de la capacidad que tiene un Sistema para

resistir el uso no autorizado mientras continua proveyendo

servicio a usuarios legítimos

Confidencialidad Integridad Disponibilidad

Autenticación No repudiación Autorización

Arquitectura y Diseño de Sistemas • 38 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Seguridad

Parte Valores Posibles

Fuente Individuo o sistema que está…correctamente identificado, incorrectamente identificado, de identidad desconocida

que es…Interno/externo, autorizado/no autorizado

con acceso a.Recursos limitados, vastos recursos

Estímulo Trata de…Ver datos, modificar/eliminar datos, acceder a servicios del sistema, reducir la disponibilidad de los servicios del sistema

Artefacto Servicios del sistema; datos dentro del sistema

Ambiente Online u offline; conectado o desconectado; detrás de un firewall o abierto

Respuesta Autentica al usuario; oculta la identidad del usuario; bloquea/permite accesos a datos y/o servicios; garantiza o rechaza permisos para acceder a datos y/o servicios; registra los accesos por usuario; almacena datos en un formato no legible; reconoce un inexplicable aumento de demanda del servicio, informando a un usuario u otro sistema y restringiendo la disponibilidad del servicio.

Medida de la Respuesta

Tiempo/esfuerzo/recursos necesarios para sortear medidas de seguridad con probabilidad de éxito; probabilidad de detectar ataques; probabilidad de identificar responsables de un ataque o del acceso/modificación de datos; porcentaje de servicio aun disponible ante un ataque “denial-of-services”.

Arquitectura y Diseño de Sistemas • 39 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Seguridad

Fuente:Empleado

descontento

conectado

remotamente

Estímulo:Intenta

modificar

tasas de pago Ambiente:Bajo operación

normal

Respuesta:El Sistema

mantiene registros

de auditoría Medida de

Respuesta:Los datos correctos

son restaurados

dentro de 1 día y el

autor es identificado

Artefacto:Datos dentro

del Sistema

“Un empleado descontento desde una ubicación remota intenta acceder a la tabla de tasas de pago durante la operación normal. El sistema mantiene un registro de auditoría y los datos correctos son restaurados dentro de 1 día.”

Arquitectura y Diseño de Sistemas • 40 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Atributos de Calidad Seguridad

Arquitectura y Diseño de Sistemas • 41 Lic. Ariel Trellini • DCIC • UNS

Definición

Consideraciones Se orienta, principalmente, a la posibilidad de realizar tests automatizados:

unit tests, integration tests, UI tests.

Para que un artefacto de software sea testeable, debe ser posible

Controlar las entradas del componente, ejercitando su estado interno.

Observar las salidas

Ejemplo: Testeabilidad

Atributos de Calidad

Es el grado en el cual un artefacto de software (sistema,

modulo, clase, etc) soporta testing en un contexto de test dado.

Si la testeabilidad del arterfacto de sw es alta, entonces

encontrar defectos a través del testing es más sencillo.

06/04/2015

6

Arquitectura y Diseño de Sistemas • 42 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Testeabilidad

Parte Valores Posibles

Fuente Testers unitarios; testers de integración, tester de sistema, tester de aceptación, usuario finales del sistema (ya sea de manera manual o automática)

Estímulo Un conjunto de tests es ejecutado debido a: Incremento de código terminado o integración de subsistema terminada Sistema entregado

Artefacto La porción del sistema siendo testeada

Ambiente En tiempo de desarrollo En tiempo de compilación En tiempo de deployment En tiempo de ejecución

Respuesta Ejecutar un conjunto de tests y capturar el resultado Capturar las actividades que resultaron en una falla. Controlar y monitorear el estado del sistema

Medida de la Respuesta

Porcentaje de cobertura del código ejecutable Probabilidad de falla, si la falla existe Tiempo para realizar los test Longitud de la cadena de dependencias más larga en un test Cantidad de tiempo para preparar un ambiente de test

Arquitectura y Diseño de Sistemas • 43 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Testeabilidad

Fuente:Tester Unitario

Estímulo:Unidad de

código

terminada Ambiente:Desarrollo

Respuesta:Resultados

capturadosMedida de

Respuesta:La cobertura de

código del 85% es

realizada en 3 horas.

Artefacto:Unidad de

códigp

“Un tester unitario (desarrollador) terminó una unidad de código durante el desarrollo y realiza una secuencia de tests cuyos resultados son capturados logrando una cobertura del 85% en menos de 3 horas.”

Arquitectura y Diseño de Sistemas • 44 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Atributos de Calidad Testeabilidad

Arquitectura y Diseño de Sistemas • 45 Lic. Ariel Trellini • DCIC • UNS

Caso de Estudio: El Ejército de Simios de Netflix Netfix está montado sobre la nube de Amazon (AWS), más precisamente

sobre instancias de EC2 (servidores virtuales).

Utiliza un “ejército de simios” como para parte de su proceso de testing.

Chaos Monkey: Aleatoriamente mata procesos en el sistema ejecutando para monitorear el efecto de un proceso fallido.

Latency Monkey: Introduce retardos artificiales en la capa de comunicación “cliente-servidor” para simular degradación.

Conformity Monkey: Busca instancias que no adhieren a las buenas prácticas y las baja (por ej., instancias que no pertenecen a un auto-scaling group).

Doctor Monkey: Monitorea la salud de las instancias de EC2.

Janitor Monkey: Asegura que en ambiente de Netflix en la nube no desperdicia recursos. Donde encuentra un recurso no usado, lo libera.

Security Monkey: Busca violaciones o vulnerabilidades de seguridad. Si las encuentra, las elimina. También chequea que los certificados SSL no se venzan.

10-18 Monkey: Detecta problemas de configuración de localización e i18n.

Netflix pondera la testeabilidad de su sistema para asegurar la calidad de su servicio.

Atributos de Calidad Testeabilidad

Arquitectura y Diseño de Sistemas • 46 Lic. Ariel Trellini • DCIC • UNS

Definición

Areas de Interés Aprendizaje de características del sistema

Uso eficiente del sistema

Minimizar el impacto de errores

Adaptación del sistema a las necesidades del usuario

Incrementar la confianza y satisfacción

Relación con la Arquitectura Muchas características de usabilidad requieren de soluciones

arquitectónicas tempranas

Ejemplo: Usabilidad

Atributos de Calidad

La facilidad con que las personas pueden utilizar un Sistema con

el fin de alcanzar un objetivo concreto.

Arquitectura y Diseño de Sistemas • 47 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Usabilidad

Parte Valores Posibles

Fuente Usuario final

Estímulo Quiere…Aprender las características del sistema; usar el sistema eficientemente; minimizar el impacto de errores de usuario; adaptar el sistema a sus necesidades; configurar el sistema

Artefacto Sistema

Ambiente En tiempo de ejecución; en tiempo de configuración

Respuesta Para soportar el aprendizaje de las características del sistemaSistema de ayuda sensible al contexto; UI familiar para el usuario

Para soportar el uso del sistema eficientementeAgregación de datos/comandos; reuso de datos y comandos ya ingresados; soporte para una navegación eficiente; distintas vistas con operaciones consistentes;

Para minimizar el impacto de errores de usuarioDeshacer, rehacer y recuperarse de una falla del sistema; reconocer y corregir un error de usuario; recuperar password olvidada

Para adaptar el sistemaPersonalización; Internacionalización

Para sentirse cómodoMostrar el estado del sistema; trabajar al ritmo del usuario

Medida de la Respuesta

Tiempo de la tarea; cantidad de errores; cantidad de problemas resueltos; satisfacción del usuario; tasa de operaciones exitosas vs operaciones no exitosas; interacción necesaria para completar una tarea.

06/04/2015

7

Arquitectura y Diseño de Sistemas • 48 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Usabilidad

Fuente:Usuarios

Estímulo:Descargar una

nueva

aplicación Ambiente:En ejecución

Respuesta:El usuario usa la

aplicación

productivamente Medida de

Respuesta:Dentro de 2 minutos

de exploración

Artefacto:Sistema

“Un usuario descarga una nueva aplicación y está usándola productivamente luego de 2 minutos de experimentación.”

Arquitectura y Diseño de Sistemas • 49 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Atributos de Calidad Usabilidad

Arquitectura y Diseño de Sistemas • 50 Lic. Ariel Trellini • DCIC • UNS

Definición

Medidas: Tiempo Medio Entre Fallas (MTTF)

Porcentaje de operaciones que se ejecutan correctamente en un periodo

Ejemplo: Sistema de Aterrizaje Automático Disponibilidad Alta: Debe estar disponible cuando el avión debe aterrizar

Confiabilidad Baja: No tiene que permanecer operativo por largos periodosde tiempo.

Ejemplo: Confiabilidad

Atributos de Calidad

La capacidad de un sistema de mantenerse operativo en el

tiempo.

La probabilidad que tiene el sistema de realizar su función sin

fallas durante un período de tiempo

Arquitectura y Diseño de Sistemas • 51 Lic. Ariel Trellini • DCIC • UNS

Observaciones: Está muy ligado a otros atributos de calidad:

Disponiblidad: Es la probabilidad que tiene el Sistema de estar operativo en un determinado punto en el tiempo.

Tolereancia a Fallas: La capacidad para mantener un determinado nivel de rendimiento en casos de fallas de software o de violación a su interfaz.

Recuperabilidad: La capacidad de restablecer un nivel de rendimientodeterminado y recuperar los datos directamente afectados en caso de falla.

Madurez: La capacidad de evitar fallas como resultado de defectos en el software.

Atributos de Calidad Confiabilidad

Arquitectura y Diseño de Sistemas • 52 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario General

Atributos de Calidad Confiabilidad

Parte Valores Posibles

Fuente Interna al Sistema; externa al sistema

Estímulo Defecto: datos erróneos, falla de hardware, bug en el código, problemas de ambiente

Artefacto Procesadores del sistema, canales de comunicación, almacenamiento persistente, procesos, datos

Ambiente Modo Normal, Modo Sobrecargado

Respuesta El Sistema detectaría un evento y haría una o varias de las siguientes acciones: Registrarlo Notificar a quienes corresponda, incluyendo el usuario y otros sistemas Tomar las acciones necesarias para dejar los datos consistentes Reintentar la operación (probablemente con algún delay)

Medida de la Respuesta

Tiempo medio entre fallas Porcentaje de operaciones que se ejecutan correctamente en un periodoTiempo que el Sistema puede funcionar en modo Sobrecargado

Arquitectura y Diseño de Sistemas • 53 Lic. Ariel Trellini • DCIC • UNS

Ejemplo de Escenario Concreto

Atributos de Calidad Disponibilidad

Fuente:Infraestructura

de AWS

Estímulo:Error de

acceso a un

servicio de

AWS

Ambiente:Operación Normal

Respuesta:Reintentar la

transacción

hasta tener

éxito.

Frecuencia de

reintento: 5,

10, 20, 40…

segundos,

Medida de

Respuesta:Sin

transacciones

fallidas

Artefacto:Proceso

“En AWS (la nube de Amazon) las conexiones a los servicios de AWS pueden fallar eventual y esporádicamente. Ante una falla de la infraestructura de AWS, el sistema debe reintentar la transacción en 5, 10, 20, 40... segundos hasta que logre ejecutarse existosamente.”

06/04/2015

8

Arquitectura y Diseño de Sistemas • 54 Lic. Ariel Trellini • DCIC • UNS

Tácticas

Atributos de Calidad Usabilidad

Reliability Tactics

Detect Faults Recover from Faults Prevent Faults

Ping/Echo

Monitor

Heartbeat

Timestamp

Sanity Checking

ConditionMonitoring

Voting

ExceptionDetection

Self-Test

Active Redundancy

PassiveRedundancy

Exception Handling

Rollback

Retry

Ignore FaultyBehaior

Degradation

Reconfiguration

Async. Processing

Preparation and Repair

Reintroduction

Shadow

State Resync

Escalating Restart

Non-Stop Forwarding

Transaction

Predective Model

ExceptionPrevention

IncreaseCompetence Set

Replace

Fault

FaultMaskedor RepairMade