Wednesday, May 15, 2019

2.4. Calidad del Software en el Ciclo de Vida del Mismo

  • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
El propósito de este programa es definir las distintas fases
intermedias que se requieren para validar el desarrollo
de la aplicación, es decir, para garantizar que el software
cumpla los requisitos para la aplicación y
verificación de los procedimientos de desarrollo:
se asegura de que los métodos utilizados son apropiados.
  • Diseño general: requisitos generales de la arquitectura de la aplicación.
  • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
  • Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
Marco de referencia que contiene los procesos, las actividades y las tareasinvolucradas en el desarrollo, la explotación y el mantenimiento de un productode software, abarcando la vida del sistema desde la definición de los requisitoshasta la finalización de su uso.
El término ciclo de vida del software
describe el desarrollo de software,
desde la fase inicial hasta la fase final.
El ciclo de vida permite que los errores se detecten
lo antes posible y por lo tanto, permite a los desarrolladores
concentrarse en la calidad del software,
en los plazos de implementación y en los costos asociados.
  • Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
  • Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.

Tuesday, May 14, 2019

2.3. Problemas que Resuelve el SQA

  • Reducción de los tiempos de desarrollo y en los tiempos de trabajo.
  • Optimización de uso los recursos que disminuye el costo de la infraestructura.
  • Disminución del costo de mantenimiento generando aplicaciones mas seguras y estables.
  • Aumento de la permeabilidad al cambio y facilidad para medir el impacto de el mismo.
  • Asegura el cumplimiento de los requerimientos funcionales y de calidad.
  • Promueve el seguimiento de los estándares definidos.
  • Promueve información sobre la calidad proyecto. 
  • Los desarrollos se vuelven mas predecibles facilitando las estimaciones.

“En pocas palabras es obtener un software de calidad”.

2.2. Definición y Propósito de SQA

SQA es un conjunto de actividades sistemáticas y planeadas para asegurar que los procesos y productos de software cumplen con los requerimientos, estándares y procedimientos.
PROPOSITO DE SQA
Proporcionar visibilidad sobre procesos utilizados por el proyecto de sw y sobre los productos que genera.
OBJETIVOS DE SQA
* planificar las actividades de aseguramiento de la calidad.
* revisar y auditar objetivamente los productos y las actividades.
* proporcionar los resultados de estas revisiones o auditorias informando a la dirección.
* aumentar la calidad de los entregables durante todo el proceso de desarrollo.

2.1. Relación de Ingeniería del Software con SQA

Las personas que realizan el SQA deben observar el software desde el punto de vista del cliente,
Existe gran variedad de tareas, realizadas tanto por los ingenieros de software como por el grupo del SQA:
- Los ingenieros realizan el trabajo técnico, aplicando métodos solidos y medidas, realizando revisiones y llevando a cabo pruebas de software.
- El grupo de SQA realiza tareas de ayuda al equipo de ingenieros, planifica el proceso de garantía de calidad, supervisión, mantenimiento de registros, análisis e informes.
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.
Proporcionar visibilidad sobre los procesos utilizados por el proyecto de software y sobre los productos que genera.

2. Aseguramiento de la Calidad de Software (SQA)

Según la norma ISO 9000:2000, el aseguramiento de la calidad es la parte de la gestión de la calidad orientada a proporcionar confianza en que se cumplirán los requisitos de calidad.

El Aseguramiento de la Calidad del Software es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza que el software satisfará los requisitos dados de calidad. Este aseguramiento se diseña para cada aplicación antes de comenzar a desarrollarla y no después. El Aseguramiento de la Calidad del Software engloba:

  • Un enfoque de gestión de calidad.
  • Métodos y herramientas de Ingeniería del Software.
  • Revisiones técnicas formales en el proceso del software.
  • Una estrategia de prueba multiescala.
  • El control de la documentación del software y de los cambios realizados.
  • Procedimientos para ajustarse a los estándares de desarrollo del software.
  • Mecanismos de medición y de generación de informes.

Las revisiones del software son un "filtro" para el proceso de Ingeniería del Software. Esto es, las revisiones se aplican a varios momentos del desarrollo del software y sirven para detectar errores y defectos que pueden ser eliminados. La revisión técnica formal (RTF), a veces llamada inspección, es el filtro más efectivo desde el punto de viste del aseguramiento de la calidad y es un medio efectivo para mejorar la calidad del software.

El defecto se define como una anomalía del producto. Dentro del contexto del proceso del software, los términos defecto y fallo son sinónimos. Ambos implican un problema de calidad que es descubierto después de entregar el software a los usuarios finales. El objetivo principal de las RTF es encontrar errores durante el proceso, de forma que se conviertan en defectos después de la entrega del software. El beneficio de la inspección es el descubrimiento de errores al principio para que no se propaguen al paso siguiente del proceso de software.

