The observation of the previous interactions leads us to define the following use cases list:
- the "CourseManager" entity may act to:
- initialize courses: to describe the lecture constraints for Teachers and Students Groups.
- modify them: to change the constraints for Teachers and Students Groups concerning courses.
- launch solving: to start the resolution of the problem with already described constraints.
- visualize the current result: to display the result of the problem supplied by the system.
- the "RoomManager" entity may act to:
- initialize rooms: to define a room and describe its constraints.
- modify them: to change availability constraints.
- visualize the current result: to display the result of the problem supplied by the system.
- the "Teacher" entities can:
- initialize constraints: to define availability constraints.
- modify them: to change availability constraints.
- visualize the current result: to display the result of the problem supplied by the system.
- and, finally, the "Students Group" entities can:
- visualize the current result: to display the result of the problem supplied by the system.
All this leads to the following use case diagram: