Sei sulla pagina 1di 38

Sistemas de Información

III
Calidad de Software
Ciclo 2011

Profesores
Sergio Zapata
Alejandra Orellana
http://groups.yahoo.com/group/calidad_de_sw_s3
CALIDAD DE SOFTWARE
Objetivo 

Formar al alumno en los procesos, métodos, técnicas y


herramientas que colaboren en la producción de
software de alta calidad.

Adicionalmente perfeccionar en el alumno las habilidades de: |


 Autodeterminación, Autonomía.
 Lectura del idioma inglés.(diccionario)
 Trabajo en equipo.
 Disciplina, orden, prevención.
 Responsabilidad social.
Visión Global del Programa de la Carrera

 
Diseño

Análisis Programación

Gestión, Plan, Tamaño,


Testing, Configuración,
Usabilidad, etc.
Justificación 

Uno de los problemas más extendidos que existen en el


medio respecto del desarrollo de software es la falta de
aplicación de técnicas que produzcan software de calidad.
Modalidad del curso

Se empleará la modalidad basada en clases teóricas y prácticas. El curso


tendrá las siguientes características:  
• Trabajos grupales, la mayoría.
• La mayor cantidad de contenido práctico posible.
• Seguimiento grupal e individual para determinar la
evaluación final de los alumnos.
• Evaluación de participación de los alumnos.
• Trabajos en forma autónoma de los alumnos.
Temáticas a abordar en el curso

• Calidad
• Ingeniería de Requisitos de sw. Calidad de
Requisitos.
• Estimación de tamaño de software
• Validación y Verificación de software.
• Administración de Riesgos de software
• Modelos de Procesos: CMMI.
• Satisfacción de clientes/usuarios de software
Regularidad

El alumno obtendrá la regularidad con la aprobación de:


I. trabajos prácticos
II. dos evaluaciones parciales.

El primero de ellos tendrá por objetivo evaluar los conocimientos adquiridos sobre los siguientes
temas:
• Calidad
• Ingeniería de Requisitos.
• Validación y Verificación.
El segundo examen parcial evaluará:
• Estimación de Tamaño de software. Puntos de Función.
• Análisis y Administración de Riesgos de Software.
• CMMI / MOPROSOFT / Métodos Agiles.

Para la aprobación definitiva de la asignatura el alumno deberá rendir un examen final en el que
se evaluará la madurez de los conocimientos adquiridos durante el curso.
Promocionalidad (en trámite)

Para aprobar el curso bajo el régimen promocional el alumno deberá cumplir


estrictamente con cada uno de los siguientes puntos:
• Asistencia al 75 % de las clases teóricas y prácticas.
• Aprobar la totalidad de los trabajos prácticos definidos por la cátedra en tiempo
y forma.
• Aprobar, en primera instancia, los dos exámenes parciales que establece el
régimen regular con nota igual o superior a 7 (siete).
• Presentar un trabajo final de I+D cuyo contenido propuesto deberá ser
aprobado por la cátedra.
• Defender y aprobar el trabajo final de I+D ante un tribunal designado por la
cátedra.
Bibliografía
Calidad Estratégica total: Total Quality Management. Rico.
Metrics and Models in software Quality Engieering. Kan.
Secret of Software Quality. Kaplan, Clark, Tang.
The Capability Maturity Model, guidelines for improving the software
Process. SEI.
Object-Oriented Software Construction. Meyer.
Aplication of the ISO 9000 Aproach to building Quality Software.
Oskarsson, Glass.
Software Quality Management and ISO 9000.
CMMI Distelled, A practical Introduction to Integrated Process
Improvement.Aaron Clouse.
Real Process Improvement Using the CMMI, Michael West.
CMMI Guidelines for Process Integration and Product Improvement.
Chrissis, Konrad, Shrum.
Software Quality Engineering, Jeff Tian.
Características del sw
• El software se desarrolla, no se fabrica en un sentido
clásico.
– costos radican en la ingeniería (reproducir es gratis!)
• La mayoría del software se construye (todavía) a
medida, en lugar de ensamblar componentes existentes.
• Los programadores subestiman por lo general el
problema a resolver (o se sobrestiman a sí mismos)
• El software no se “rompe”: su “mantenimiento” está
destinado no a re-establecer el estado inicial, sino a
llevar al sistema a un nuevo estado.
Situación Actual

