Ingeniería de Software

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

INGENIERÍA DE SOFTWARE II Garantía de Calidad
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
INGENIERIA DE REQUISITOS
ISO/IEC 9126 “Calidad de Producto de Software”
CALIDAD DE PRODUCTO PORTADA CALIDAD DE PRODUCTO.
Medición de la usabilidad en aplicaciones de escritorio.
Herramientas Automáticas de Estimación
DIAGNÓSTICO DE CALIDAD AMS
Guia Diseño Robert Echeverria
Introducción a la calidad en el desarrollo de software
Modelos de confiabilidad
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
CALIDAD EN EL DESARROLLO DE SOFTWARE
Administración de Procesos de Pruebas
La calidad del software.
Análisis Web. Análisis Web Estrategia (I) Para nosotros un sitio web no deja de ser un medio.
NORMA ISO 9126 Carlos Mario Zapata J. 11/04/2017 Calidad de Software.
Modelo McCall PRESENTA: Liliana Hilario, Anabel peña, Jessica Carbajal, Ricardo Díaz.
DISEÑO DE SOFTWARE 1ª. Parte
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
DATA WAREHOUSE Equipo 9.
Bases de Datos Modelamiento.
IIS Evaluación de productos, procesos, recursos Mejorando las predicciones (¿o estimaciones?)
REQUERIMIENTOS DE SOFTWARE
Métricas de calidad de software
Calidad y Garantía de Calidad
Administración Proyectos Jorge Baracaldo Robin Ochoa.
Ingeniería de Requerimiento
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Armillas Mendieta Brenda Angélica De León Campos Arturo Delgado Sosa Luis Alberto Rodríguez Ortega Sandra Vergara Carranza Carlos.
Noviembre 2010 Ferreyra, Paula Huerta, María de las Nieves
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Pruebas y La Vida del Ciclo de Desarrollo del Software
Factores de Calidad McCall Métricas
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Saber que cambiar y como hacer que el cambio finalmente ocurra será fuente de ventajas competitivas para la compañía. La totalidad de presentaciones y.
El rol de SQA en PIS.
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
Proveedores de servicios externos
Factores y Métricas que determinan la Calidad de un producto
Método iterativo Integrantes : Paola Ramón Armando 19 octubre 2011.
Metodologías Lsi. Katia Tapia A., Mae.
Ingeniería de Requisitos
Métricas de calidad de software
CALIDAD Y VALIDACIÓN DE SISTEMAS EXPERTOS
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
Calidad de software Cristian camilo Narváez Useche Francisco González Ortiz Juan Sebastián Martínez Néstor Eduardo Heredia Freddy Esteben Bustos ADSI
Ingeniería del Software I
Alumno: Gerardo Mario Valdés Ortega Matricula: Asignatura: Análisis y diseño de Sistemas Computacionales Cuatrimestre: Tercero Carrera: Licenciatura.
problemas de la calidad del software
Calidad de Software Centro ISYS Escuela de Computación
Sistema de control de calidad de software
NIVELES DE CALIDAD DEL SOFTWARE
Carolina Rangel Felipe Montaño Alexis García
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
EVALUACIÓN DE CALIDAD DEL SOFTWARE Y GOBIERNO EN LÍNEA EN PORTALES WEB APLICANDO PROCESOS DE AUDITORÍA.
¿Qué es la Ingeniería De Software? Ingeniería de Software.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Bachillerato Ingeniería en Informática Fundamentos de Computación.
Noviembre, 2005 ESPECIFICACIÓN DE LA CALIDAD EN LOS SISTEMAS FIABLES (Quality Specification of Dependable Systems) ESPECIFICACIÓN DE LA CALIDAD EN LOS.
? ISO/IEC 9126 ISO/IEC Descripción del estándar.
Verificación y Validación del Software
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
LA CALIDAD DEL SOFTWARE
Transcripción de la presentación:

Ingeniería de Software Atributos de Calidad del Software

