Casos de uso y documentos de texto
Hasta no hace demasiado, pensaba que los documentos de textos eran una herramienta bastante válida para la creación y consulta de análisis funcionales basados en casos de uso. Eso sí, trabajando en aplicaciones de tamaño medio o incluso en servicios/módulos con funcionalidades muy específicas para aplicaciones grandes.
Actualmente estoy trabajando en un proyecto grande, y por ello se dividen los análisis funcionales en diferentes documentos de texto. Hasta ahí no tendría por qué haber ningún problema, ya que están divididos por subsistema para no tener un macro-documento funcional. Pero en este caso no es así, por que en muchos de los diferentes subsistemas, se encuentran repetidos casos de uso.
Esto es, que encuentras copy/paste de la descripción de un mismo caso de uso en diferentes documentos, y ésto en mi opinión nos lleva a dos grandes problemas:
- Problemas del mantenimiento del caso de uso para el analista, que debe controlar en qué documentos se repite para no perder coherencia.
- Desconocimento por parte del desarrollador de si es o no exáctamente el mismo caso de uso, debe comparar varios documentos, y aquí podemos heredar el problema de si están correctamente actualizados los documentos o no, lo que conlleva a péridas de tiempo y a posibles errores funcionales o duplicación de código.
Por otro lado, un compañero me ha prestado el libro UML Distilled(en mi caso la second edition) de Martin Fowler, muy recomendable por lo que he leído hasta el momento, sobre todo para los que no tenemos demasiados conocimentos sobre UML, y que además toca otros temas interesantes sobre desarrollo de software, aunque de forma superficial, como Extreme programming, diseño por contrato... En éste libro, encontramos en el tercer capítulo el tema de los casos de uso, y nos encontramos con que UML soluciona éste problema, forma similar a cómo lo haríamos programando, con los includes.
Un include es un tipo de relación de casos de uso (las otras relaciones serían generalization y extend), que como hemos comentado sería algo así a como lo haríamos programando, entonces llegamos a la conclusión que sí, se podría hacer en un documento de texto por ejemplo de ésta forma:"CU X ir a documento Y CU Z", que claro sigue teniendo el problema de mantenimiento del documento, puede cambiar el nombre del documento, el nombre del caso de uso...
Todo ésto me lleva a hacerme un par de preguntas, ¿existen herramientas para la gestión correcta de casos de uso? ¿open source :)?