Está en la página 1de 39

Qu es la calidad de

software?
20/10/15

Calidad de software

Definicin de calidad de
software: Pressman
Conformidad con los requisitos
funcionales
y
de
rendimiento,
estndares explcitos de desarrollo y
las caractersticas implcitas que se
esperan de todo el software
desarrollado profesionalmente.

20/10/15

Calidad de Software

INTRODUCCIN A LA
CALIDAD DE SOFTWARE
Semana N 2

20/10/15

Calidad de Software

Definicin de calidad de
software: IEEE
1. El nivel en el que un sistema,
componente o proceso cumple con los
requisitos especificados.
2. El nivel en el que un sistema,
componente o proceso cumple las
necesidades o expectativas del cliente o
usuario.

20/10/15

Calidad de Software

Definicin de calidad de
software: ISO
La totalidad de caractersticas de
un producto, proceso o servicio
que cuenta con la habilidad de
satisfacer necesidades explcitas
o implcitas.

20/10/15

Calidad de Software

Definicin de aseguramiento de
calidad de software: IEEE
1. Un patrn planeado y sistemtico de todas las
acciones necesarias para generar la confianza
adecuada que un elemento o producto cumple
con los requisitos tcnicos establecidos.
2. Conjunto de actividades diseadas para
evaluar el proceso con el que los productos se
desarrollan y producen. Es diferente al control
de calidad.

20/10/15

Calidad de Software

Calidad de software
Se puede decir que el software tiene
calidad si cumple o excede las
expectativas del usuario en cuanto a:
1. Funcionalidad (que sirva un propsito),
2. Ejecucin (que sea prctico),
3. Confiabilidad (que haga lo que debe),
4. Disponibilidad (que funcione bajo cualquier
circunstancia) y
5. Apoyo, a un costo menor o igual al que el usuario
est dispuesto a pagar.
20/10/15

Gestin de Proyectos de Software

Cmo controlar la calidad del


software?
La calidad del software es medible y vara
de un sistema a otro o de un programa a
otro
Ejemplo:
Control de naves espaciales: confiable al
nivel de "cero fallas
Software hecho para ejecutarse una sola vez
no requiere el mismo nivel de calidad
20/10/15

Calidadde Software

Cmo controlar la calidad del


software?
Software para explotar durante un largo
perodo (10 aos o ms) necesita ser
confiable, mantenible y flexible.

Es necesario, ante todo, definir los


parmetros, indicadores o criterios de
medicin.
Tom De Marco: No se puede controlar lo
que no se puede medir".
20/10/15

Calidadde Software

Cmo controlar la calidad del


software?
Varios autores definen las cualidades para
medir la calidad del software, con
diferentes
denominaciones
y
agrupaciones.
Todos los autores coinciden en que el
software posee determinados ndices
medibles que son las bases para la
calidad, el control y el perfeccionamiento
de la productividad.
20/10/15

Calidadde Software

10

Algunas caractersticas son


(1/2)
Cumplir con los requisitos funcionales y
de rendimiento.
Mantenibilidad: el software se debe
disear de tal manera que permita
ajustarlo a los cambios en los requisitos
del interesado.
En software el cambio es inevitable!

20/10/15

Gestin de Proyectos de Software

11

Algunas caractersticas son


(2/2)
Confiabilidad: incluye varias caractersticas
como la seguridad, el control de fallos, etc.
Eficiencia: tiene que ver con el uso adecuado de
los recursos que necesita un sistema para su
funcionamiento.
Usabilidad: el software se debera utilizar sin un
gran esfuerzo para los usuarios que posibilitaron
la informacin para el diseo y documentacin.

20/10/15

Gestin de Proyectos de Software

12

Defecto de software
Un defecto de software (computer bug en
ingls), es el resultado de un fallo o
deficiencia durante el proceso de creacin
de programas de ordenador o computador
(software). Dicho fallo se puede presentar
en cualquiera de las etapas del ciclo de
vida del software.

20/10/15

Calidad de Software

13

Error
Es una equivocacin cometida por un
desarrollador. Algunos ejemplos de
errores son: un error de tipeo, una
malinterpretacin de un requisito o de la
funcionalidad de un mtodo. El estndar
829 de la IEEE coincide con la definicin
de diccionario de error como una idea
falsa o equivocada.
20/10/15

