
上QQ阅读APP看书,第一时间看更新
The case study of an application
Let's assume that we are a services company that builds software for our clients. We get contracted to build an opinion poll system on the current state of technology. Users can only log in to this system using their Facebook credentials. Users can create polls that other users can participate in. They can also invite people to participate in the polls that they have created. Finally, they can see the outcomes of their polls.
This system has to be audited and monitored, and should be readily scalable. The functionality of the system has to be exposed via a mobile app.
The functional requirements are as follows:
- As a user, I should be able to sign in to the application using my Facebook credentials
- As a user, I should be able to create a poll of my choice
- As a user, I should be able to invite people to participate in my polls
- As a user, I should be able to participate in the polls
- As a user, I should be able to check the results of my polls
The non-functional requirements are as follows:
- As a system, I should be able to keep track of all activities performed by all users
- As a system, I should be able to scale horizontally and transparently
- As a system, I should be able to be monitored, and deviations from standard operations should be reported back