Ingeniería de Software II



Documentos relacionados
Diseño y Evaluación de Arquitecturas de Software. Software con calidad

Modelado y Diseño de Arquitectura de Software

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

ESQUEMA PARA EL PROYECTO SOCIO TECNOLÓGICO DEL TRAYECTO IV (GESTIÓN DE PROYECTOS) FASE II.

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

LEY QUE NORMA EL USO, ADQUISICIÓN Y ADECUACIÓN DEL SOFTWARE EN LA ADMINISTRACIÓN PUBLICA

Aplicaciones de Ingeniería de Software

Ingeniería del Software I

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Operación 8 Claves para la ISO

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

Sistema de Administración de Farmacias Plan de SQA. Historia de revisiones

MANTENIMIENTO Y SOPORTE

Ingeniería de Software Calidad de Procesos y Productos de Software

PLIEGO DE PRESCRIPCIONES TÉCNICAS PARTICULARES QUE REGIRÁN LA REALIZACIÓN DEL CONTRATO DE LA OFICINA DE CALIDAD PARA LA

REQUERIMIENTOS NO FUNCIONALES

Especificación de Requerimientos Funcionales y No Funcionales. Sistema Reservación Hotelera

Planificación, Administración n de Bases de Datos. Bases de Datos. Ciclo de Vida de los Sistemas de Información. Crisis del Software.

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

Conceptos básicos de Ingeniería de Software

MARCO DE REFERENCIA PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Norma ISO 9001:2015. Cuáles son los cambios presentados en la actualización de la Norma?

Unidad VI: Supervisión y Revisión del proyecto

GUÍAS. Módulo de Diseño de software SABER PRO

CONFIGURACIÓN DE LA METODOLOGÍA OPENUP V1.0. Centro Ideoinformática

Capítulo 4. GESTIÓN DE LA INTEGRACIÓN DEL PROYECTO

LINEAMIENTOS PARA LA ELABORACIÓN DEL PROGRAMA ANUAL DE TRABAJO

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Modelo de actualización y soporte

CMMI (Capability Maturity Model Integrated)

Ingeniería de Sistemas. Administración de Proyectos. Objetivos. Tópicos cubiertos. Procesos de software (tema anterior) Administración de proyecto

SISTEMAS DE INFORMACIÓN III TEORÍA

Prof. Juan José Díaz Nerio. Foro de Tecnología : Gestión de la Calidad del Software. Domingo 16 Noviembre 2014

Pruebas de software la salvación, un proceso sin utilidad, trivial, simplemente una moda, o...?

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Plan de Estudios. Maestría en Seguridad Informática

Unidad 9. Implementación. M.C. Martín Olguín

Calidad. Preparado por: Amelia Soriano. Referencias. Rational Unified Process Version Copyright Rational Software Corporation

Modelado de tácticas de atributos de calidad para la generación de arquitecturas ejecutables.

Computación de Alta Performance Curso 2009 TOLERANCIA A FALLOS COMPUTACIÓN DE ALTA PERFORMANCE 2009 TOLERANCIA A FALLOS

Guía breve para la. administración de la capacitación en las. entidades públicas. Versión abreviada del Manual para la. entidades públicas

Presentación de Pyramid Data Warehouse

Diferencias entre nivel 2 y nivel 3 y una estrategia de implantación

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Proceso Transaccional

+ Cómo ahorrar dinero con Software Quality

Propiedad Colectiva del Código y Estándares de Codificación.

Dirección de Proyectos

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

Implementación de la Portabilidad Numérica Móvil

Elementos requeridos para crearlos (ejemplo: el compilador)

Ciclo de vida del software

INGENIERÍA DEL SOFTWARE I Tema 1. Introducción a la Ingeniería del Software. Univ. Cantabria Fac. de Ciencias Francisco Ruiz

COBIT o COBIT enfatiza el cumplimiento regulatorio, ayuda a las organizaciones a

PROCEDIMIENTO PLANEACION DE PROYECTOS PROCESO GESTION DE PROGRAMAS Y PROYECTOS

Gracias

CONTROL DE CAMBIOS. FICHA CONTROL DE CAMBIOS Versión Fecha Descripción de la Modificación

Evaluación del Software

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Sistema Gestión Licitación para la compra del desarrollo y migración del Sistema de Gestión de Activos y Configuraciones para Plan Ceibal

Plan de estudios ISTQB: Nivel Fundamentos

Taller de Gestión de Proyectos

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Seminario MIS - CIMAT

Capítulo 6: Conclusiones

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