Calidad de Software

14

Bug
En 1947, los creadores de Mark II
informaron del primer caso de error en un
ordenador causado por un bicho.
El Mark II, ordenador sucesor de ASCC
Mark I, construido en 1944, sufri un fallo.
Cuando se investig ese fallo, se encontr
que una polilla lo haba provocado.

20/10/15

Calidad de Software

15

Tipos de error

Errores de cdigo
Errores de procedimiento
Errores de documentacin
Errores de datos

20/10/15

Calidad de Software

16

Causas de errores de software

Errores en la definicin de requisitos


Fallas de comunicacin entre cliente-desarrollador
Desviaciones deliberadas de los requisitos de software
Errores de diseo
Errores de programacin
Incumplimiento de las polticas de documentacin y
programacin
Dificultades del proceso de pruebas
Errores de procedimiento
Errores de documentacin
20/10/15

Calidad de Software

17

Productos de Software
Productos genricos.

Productos que son producidos por una organizacin para ser vendidos
al mercado.

Productos hechos a medida.

Sistemas que son desarrollados bajo pedido a un desarrollador


especfico.

La mayor parte del gasto del software es en


productos genricos, pero hay ms esfuerzo en
el desarrollo de los sistemas hechos a medida.

Caractersticas de los Productos de Software


Mantenibles.

Debe ser posible que el software evolucione y que siga cumpliendo con
sus especificaciones.

Confiabilidad.

El software no debe causar danos fsicos o econmicos en el caso de


fallos.

Eficiencia.

El software no debe desperdiciar los recursos del sistema.

Utilizacin adecuada.

El software debe contar con una interfaz de usuario adecuada y su


documentacin.

Importancia de las caractersticas del producto


La importancia relativa de las caractersticas
depende en el tipo de producto y en el ambiente en
el que ser utilizado.
En algunos casos, algunos atributos pueden
dominar.

En sistemas de seguridad crticos de tiempo real, los atributos clave pueden ser
la confiabilidad y la eficiencia.

Los costos tienden a crecer exponencialmente si son


requeridos altos niveles de alguna caracterstica.

Que contiene el software ?


El software contiene:

Lneas de cdigo de algn lenguaje ?


Instrucciones de computadora.
Descripcin de las estructuras de datos.
Algoritmos.
Procedimientos y funciones.
Componentes de software.

Que tipos de software hay ?

Por su estructura:

Funcionales.
Orientados a objetos.
Orientados a listas.
Orientados a componentes.

Por su funcion:

Programas o Sistemas de Usuario


Interfaces Hombre-Maquina.
Herramientas de Software.
Librerias.
Sistemas de uso generico: Compiladores, S.Os, Procesadores de
Texto, etc.
Bases de Datos.
Sistemas basados en Web.

Que tipos de software hay ?


Por su plataforma de computo:

Sistemas embebidos.
Sistemas de computo distribuido.
Sistemas de computo paralelo.
Sistemas de tiempo real.
Sistemas basados en Chips.
Wearable computing systems.
Sistemas de computo ubiquos.

Costos del Software


Los costos del software a menudo dominan al
costo del sistema. El costo del software en un PC
es a menudo mas caro que la PC.
Cuesta mas mantener el software que
desarrollarlo. Para sistemas con una larga vida,
este costo se multiplica.
La Ingeniera de Software concierne a un
desarrollo efectivo en cuanto a costes del
software.

Costes de Eficiencia.
Costos

Eficiencia

El Proceso de Software
Conjunto estructurado de actividades
requeridas para desarrollar un sistema de
software.

Especificacin- que debe hacer el software y cuales son sus


especificaciones de desarrollo.
Desarrollo produccion del sistema de software.
Validacin verificar que el software hace lo que el cliente pide.
Evolucin cambiar/adaptar el software a las demandas.

Las actividades varan dependiendo de la organizacin y del tipo de


sistema a desarrollarse.

Debe estar explcitamente modelado si va a ser bien administrado

Proceso Genrico de Software


Especificacin - establecer los requerimientos y
restricciones del sistema
Diseo - Producir un modelo en papel del sistema
Manufactura - construir el sistema
Prueba - verificar que el sistema cumpla con las
especificaciones requeridas
Instalacin - entregar el sistema al usuario y asegurar su
operacionalidad
Mantenimiento - reparar fallos en el sistema cundo sea
descubiertos

