Refactoring
This exam focuses on Refactoring. For successfully pass this exam the students must be able to:
- identify why some code samples are suboptimal
- improve some code samples
- understand why refactoring is crucial in the development process
- understand in which steps of the development process refactoring is applied
- understand common code smells
The following readings are recommended for this exam:
- Refactoring: Improving the Design of Existing Code by Martin Fowler et al.
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Effective Java: A Programming Language Guide by Joshua Bloch
Other useful resources in the net are:
- http://www.refactoring.com/
- http://www.javapractices.com/home/HomeAction.do
- http://sourcemaking.com/refactoring
Note: For the code samples the scope of API and frameworks that can be used in the questions is restricted to Java SE 6. Not covered are JUnit test anti-patterns and refactoring. This topic is covered by the JUnit Intermediate Exam.
| Released | Beta | Frozen | ||
|---|---|---|---|---|
Basics 3 questions
|
11 | 1 | 1 | |
General Issues 2 questions
|
7 | 0 | 1 | |
Modules 4 questions
|
12 | 1 | 1 | |
Classes 2 questions
|
7 | 1 | 0 | |
Methods 2 questions
|
5 | 1 | 1 | |
Naming and Comments 2 questions
|
6 | 3 | 0 | |
Exception Handling 2 questions
|
6 | 0 | 0 | |
Legacy Code 3 questions
Note: Do not add any questions about Java 5 features without a clear relation how the problem has been solved with Java 1.4 |
10 | 0 | 0 |
Exam information
- 25 minutes
- 20 questions (75)
- 80% required
- +4 √
- - 8 points
- 15 day delay
- status: released