El 90 % de los proyectos no alcanzan los objetivos (Callo & Wireless)


El 40 % fracasan por completo (requisitos, tiempo, costo)
El 29 % no se entregan nunca.
40% a 70% del gasto en sw es en mantenimiento.
Alto Costo de demanda y litigios legales por incumplimientos.
Problema: Codificación Temprana
idea
Programar

Testear

Entregar
• No se realiza planificación.
• Se comienza a escribir código rápidamente.
• Solo apropiado para proyectos muy simples y sencillos.
(académicos)
• Calidad del producto suele ser baja.
• Código es difícil de mantener por falta de documentación del
diseño.
Ingeniería de sw

La Ingeniería de Software es la aplicación de un


enfoque sistemático, disciplinado y cuantificable
al desarrollo, operación y mantenimiento del
software.
IEEE Std. 610.12-1990
La IS comprende
Métodos que indican cómo construir técnicamente el software.
• Métodos de planificación y estimación de proyectos
• Métodos de análisis de requisitos
• Métodos de diseño de estructuras de datos, etc.
Procedimientos que definen la secuencia en la que se aplican
los métodos, las entregas que se requieren, los controles que
ayudan a asegurar la calidad.
Herramientas que suministran un soporte automático o
semiautomático para los métodos (herramientas CASE)
Inmadurez de la IS

• El software es intangible y no está limitado por las leyes de la física.


• La disciplina es relativamente nueva, comparada con otras
ingenierías, y muchos conceptos importantes están inmaduros.
• No hay todavía un cuerpo de conocimientos universalmente
aceptado.
• Aunque ya hay estándares, hay pocas presiones del mercado que
impulsen su aceptación.
Definición de Proceso

• Una secuencia de pasos realizados con un


propósito determinado (IEEE Std. 610).

• El conjunto de actividades, métodos y


prácticas usadas en la producción y evolución
del software (SEI CMM).
Aspectos del Proceso
Del Producto al Proceso
• Muchas organizaciones están centradas en el producto. En
esos ambientes, la gente pone más énfasis en cosas concretas.
Se espera que la salida de cualquier actividad tome una forma
tangible. Se puede confundir un documento del proceso como
el proceso. En esas organizaciones hay resistencia a las
actividades que no contribuyen directamente a objetivos de
corto plazo, y muchas veces se posponen hasta que no haya
“actividades críticas”.
Calidad
Visión Popular de la Calidad:
• No definida.
• Ambigua, no cuantificable ni medida.
 
• Relacionada con calificativos como lujoso,
  complejo, caro.

Visión Profesional (Científica):


• Claramente definida
• Mensurable
 
 
Definición de Calidad
Crosby: "Conformidad a los requerimientos".
  Implica Claridad absoluta en los requerimientos.

Juran: "Adecuado (fitness) para usar".


   Avanza un poco mas y hace intervenir al usuario, es decir ya no
 
son los requerimientos en general, sino los requerimientos del usuario.

Para el Cliente: La calidad es el valor que él percibe del


producto que compró según una serie de parámetros de
precio, performance, confiabilidad y satisfacción.
Evolución Histórica
Calidad de Software
Small q = Calidad de Producto
 
Big Q = Calidad de Producto + Calidad de Proceso +
Satisfacción del cliente
 
Métricas para big Q
Formas de medir small q:
      Defecto por miles de líneas
       Defecto por nro horas de operación.
       Tiempo medio entre fallas.
Formas de medir Proceso:
     Efectividad de remoción de defectos
Formas de medir Satisfacción del clienteo:
       Consultas o Cuestionarios al cliente
Definición Calidad de Software
“Concordancia con:
-los requisitos funcionales y de rendimiento explícitamente 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” R. S. Pressman (1992).

“El conjunto de características de una entidad que le confieren su aptitud


para satisfacer las necesidades expresadas y las implícitas” ISO 8402
(UNE 66-001-92).
Calidad de Software
Teniendo en cuenta la definición de Crosby o Juran,
en la industria de software adquiere gran importancia
la etapa de definición de requisitos.

