• No se han encontrado resultados

Ingeniería de Software II

N/A
N/A
Protected

Academic year: 2021

Share "Ingeniería de Software II"

Copied!
24
0
0

Texto completo

(1)

Ingeniería de Software II

Primer Cuatrimestre de 2009

Buenos Aires, 23 de Marzo de 2009 Clase 3b: Especificación de Atributos de Calidad y QAW

(2)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

2 Una historia real

 Reunión por una gran licitación entre el contratante y 5 oferentes  O1: “¿Los cientos de puntos de acceso en todo el país, van a tener

conectividad?”

 C: “Si, van a tener todos banda ancha”

 O2: “¿Qué tipo de arquitectura están esperando?”  C: “Bueno, nosotros queremos un sistema Web”  O1: “Pero… ¿Siempre van a tener conectividad?”

 C: “Y… en algunos lugares es complicado, así que hay que tener en cuenta eso. Podría ser una parte Web y una parte no-web”

 O2: “Claro… una parte cliente servidor y otra parte Web.”

 C: “Si, no hace falta que funcione todo si no hay conexión, así que la parte cliente servidor podría ser más chica que la parte Web”

 … varios minutos más de discusión…

(3)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

3 Los Atributos de Calidad

La funcionalidad es sólo una parte de lo que un sistema debe

hacer.

Además, están los atributos de calidad (“ilities”), que hablan de

características específicas que debe tener el sistema

(anteriormente llamados “requerimientos no funcionales”).

Ejemplo: portabilidad, flexibilidad, usabilidad

Necesitamos conocerlos para definir una arquitectura

En muchos casos, los atributos de calidad se afectan entre si.

Por ejemplo, portabilidad vs. performance o flexibilidad vs. Performance

“Software quality is the degree to which software possesses a desired combination of attributes.”

(4)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

4 Algunas realidades sobre los atributos de calidad

Suelen estar pobremente especificados, o directamente no

especificados (“un requerimiento que no es testeable no es implementable”)

En general no se analizan sus dependencias

La importancia de estos atributos varía con el dominio para el

cual se construye el software

Además de requerimientos funcionales y atributos de calidad, el

ingeniero de software debe identificar correctamente restricciones.

Las “tácticas” de arquitectura no son fines en si mismas, son

formas de alcanzar atributos de calidad deseados

El atributos de calidad que suele ser más importante: la

(5)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

5 Ingeniería de Requerimientos

Una forma disciplinada y sistemática de llegar desde las

necesidades de los usuarios a una especificación

Lo que hay que conocer para definir bien una

arquitectura (y por lo tanto para hacer bien un sistema):

Requerimientos Funcionales “de negocio” Otros Atributos de Calidad requeridos Restricciones

(6)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

6 Distintas clasificaciones de atributos de calidad

Mitre  Efficiency  Reliability  Usability  Maintainability  Expandability  Interoperability  IEEE Std 1061 / ISO 9126  Efficiency  Functionality  Maintainability  Portability  Reliability  Usability  Reusability  Integrity  Survivability  Correctness  Verifiability  Flexibility  Portability

(7)

Atributos de calidad: Apertura en ISO 9126 Subcaracterísticas Características Utilización de Recursos Comportamiento Temporal Reemplazabilidad Coexistencia

Tolerancia a Fallas Recuperabilidad Madurez

Instalabilidad Adaptabilidad

Interoperabilidad

Corrección Seguridad Conformidad

Operabilidad Aprendibilidad Comprensibilidad

Analizabilidad Cambiabilidad Estabilidad Facilidad de Prueba Adecuación Atractividad Portabilidad Mantenibilidad Eficiencia Usabilidad Fiabilidad (reliability) Funcionalidad

(8)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

8 Atributos de calidad que vamos a discutir

Relacionados con la calidad del sistema:

Disponibilidad Facilidad de cambios Performance Escalabilidad Seguridad Facilidad de testeo Usabilidad

(9)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

