Functional Requirements (5)

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:

  • Independent system activity: the system starts a process independently and executes it. The user doesn't have a role here.
  • User interaction: The system provides the user with a functionality that he or she triggers by an input, or another UI activity.
  • Interface requirement: The system executes an action triggered by a third party. Third parties can be third-party IT systems, but not users.
  • 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