Kan: “La calidad de producto, la calidad de proceso y


 
la satisfacción del cliente constituyen el significado
total de calidad”

Calidad de Proceso vs. Calidad de Producto Final


Cuando hay calidad de sw?

La calidad de un producto es “alta” si


responde o supera nuestras expectativas.
La calidad es “baja” en caso contrario.
Preguntas respecto de la calidad de
un software
• ¿Hace lo que el usuario quiere?
• ¿Le soluciona el problema que intenta resolver?
• ¿Lo hace como el usuario quiere?
• ¿Es factible de construir?, ¿de mantener (corregirlo,
expandirlo, mejorarlo)?
• ¿Se lo puede construir rápidamente, con costo
accesible, y en forma segura?
• ¿Se puede todo a la vez?
• Lo modifiqué, ¿Sigue funcionando bien?
¿Cómo comprobamos si un software
es de calidad?
Como medimos la calidad de sw?
• La calidad se mide de manera indirecta, nos
concentramos en ciertos atributos y en como
medirlos.
• Para medir la calidad existen diferentes
Modelos: Boehm, McCall, ISO, Barbacci/SEI.
Atributos según ISO 9126 -1991
• Características de la calidad del software
– Funcionalidad
– Confiabilidad
– Usabilidad
– Eficiencia
– Mantenibilidad
– Portabilidad
Atributos s/ McCall y Boehm
•Definición de McCall •Definición de Boehm
–Usabilidad –Confiabilidad
–Integridad –Portabilidad
–Eficiencia –Eficiencia
–Correctitud
–Facilidad de Prueba
–Confiabilidad
–Facilidad de Aprendizaje
–Facilidad de Mantenimiento
–Facilidad de mantenimiento
–Facilidad de Prueba
–Flexibilidad –Modificaciones
–Facilidad de Reuso
–Portabilidad
–Interoperabilidad
Equilibrio entre Atributos (Barbacci)
Atributos s/Meyer

 
Factores de Calidad Externos: perceptibles
directamente por el usuario final. (Correctitud,
facilidad de uso, extensibilidad, etc).
 
Factores de Calidad Internos: perceptibles por
profesionales informáticos. (Legibilidad,
modularidad, extensibilidad, etc.).
Correctitud
Es la capacidad del producto de software para
efectuar exactamente sus tareas, como fueron
 definidas por los requerimientos y la especificación.

Robustez 
Es la capacidad del sistema de software para
funcionar
 
aun en condiciones anormales.

Extensibilidad 
Es la facilidad con la cual el producto de software
puede adaptarse a cambios en la especificación.
Reusabilidad Es la capacidad del producto de
software a ser reusado, en parte o totalmente, en
nuevas aplicaciones.
 
Compatibilidad 
Es la facilidad con que el producto de software puede
ser combinado con otros.

Eficiencia 
 
Es el buen uso de los recursos de hardware
(procesador, memorias, dispositivos I/O).
Portabilidad 
Es la facilidad con la cual los productos de software
pueden ser transferidos a distintos ámbientes de
hardware y software.
Integridad 
Es la capacidad del sistema de software de proteger sus
distintos componentes ( programas, datas, documentos)
contra accesos y modificaciones no autorizadas.
 
Facilidad de Uso 
 

Es la facilidad de aprendizaje del uso del sistema de


software (operación, preparación de datos de entrada,
interpretación de resultados, recuperación desde
errores usuales).
Conflicto entre factores

Usabilidad <=> performance ?


Confiabilidad <=> performance ?
Funcionalidad <=> documentación, mantenibilidad ?
Características o propiedades esperadas de un software de
calidad según distintos puntos de vista (Kitchenham y Pfleeger)

Construcción: conformidad a los procesos estándares.

Producto: foco sobre las características inherentes del producto


(Mejora en indicadores de calidad internos repercute positivamente
en los externos).

Usuario: adaptación a los propósitos o necesidades del usuario. El


sw efectúa las funciones correctas como fueron especificadas y
además lo hace confiablemente.
POR FIN SE TERMINÓ!!!

Potrebbero piacerti anche