Caractersticas del proceso


Entendible

Se encuentra el proceso bien definido y es entendible ?.

Visible

El proceso es visible al exterior ?.

Soportable

Puede el proceso ser soportado por herramientas CASE ?.

Aceptable

El proceso es aceptado por aquellos involucrados en el ?.

Caractersticas del proceso


Confiable

Los errores del proceso son descubiertos antes de que se conviertan en


errores del producto ?.

Robusto

Puede continuar el proceso a pesar de problemas inesperados ?.

Mantenible

Puede el proceso evolucionar para cumplir con los objetivos


organizacionales ?.

Rapidez

Que tan rpido puede producirse el sistema ?.

Problemas en el Modelo del


Proceso
Normalmente, las especificaciones son
incompletas o anmalas
No existe una distincin precisa entre la
especificacin, el diseo y la manufactura
Solo hasta que el sistema se ha producido se
puede probar
El software no se puede remplazar siempre
durante el mantenimiento

Modelos de Desarrollo de Software


Representacion formal o simplificada de processo de
software.
Modelos Genericos:
Modelo de Cascada

Separar en distintas fases de especificacin y desarrollo.

Desarrollo Evolutivo

La especificacin y el desarrollo estn intercalados.

Prototipado

Un modelo sirve de prototipo para la construccin del sistema final.

Transformacin Formal

Un modelo matemtico del sistema se transforma formalmente en


la implementacin.

Desarrollo basado en Reutilizacin

El sistema es ensamblado a partir de componentes existentes.

Prototipado
Prototipado exploratorio

El objetivo es trabajar con clientes hasta evolucionar a un sistema final,


a partir de una especificacin inicial. Se debe comenzar con unas
especificaciones bien entendidas.

Prototipado de throw-away.

El objetivo es entender los requerimientos del sistema. Se puede


comenzar con especificaciones poco entendidas.

Manejo de Riesgos
La tarea principal del administrador consiste en
minimizar riesgos.
El riesgo inherente en una actividad es se mide en
base a la incertidumbre que presenta el resultado de esa
actividad.
Las actividades con alto riesgo causan sobre-costes en
cuanto a planeacin y costos
El riesgo es proporcional al monto de la calidad de la
informacin disponible. Cuanto menos informacin,
mayor el riesgo.

Visibilidad de Procesos
Los sistemas de software son intangibles por lo
que los administradores necesitan documentacin
para identificar el progreso en el desarrollo.
Esto puede causar problemas..

El tiempo planeado para entrega de resultados puede no coincidir con el


tiempo necesario para completar una actividad.
La necesidad de producir documentos restringe la iteracin entre procesos.
.El tiempo para revisar y aprobar documentos es significativo.

El modelo de cascada es an el modelo basado en


resultados mas utilizado .

Retos de la Ingenieria de Software

Mantener y tratar con sistemas legados. Tratar con una mayor diversidad
de sistemas con mayores demandas de computo, y menores tiempos de
entrega
Sistemas Legados
Sistemas entiguos que deben ser mantenidos y mejorados.
Hetereogenidad
Sistemas que incluyen una mezcla de software y hardware.
Entrega
Existe una presion incremental por una entrega a tiempo de los
productos de software.
Formalidad.
Existe una gran demanda de que exista formalidad en el
proceso de desarrollo de software

Responsabilidad profesional
Los Ingenieros de software no solo deben
considerar aspectos tcnicos. Deben tener una
visin mas amplia, en lo tico, social y
profesional.
No existe estatutos para ninguno de estos
aspectos.

Desarrollo de sistemas militares.


Piratera.
Que es mejor para la profesin de Ingeniero de Software.

Aspectos ticos

Confidencialidad.
Competencia.
Derechos de propiedad intelectual.
Mal uso de la computadora.

Responsabilidad profesional
Los Ingenieros de software no solo deben
considerar aspectos tcnicos. Deben tener una
visin mas amplia, en lo tico, social y
profesional.
No existe estatutos para ninguno de estos
aspectos.

Desarrollo de sistemas militares.


Piratera.
Que es mejor para la profesin de Ingeniero de Software.

Aspectos ticos

Confidencialidad.
Competencia.
Derechos de propiedad intelectual.
Mal uso de la computadora.

También podría gustarte