Una inspección de Fagan es un proceso de intentar encontrar defectos en documentos (como el código fuente o especificaciones formales) durante varias fases del proceso de desarrollo de software . Lleva el nombre de Michael Fagan, a quien se le atribuye [¿ por quién? ] como inventor de las inspecciones formales de software .
La inspección de Fagan define [ cita requerida ] un proceso como una determinada actividad con criterios de entrada y salida preespecificados . En cada proceso para el que se especifican criterios de entrada y salida, las inspecciones de Fagan se pueden utilizar para validar si la salida del proceso cumple con los criterios de salida especificados para el proceso. La inspección de Fagan utiliza un método de revisión grupal para evaluar el resultado de un proceso determinado. [ cita requerida ]
Ejemplos de
Ejemplos de actividades para las que se puede utilizar la inspección de Fagan son:
Uso
El proceso de desarrollo de software es una aplicación típica de la inspección de Fagan. Dado que los costos para remediar un defecto son hasta 10 a 100 veces menores en las primeras operaciones en comparación con la reparación de un defecto en la fase de mantenimiento, [1] es esencial encontrar defectos lo más cerca posible del punto de inserción. Esto se hace inspeccionando la salida de cada operación y comparándola con los requisitos de salida, o criterios de salida , de esa operación.
Criterios
Los criterios de ingreso son los criterios o requisitos que deben cumplirse para ingresar a un proceso específico. [2] Por ejemplo, para las inspecciones de Fagan, los documentos de alto y bajo nivel deben cumplir con criterios de entrada específicos antes de que puedan utilizarse para un proceso de inspección formal.
Los criterios de salida son los criterios o requisitos que deben cumplirse para completar un proceso específico. Por ejemplo, para las inspecciones de Fagan, el documento de bajo nivel debe cumplir con criterios de salida específicos (como se especifica en el documento de alto nivel) antes de que el proceso de desarrollo pueda llevarse a la siguiente fase.
Los criterios de salida se especifican en un documento de alto nivel, que luego se utiliza como el estándar con el que se compara el resultado de la operación (documento de bajo nivel) durante la inspección. Cualquier falla del documento de bajo nivel para satisfacer los requisitos de alto nivel especificados en el documento de alto nivel se denomina defectos [2] (y puede clasificarse además como defectos mayores o menores ). Los defectos menores no amenazan el correcto funcionamiento del software, pero pueden ser pequeños errores como errores de ortografía o posicionamiento poco estético de los controles en una interfaz gráfica de usuario .
Operaciones típicas
Una inspección típica de Fagan consta de las siguientes operaciones: [2]
- Planificación
- Preparación de materiales
- Organización de participantes
- Organización del lugar de reunión
- Descripción general
- Educación grupal de los participantes sobre los materiales bajo revisión
- Asignación de roles
- Preparación
- Los participantes revisan el elemento a inspeccionar y el material de apoyo para prepararse para la reunión, anotando cualquier duda o posible defecto.
- Los participantes preparan sus roles
- Reunión de inspección
- Hallazgo real de defecto
- Rehacer
- El retrabajo es el paso de la inspección del software en el que el autor, el diseñador o el programador resuelven los defectos encontrados durante la reunión de inspección. Sobre la base de la lista de defectos, el documento de bajo nivel se corrige hasta que se cumplen los requisitos del documento de alto nivel.
- Seguimiento
- En la fase de seguimiento de las inspecciones de software, todos los defectos encontrados en la reunión de inspección deben corregirse (ya que se han solucionado en la fase de reelaboración). El moderador es responsable de verificar que este sea el caso. Deben verificar que todos los defectos estén arreglados y que no se inserten nuevos defectos mientras intentan arreglar los defectos iniciales. Es crucial que se corrijan todos los defectos, ya que los costos de solucionarlos en una fase posterior del proyecto pueden ser de 10 a 100 veces más altos en comparación con los costos actuales. [1]
Seguimiento
En la fase de seguimiento de una inspección de Fagan, se deben verificar los defectos reparados en la fase de retrabajo. El moderador suele ser responsable de verificar la reelaboración. A veces, el trabajo fijo puede aceptarse sin ser verificado, como cuando el defecto era trivial. En casos no triviales, el equipo de inspección (no solo el moderador) realiza una nueva inspección completa.
Si la verificación falla, vuelva al proceso de reelaboración.
Roles
El proceso de inspección normalmente lo realizan miembros del mismo equipo que está implementando el proyecto. Los participantes cumplen diferentes roles dentro del proceso de inspección: [3] [4]
- Autor / Diseñador / Codificador: la persona que escribió el documento de bajo nivel
- Lector: parafrasea el documento de bajo nivel.
- Revisores: revisa el documento de bajo nivel desde un punto de vista de prueba.
- Moderador: responsable de la sesión de inspección, funciona como entrenador
Beneficios y resultados
Mediante el uso de inspecciones, la cantidad de errores en el producto final puede disminuir significativamente, creando un producto de mayor calidad. En el futuro, el equipo incluso podrá evitar errores, ya que las sesiones de inspección les darán una idea de los errores cometidos con mayor frecuencia tanto en el diseño como en la codificación, evitando errores en la raíz de su aparición. Al mejorar continuamente el proceso de inspección, estos conocimientos pueden utilizarse aún más. [2]
Junto con los beneficios cualitativos mencionados anteriormente, se pueden lograr importantes "mejoras de costos", ya que la prevención y detección temprana de errores reducirá la cantidad de recursos necesarios para la depuración en fases posteriores del proyecto.
En la práctica, grandes corporaciones como IBM han reportado resultados muy positivos, [ cita requerida ] indicando que del 80% al 90% de los defectos se pueden encontrar y se pueden lograr ahorros en recursos de hasta el 25%. [2]
Mejoras
Aunque se ha demostrado que el método de inspección de Fagan es muy eficaz, varios investigadores han sugerido mejoras [ cita requerida ] . Genuchten [ ¿quién? ] por ejemplo, ha estado investigando el uso de un sistema electrónico de reuniones (EMS) para mejorar la productividad de las reuniones con resultados positivos [5]
Otros investigadores proponen el uso de software que mantiene una base de datos de los errores detectados y escanea automáticamente el código del programa en busca de estos errores comunes. [6] Esto nuevamente debería resultar en una mejora de la productividad.
Referencias
- ↑ a b Fagan, ME (1976). "Inspecciones de diseño y código para reducir errores en el desarrollo de programas". Revista de sistemas de IBM . 15 (3): 182–211. doi : 10.1147 / sj.153.0182 . ISSN 0018-8670 .
- ^ a b c d e Fagan, Michael E (2001) [1986]. "Avances en las inspecciones de software" (PDF) . Pioneros y sus contribuciones a la ingeniería de software . págs. 335–360. doi : 10.1007 / 978-3-642-48354-7_14 . ISBN 978-3-540-42290-7.
- ^ YO, Fagan (1976). "Inspecciones de diseño y código para reducir errores en el desarrollo de programas" (PDF) . Revista de sistemas de IBM . 15 (3): 182–211. doi : 10.1147 / sj.153.0182 .
- ^ Eickelmann, NS; Ruffolo, F; Baik, J; Anant, A (2003). "Un estudio empírico de la modificación del proceso de inspección de Fagan y los efectos principales resultantes y los efectos de interacción entre los defectos encontrados, esfuerzo requerido, tasa de preparación e inspección, número de miembros del equipo y calidad de primer paso del producto". 27º Taller Anual de Ingeniería de Software Goddard / IEEE de la NASA, 2002. Actas . pag. 58. doi : 10.1109 / SEW.2002.1199450 . ISBN 978-0-7695-1855-8.
- ^ Genuchten, M; Cornelissen, W; Van Dijk, C (invierno de 1997 a 1998). "Apoyo a las inspecciones con un sistema electrónico de reuniones". Revista de Sistemas de Información de Gestión . 14 (3): 165-179. doi : 10.1080 / 07421222.1997.11518179 .
- ^ Doolan, EP (febrero de 1992). "Experiencia con el método de inspección de Fagan". Software: práctica y experiencia . 22 (2): 173–182. doi : 10.1002 / spe.4380220205 .