9 Atributos de calidad – Disponibilidad

 Relacionada con fallas (“failures”) en el sistema y sus consecuencias asociadas.

 Un “failure” ocurre cuando un sistema no entrega más un servicio de acuerdo con su especificación.

 Esas “failures” son observables por los usuarios (personas u otros sistemas).

 Error <> Defecto (defect) <> Fault <> Failure

 Tiempo de reparación = tiempo hasta que la falla no es más observable  Disponibilidad = probabilidad de que un sistema esté disponible cuando

se lo necesite

 D = Mean Time to Failure / (Mean Time to Failure + Mean Time to

Repair)

 Los “downtimes” programados no se consideran  Relativamente fácil de especificar, difícil de verificar

(10)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

10 Atributos de calidad – Facilidad de cambios

Relacionada con el costo de los cambios. Uno de los

atributos de calidad más difíciles de expresar.

Temas importantes:

¿Qué puede cambiar?

Funcionalidad

Plataforma

Otros atributos de calidad Interfaces

¿Quién y dónde se hace el cambio?

Usuarios, desarrolladores, administradores

Código, configuración, parametrización

Una vez que un cambio se especifica, debe ser diseñado,

implementado, probado y liberado. Todo esto cuesta dinero.

(11)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

11 Escuchando a los que saben…

David Parnas: “The part of the game of designing good software is designing for change”

(12)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

12 Performance

Relacionada con el tiempo que le lleva al sistema

responder a un evento que ocurre (interrupciones, mensajes, pedidos de usuarios o paso del tiempo).

Latencia: tiempo entre la llegada del estímulo y el

inicio de la respuesta del sistema

Deadlines: límites de tiempo para un proceso

Throughput: cantidad de transacciones que el sistema

puede procesar en un período de tiempo

“Jitter”: variación en la latencia

Eventos no procesados

Difícil de expresar. Depende de volúmenes del sistema,

equipamiento en uso y versiones de sistema operativo y otros software de base.

(13)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

13 Seguridad

Habilidad de un sistema para resistir usos no autorizados

y seguir proveyendo sus servicios a usuarios legítimos. Incluye:

Nonrepudiation: mecanismos para asegurar que

quienes hicieron algo no puedan negarlo

Condifencialidad: propiedad por la cual datos o

servicios son protegidos de accesos no autorizados

Integridad: propiedad por la cual datos o servicios se

brindan como fue previsto.

Disponibilidad (en el contexto de seguridad): que un

sistema esté disponible para su uso legítimo

Auditabilidad: habilidad de un sistema para hacer un

(14)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

14 Facilidad de testeo

Facilidad que presenta un sistema para que se ejecuten

sobre él actividades de testing.

Para 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).

(15)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

15 Usabilidad

Usabilidad: 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.

Aprender la funcionalidad del sistema

Usar el sistema eficientemente

Minimizar el impacto de los errores

Adaptar el sistema a las necesidades de los usuarios

(16)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

16 Otros Atributos

Escalabilidad: una medida de qué tan bien una solución

sigue cumpliendo con sus requerimientos al cambiar los volúmenes del problema que resuelve

Portabilidad: facilidad de un sistema para poder ser

(17)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

Especificación de Atributos de Calidad (SEI)

17

Quality Attribute Scenario, formado por: Fuente del estímulo: Interna o externa

Estímulo: condición que debe ser tenida en cuenta al llegar al sistema Entorno: condiciones en las cuales ocurre el estímulo

Artifact: el sistema o partes de él afectadas por el estímulo Response: qué hace el sistema ante la llegada del estímulo

Resonse measure: cuantificación de un atributo de la respuesta

Fuente: Software Architectures in Practice, 2ndEdition. Bass, Clements y Kazman. SEI Series in Software Engineering,

(18)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

Ejemplos de escenarios de atributos de calidad

Escenario de disponibilidad

“Un proceso del sistema recibe un mensaje externo no

anticipado durante un modo de operación normal. El proceso informa al operador y continúa su operación son caídas”.

Fuente: Sistema externo

Estímulo: Mensaje no anticipado

