AgileGen - An AI-powered generative software development framework that automatically generates software code and prototypes.
AgileGen is a generative software development framework that enhances the software creation process through collaboration between humans and AI. AgileGen comprises two core components: end-user decision-making and the AgileGen intelligent agent. The framework is designed using the Gherkin programming language...
What is AgileGen?
AgileGen is a generative software development framework that enhances the software creation process through human-AI collaboration. AgileGen comprises two core components: end-user decision-making and the AgileGen agent. The framework uses the Gherkin language to design and validate user stories and acceptance criteria, ensuring that software code aligns with user needs. AgileGen collects user decisions through an interactive system, automatically generates software prototypes, supports iterative improvements based on user feedback, and ultimately delivers a software product that meets user requirements.
Main functions of AgileGen
- User requirements gathering and clarification:Supports users to express their original requests in natural language, based onClarify and refine user decision-making processes and requirements.
- Scene design:Design user-demand-based scenarios using the Gherkin language.Translate the scenario into natural language for users to make decisions.
- Code generation:Software code is automatically generated based on the user-confirmed scenario.
- Prototyping and Feedback:Quickly generate software prototypes for user testing and feedback.The code is iteratively modified based on user feedback.
- Memory pool mechanism:Collect user decision-making scenarios to provide recommendations for similar needs and improve decision-making efficiency.
The technical principle of AgileGen
- Behavior-Driven Development (BDD)It adopts the core concepts of BDD and uses the Gherkin language to describe user stories and acceptance criteria.
- Large Language Models (LLMs)Generate code that meets user needs based on the understanding capabilities of large-scale language models.
- Human-computer interaction bridgingDesign interactive bridges to translate between the formal Gherkin language and the informal natural language.
- Iterative Feedback LoopIterative development is achieved based on rapid prototyping and user feedback, enabling rapid response to changes in user needs.
- Consistency Factor ExtractionExtract business logic consistency factors from user stories to guide code generation.
- Self-update mechanism of memory poolCollect and analyze user decisions to continuously optimize and adjust generation strategies.
AgileGen's project address
- GitHub repository:https://github.com/UGAIForge/AgileGen
- arXiv technical paper:https://arxiv.org/pdf/2407.15568
- Experience the demo online:https://huggingface.co/spaces/HarrisClover/AgileGen
Application scenarios of AgileGen
- Startups and small software development teamsIt enables a rapid transition from the proof-of-concept phase to the development of a minimum viable product (MVP), reducing development time and costs.
- Business users without a technical backgroundBusiness analysts or product managers can implement business requirements without needing in-depth programming knowledge.
- Education and trainingIn an academic setting, it serves as a teaching tool to help students understand the entire software development process, from requirements gathering to code generation.
- Rapid prototypingIn situations requiring rapid iteration and validation of concepts, such as hackathons or innovation labs, it accelerates the creation and testing of prototypes.
- Enterprise Internal Tools DevelopmentLarge enterprises develop internal tools and applications to improve work efficiency and the speed of response to market changes.