¿Qué es calidad? Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario. Es el grado en que un software cumple con los requisitos especificados, ya sean funcionales o no funcionales. IEEE 1601: Es el grado en que el sw posee una combinación adecuada de determinadas características como son el rendimiento, la fiabilidad o la seguridad (es decir de ciertas cualidades). ISO 8402: Es la totalidad de las características de una entidad que dan soporte a su capacidad de satisfacer necesidades manifiestas e implícitas. Es la concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícita mente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente.

Clasificación Algunas clasificaciones son: Calidad Externa (visible) y calidad interna (no visible). Muchas veces la calidad interna tiende a ser mas fácilmente medible que la externa Calidad del producto y calidad del proceso. No es lo mismo la calidad del producto que la calidad el proceso por el cuál se generó ese producto. Calidad desde el punto de vista del usuario. A veces al usuario solo le importa cierto atributo de calidad, dejando de lado otros parámetros. En general se puede decir que las clasificaciones son difusas porque hay un impacto de un atributo de calidad (cualidad) en las otras.

Impacto entre cualidades

Atributos de calidad del software Algunos atributos:

Correctitud ¿Hace lo que espero? Un software es correcto cuando satisface, hasta cierta medida, las condiciones descritas en la especificación de requerimientos formales. Esto requiere de 2 cosas: que la especificación de requerimientos no sea ambigua que el sistema sea verificable. La validación de la correctitud del software NO incluye a la validación de la especificación del mismo. Subcaracterísticas: Precisión, adecuación, interoperabilidad, conformidad, seguridad.

Robustez ¿Lo hace aún en condiciones adversas? Es la capacidad del software de funcionar en condiciones no esperadas. Un sistema es robusto si cuando se dan esas condiciones puede seguir andando o fallar pero recuperarse luego. Las condiciones no esperadas incluyen errores del usuario, momentos de Stress, fallos de la red. Subcaracteristicas: madurez, tolerancia a errores, recuperabilidad

Perfomance Es la capacidad que tiene el software de utilizar los recursos de manera óptima, esto significa utilizar la menor cantidad de recursos para realizar la mayor cantidad de acciones en el menor tiempo posible. En general, a mayor velocidad esperada mayor utilización de recursos. Para los escenarios esperados, se debe encontrar un equilibrio entre la utilización de recursos y la velocidad. Para definir la eficiencia esperada se debe trabajar sobre un grupo de casos esperados, para los casos no esperados, el funcionamiento va a estar ligado a la Robustez del sistema y NO a la eficiencia. Subcategorias: Velocidad, manejo de recursos.

Usabilidad La capacidad de un software de ser utilizado por un usuario. En general es difícil de medir dado que suele responder a características subjetivas. Un sistema es usable no sólo si es atractivo sino también si es fácil de aprender, fácil de acceder y entender. Haciendo esta separación se pueden realizar distintas estrategias para medir la usabilidad: Pruebas desde cero Pruebas por expertos Heurísticas   Medir la cantidad de pasos para realizar una acción Subcategorias: comprensibilidad, aprendibildiad, atractividad y operatibilidad.

Verificabilidad La capacidad de un sistema de poder revisar la adecuación a los distintos atributos de calidad. Cada atributo necesita de alguna manera poder ser revisado para su aceptación. En general lo más importante es la verificabilidad de: Correctitud: poder asegurar que cada acción devuelve el resultado esperado Eficiencia: poder ver en tiempo cercano a la realidad, el estado actual de los recursos Robustez: poder ver lo antes posible si algún componente falló Una herramienta para asegurar cierto nivel de verificabilidad es incluyendo logging.

Evolucionabilidad / Mantenibilidad Es la capacidad del software de evolucionar ya sea por: Cambios Errores Nuevos requerimientos Para asegurar esa capacidad, el software debe asegurar la estabilidad y proveer maneras de volver atrás en casos de error. Subcategorias: Analizabilidad, cambiabilidad, estabilidad, comprobabilidad

Portabilidad La capacidad de un software de ser utilizado en ambientes distintos. Esto incluye: La capacidad de funcionar en distintos hardware y software Co-existir con distintos sistemas La facilidad de instalación / desinstalación Migración de datos existentes. Subcategorias: Adaptabilidad, Instalabilidad, Co-existencia, reemplazabilidad.

