Examination bonus point projects

Each lecture participant may start a project to gain bonus points with respect to the final examination. This bonus will be added to your final examination's mark:

Figure 571. Bonus points Slide presentation Create comment in forum
  • Examination: 90 points resulting in 1,0, 45 points resulting in 4.0.

  • 0-10 bonus points on top of examination score.

  • Example: 35 points in your exam having 10 bonus points on top results in passed.


Figure 572. Collaborative efforts Slide presentation Create comment in forum
Collaborative efforts

Is this your TEAM?

Toll

Ein

Anderer

Machts


Figure 573. Project rules Slide presentation Create comment in forum
  1. You are expected to work as a team of three partners.

  2. Using the MI Gitlab SCM is a plus with respect to project evaluation. See table below.

  3. Your team is expected to supply a Maven project based on the MI Maven archetype quickstart available from https://maven.mi.hdm-stuttgart.de/nexus/repository/mi-maven/archetype-catalog.xml.

  4. You are expected to provide good internal code documentation with respect both to method signatures (Javadoc) and method implementation.


Figure 574. Internal code documentation Slide presentation Create comment in forum

You are expected to provide good internal code documentation with respect both to method signatures (Javadoc) and method implementation. Possible problems involve:

Internal code documentation

Figure 575. Internal code documentation hints Slide presentation Create comment in forum
Compile time warnings

Activate most compiler warnings at Editor --> Inspections. This will show potential compile time problems like dead / unnecessary / unreachable code, unused variable values, shadowing conflicts and so on.


Figure 576. Javadoc mismatches Slide presentation Create comment in forum

Your method's formal parameters, their type and a method's return type must match your documentation.

Javadoc™ mismatches

Figure 577. (Automated) tests Slide presentation Create comment in forum

You are expected to provide meaningful unit tests:

  • Try to cover all your implementation code and not just isolated modules / methods.

  • If methods allow for null values write suitable tests.

  • Test special cases: If a method expects i.e. an array of strings it may be allowed having zero length.


Figure 578. Deployment and execution Slide presentation Create comment in forum

Your resulting project should be easily installable and runnable.

  • Maven is a good starting point with respect both to testing and cross platform (Unix / Windows / Apple) portability.

  • Avoid dependencies to local file system resources like c:\users\xyz\testdata.txt.

Tip

Test your application's deployability by installing it on an untouched target platform (possibly of a different hard/software architecture) and execute mvn test (provided you do have written meaningful unit tests).


Figure 579. Marking criteria Slide presentation Create comment in forum
Criterion Percentage
Overall code quality 15%
Code documentation 15%
Unit tests 15%
Deployment 5%
SCM usage 20%
Software functionality 30%

Some of these terms require further explanations:

Overall code quality

Subject to personal preferences unfortunately.

Code documentation

This involves writing Javadoc describing your classes. Furthermore you may want to add a project / architecture description. A Readme.md in your project's root is a good starting point.

Unit tests

Ideally your whole code could be covered by sensible unit tests. Albeit guaranteeing absence of errors it may help minimizing them.

Deployment

How difficult is your software's deployment? Sample:

git clone git@gitlab.mi.hdm-stuttgart.de:.../yourProject.git

cd yourProject
mvn package
# possible configuration according to documentation
java -jar target/yourArchive.jar
SCM usage

Using e.g. git supports team oriented project development. It also allows for tracing the participants individual contributions. For this reason your tutor is required to have read access to your project.

Software functionality
  • Project specification met?

  • (User input) Error handling?

  • Stability

The following sections contain both current and archived project propositions.