Вы находитесь на странице: 1из 4

Departamento de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur


PROGRAMACION ORIENTADA A OBJETOS – Curso Prof. Diego Martínez - 2007

Calidad del Software

La ingeniería busca la calidad

La ingeniería de software surge a fines de los 60, pero toma


especial importancia con la aparición de la programación
orientada a objetos.

La programación orientada a objetos tiene como objetivo


mejorar la calidad del software que se produce.

¿Qué es la calidad del software?

Calidad del Software Factores de Calidad del Software

CALIDAD
EXTERNOS
"La calidad es la suma de todos aquellos aspectos o características de
un producto o servicio que influyen en su capacidad para satisfacer Una cualidad del software que
las necesidades, expresadas o implícitas" (ISO 8402) puede ser detectada por algún
usuario del software
"Grado con el cual el cliente o usuario percibe que el software
satisface sus expectativas" (IEEE 729-83) Factores de
Calidad
INTERNOS
"Capacidad del producto software para satisfacer los requisitos
establecidos" (DoD 2168) Una cualidad del software que sólo
puede ser percibida por los
profesionales del software que tienen
acceso al código fuente
Se describe mejor como una serie de factores 3 4

Factores de Calidad del Software Factores de Calidad del Software

Los factores externos son importantes, pero no pueden Correctitud


lograrse sin tener en cuenta los factores internos. Es la capacidad de un producto de software de ejecutar
las tareas exactas que se definieron en la especificación
Correctitud
Robustez
Extendibilidad ES EL FACTOR MAS IMPORTANTE
Reusabilidad
Factores de Compatibilidad
Calidad Eficiencia
Externos
Portabilidad
Facilidad de Uso
Funcionalidad
...
5 6
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
PROGRAMACION ORIENTADA A OBJETOS – Curso Prof. Diego Martínez - 2007

Factores de Calidad del Software Factores de Calidad del Software

Robustez Extendibilidad
Es la propiedad de un producto de software de Es la facilidad de adaptar un producto de software a
reaccionar apropiadamente a condiciones anormales cambios en la especificación

Complementa la correctitud cubriendo los casos no Dos principios son fundamentales para mejorar la
considerados en la especificación extendibilidad:
• Simplicidad de Diseño: una arquitectura simple es mas fácil
de adaptar a los cambios que una muy compleja
• Descentralización: mientras más autonomos sean los
módulos, menor será el impacto de los cambios.

7 8

Factores de Calidad del Software Factores de Calidad del Software

Reusabilidad Compatibilidad
Es la habilidad de los elementos de software de servir Es la facilidad de combinar elementos de software con
para la construcción de muchas aplicaciones diferentes otros elementos

Influye en los otros aspectos: existe menos código para Una técnica fundamental para favorecer la compatibilidad es
escribir, luego se puede dedicar más esfuerzo a garantizar la definición de estándares.
otros factores como la robustez y correctitud.
en formatos de archivos
en las estructuras de datos
en las interfaces de usuario

9 10

Factores de Calidad del Software Factores de Calidad del Software

Eficiencia Portabilidad
Es la habilidad de un sistema de software para requerir Es la facilidad de transferencia de los productos de software
la menor cantidad posible de recursos de hardware entre varios entornos de hardware y software (plataforma)
disponibles.

Obsesión por la Indiferencia por la


perfomance perfomance Facilidad de Uso
Es la facilidad de que personas con diferentes conocimientos
aprendan a usar el sistema. Incluye instalación, operación y
“más rápido, más “... pero anda!” monitoreo
chico, más barato!”
Nunca pretender que se conoce al usuario.

11 12
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
PROGRAMACION ORIENTADA A OBJETOS – Curso Prof. Diego Martínez - 2007

Factores de Calidad del Software Factores de Calidad del Software


Funcionalidad En muchos casos debe encontrarse un balance (tradeoff) entre
Es el conjunto de posibilidades que brinda un sistema. los factores, puesto que algunos pueden entrar en conflicto con
otros.
La obsesion por la funcionalidad puede perjudicar
el desarrollo del producto. eficiencia portabilidad

Para mejorar la funcionalidad es importante tener


en cuenta la compatibilidad y la extendibilidad puntualidad extendibilidad

Puntualidad (timeliness)
Es la habilidad del sistema de software de ser entregado
antes o cuando el usuario lo requiere efectivamente. Sacrificar alguno de los factores en algun grado NUNCA debe
comprometer la correctitud del programa
Otros: integridad, reparabilidad, economía,
documentación 13 14

