TODOs
(1) Analyze and write about what quality attributes the above two subsystems required;
(2) Design and write about the above two subsystems
A. With reasonable choice of several view models, and
B. With reasonable choice of design patterns;
(3) Analyze and write about what design principle are used behind the design from (2);
(4) Implement the design from (2) and write a software specification with snapshots;
(5) Analyze and write about what is the possible architectural style for the complete system
(even though the requirement specifications in 3.1 are not complete).