Review by Group TouchTyping
Review by Group TouchTyping
This review has been written collectively by all members of the Group TouchTyping: Victoria Winkler, Linda Maria Pircher and Mohamed Rabie Kotb Aboelsebah.
General
- G1: How creative is the project? (
0
: I've seen this on Youtube,1
: not creative2
: average,3
: creative,4
: very creative,5
: wow!)- Answer: 4
- Justification: The idea is creative even though it has done before.
- G2: How difficult was it to implement the project? (
0
: no challenge,1
: very easy,2
: easy,3
: fair,4
: complex,5
: insane)- Answer: 4
- Justification: The implmentation of the idea is fairly difficult, because it relys on 2 different parts, server and client.
- G3: List 3 positive aspects of the project. Motivate your selection.
- 1. naming of fields and methods.
- 2. use of streams and lamdas is very nice.
- 3. the documentation is very well written.
- G4: List 3 negative aspects of the project. Motivate your selection.
- 1. some classes are crowded.
- 2. tests doesn't cover all important methods.
- 3. canvas has a minor bug, that make line appear as dots.
Programming techniques
- PT1: Evaluate how well 5 programming techniques we learned throughout the course were adopted in the project. Assign a mark from
0
to5
to each technique, where0
means completely incorrect usage and5
means perfect usage.-
1. Lambdas
- Answer: 5
- Justification: lambdas are very well implmented.
-
2. Streams
- Answer: 5
- Justification: Streams implmentaions were adequate.
-
3. Collections
- Answer: 5
- Justification: Collections were used properly throughout the project.
-
4. Resource sharing (between threads)
- Answer: 5
- Justification: Resource sharing was implmented in a nice way.
-
5. Exception handling
- Answer: 5
- Justification: Exception handling was used properly.
-
1. Lambdas
Git repository
- GR 1: How appropriate is the
.gitignore
file of the project? (0
: missing,1
: very bad,2
: bad3
: average,4
: good,5
: very good)- Answer: 4
- Justification: the gitingore is missing some files for different IDEs.
- GR 2: How appropriate is the
README.md
file of the project? (0
: missing,1
: very bad,2
: bad3
: average,4
: good,5
: very good)- Answer: 5
- Justification: Very good documentation.
Maven
- M1: Can you compile the project via Maven? (
0
: no,1
: yes, but...,2
: yes)- Answer: 2
- Justification: It can be run with maven.
- M2: Can you clean the project via Maven? (
0
: no,1
: yes, but...,2
: yes)- Answer: 2
- Justification: It can be cleaned.
- M3: Can you run the project via Maven? Check
README.md
on how to run the project. (0
: no,1
: yes, but...,2
: yes)- Answer: 2
- Justification: The instructions are sufficient
- M4: Are the project's dependencies appropriately configured in
pom.xml
? (0
: no,1
: some,2
: yes)- Answer: 2
- Justification: it's properly configured.
- M5: Are all Maven plugins appropriately configured in
pom.xml
? (0
: no,1
: some,2
: yes)- Answer: 2
- Justification: it's properly configured.
- M6: Does the project adopt Maven's standard directory layout? (
0
: no,1
: yes, but...,2
: yes)- Answer: 2
- Justification: the structure is good.
Testing
- T1: Are all tests passing? Run
mvn test
. (0
: no,1
: yes, but...,2
: yes)- Answer: 2
- Justification: They all pass.
- T2: How well do the tests cover the code? (
0
: no tests,1
: no important method,2
: some important methods,3
: most important methods,4
: all important methods,5
: 100% test coverage)- Answer: 2
- Justification: Not all important methods are covered.
- T3: Do the tests actually verify the expected behavior of the program? (
0
: no tests,1
: useless tests,2
: most don't,3
: some do, some don't,4
: most do,5
: awesome tests)- Answer: 4
- Justification: most do even though the tests don't cover a lot of the methods.
- T4: How well can you understand what the tests are supposed to verify? (
0
: no tests,1
: what is going on?,2
: most are not understandable,3
: some are understandable, some aren't,4
: most are understandable,5
: all test are understandable)- Answer: 5
- Justification: all tests are understandable.
Documentation
- D1: How understandable is the Javadoc written for classes, fields and methods of the program? (
0
: no documentation,1
: very poor,2
: poor,3
: average,4
: good,5
: awesome)- Answer: 5
- Justification: the methods are well documented
- D2: How useful is the Javadoc written for classes, fields and methods of the program? (
0
: no documentation,1
: irrelevant,2
: little utility,3
: average,4
: useful,5
: very useful)- Answer: 5
- Justification: the javadocs are useful
- D3: Can you generate documentation files for this project? Run
mvn javadoc:javadoc
. (0
: no,1
: yes, but...,2
: yes)- Answer: 0
- Justification: it didn't generate.
- D4: How adequate are the non-javadoc comments written throughout the code? (
0
: mostly inadequate,1
: average,2
: mostly adequate,3
: awesome)- Answer: 1
- Justification: the documentation was well written no need for additional comments.
Code quality
- Q1: Is the code style adopted throughout the project consistent? Consider how whitespace is represented (spaces or tabs), tab size, naming conventions for classes, methods and variables, indentation, braces usage, line width. See Google Java Style Guide as an example of code style guidelines. (
0
: no,1
: yes, but...,2
: yes)- Answer: 2
- Justification: mostly the code is consistent.
- Q2: How would you rate the project in terms of code duplication? (
0
: a lot of duplication,1
: some duplication,2
: barely any duplication,3
: no code duplication / only justifiable duplication)- Answer: 3
- Justification: Not critical code duplication.
- Q3: How easy it is to understand how the program works by looking at the source code? (
0
: mostly hard to understand,1
: some fragments are hard to follow,2
: not hard, but not easy,3
: easy to understand)- Answer: 2
- Justification: it takes some time to get familiar with the project.
- Q4: Is any section of the program excessively inefficient? (
0
: mostly hard to understand,1
: some fragments are hard to follow,2
: not hard, but not easy,3
: easy to understand)- Answer: 2
- Justification: some methods implmentations were a little long.
- Q5: Does the program crash unexpectedly (e.g. by an uncaught exception)? (
0
: all the time,1
: rarely,2
: it happened once,3
: never)- Answer: 3
- Justification: the application never crashed but there are some bugs.