A efectos prácticos, es muy importante saber hasta qué nivel de granularidad es necesario definir y mantener la trazabilidad. En lo que respecta al código, y por su propia naturaleza, se establecen relaciones de "trazabilidad" muy especiales que podemos aprovechar.
Siendo realistas, es muy difícil mantener la relación entre cada requisito (que no requerimiento) y cada pieza de código que los implementa. Hay que analizar muy bien qué ganamos y qué perdemos por, por ejemplo, mantener la trazabilidad hasta los métodos concretos de componentes que dan respuesta a cada requsito. Esto teóricamente está muy bien, pero en el día a día es muy difícil de mantener dado el elevado nivel de cambios al que está expuesto el código fuente. Además, tampoco aporta demasiado. Me explico...
Podemos llevar la traza hasta puntos de entrada al código que sean relevantes. Relevantes funcionalmente y relevantes porque encapsulan (trazan) hacia componentes más bajo nivel. Estos puntos de entrada dependen de cada tecnología, obviamente, pero en general son componentes de tipo fachada muy habituales en todos los diseños que se precien. Otras características interesantes de estos puntos de entrada: Son relativamente estables, tienen un gran protagonismo a nivel de pruebas de integración y, de cara a realizar análisis de impacto (si nos cambian un requisito), son más que suficientes.
De manera que si eres capaz de identificar esos puntos de entrada al código tendrás mucho ganado. Un modelo de trazabilidad que he propuesto en algún que otro proyecto y ha funcionado bien sería similar a este:
NECESIDAD
--> ESPECIFICACION REQUISITO(s)
---> CASO(s) DE USO
---> PUNTO(s) de ENTRADA AL CODIGO
---> RESTO DEL CÓDIGO
Lo bueno de esto es que la última flecha, el último nivel de traza, se mantiene sólo, casi por "generación espontanea". :-)
Saludos
Hola a todos,
En el proceso REQM, el modelo CMMI V1.2. pide que haya una trazabilidad bidireccional.
Concretamente, en el punto “SP 1.4 Maintain Bidirectional”
When the requirements are managed well, traceability can be established from the source requirement to its lower level requirements and from the lower level requirements back to their source. Such bidirectional traceability helps determine that all source requirements have been completely addressed and that all lower level requirements can be traced to a valid source.
Requirements traceability can also cover the relationships to other entities such as intermediate and final work products, changes in design documentation, and test plans.
Teniendo en cuenta que soy nueva en el mundo de CMMI, no me queda claro si el modelo indica que necesarioamente y de forma obligatoria tengamos que bajar la trazabilidad a nivel de código. No me queda muy claro, donde queda el limite en el que un SCAMPI no establecería una no conformidad.
Un saludo y gracias a todos!