39
1 Acerca de Acerca de la Ingeniería de software la Ingeniería de software (IS) (IS) Introducción Introducción

Calidad de software

Embed Size (px)

DESCRIPTION

calidad de los software informaticos

Citation preview

Page 1: Calidad de software

1

Acerca de Acerca de

la Ingeniería de software la Ingeniería de software

(IS)(IS)

IntroducciónIntroducción

Page 2: Calidad de software

2

¿Qué es software?¿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.

Page 3: Calidad de software

3

¿ Que es la IS ?¿ 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.

Page 4: Calidad de software

4

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.

¿Cómo obtener software de ¿Cómo obtener software de calidad?calidad?

Page 5: Calidad de software

5

Software de calidadSoftware de calidad

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

Page 6: Calidad de software

6

• Correcto

• Confiable

• Robusto

Se comporta acorde a su especificación

Se comporta de acuerdo a lo esperado por el usuario

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

Confiabilidad, correctitud y Confiabilidad, correctitud y robustezrobustez

Page 7: Calidad de software

7

Confiabilidad, correctitud y Confiabilidad, correctitud y robustezrobustez• 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).

Page 8: Calidad de software

8

Confiabilidad, correctitud y Confiabilidad, correctitud y robustezrobustez

¿correcto => confiable?•Si, en el caso que la especificación capture los requerimientos del sistema¿confiable => correcto?• No necesariamente

Correcto

confiable

¿correcto => robusto?¿robusto => correcto?

¿confiable => robusto?¿robusto => confiable?

•Tarea 2

Page 9: Calidad de software

9

Cualidades del software: Cualidades del software: reusabilidadreusabilidad• Reusable

Componentes reusables:– Librerías científicas– Librerías para el desarrollo de

interfaces (MFC de Windows)– Patrones– Especificaciones– Clases.

Puede integrarse como componente de otros sistemas de software

Page 10: Calidad de software

10

ReusabilidadReusabilidad

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

“....en el futuro las aplicaciones

serán construídas ensamblando

componentes..”

Page 11: Calidad de software

11

Cualidades del software: Cualidades del software: portabilidadportabilidad

• Portable

– Rango de portabilidad

– Portabilidad en diferentes plataformas de hardware (UNIX)

– Portabilidad en diferentes sistemas operativos (Java).

Puede ser utilizado en diferentes Puede ser utilizado en diferentes plataformasplataformas

Page 12: Calidad de software

12

Cualidades del software: Cualidades del software: interoperabilidadinteroperabilidad• Interoperable

– Las herramientas de ambientes integrados son interoperables

– Sistemas abiertos.

Puede coexistir y cooperar con otros sistemas de software.

Page 13: Calidad de software

13

– Se mide mediante técnicas clásicas:

• complejidad de algoritmos• evaluación de la eficiencia

(monitoreo, simulación,..).

Cualidades del software: Cualidades del software: eficienciaeficiencia•Eficiente

Usa los recursos computacionales económicamente

Page 14: Calidad de software

14

Cualidades del software: Cualidades del software: comprensibilidadcomprensibilidad• 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.

Page 15: Calidad de software

15

Cualidades del software: Cualidades del software: usabilidadusabilidad• 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,...).

Page 16: Calidad de software

16

¿ Qué es Usabilidad ?¿ 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

Page 17: Calidad de software

17

Cualidades del software: Cualidades del software: manteniblemantenible• Mantenible

– Mantenimiento correctivo(remoción de errores)

– Manteniendo adaptativo(cambios para adecuarlo a modificaciones de su ambiente)

– Mantenimiento perfectivo(cambios para mejorar la calidad -satisfacer nuevos requerimientos, aumentar la eficiencia, modificar funcionalidades, etc.)

20%

20%

60%

Fácil de modificar

Importancia de:•Documentación del proceso•Proceso orientado a facilitar los cambios

Page 18: Calidad de software

18

Medición de cualidadesMedición de cualidades

Métricas:• No existen standares aceptados para

medir algunas cualidades• Area de investigación muy activa

Page 19: Calidad de software

19

Importancia de las Importancia de las cualidadescualidades

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

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

Page 20: Calidad de software

20

Interrelación de cualidadesInterrelación de cualidades

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

Confiable

Correcto

Robusto

X

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

.

Page 21: Calidad de software

21

Interrelación de cualidadesInterrelación de cualidades

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

Reusable

Correcto

Comprensible

X

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

Eficiente

• Tarea 3

Page 22: Calidad de software

22

Interrelación de cualidadesInterrelación de cualidades

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

Eficiente

X

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

Page 23: Calidad de software

23

Interrelación de cualidadesInterrelación de cualidades

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

Mantenible

Comprensible

Incrementable

X

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

• Tarea 4

Page 24: Calidad de software

24

Interrelación de cualidadesInterrelación de cualidades

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

Usable

Confiable

Eficiente

X

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

Amigable

...

Page 25: Calidad de software

25

Cualidades claves Cualidades claves (Sommerville Ian)

El software debe ser:• Mantenible

los cambios puedan ser hechos con bajos costos

• Confiablese ejecute de acuerdo a las expectativas

• Eficienteno haga uso excesivo de recursos y no sea lento

• Usableinterfaz ajustada a las capacidades y background del usuario.

Page 26: Calidad de software

26

¿Cómo obtener software de ¿Cómo obtener software de calidad?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.

Page 27: Calidad de software

27

Para construir software de calidad se aplica un método basado en principios y se utilizan herramientas adecuadas

Principios

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

Herramientas

Métodos:normas sistemáticas que gobiernan la ejecución de una actividad

Técnicas:procesos basados en los métodos

Principio:“Concepto, idea fundamental que sirve de base a un orden determinado de conocimientos o sobre la que se apoya un razonamiento”

Page 28: Calidad de software

28

Principios en la ISPrincipios en la IS

1. Rigor y formalidad2. Abstracción3. Modularidad4. Anticipación al cambio5. Generalidad6. Incrementalidad.

Page 29: Calidad de software

29

Principios: Rigor y Principios: Rigor y FormalidadFormalidad

• 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

Page 30: Calidad de software

30

Principios: AbstracciónPrincipios: 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)

Page 31: Calidad de software

31

Principios: Principios: AbstracciAbstracciónón

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

Page 32: Calidad de software

32

Principios: ModularidadPrincipios: 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)

Page 33: Calidad de software

33

Principios: ModularidadPrincipios: Modularidad

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

modularidad adecuada

Page 34: Calidad de software

34

DescomposiciónDescomposición- análisis -- análisis -

Problema

Subprob. 4

Subprob. 2

Subprob. 1 Subprob. 3

solución. 4solución. 2

Solución. 1

solución. 3

Solución

ComposiciónComposición- síntesis -- síntesis -

Page 35: Calidad de software

35

Principios: Principios: Anticipación de cambioAnticipació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

Page 36: Calidad de software

36

Principios: GeneralidadPrincipios: 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.

Page 37: Calidad de software

37

Principios: IncrementalidadPrincipios: 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.

Page 38: Calidad de software

38

Actividades en el proceso de Actividades en el proceso de desarrollo de softwaredesarrollo 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 modelosencadenan las diversas

actividades

Page 39: Calidad de software

39

Un método integra diversas actividades: • análisis, diseño, .......

Principios

Métodos y técnicas

Herramientas