The first group is the functional requirements. These are the ones that define what your system should do, or what functionality it should offer.
Remember that functionality does not always influence architecture, so you'll have to keep an eye on which of those requirements will actually dictate what your solution will look like.
Often, if a functional requirement has some qualities that must be met, it can become architecturally significant. Consider an app for merchants and visitors of the Dominican Fair, an annual event with music, various arts, and shops, happening in the city of Gdańsk. A few examples of functional requirements for it could be the following:
- As a shopkeeper, I want to filter orders that contain a specific product.
- Clicking the Subscribe button adds the customer to a list of notified watchers of a selected merchant.
The first of those requirements tells us we'll have to have a component for tracking orders and products with...