Calidad de software

Page 1

Introducci贸n

Acerca de la Ingenier铆a de software (IS)

1


¿Qué es software? • Programas y su documentación asociada • Los productos de software pueden ser: – De propósito general: desarrollados para un amplio mercado compuesto de clientes diversos – De propósitos específicos: desarrollados para dominios restringidos con clientes específicos. 2


¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas de software complejos y de calidad, que requiere para su construcción de : • un equipo de personas • procesos rigurosos, sistemáticos y controlables (modelos y métodos) • la utilización de herramientas. 3


¿Cómo obtener software de calidad? Mediante un proceso .... • Soportado por un método riguroso, sistemático • basado en principios reconocidos • con actividades que se estructuren de acuerdo a un modelo • facilitado por el uso de herramientas. 4


Software de calidad ¿Cuáles son las características que deseamos al elaborar un software?

5


Confiabilidad, correctitud y robustez • Correcto Se comporta acorde a su especificación

• Confiable Se comporta de acuerdo a lo esperado por el usuario

• Robusto Se comporta razonablemente aún en cirscunstancias no contempladas (tolerante a fallas).

6


Confiabilidad, correctitud y robustez • construcciones correctas si ellas satisfacen las especificaciones • en un movimiento sísmico unas colapsan (no son robustas) • otras construcciones sufren pequeños daños tolerables o previsibles (son confiables). 7


Confiabilidad, correctitud y robustez ¿correcto => confiable? •Si, en el caso que la especificación capture los requerimientos del sistema

Correcto

confiable

¿confiable => correcto? • No necesariamente

•Tarea 2

¿confiable => robusto?

¿correcto => robusto?

¿robusto => confiable?

¿robusto => correcto?

8


Cualidades del software: reusabilidad • Reusable

Puede integrarse como componente de otros sistemas de software Componentes reusables: – Librerías científicas – Librerías para el desarrollo de interfaces (MFC de Windows) – Patrones – Especificaciones – Clases.

9


Reusabilidad

“....en el futuro las aplicaciones serán construídas ensamblando componentes..”

factor clave para determinar la madurez de cualquier industria “....la IS debe aún evolucionar para alcanzar su madurez como una disciplina de ingeniería..” 10


Cualidades del software: portabilidad • Portable Puede ser utilizado en diferentes plataformas – Rango de portabilidad – Portabilidad en diferentes plataformas de hardware (UNIX) – Portabilidad en diferentes sistemas operativos (Java). 11


Cualidades del software: interoperabilidad • Interoperable

Puede coexistir y cooperar con otros sistemas de software. – Las herramientas de ambientes integrados son interoperables – Sistemas abiertos.

12


Cualidades del software: eficiencia • Eficiente Usa los recursos computacionales económicamente

– Se mide mediante técnicas clásicas: • complejidad de algoritmos • evaluación de la eficiencia (monitoreo, simulación,..). 13


Cualidades del software: comprensibilidad • Comprensible – Como cualidad interna: • documentos de análisis y diseño fáciles de entender • código “descifrable”

– Como cualidad externa: • relacionado con la usabilidad.

14


Cualidades del software: usabilidad • Usable – La usabilidad de un producto de software está determinada por la satisfacción del usuario al utilizar el producto – Fundamentalmente relacionada con las características de la interfaz de usuario – Diversas cualidades inciden en la usabilidad (eficiencia, confiablidad,...).

15


¿ Qué es Usabilidad ? Usabilidad es una cualidad del software que tiene múltiples componentes y tradicionalmente es asociado con: • Aprendizaje

• Eficiencia • Memorización • Baja rata de errores • Satisfacción 16


Cualidades del software: mantenible • Mantenible Fácil de modificar 20% 20% 60%

– Mantenimiento correctivo (remoción de errores)

Importancia de: – Manteniendo adaptativo •Documentación del (cambios para adecuarlo a modificaciones de proceso su ambiente) •Proceso orientado a – Mantenimiento perfectivo facilitar los cambios (cambios para mejorar la calidad -satisfacer nuevos requerimientos, aumentar la eficiencia, modificar funcionalidades, etc.)17


Medición de cualidades Métricas: • No existen standares aceptados para medir algunas cualidades • Area de investigación muy activa

18


Importancia de las cualidades •Al usuario le interesa que el software sea fácil de usar, confiable, ...

• Al equipo de desarrollo le interesa que el software sea eficiente, comprensible, portable, ... 19


Interrelación de cualidades Si se quiere que un software tenga la cualidad X ¿qué otras cualidades ayudan a ello?

Correcto

X Confiable

Robusto

.

- Correcto - robusto - confiable - eficiente - mantenible - verificable - usable - reusable - interoperable - portable - comprensible - incrementable - ..... 20


