Exam in dSoftArk

Examination Date and Time

Dates: 11 - 20 January 2017, both days inclusive

Time: Preparation starts: 8.40. Exam starts: 9.00

MEET EARLY! From experience quite a few do not show up. If we 'run out of students' the exam closes and you have missed your chance! Trying to calculate your exact time of examination will not work.

Place: Pending

Examinator: Henrik Bærbak Christensen

Censors: [13, 17, 19, 20 Jan] Peter Frandsen (Rambøll), [16, 18 Jan] Elmer Sandvad (Mjølner), and [11, 12 Jan] Aino Corry (Metadeveloper).

If you have job-relations or other issues with any of the censors, please report to me.

Examination Form

The exam is an oral exam, with preparation. The preparation time is about 15-18 minutes and the examination itself about 12 minutes. You will be graded on the 7-scale. The exam uses extern censorship.

The procedure is that you pick a random question. The questions are not given in advance, but you have already seen some examples on the weekplans that resemble what you can expect. All questions will belong to one of the examination areas outlined in the next section.

Preparation: You then have about 15-18 minutes to prepare an 'opening' of the question - that is describe the problem shortly and describe your initial analysis, design proposals, and code fragments. I do not expect a polished or complete presentation! I will quickly start discussing and 'collaborating' with you. In the preparation all types of material is permitted except access to resources outside the room (and this includes internet, phone calls, etc.) In the preparation room you will be provided with paper and pencil as well as overhead slides. You can take slides and paper produced during the preparation with you to the exam.

Examination: In the examination (about 12 minutes) I expect you to 'open' the question, that is, you will describe the question shortly, present solution proposals, analyse them, relate to other topics covered in the course, and of course base your presentation upon definitions, techniques, and tools used in the course. You may bring a short outline as well as complicated diagrams or code fragments on slides or paper that you have prepared in the preparation time. Simple diagrams and/or code fragments I expect you to make on-demand on the blackboard.

Grading: I and the censor will define a grade and give you comments and recommendations.

Examination Areas

The questions are grouped witin the following areas:

  1. Test-driven development.
    Emphasis on applying the rhythm and using/understanding the values and TDD principles.
  2. Systematic black-box testing.
    Emphasis on applying and understanding equivalence partitioning techniques and boundary value analysis.
  3. Variability management.
    Emphasis on applying the four different techniques for handling variability and analysing their benefits and liabilities.
  4. Test stubs and unit/integration testing.
    Emphasis on applying test stubs and understanding the testing levels of unit/integration/system testing.
  5. Design patterns.
    Emphasis on finding the proper design pattern for a problem at hand and applying it.
  6. Compositional design.
    Emphasis on applying compositional design principles and relating it to concepts behavior, responsibilities, roles, and multi-dimensional variance.
  7. Frameworks.
    Emphasis on designing frameworks and understanding framework theory.

Example questions

Examples of questions are given in demo-question-final-2015.pdf.

Advice

Remember this is an exam where you are required to be able to apply techniques. Metaphorically, I am not much interested in hearing about how to do push-ups ("First I bend my arm and then I extend it again"), I am interesting in seeing you do push-ups. So, be sure to train - code the Strategy pattern, refactor it, and code it again.

All questions have a concrete part and a request to broaden the discussion to a more theoretical level. You may choose to start your presentation at "both ends". For instance, if a particular problem require the use of the State pattern you may either describe the concrete solution first and then relate to the more general description of State pattern; or you may describe State in general terms first and then show how it has been applied to solve the concrete problem. Remember, however, that 12 minutes is a short time: for "top" presentations I expect both aspects are treated.

As you know the examination areas in advance and know there should be a more theoretical discussion this is a part you can prepare to some detail in advance. I advice that you use this opportunity.

Please note that emphasis is put on the operational level when considering passing/not passing the exam! By this I mean that you must demonstrate the ability to write Java (or another OO language) code that implements the basic techniques presented in the course.