Sistema de Mensajería Empresarial para generación Masiva de DTE

PROPUESTA DE DISEÑO, DESARROLLO E IMPLEMENTACIÓN, DE LA APLICACIÓN MÓVIL QUE PERMITA LA CONSULTA DE INFRACCIONES DE TRÁNSITO, GEOREFERENCIANDO CON EL

Máster en Project Management (PMP ) Objetivos del Programa

Declaración final. Encuentro Desminado humanitario, procesos de paz y territorio. Bogotá, 28 y 29 de enero de 2016

Testing. Tipos, Planificación y Ejecución de Pruebas

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México

MODELOS DE CALIDAD EN EL DESARROLLO DE SOFTWARE

Manual de Procedimientos

2 EL DOCUMENTO DE ESPECIFICACIONES

La transnacionalidad en los proyectos comunitarios

LA REVOLUCIÓN DE LOS SISTEMAS DE INFORMACIÓN (S.I.) Introducción PORQUÉ SISTEMAS DE INFORMACIÓN? El Competitivo Entorno de los Negocios

MARCO DE REFERENCIA SISTEMAS DE INFORMACIÓN PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Introducción n a la Calidad

L.O.P.D. C/Rafael Sánchez 61. Real de San Vicente Toledo. Teléfono: Fax:

Análisis y Diseño de Soluciones de Software

CALIDAD TOTAL. Visión estratégica y buena gestión son los ingredientes fundamentales.

TEMA 7: DIAGRAMAS EN UML

Modelado arquitectónico con UML

GERENCIA DE INTEGRACIÓN

Norma Internacional ISO 9001:2008: Sistemas de Gestión de la Calidad- Requisitos. 4. Sistema de Gestión de la Calidad

6 Anexos: 6.1 Definición de Rup:

Métricas. Valentin Laime. Calidad de Software

Facultad de Ciencias Naturales e Ingenierías Tecnología en Desarrollo de Sistemas Informáticos Selección y Evaluación de Tecnologías

Proyecto Tutelkán Tutelkan Reference Process (TRP) Versión 2.0

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

Capítulo 2 Análisis del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

ANÁLISIS DE PROPUESTAS CURRICULARES. El planteamiento curricular presenta varios aspectos interesantes, como por ejemplo:

Tener la WiFi abierta implica tener nuestra conexión a Internet compartida, además de otros riesgos:

Transcripción:

Ingeniería de Software II Primer Cuatrimestre de 2009 Clase 3b: Especificación de Atributos de Calidad y QAW Buenos Aires, 23 de Marzo de 2009

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 O3: Perdón, Por qué quieren un sistema Web? 2

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. [IEEE Std. 1061] 3

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 flexibilidad ( facilidad de cambios ) 4

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 5

Distintas clasificaciones de atributos de calidad IEEE Std 1061 / ISO 9126 Efficiency Functionality Maintainability Portability Reliability Usability Mitre Efficiency Reliability Usability Maintainability Expandability Interoperability Reusability Integrity Survivability Correctness Verifiability Flexibility Portability 6

Atributos de calidad: Apertura en ISO 9126 Características Subcaracterísticas Funcionalidad Adecuación Corrección Interoperabilidad Seguridad Conformidad Fiabilidad (reliability) Madurez Tolerancia a Fallas Recuperabilidad Usabilidad Aprendibilidad Comprensibilidad Operabilidad Atractividad Eficiencia Comportamiento Temporal Utilización de Recursos Mantenibilidad Portabilidad Analizabilidad Cambiabilidad Estabilidad Facilidad de Prueba Adaptabilidad Instalabilidad Coexistencia Reemplazabilidad

Atributos de calidad que vamos a discutir Relacionados con la calidad del sistema: Disponibilidad Facilidad de cambios Performance Escalabilidad Seguridad Facilidad de testeo Usabilidad 8

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 9

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. 10

Escuchando a los que saben David Parnas: The part of the game of designing good software is designing for change 11

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. 12

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 seguimiento de actividades realizadas 13

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). 14

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 Aumentar confianza y satisfacción 15

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 operado en distintas plataformas. 16

Especificación de Atributos de Calidad (SEI) 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, 2 nd Edition. Bass, Clements y Kazman. SEI Series in Software Engineering, 17 Addison Wesley, 2003.

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) 18

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 19

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- 20 2003-TR-016 ESC-TR-2003-016

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? Cómo se puede usar toda esta información? 21

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 Existe un template del SEI para minutas de las sesiones 22

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 23

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 24