Interrelación de cualidades Si se quiere que un software tenga la cualidad X ¿cuáles otras cualidades ayudan a ello? Correcto

Eficiente

X Reusable

Comprensible

• Tarea 3

- Correcto - robusto - confiable - eficiente - mantenible - verificable - usable - reusable - amigable - interoperable - portable - comprensible - incrementable - ..... 21


Interrelación de cualidades Si se quiere que un software tenga la cualidad X ¿cuáles otras cualidades ayudan a ello?

X Eficiente

- Correcto - robusto - confiable - eficiente - mantenible - verificable - usable - reusable - amigable - interoperable - portable - comprensible - incrementable - ..... 22


Interrelación de cualidades Si se quiere que un software tenga la cualidad X ¿cuáles otras cualidades ayudan a ello?

Comprensible

X Mantenible

Incrementable

• Tarea 4

- Correcto - robusto - confiable - eficiente - mantenible - verificable - usable - reusable - interoperable - portable - amigable - comprensible - incrementable - ..... 23


Interrelación de cualidades Si se quiere que un software tenga la cualidad X ¿cuáles otras cualidades ayudan a ello?

X

Confiable

Usable Amigable

Eficiente

...

- Correcto - robusto - confiable - eficiente - mantenible - verificable - usable - reusable - interoperable - portable - amigable - comprensible - ..... 24


Cualidades claves (Sommerville Ian)

El software debe ser: • Mantenible los cambios puedan ser hechos con bajos costos • Confiable se ejecute de acuerdo a las expectativas • Eficiente no haga uso excesivo de recursos y no sea lento • Usable interfaz ajustada a las capacidades y background del usuario.

25


¿Cómo obtener software de calidad? •Mediante un proceso •soportado por un método sistemático, •que esté basado en principios reconocidos •facilitado con el uso de herramientas •y cuyas actividades se estructuren •de acuerdo a un modelo. 26


Para construir software de calidad se aplica un método basado en principios y se utilizan herramientas adecuadas Técnicas: procesos basados en los métodos

Herramientas Metodología (métodos/técnicas)

Métodos: normas sistemáticas que gobiernan la Principios ejecución de una actividad Principio: “Concepto, idea fundamental que sirve de base a un orden determinado de conocimientos o sobre la que se apoya un razonamiento”

27


Principios en la IS 1. Rigor y formalidad 2. Abstracci贸n 3. Modularidad 4. Anticipaci贸n al cambio 5. Generalidad 6. Incrementalidad. 28


Principios: Rigor y Formalidad • Significa ... seguir procesos sistemáticos y verificables en el proceso de desarrollo de software IMPLICACIONES: • La formalidad es la base de automatización de procesos • Principio esencial para obtener productos reusables

29


Principios: Abstracción • Significa... Aplicar un proceso mental o intelectual que permite identificar lo relevante e ignorar los detalles IMPLICACIONES: • percepción del qué/cómo (la separación de intereses ) • percepción del todo/partes (modularidad) 30


Principios: Abstracción

Tomado de : « Object-Oriented Analysis and Design ». Grady Booch. 1994

31


Principios: Modularidad Significa: • descomponer en partes un sistema complejo (descomposición) • componer el sistema a partir de sus partes (composición) Comprender el sistema y las partes (comprensión)

32


Principios: Modularidad

• Alta Cohesión del módulo • Bajo Acoplamiento entre módulos

modularidad adecuada 33


Descomposición - análisis -

Composición - síntesis -

Problema Solución. 1 solución. 2

solución. 3 solución. 4

Solución Subprob. 1 Subprob. 2

Subprob. 3 Subprob. 4

34


Principios: Anticipación de cambio • Significa: La capacidad de prever cómo y dónde pueden ocurrir los cambios • La aplicación de este principio es altamente apreciado en la etapa de mantenimiento • Es un principio relevante para el desarrollo de componentes reusables

35


Principios: Generalidad Significa: buscar la solución más amplia (que englobe los casos específicos) • Busca la solución más amplia para problemas específicos • La solución general puede ser menos eficiente o más costosa • Principio importante para desarrollar productos reusables.

36


Principios: Incrementalidad Significa: Construcción del producto por aproximaciones sucesivas y/o por componentes (partes) • Desarrollo de prototipos para los componentes críticos • Útil para desarrollo de aplicaciones no precisas, donde no están bien definidos los requerimientos.

37


Actividades en el proceso de desarrollo de software • Para desarrollar un producto de software se realizan diversas actividades que se estructuran y relacionan de acuerdo a un modelo y se desarrollan siguiendo un mÊtodo.

Los modelos encadenan las diversas actividades 38


Un método integra diversas actividades: •

análisis, diseño, .......

Herramientas Métodos y técnicas

Principios

39


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.