Q.2.1 Distinguish between functional and non‐functional requirements. Support your

answer with suitable examples related to the canteen application.
(6)
Q.2.2 Identify four stakeholders and the stake they have in the successful
implementation of the canteen application.
(8)
Q.2.3 Explain what the event decomposition technique is. Then identify any three use
cases, in relation to the canteen application, that could have resulted from the
application of the event decomposition technique.
(8)

Q.2.1: Functional requirements refer to the specific functionalities or features that a system or application must have in order to meet the user's needs. These requirements define what the system should do and how it should behave. Examples of functional requirements for the canteen application could include:

1. Allow users to view the menu and prices.
2. Enable users to place food orders.
3. Provide a payment system for users to pay for their orders.
4. Allow administrators to add, edit, and delete menu items.
5. Generate receipts or invoices for each order.
6. Provide a search functionality to find specific menu items.

On the other hand, non-functional requirements refer to the qualities or constraints that a system must possess, such as performance, reliability, security, and usability. These requirements define how the system should perform or behave. Examples of non-functional requirements for the canteen application could include:

1. The system should be able to handle a minimum of 100 concurrent users.
2. The system should have a response time of less than 2 seconds for each action.
3. The system should be secure and protect user's payment information.
4. The user interface should be intuitive and easy to use for both customers and administrators.
5. The system should be accessible on mobile devices.

Q.2.2: Four stakeholders in the canteen application and their stakes in its successful implementation are:

1. Customers: Customers have the stake in having a user-friendly and efficient canteen application that allows them to easily browse the menu, place orders, and make payments without any hassle.
2. Canteen staff: Canteen staff have a stake in having an application that simplifies their tasks, such as managing orders, tracking inventory, and generating reports. It should also streamline the payment processes to reduce errors and increase efficiency.
3. Canteen management: Canteen management has a stake in having a system that provides real-time data on sales, inventory, and customer preferences, which can help in making informed business decisions and improving overall operations.
4. IT department: The IT department has a stake in ensuring that the canteen application is secure, reliable, and scalable. They need to ensure data integrity, system uptime, and monitor for any potential technical issues that may arise during the implementation and usage of the application.

Q.2.3: Event decomposition technique is a technique used in requirements analysis to identify and define use cases by breaking down an event into smaller sub-events. It allows for comprehensive coverage of the system's functionality by identifying all possible use cases that can occur.

Three use cases that could have resulted from the application of the event decomposition technique for the canteen application are:

1. Place Order: This use case involves a customer selecting items from the menu, adding them to the cart, specifying quantity, and confirming the order. It may also include options for customization or special requirements.

2. Process Payment: This use case involves the interaction between the customer and the payment system of the application. It includes the selection of the preferred payment method, entering payment details, and verifying the transaction.

3. Manage Menu: This use case involves the actions performed by the canteen staff or administrators to manage the menu. It includes adding new menu items, updating existing items, and removing items that are no longer available.

The event decomposition technique helps in systematically identifying these use cases by breaking down larger events, such as "place order" or "process payment," into smaller, granular events, allowing for a more thorough analysis of the system's requirements.