OOP Project Requirements
OOP Project Requirements
Your project costs 30 points - 10 pts in ATT2 and 20 of your final exam (other 20
points - oral exam.
3 project parts
⚒A. Diagrams
use case & class diagrams, submission: 14th week
Use GenMyModel (https://www.genmymodel.com/products/) or TopCoderUmlTool
(https://github.com/topcoder-platform/topcoder-UML-Tool) or any other tool you like,
but the only requirement is to be able to convert your class diagram to code. It is
better to use these options; they are both free and have everything we need.
GenMyModel can be used by every team member using one email (it works).
Otherwise, it is not free. It also allows to change the transformation code to suit
your needs. For a top coder installation, some Mac users will need to disable
security settings; instructions are here
https://www.youtube.com/watch?v=ZH8_XHzkKD4&ab_channel=kaboratech .
Upon finishing, generate code sources from your class diagram and fill the classes with
method implementations.
Do not forget about reverse engineering - reflecting back changes to your diagrams.
⚒B. Models (Classes)
Show a draft of your classes during the 15th week (practice time), the final version on
the final exam
The presentation should have no more than 3-4 slides (what works/what does
not work)
For the B part, you are not obliged to simulate the system at work; you just need
to create models - classes, interfaces, enums, etc.
REQUIREMENTS
I omit details description because that is not only a programming task but also a
DESIGN task, so it is up to you which methods/fields your classes will have. And
generally, which classes you will have :) Required are: User, Employee, Teacher,
Manager, Student, Admin, Course, Mark, Lesson, Librarian, Book, Researcher,
ResearchPaper, ResearchProject, News, Message. Other classes are up to you.
General requirements:
- OOP style
- Usage of Comparable, Comparators, equals, hashcode, toString,
etc.
- Properly working serialization (think about Data Storage and
some pattern)
- Any user should access the system via authentication
- Intuitive usage
- Consistency with UML
- Do not forget about proper usage of enumerations. You can use them to
represent teachers’ titles, for example - tutor, lector, senior_lector, professor,
etc.
- Proper and logically consistent usage of Collections
- Usage of java api (standard classes). Do not reinvent the bicycle.
- Documentation
- Low coupling, high cohesion
Important note:
Account for details! For example:
o Students can’t have more than 21 credits
o Students can’t fail more than 3 times
o Mark consists of 1st, 2nd attestation, and final.
o Many more, really …