Functional requirements (FR) describe the intended functionality of a system, its behavior and its data. In writing FRs, a requirements engineer condenses the requirements for an IT system into a set of compact (one sentence!) requirements. These can be prioritized, and used as a base for planning a development project.
Such a one-sentence requirement can give way to many different interpretations, if not done carefully. To counteract this problem, you should use a sentence template. This way, potential linguistic ambiguities can be eliminated, and requirements can be formulated in a precise and unambiguous fashion. There are three types of functional requirements, each resulting in a (slightly) difference sentence template:
ID | Prio. | Title | Sentence template | Contributes to goal(s) | Type | Kano type | |
---|---|---|---|---|---|---|---|
FR-2 | 10 | Check for plagiarism at solution commit | When a student has commited and pushed a new solution to Gitlab, the system must check the solution for plagiarism against all other stored student solutions, using smart pattern matching, allowing to detect slight variations added by the student to discuise his cheating. | GO-2, GO-3 | Independent system action | Performance | |
FR-3 | 7 | Compare allegedly plagiated solution to origin | If a plagiarism has been detected in a student's solution, the system will provide the ability to the supervisors to compare the supposedly copied solution, and the source from which it was seemingly copied, in a visual "side by side" way. | GO-2, GO-1 | User interaction | Excitement | |
FR-5 | 3 | Notification in case of plagiarism | If a plagiarism has been detected in a student's solution, the system should notify the course supervisor, immediately by SMS, WhatsApp, or Discord. | GO-2 | Independent system action | Excitement | |
FR-4 | Integration with Google cloud | For the cases where "hosting concepts" play a part in the learning outcome of a programming module, the system will be able to integrate with Google Cloud as a target for configurations designed as part of a Divekit-based exercise. | GO-3 | Interface requirement | Excitement | ||
FR-1 | API for learning analytics | If other IT systems request information about learning analytics, the system will be able to respond with anonymous information about the learning success of the current students' cohort. | GO-3 | Interface requirement | Performance |