Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Aseguramiento de la Calidad del Software II
1. Aseguramiento de la calidad del software
( SQA )
OBJETIVO:
Comprenderá la relación entre ingeniería
de software y el aseguramiento de la
calidad de software.
3. CARACTERISTICAS:
Elemento lógico, no físico
Desarrollado, no fabricado
No se estropea, pero se deteriora (deterioro por cambios)
Mayoritariamente cerrado: usar todo o nada
Construcción a la medida
Mantenimiento complicado
INGENIERÍA DE SOFTWARE: es el establecimiento y uso de
principios sólidos de la ingeniería para obtener
económicamente un software confiable y que funcione de
modo eficiente en máquinas reales.
4. El IEEE, ha elaborado una definición que establece:
Es la aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo y mantenimiento del software.
La ingeniería de software es una tecnología estratificada. , debe estar
sustentado en un compromiso con la calidad. La gestión de calidad
total, sigma seis y enfoques similares fomentan una cultura de
mejora continua del proceso y es una cultura la que al final conduce
al desarrollo de enfoques muy afectivos para la ingeniería de
software.
La base que soporta la ingeniería del software es un enfoque de
calidad.
5. Desarrollo de software a pequeña escala:
Proceso simple
Modelado mínimo
Herramientas simples
Puede hacerlo una sola persona
Desarrollo artesanal
Bajo costo
No precisa, apenas requiere de ingeniería
6. Desarrollo de software a gran escala:
Proceso complejo
Modelado y diseño
Herramientas sofisticadas
Equipo de trabajo
Costo elevado
Gestión del proyecto
Posiblemente plazos de terminación
Necesidad de ingeniería
7. Perspectiva histórica del desarrollo de software
Década 50-60 Software como un añadido
Desarrollo artesanal, a la medida
Lenguaje de bajo nivel
Década 60-70 Software como producto
Década lenguajes y compiladores
Crisis de software
Década 70-80 Tecnología de SGBD, SO.
Nuevos paradigmas de programación y de productos
90´ a la fecha: POO, Programación visual
Análisis y diseño OO
Tecnología CASE
Métodos agiles
Componentes y reutilización
Interoperabilidad
Internet
Correo electrónico
8. La problemática actual del software
Incapacidad para estimar tiempo, costo, y
esfuerzo para el desarrollo de un producto
de software.
Falta de calidad del producto de software.
Avance del hardware y necesidad de
aplicaciones más complejas.
9. Problemas del software:
¿Porqué lleva tanto tiempo terminar los programas?
¿Porqué es tan elevado su costo?
¿Porqué no debemos encontrar todos los errores
antes de entregar el software a nuestros clientes?
¿Porqué nos resulta difícil constatar el progreso
conforme se desarrolla el software?
10. Algunas causas:
Naturales no física de la programación
Problemas derivados de la intervención de grupos
Problemas de comunicación con los clientes
Poco esfuerzo en el análisis y diseño
Problemas de gestión
A veces, el software debe solucionar los problemas del
sistema global.
Difusión limitada a las nuevas técnicas, métodos y
herramientas.
11. Diferencias en comparación a otras
disciplinas:
El software es un producto mental
Se desarrolla, no se fabrica.
Los costos se concentran en las tareas de ingeniería.
El software no se deteriora con el tiempo.
Es artesanal en gran medida.
Su mantenimiento es mucho más complejo.
Los cambios son engañosamente fáciles.
Como disciplina el desarrollo de software es joven.
Se debe satisfacer una amplia gama de entes.
Es necesario crear una cultura de calidad.
12. Definición y propósito del SQA
(garantía de la calidad del software)
SQA es un conjunto de actividades sistemáticas y planeadas para
asegurar que los Procesos y Productos del software cumplen
con los requerimientos, estándares y procedimientos.
Procesos: incluyen todas las actividades involucradas en el diseño,
codificación, pruebas y mantenimiento,
Productos: incluyen software, datos asociados, documentación y
todo el soporte y reportes de trabajo.
13. SQA brinda a la administración la seguridad de que procesos
oficialmente establecidos están siendo implementados. Y asegura
que:
1.-Una metodología de desarrollo
apropiada este establecida.
2.-Que los proyectos utilicen
estándares y procedimientos en su
trabajo.
3.-Que la documentación sea creada
para mantenimiento y
mejoramiento.
14. 4.-La administración de configuración
de software este adecuada para
controlar cambios.
5.-Se realicen pruebas y que se
aprueben.
6.-Cualquier deficiencia y desviaciones
sean identificadas y llevadas con
atención a la administración.
15. Propósito:
Proporcionar visibilidad sobre los procesos utilizados por el proyecto
de software y sobre los productos que genera.
Objetivos:
1.-Planificar las actividades de aseguramiento de la calidad.
2.-Revisar y auditar objetivamente los productos y las actividades
para verificar que están conformes con los procedimientos y
estándares aplicables.
3.-Proporcionar los resultados de estas revisiones o auditorías
informando a la dirección cuando sea necesaria su mediación.
16. Problemas que resuelve la SQA
¿COMO OBTENER UN SOFTWARE DE CALIDAD?
La obtención de un software con calidad implica la utilización de
metodologías o procedimientos estándares para el análisis,
diseño, programación y prueba del software que permitan
uniformar la filosofía de trabajo.
Con el objetivo de lograr una mayor confiabilidad, mantenibilidad y
facilidad de prueba, a la vez que eleven la productividad, tanto
para la labor de desarrollo como para el control de la calidad del
software.
17. Esta política debe estar sustentada sobre tres principios básicos:
El principio tecnológico define las técnicas a utilizar en el proceso
de desarrollo del software.
El principio administrativo contempla las funciones de planificación
y control del desarrollo del software, así como la organización del
ambiente o centro de ingeniería de software.
El principio ergonómico define la interfaz entre el usuario y el
ambiente automatizado.
18. La adopción de una buena política contribuye en gran medida a
lograr la calidad del software, pero no la asegura. Para el
aseguramiento de la calidad es necesario su control o evaluación.
¿COMO CONTROLAR LA CALIDAD DEL SOFTWARE?
Para controlar la calidad del software es necesario, ante todo,
definir los parámetros, indicadores o criterios de medición, ya que:
"usted no puede controlar lo que no se puede medir".
Las cualidades para medir la calidad del software son definidas
por innumerables autores, los cuales las denominan y agrupan de
formas diferentes.
19. Otros autores identifican la calidad con el nivel de complejidad
del software y definen dos categorías de métricas:
Complejidad de programa o código
Complejidad de sistema o estructura.
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. 1.- Definir el software que va a ser
controlado:
clasificación por tipo, esfera de aplicación,
complejidad, etc., de acuerdo con los
estándares establecidos para el desarrollo del
software.
2.- Seleccionar una medida que pueda ser
aplicada al objeto de control.
para cada clase de software es necesario
definir los indicadores y sus magnitudes.
3.- Crear o determinar los métodos de
valoración de los indicadores:
métodos manuales como cuestionarios o
encuestas estándares para la medición de
criterios periciales y herramientas
automatizadas para medir los criterios.
4.- Definir las regulaciones organizativas
para realizar el control:
quiénes participan en el control de la calidad,
cuándo se realiza, qué documentos deben ser
revisados y elaborados, etc.
21. Para lograr el éxito en la producción de software es hacerlo con
calidad y demostrar su buena calidad. Esto sólo es posible con la
implantación de un Sistema para el Aseguramiento de la Calidad
del Software directamente relacionado con la política establecida
para su elaboración y que esté en correspondencia con la
definición internacional de calidad ampliamente aceptada.
Por lo tanto SQA resuelve problemas como:
Aumenta las posibilidades de el éxito final del proyecto.
Ayuda a definir los parámetros de medición de la calidad
del software.
Verifica que los estándares sean aplicados correctamente.
Define un plan de monitoreo del proceso de desarrollo del
software (ciclo de vida).