1MEIC03T03: Speech2Req - FEUP-MEIC-DS-2024-25/ai4sd GitHub Wiki
Our goal with Speech2Req is to help the process of Requirements Elicitation, the practice of researching and discovering the requirements of a system from users, customers, and other stakeholders, with a simple AI tool that can translate non-technical speech into technical requirements that developers can work with.
Vision
Non-technical speech recognition and its processing into technical requirements are Speech2Req's key features. Thus, Speech2Req would be used by an engineering project's Product Owners and Stakeholders to allow for a more streamlined Requirements Elicitation process.
Speech2Req addresses the need for clear communication, ensuring all team members understand project goals. It streamlines the process, reducing errors, misinterpretations, and delays while boosting collaboration between technical and non-technical teams.
Speech2Req differentiates itself in the market by addressing a common pain point: the communication gap between business stakeholders and development teams. This leads to increased customer satisfaction, as clients see faster project timelines and reduced rework due to misinterpretations.
Over time, it is possible to gather valuable data on common stakeholder-to-engineer communication patterns, potentially enhancing Speech2Req's AI/algorithm to better serve future clients, driving long-term innovation and competitiveness.
Research
Listed here below are some similar tools and projects that we found during our research. We plan on using them as inspiration and to fix some of their issues.
- IBM Engineering Requirements Management DOORS Next
This is a widely-used tool that helps capture, trace, and manage requirements throughout the project lifecycle using AI to analyze requirements, ensuring consistency and helping prevent conflicts. It facilitates collaboration among stakeholders and helps with traceability and impact analysis, however, the tool's setup is very complex. Speech2Req, in contrast, aims for a more simple approach that will facilitate this process.
- Jama Connect
Modern requirements management tool that leverages AI for better traceability and requirements analysis. It helps teams to capture, manage, and validate requirements, and provides traceability across the development lifecycle, offering strong traceability features, it's a good choice for complex projects. However, similarly to DOORS Next it has a steep learning curve, and is more adequate for larger scale projects, whereas Speech2Req will be usable for smaller projects too.
- Requirements Assistant by RequirementsAI
A real AI-based tool that helps automate requirements analysis. It uses NLP to extract and structure requirements from documents and stakeholder communications. It offers strong pros such as the automation of requirements gathering from text and support of documentation processing. On the other hand, NLP models might struggle with complex or ambiguous language. While Speech2Req can't simply ignore the limitations of NLP, we have in mind different strategies to work around this. For instance, the mode, upon detection of ambiguous language, could prompt the stakeholder to confirm their intent.
Domain Analysis
Include high-level class diagram with key domain concepts. Complement this diagram with other high-level diagrams has appropriate (activity, sequence, etc.).
Architecture and design
Describe the architecture and design of the tool. Use component/deployment diagrams. If needed, resort to package diagrams to organize them into more manageable parts.
Be clear about what is the current architecture/design and what is the one you envision in the future, in case they are different. Identify main risks and justify the most important choices to show the soundness of the architecture and design that you have implemented or plan to implement.
Technologies
Backend
- Express: Used to create a RESTful API due to its simplicity and middleware support.
- Axios: Chosen for easy HTTP requests, keeping API calls modular and readable.
- CORS: Enables Cross-Origin Resource Sharing, necessary for external API access.
- Google Generative AI: Integrated for advanced AI features, enhancing user experience.
Client Restrictions
The client imposed no restrictions on technology choices; all selections were made to best suit the project needs.
Sprint 0 Implementation and Impact
In Sprint 0, a basic API prototype was built with core routes and middleware. This initial setup established a scalable backend structure and validated Google AI integration, giving a clear path for future development.
Development guide
Explain what a new developer to the project should know in order to develop the system, including how to build, run and test it in a development environment.
Document any APIs, formats and protocols needed for development (but don't forget that public APIs should also be accessible from the "How to use" above).
Describe coding conventions and other guidelines adopted by the team(s).
Security concerns
Identify potential security vulnerabilities classes and explain what the team has done to mitigate them.
Quality assurance
Describe which tools are used for quality assurance and link to relevant resources. Namely, provide access to reports for coverage and mutation analysis, static analysis, and other tools that may be used for QA.
How to use
Explain how to use your tool from an user standpoint. This can include short videos, screenshots, or API documentation, depending on what makes sense for your particular software and target users. If needed, link to external resources or additional markdown files with further details (please add them to this wiki).
How to contribute
Explain what a new developer should know in order to develop the tool, including how to build, run and test it in a development environment.
Defer technical details to the technical documentation below, which should include information and decisions on architectural, design and technical aspects of the tool.
Contributions
Link to the factsheets of each team and of each team-member. For example: