Exam

Examination Date and Time

Dates: January 2, 3, 4, 7, 8, 9, 10, and 11. Find you correct examination date on the official exam pages from the study administration.

Time: Preparation starts: 8.30. 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 always work.

Place: Incuba 121.

Examinator: Henrik Bærbak Christensen

Censors: Gerth, Gudmund, and Niels Olof.

Examination Form

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

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

Preparation: You then have about 30 minutes to prepare an 'opening' of the exercise - 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.

It is of course also forbidden to take pictures or in any way copy the exam exercises and make them available to third party. The exam exercises are only available for the the duration of the exam. Any instances of copies on any platform must be reported to Henrik, as it allows cheating.

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 an overall grade for both oral presentation and mandatory project and give you comments and recommendations. Both aspects (oral and mandatory) must be passable individually to pass the exam.

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.
  8. Clean Code and Refactoring.
    Emphasis on properties of clean code and using refactoring to improve analyzability.
  9. Distribution and Broker.
    Emphasis on designing distributed client-server architectures using the Broker pattern.

Example questions

Examples of (some) questions are given in demo-question-final-2018.pdf.

Mandatory Score Influence

Your group's work on the mandatory exercises results in a score: the total number of points gained over the 10 deliveries. It will influence the final grade, typically by moving your grade up or down, especially in cases of doubt: is this a grade 7 or grade 10? If the score is in the lower bracket, we settle for a 7, if it is in the higher bracket, we settle for a 10. Have a look at the W14-3 exam slides for more examples. The brackets are decided once the last mandatories have been evaluated and will be published on the forum.

Remember that the oral and mandatory both have to be passed. So, even if you have top mandatory points, if you fail the oral exam, you fail the SWEA examination.

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, dig into the Broker code and be sure to understand it by coding small changes, make print statements in each role to see the sequence of calls, etc.

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 though, that you will not pass this exam, if you do not present aspects of the solution of the concrete exercise! You cannot pass on a purely theoretical presentation. For "top-grade" 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.

Most questions are big and cannot be completely 'solved in all details' during your preparation; and that is of course also not required! Spend the time to understand the problem (I see students having solved the wrong problem, which is wasting time!), and then take small steps to sketch a solution proposal for a central part of it---like if you can design and sketch a solution for one variability point, you can probably apply it also for the other variability point; if you can correctly sketch the compositional design for one variability point in the exercise, you can probably also get the second one correct.

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. Unfortunately, a few students still fail SWEA exams due to not being able to formulate simple Java statements---this is required.