martes, 19 de octubre de 2010

Entrada 8: Garantía de Calidad del Software (SQA):

Garantía de la calidad: Consiste en un conjunto de funciones de auditoría e información que evalúan la efectividad y qué tan complejas son las actividades de control de Calidad.

El SQA se puede definir como la conformidad a las necesidades funcionales y de rendimiento, a los estándares de desarrollo y a las características implícitas requeridas de todo el software que se ha desarrollado profesionalmente.

Objetivos:

1. La implementación de una disciplina de SQA tiene como principal objetivo aumentar la calidad de los entregables durante todo el proceso de desarrollo.

2. Muchos requerimientos de calidad, sobre todo aquellos que tienen que ver con el rendimiento, la usabilidad, la carga, la disponibilidad, etc. pueden ser tratados como riesgos. Es decir que, el hecho de que uno de ellos no se cumpla, implica un riesgo. Entonces, al asegurar la calidad del software durante su proceso, se disminuyen los riesgos asociados, aumentando la predictibilidad del desarrollo de software. Esto trae aparejado una serie de beneficios de variada visibilidad.

Ventajas:

1. Reducción de los tiempos de desarrollo, principalmente el tiempo de trabajo generado en la fase de testing.

2. Optimización del uso de los recursos, que disminuye el costo de la infraestructura necesaria para soportar la aplicación.

3. Disminución del costo de mantenimiento, ya que se generan aplicaciones más seguras y estables.

4. Aumento de la permeabilidad al cambio y facilidad para medir el impacto del mismo.

5. Asegura el cumplimiento de los requerimientos, tanto los funcionales como los de calidad.

6. Promueve el seguimiento de los estándares definidos.

7. Provee información sobre la calidad del proyecto a los stakeholders con menor conocimiento técnico.

8. Los desarrollos se vuelven más predecibles, facilitando las estimaciones


Operaciones:

El SQA se puede identificar como un patrón de acciones planeado y sistemático, que ayudan a asegurar alta calidad en el software de programas y aplicaciones.Hay diversas operaciones que vienen bajo SQA. Éstas se asocian generalmente a los siguientes dos conjuntos de personas:

Ingenieros de Software
Grupo SQA

Es responsabilidad de los ing. de software ocuparse de todo el trabajo técnico involucrado en actividades de aseguramiento y control de calidad.

Grupos SQA:

 Muchas organizaciones empiezan a crear grupos de SQA.

 Estas personas actúan como representantes internos del cliente.

 Es responsabilidad del grupo SQA ayudar a los Ing., a lograr una alta calidad en el programa o aplicación de software determinado.

 Este grupo tiene una serie de actividades que se presentan a continuación.

Actividades:




Para poder identificar estas actividades y el momento oportuno para realizarlas es necesario revisar el ciclo de vida de un proyecto.

Para identificar las actividades se basa en el análisis de fases/disciplinas/esfuerzo realizado en RUP por ser un proceso muy difundido en el mercado, aunque el mismo análisis puede aplicarse a otros procesos de desarrollo.

Analizando el diagrama, se aprecia que el esfuerzo de cada disciplina varía según la fase del proyecto. De aquí se deriva que el momento para controlar la calidad de cada disciplina es cuando mayor esfuerzo se le dedica.

El plan:

Esta es una herramienta que permite instituir la garantía de seguridad del software, desarrollado por el grupo de SQA este proporciona un plantilla de actividades, se debe tener en cuenta lo siguiente:

  1. El propósito y ámbito del plan
  2. Una descripción de todos los productos de software
  3. Estándares y prácticas aplicables a nuestro proceso.
  4. Las acciones y tareas del SQA.
  5. Las herramientas y métodos utilizados.
  6. Procedimientos de gestión de configuración.
  7. Métodos para salvaguardar, ensamblar y mantener los registros.
  8. Documentación, papeles y responsabilidades en la organización relativas a la calidad del producto elaborado.