Entorno: Operación normal

Artefacto: Proceso interno

Respuesta: Informar al operador y seguir operando

Medición de la respuesta: sin caídas (downtime)

(19)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

Ejemplos de escenarios de atributos de calidad (cont.)

Escenario de facilidad de cambios

“Un desarrollador desea cambiar el framework de ORM

de la aplicación. El cambio será hecho en el código, en tiempo de diseño. El cambio debe poder ser hecho sin efectos secundarios en menos de 500 horas persona”.

Fuente: Desarrollador

Estímulo: Cambio en el framework de ORM

Entorno: En tiempo de diseño

Artefacto: Código

Respuesta: Cambio hecho sin efectos secundarios

Medición de la respuesta: en menos de 500 horas

persona

(20)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

20 Quality Attribute Workshops

El Quality Attribute Workshop (QAW) es un método

facilitado que relaciona 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

Sus pasos son:

Presentación del método

Presentación del negocio / misión

Presentación del plan de arquitectura

Identificar drivers arquitectónicos

Brainstorming de escenarios

Consolidación de escenarios

Definición de prioridades de escenarios

Refinamiento de escenarios

Iterar mientras sea necesario agregando “stakeholders”

Fuente: Quality Attribute Workshops (QAWs), Third Edition. Mario R. Barbacci, Robert Ellison, Anthony J.

Lattanze, Judith A. Stafford, Charles B. Weinstock, William G. Wood, August 2003. TECHNICAL REPORT CMU/SEI-2003-TR-016 ESC-TR-2003-016

(21)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

21 Motivación – ¿Qué problema queremos atacar?

¿Cuál es el significado preciso de los atributos de calidad, como modificabilidad seguridad, performance, y

confiabilidad, en el contexto del sistema que se está construyendo?

¿Cómo se pueden descubrir, caracterizar, y dar

prioridades a los atributos clave antes de que se construya el sistema?

¿Cómo se puede hacer que una comunidad dispersa

geográficamente de “stakeholders” se involucren de una manera disciplinada y repetible en el descubrimiento y la caracterización de atributos de calidad?

(22)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

22 Roles y duración

Evento de 1 día ofrecido como servicio por el SEI

Roles:

Líder de QAW: facilitador de las discusiones

Asistente: registra la información de las sesiones

(23)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

23 Detalle del proceso (1)

Presentación del método Presentación del negocio / Misión Presentación del plan de arquitectura Identificación de drivers de arquitectura Describir el propósito del QAW Presentar los “stakeholders” (posición en la organización y rol en el sistema) Presentación realizada por un representante de los stakeholdes Objetivo principal: entender la motivación para construir el sistema. Un representante técnico presenta lo que se sepa sobre la arquitectura: Planes y estrategias Requerimientos y restricciones clave Diagramas de alto nivel Primera depuración de los resultados de los pasos anteriores. Clasificación en requerimientos, restricciones y atributos de calidad requeridos Se acuerda con stakeholders

(24)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2009

24 Detalle del proceso (2)

Brainstorming

de escenarios Consolidación de escenarios

Definición de Prioridades de escenarios Refinamiento de escenarios Buscar escenarios de los 3 tipos: Caso de uso Crecimiento Exploratorios Se documentan como: Estímulo Entorno Respuesta Round robin – 2 pasadas Los facilitadores agrupan escenarios similares Cada stakeholders “vota” por hasta un 30% de los escenarios consolidados Se hace round robin de 2 pasadas Refinar los 4 o 5 más votados: Estímulo Respuesta Fuente Entorno Objeto afectado Medida de la respuesta Misión afectada Atributos de calidad asociados Preguntas y respuestas

Referencias

Documento similar

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Es importante mencionar, que en los últimos 5 años, China ha venido mostrando un gran avance en la industria textil y de la confección, ingresando en mercados como Europa,

Por lo anterior se considera que el desarrollo de un Sistema de Gestión de la Calidad es de vital importancia para MEDDEX, el cual tiene como finalidad