Factores de Calidad del Software Modularidad

Si bien todos los factores mencionados revisten importancia, hay El concepto de módulo surge de la necesidad de construir una
cuatro que son fundamentales en todo producto de software: arquitectura flexible, compuesta de componentes de software
autónomos

Correctitud Un método de construcción de software es modular si ayuda a


Confiabilidad los diseñadores a producir sistemas de software compuestos por
Robustez elementos autónomos conectados en una estructura simple y
coherente.
Extendibilidad
Modularidad
Reusabilidad
Analizaremos el principio intuitivo de modularidad separándolo
en diferentes criterios, reglas y principios que deben requerirse.

15 16

Modularidad Modularidad - Criterios

Cinco criterios, cinco reglas y cinco principios Descomposición modular


Criterios Composición modular Un método de desarrollo de software satisface la Descomposición
Descomposición modular Modular, si favorece la descomposición del problema en un
Entendimiento pequeño número de subproblemas conectados por una
Continuidad estructura simple.
Protección
Ejemplo: diseño top-down
Reglas Mapeo directo
Pocas interfaces
Interfaces explícitas
Interfaces pequeñas Composición modular
Ocultamiento de información Un método de desarrollo de software satisface la Composición
Principios Representación linguística Modular, si favorece la producción de elementos de software que
Auto-documentación pueden ser combinados para producir nuevos sistemas.
Acceso uniforme
Abierto-cerrado Ejemplo: librerías de subrutinas
Opción única
17 18
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
PROGRAMACION ORIENTADA A OBJETOS – Curso Prof. Diego Martínez - 2007

Modularidad - Criterios Modularidad - Criterios

Entendimiento Modular Protección Modular


Un método de desarrollo de software favorece el Entendimiento Un método de desarrollo de software favorece la Protección
Modular, si contribuye a la producción de software cuyos Modular, si conduce a una arquitectura en la cual el efecto de
módulos pueden ser comprendidos facilmente y en forma una condicion anormal en un módulo permanece confinado al
independiente mismo, o se propaga a unos pocos módulos vecinos.
Fundamental para el mantenimiento! Fundamental para la robustez!
Las dependencias secuenciales atentan contra este criterio.

Continuidad modular
Un método de desarrollo de software satisface la Continuidad
Modular, si produce arquitecturas en las que pequeños cambios
en la especificación impliquen cambios en pocos módulos.
Ejemplo: uso de constantes simbólicas
19 20

Modularidad - Reglas Modularidad - Reglas


Reglas que debemos observar para asegurar la modularidad
Interfaces explícitas
Mapeo Directo
La estructura modular del sistema de software debe ser La forma de comunicación entre dos módulos debe ser
compatible con los elementos generados en el proceso de obvia a partir de sus códigos.
modelamiento del problema Favorece composición, descomposición y entendimiento
Favorece continuidad y descomposición
Pocas Interfaces Ocultamiento de Información
El diseño de todo módulo debe contener un subconjunto de
Todo módulo debe comunicarse con pocos módulos, tanto como
propiedades que son públicas y un subconjunto de propiedades
sea posible.
que son privadas.
Favorece continuidad y protección
Cada módulo es conocido por otros a través de
Interfaces Pequeñas cierta “descripción oficial”: sus propiedades
Si dos módulos se comunican, deben intercambiar poca públicas
información, tanto como sea posible.
21
Favorece continuidad y entendimiento 22
Favorece continuidad y protección

Modularidad - Principios Modularidad - Principios


De las reglas anteriores, y de los criterios, obtenemos los siguientes principios de
Acceso Uniforme
construcción de software.
Todas las interfaces ofrecidas por un módulo deben ser
Representación linguística accedidas a través de una notación uniforme.
Los módulos deben corresponder con unidades Favorece continuidad y ocultamiento de información
sintácticas en el lenguaje usado
Abierto y cerrado
Favorece continuidad, mapeo directo, descomposición, Los módulos deben ser al mismo tiempo abiertos (para su
composición y protección extensión) y cerrados (para su uso por otros módulos)

Autodocumentación Opción Unica


El diseñador de un módulo debe incorporar toda la Cuando el sistema de software debe soportar un conjunto de
información relevante en el mismo módulo opciones, solo un módulo en el sistema debe conocer la lista
exhaustiva.
Favorece entendimiento y continuidad
Puede ser visto como una combinación de Abierto y Cerrado
y Ocultamiento de Información
23 24
Favorece continuidad y ocultamiento de información

Вам также может понравиться