Automatización parcial de la revisión de aspectos de precisión, no-ambiguedad y verificabilidad en requerimientos de software escritos en lenguaje natural - Berrocal Rojas, Allan Francisco 1980- (2009)
Los requerimientos de software son parte fundamental en el ciclo de vida del software. Una especificación de requerimientos que se realice de forma apropiada aumenta las posibilidades de producir software que satisfaga las necesidades de los usuarios. En la industria de aviónica en particular, muchos de los sistemas empotrados que se producen se consideran sistemas de misión crítica. Por consiguiente, el proceso de desarrollo de software es muy riguroso en cada una de las etapas del ciclo de vida. Para garantizar una buena definición de requerimientos, el estándar de desarrollo de software más utilizado en aviónica, DO-178B, establece algunas propiedades que los requerimientos de software deben satisfacer. En esta investigación se explora un enfoque sencillo para automatizar parcialmente la tarea de verificar que requerimientos de software escritos en lenguaje natural cumplan con tres de las propiedades requeridas por el estándar: precisión, no-ambigüedad y verificabilidad. Se propone una definición acotada para cada uno de dichos conceptos, tomando en cuenta las principales características que los requerimientos de software deben tener para cumplir con las propiedades establecidas. Se implementa un prototipo de software que aplica técnicas de procesamiento de lenguaje natural, análisis de texto, y diccionarios especializados para detectar, en que medida, requerimientos de software escritos en inglés cumplen o no con las propiedades deseadas. Los resultados obtenidos muestran, por un lado, que es factible crear herramientas de software que faciliten la tarea de revisión de requerimientos de forma automática. Además, dichas herramientas producen resultados satisfactorios. Por otro lado, mediante los experimentos se notaron algunas deficiencias en cuanto a la forma en que se realizan las evaluaciones cuando no se tiene el apoyo de una herramienta...