Use RM2PT prototype automatic generation tool to model requirements based on UML modeling methods (use case diagrams, system sequence diagrams, conceptual class diagrams), and generate prototypes to validate requirements.
The app basically resembles a food delivery appliation where a customer can signup and order food to required location. He is allowed to browse the menus and apply filters to search for whatever items he requires. Then proceeds to add them to cart and pays to track his order and status. The restaurant accepts orders, modifies their menus for customers and prepares the foods and informs delivery drivers about a pickup.. Delivery Drivers accept these orders and deliver them to location of customer of going to location of restaurant for pickup. Customer Service agents can contact between the all parties incase of issue or disputes that need to be resolved.
- Natural Language Requirements
- UML Requirement Model
-
13 User Requirements. (With Basic and Alternative Flow)
-
11 Functional System Requirements. (With Basic and Alternative Flow)
-
9 Nonfunctional System Requirements. (Without Basic and Alternative Flow)
-
4 Actors in Use Case Diagram.
- Customer
- Customer Service Agent
- Restaurant Manager
- Delivery Driver
-
13 Use Cases in Use Case Diagram (with Include and Extend relationships between use cases)
-
4 System Sequence Diagrams (SSDs) (1 for each Actor) with 24 Systm Operations in total
-
24 System Contracts (OCLs)
-
20 Concepetual Class Diagrams
During the work in this project, difficulties have been encountered in sevaral parts in this software requirements analysis and validation project.
Due to my limited understanding and lack of experience with OCL Contracts, there are inaccuracies in the project's implementation related to this aspect. OCL Contracts, or Object Constraint Language Contracts, are essential for ensuring the correctness and reliability of software systems. They define preconditions, postconditions, and invariants that must be upheld during program execution. However, due to my lack of familiarity with OCL Contracts, I was unable to effectively incorporate them into the project's implementation.
The absence of proper contract enforcement led to a multitude of errors within the prototype. Without the necessary checks and balances provided by OCL Contracts, the integrity and functionality of the system were compromised. Consequently, the prototype cannot be executed as intended, and its overall performance is severely hindered.