Atributos de Calidad del Software. Es la aptitud de un producto o servicio para satisfacer las...

25
Ingeniería de Software Atributos de Calidad del Software

Transcript of Atributos de Calidad del Software. Es la aptitud de un producto o servicio para satisfacer las...

Page 1: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Ingeniería de Software

Atributos de Calidad del Software

Page 2: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

¿Qué es calidad?

Page 3: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Clasificación

Page 4: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Impacto entre cualidades

Page 5: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Algunos atributos:

Atributos de calidad del software

Page 6: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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

Correctitud

Page 7: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

¿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

Robustez

Page 8: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Perfomance

Page 9: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Usabilidad

Page 10: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Verificabilidad

Page 11: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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

Evolucionabilidad / Mantenibilidad

Page 12: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Portabilidad

Page 13: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Reusabilidad

Page 14: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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

Atributos internos de Calidad

Page 15: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Ejemplo de impacto entre atributos

Page 16: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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

Trade-Offs

Page 17: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

La pausa son 5 minutos

Y La Virginia es el té

Page 18: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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

Page 19: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

“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

Escenarios de Atributos de calidad - Ejemplo

Page 20: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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

Page 21: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

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.

Atributos de calidad del proceso

Page 22: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Standalone Web Embebidos Firmware En lote o batch Tiempo real Entretenimiento Modelado y simulación Recolección de datos Sistemas de sistemas

Correctitud Performance Robustez Mantenibilidad Usabilidad Portabilidad Reusabilidad Verificabilidad

Características de acuerdo al tipo de sistema?

Page 23: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Preguntas

Page 24: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Sugerencias

Page 25: Atributos de Calidad del Software.  Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.  Es el grado en que un software.

Aplausos