CUDMAG (Cuestionario para la DetecciΓ³n Manual de AmbigΓΌedades Generales) is a software artifact developed under the Design Science Research (DSR) methodology. Its primary purpose is to systematically identify Requirement Smells associated with ambiguity in Natural Language (NL) software specifications.
The artifact operationalizes linguistic rules to detect defects that compromise software quality during the analysis phase. By transforming subjective interpretation into a structured verification process, CUDMAG helps reduce technical debt before the design and implementation phases.
π Live Demo: Access the Tool Here
This tool is designed to analyze unstructured or semi-structured requirements (e.g., User Stories, Functional Features, Descriptive Paragraphs). It detects the following 7 types of ambiguity:
| # | Ambiguity Type | Description |
|---|---|---|
| 1 | Conditional | Evaluates logic, temporality, and consistency in "If... then" structures. |
| 2 | Lexical | Identifies polysemous terms (words with multiple meanings). |
| 3 | Syntactic | Detects confusing grammatical structures. |
| 4 | Referential | Flags unclear pronouns or references (e.g., "this", "it"). |
| 5 | Vague Quantifiers | Highlights indeterminate quantities (e.g., "many", "fast"). |
| 6 | Passive Voice | Detects omission of the semantic agent. |
| 7 | Incomplete Context | Checks for missing conditions, exceptions, or thresholds. |
The artifact is implemented as a Client-Side Web Application to ensure accessibility and privacy (data is processed locally in the browser).
- Architecture: Static Web Page (SPA - Single Page Application).
- Stack: HTML5, CSS3, Vanilla JavaScript.
- Deployment: GitHub Pages.
- Input/Output: * Input: Raw natural language requirement text.
- Processing: Rule-based inference engine.
- Output: Structured diagnostic report (Ambiguous/Non-Ambiguous) with specific smell indicators.
- Enter the Requirement: Paste the User Story or requirement text into the main text area.
- Select Evaluation Mode:
- Choose "Conditional Ambiguity" for requirements containing logical conditions.
- Choose "General Ambiguities" for all other textual checks.
- Answer the Questionnaire: Follow the guided dichotomous and multiple-choice questions.
- Review Results: The tool will generate a dynamic report indicating if the requirement is ambiguous and listing the specific causes.
This artifact is part of an ongoing research project. Contributions are welcome, especially in:
- Refining the inference rules.
- Adding export features (PDF/JSON).
- Translating the interface.
- Fork the Project.
- Create your Feature Branch (git checkout -b feature/NewFeature)
- Commit your Changes (git commit -m 'Add some NewFeature')
- Push to the Branch (git push origin feature/NewFeature)
- Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.