Reusabilidad Es la capacidad de un subsistema de ser utilizable como parte de otro sistema en el futuro. La capacidad de diseñar software reusable muestra la madurez de la organización y por lo tanto de una mayor impresión de la calidad. Tener software reusable ayuda a la eficiencia en proyectos futuros.

Atributos internos de Calidad Ejemplos: Fan-In/Fan-Out Líneas de código Complejidad Ciclomática Longitud de identificadores Pesos de métodos por clase Tamaño de árbol de jerarquía de clases Cohesión y acoplamiento Cobertura de pruebas Documentación interna (del código, diseño, etc.)

Ejemplo de impacto entre atributos

Trade-Offs A la hora de definir la importancia de los atributos de calidad en un producto, se debe tener en cuenta que presentan conflictos entre sí. Por ejemplo: Usabilidad – Performance Robustez – Performance Velocidad – Uso de memoria Portabilidad – Verificabilidad Seguridad - Usabilidad

La pausa son 5 minutos Y La Virginia es el té

Escenarios de Atributos de calidad Se utilizan para disminuir la ambigüedad de los atributos de calidad especificados, de manera que puedan ser verificables. Se especifica: Origen del estimulo: actor o acción que interactúa con el sistema Estimulo: condición a considerar Ambiente: estado esperado del sistema Componentes: componentes afectados Respuesta: actividad esperada por el sistema Medida de la respuesta: cómo se va a medir esa respuesta

Escenarios de Atributos de calidad - Ejemplo “Los usuarios bajo condiciones normales, deben ser capaces de realizar 1000 transacciones por minuto. El sistema debe mostrar el resultado en pantalla en una latencia menor a 3 segundos. Se especifica: Origen del estimulo: Usuario realiza transacción Estimulo: Inicio de transacción, probabilístico de 1000tx x minuto Ambiente: Estado normal, horario normal, carga normal Componentes: Todo el sistema Respuesta: Transacción procesada Medida de la respuesta: Latencia menor a 3 segundos

Atributos de calidad del proceso Robustez: Un Proceso es robusto si puede adaptarse de manera prolija a cambios inesperados en el entorno: Nuevos requerimientos, cambios en el equipo de trabajo. Básicamente un proceso es confiable si en la práctica ayuda a producir software de la calidad esperada. Evolucionabilidad: Un Proceso es puede evolucionar cuando puede adaptarse a nuevas técnicas y metodologías. La diferencia con robustez es que estos cambios no son inesperados. Reusabilidad: Un proceso es reusable si en el futuro se puede utilizar en otros proyectos.

Atributos de calidad del proceso Productividad: Es la velocidad de producción que tiene un proceso de desarrollo. Esta velocidad se puede medir en distintas formas, desde  líneas de código x horas hombre hasta tareas hechas en una iteración. Muchas veces se suele sobreestimar esta productividad, dado que el equipo puede tardar más en realizar algunas tareas para hacerlas más eficientes, reusables y libres de errores que permiten no sólo incrementar la productividad a futuro sino evitar trabajo. Oportunidad (Timeliness): Es la capacidad del proceso de entregar resultados a tiempo. Un software puede pasar de valer millones a nada por no haber estado listo a tiempo, ya sea mucho antes de tiempo o después (en general, después). Esto se ve frecuentemente en páginas web o aplicaciones para celulares. Diferentes estilos de ciclo de vida permiten disminuir el impacto de no estar listos a tiempo, entre estos se destacan los ciclos de vida incrementales y los basados en un timebox. Visibilidad (Visibility): La visibilidad en un proyecto de software se consigue cuando cualquier stakeholder puede saber de manera fácil en qué estado se encuentra el proyecto: qué tareas se terminaron, cuáles están en progreso y cuáles son las próximas a realizarse. Además ayudan internamente al equipo a organizarse entre tareas dependientes y sincronización entre desarrollo y testing.

Características de acuerdo al tipo de sistema? Standalone Web Correctitud Embebidos Performance Firmware Robustez En lote o batch Mantenibilidad Tiempo real Usabilidad Entretenimiento Portabilidad Modelado y simulación Reusabilidad Recolección de datos Verificabilidad Sistemas de sistemas

Preguntas

Sugerencias

Aplausos