"All classes must be fully documented"
when you are relying on
"This section includes the full documentation of each class, using HTML documentation generated from comments included in the C++ source."
Generating documentation from comments is a hacked way of not properly designing or documenting
stuff properly in the first place. It depends on literally designing at the keyboard, which
is basically making stuff up as you go along. This is because the programmers are too hasty
for results. Then depending on this stuff, to write up your documentation. Its like making
a movie, THEN writing the script.
This over-eagerness is evident in this:
"Make good use of object-oriented features such as exceptions, overloading, inheritence and data hiding in order to improve the design."
Object-orientated features are tools for a design. FIRST you come up with the design, then
you decide which of them to use. To even consider these things, before you have decided
the design, indicate that the design is a merely a vehicle for the tool.
Things like using established code libraries are NOT part of the design.
They are LIMITATIONS of the design. They are parts of the project where NO decision, hence
no design, is to be made.
A design is a solution to a problem. A solution can have no principles. Because problems
have no principles. If problems fell within well defined principles, they would NOT be
It makes no sense to talk about Design Principles. A solution either works or it doesnt.
To talk about principles is to suggest there is ALREADY general set of solutions to which
this design is part of. This is NOT true for any NON-TRIVIAL solution.
However they are bang on when they say:
"All code should stand up to current professional standards"
This is just like the vast majority of so called professional work out there. They
basically hacked, poorly documented, TRIVIAL solutions to something which has already
been solved elsewhere.