Otras Actividades:

Verificación de requerimientos: esta actividad se concentra en validar la completitud, claridad y no ambigüedad de los requerimientos de un sistema.

Validación y verificación de documentación: esta actividad se encarga de controlar la corrección, completitud y no ambigüedad de la documentación. La documentación en UML es muy útil para esta práctica por el poder semántico que tiene y por la posibilidad de validar sintácticamente la documentación.

Validación de arquitectura: Esta actividad es muy importante para evaluar la factibilidad de cumplir con los requerimientos no funcionales y detectar de forma temprana los principales riesgos asociados al proyecto.

Control de código: Se subdivide en 2 actividades:

    1. Control estático del código: es la validación del código contra un conjunto de reglas, mejores prácticas y estándares predefinidos.

  1. Control dinámico del código: el control se focaliza en el uso de los recursos hace  la aplicación y la cobertura del código que hacen las pruebas unitarias


Tareas:

Es necesario tener en cuenta que para realizar algunas de estas actividades primero es necesario realizar otras actividades como ser:

Definición de estándares y mejores practicas de desarrollo
Elección de herramientas para documentar y desarrollar.

Estas tareas tienen que ver con el hecho que para poder validad la calidad de algo, es necesario contar, previamente, con la definición, requerimiento o estándar contra el cual validar. 

Historia:

Lo qué empezó en 1925 como un sitio imparcial utilizado para pruebas de una pequeña industria de llantas en vías de desarrollo en los alrededores de Akron, Ohio, se ha convertido en una familia multidisciplinaria de negocios de tecnología que dan servicio a un sin número de clientes a nivel internacional. Con el paso de los años, el nombre de Smithers ha llegado a ser sinónimo de calidad, integridad, profesionalismo y servicio.

Smithers Quality Assessments se incorporó en el Estado de Ohio en 1993. SQA obtuvo su primera acreditación por el Voor Raad Certificatae (RvC, ahora conocido como RvA) en noviembre 1993. En 1997, SQA fue acreditado también por la ANSI-ASQ Comité Nacional de la Acreditación (ANAB), cuerpo de acreditación con base en los Estados Unidos. SQA logró un reconocimiento internacional adicional en octubre 2000 cuando llegó a ser aprobado por el grupo de trabajo Automotor Internacional (IATF).

Hoy, SQA proporciona los servicios de certificación a una gran cantidad de industrias, negocios y compañías de servicio. Los sectores a los que serven incluyen también instituciones del gobierno de los EE.UU. y de su defensa nacional. Sus clientes son corporaciones grandes y multinacionales, industrias medianas y pequeñas organizaciones.

Niveles de Maduración:

Nivel 1: En este Nivel los proyectos y métodos de ingeniería no se encuentran definidos. Por esta razón, los proyectos son adelantados de manera incoherente, incontrolada y poco profesional. El éxito es eventual. Según la entidad certificadora del CMM, el instituto de ingeniería  de software de los estados unidos (SEI), la mayoría de los grupos de desarrollo de software en el mundo operan a este nivel.

Nivel 2: Repetible. Se establecen algunos procesos y métodos de ingeniería  a nivel de proyectos.

Nivel 3: Definido. Los procesos, actividades y métodos relacionados con la ingeniería y administración de proyectos se encuentran documentados, estandarizados y construidos alrededor de un marco integrado para toda la compañía.

Nivel 4: Administrado. La compañía opera bajo control estadístico de procesos. Los resultados de los procesos y la calidad de los productos son predecibles.

Nivel 5: Optimización. En este nivel, las organizaciones se encuentran en un proceso  de mejora continua. Las organizaciones se enfocan  en su mejora a través de técnicas de prevención de defectos, cambios en tecnología y en proceso. Según el SEI, menos del 0,1% de las organizaciones del mundo se encuentran en nivel de madurez.

No hay comentarios:

Publicar un comentario