Las actividades de diseño introducen entre el 50 y 65% de todos los errores durante el proceso de software. Sin embargo, se ha demostrado que las RTF son efectivas en un 75% a la hora de detectar errores. Con la detección y la eliminación de un gran porcentaje de errores, el proceso de revisión reduce substancialmente el coste de los pasos siguientes en las fases de desarrollo y mantenimiento.

Los objetivos de la Revisión Técnica Formal son:

  • Descubrir errores en la función, la lógica o la implementación de cualquier representación del software.
  • Verificar que el software bajo revisión alcance sus requisitos.
  • Garantizar que el software ha sido representado de acuerdo con ciertos estándares predefinidos.
  • Conseguir un software desarrollado en forma uniforme
  • Hacer que los proyectos sean más manejables.

La RTF promueve la seguridad y la continuidad, ya que varias personas se familiarizarán con partes del software que, de una forma u otra, no hubieran visto nunca. Es una clase de revisión que incluye recorridos, inspecciones, revisiones cíclicas y otro pequeño grupo de evaualciones técnicas del software. Cada RTF se lleva a cabo mediante una reunión y sólo tendrá éxito si es bien planificada, controlada y atendida.

El aseguramiento de calidad se refiere a validar los procesos usados para crear los productos. Es una herramienta especialmente útil para administradores y patrocinadores, ya que permite discutir los procesos usados para determinar si los productos creados son razonables. Este aseguramiento tiene asociado 2 constitutivos diferentes:

  1. Los ingenieros del Software que realizan el trabajo técnico. 
  2. Un grupo de SQA (Software Quality Assurance) que se responsabiliza en la planificación de aseguramiento de la calidad, supervisión, mantenimiento de registros, análisis e informes.
  • Establecimiento de un plan de SQA para un proyecto.
  • Participación en el desarrollo de la descripción del proceso de software del proyecto.
  • Revisión de las actividades de Ingeniería del Software para verificar su ajuste al proceso de software definido
  • Auditoria de los productos de software designados para verificar el ajuste con los definidos como parte del proceso del software.
  • Asegurar que las desviaciones del trabajo y los productos del software se documentan y se manejan de acuerdo con un procedimiento establecido. 
  • Registrar lo que no se ajuste a los requisitos e informar a sus superiores.
Además de estas actividades, el grupo de SQA coordina el control y la gestión de cambios y; ayuda a recopilar y analizar las métricas del software.

Las métricas son escalas de unidades sobre las cuales puede medirse un atributo cuantificable. Cuando se habla de software nos referimos a la disciplina de recopilar y analizar datos basándonos en mediciones reales de software, así como a las escalas de medición. Los atributos son características observables del producto o del proceso de software, que proporciona alguna información útil sobre el estado del producto o sobre el progreso del proyecto. El término producto se utiliza para referirse a las especificaciones, a los diseños y a los listados del código. Los valores de las métricas no se obtienen sólo por mediciones. Algunos valores de métricas se derivan de los requisitos del cliente o de los usuarios y, por lo tanto, actúan como restricciones dentro del proyecto.

1.7. Calidad Total

La calidad total se entiende como la aplicación de los principios de la gestión de la calidad al conjunto de actividades y personas de la organización, no sólo a la realización del producto o servicio que se entrega al cliente.
De esta manera, el enfoque al cliente se dirige también al cliente interno por lo cual la organización debe perseguir la satisfacción del cliente de sus productos y servicios y también la satisfacción de los empleados. De igual modo, la mejora continua no se dirige únicamente a la mejora de los procesos productivos sino a la mejora de todos los procesos de la organización.
Armand Feigenbaum fue el primero que habló de control de calidad total, en los años 50, destacando que las actividades de control de calidad no eran responsabilidad del área de calidad sino de toda la organización.
La calidad total es el concepto sobre el que se desarrollan los modelos de excelencia.

1.6. Calidad de Vida

Calidad de vida es un concepto que hace alusión a varios niveles de generalización pasando por sociedad, comunidad, hasta el aspecto físico y mental, por lo tanto, el significado de calidad de vida es un complejo y contando con definiciones desde sociología, ciencias políticas, medicina, estudios del desarrollo, etc.
Hay más tipos de condiciones de vida:
  • Condiciones económicas
  • Condiciones sociales
  • Condiciones políticas
  • Condiciones de salud
  • Condiciones naturales
La calidad de vida se evalúa analizando cinco áreas diferentes. Bienestar físico (con conceptos como la salud, seguridad , bienestar material (haciendo alusión a ingresos, pertenencias, vivienda, transporte, etc.), bienestar social (relaciones personales, amistades, familia, comunidad), desarrollo (productividad, contribución, educación) y bienestar emocional (autoestima, mentalidad, inteligencia emocional, religión, espiritualidad).