RAPID is a conversational assistant that aids software developers
in addressing non-functional requirements in the design of web APIs.
RAPID provides four types of guidelines to the users:
- Elaborating and clarifying a given requirement
- Introducing a set of design alternatives to address a given requirement
- Analyzing the impact of design alternatives on non-functional requirements
- Recommending design alternatives based on the requirements of a given case
http://www.cs.toronto.edu/~mhsadi/Rational%20API%20Designer.html
RAPID is designed as a rule-based knowledge-based system and has four main components:
- Rule Base Component (RB): RB is responsible for storing and managing the rules encoding design knowledge.
- Rule Explorer (RE): RE is responsible for retrieving the rules that are related to a session of interaction with a user,
and managing them until the interaction session ends. - User Interaction Component (UIM): UIM allows a user to interact with the system, to pose design queries over the rule base, to and receive a set of responses.
- Reasoner: Reasoner is responsible for evaluating the rules related to an interaction session and selecting and recommending appropriate design solutions.
RAPID is a working prototype implemented in Java.
- First Release: 2018 - 12 - 01
- Public Release: 2019 - 08 - 22
License: Creative Commons
The use, modification, and distribution of the source code is allowed under two conditions:
- The original research work and the original developer is cited.
- Explicit permission is obtained from the original developer.
- Sadi, M. H. (2020). "Assisting with API Design through Reusing Design Knowledge".
Doctoral Dissertation. Department of Computer Science. University of Toronto.
https://tspace.library.utoronto.ca/bitstream/1807/101172/3/Hasani_Sadi_Mahsa_%20_202003_PhD_thesis.pdf
- Sadi, M.H. & Yu, E. (2021). "RAPID: A Knowledge-Based Assistant for Designing Web APIs".
Requirements Engineering Journal.
http://www.cs.toronto.edu/~mhsadi/publications/RAPID%20-%20PrePrint.pdf
- Mahsa H. Sadi, PH.D., Department of Computer Science, University of Toronto