Reading material referenced:

The course textbook "Object Oriented Technology", OO principles by Pierce , Model-Driven development and Class Diagram creation , paper "Model-View-Controller," by John Hunt [pdf], JUnit tutorial, course notes

For the midterm exam the students should:

1 - Know the principles of Object Oriented programming (inheritance, encapsulation etc.)

2 - Be able to give an overview of the Extreme Programming process from the survey of agile processes [pdf]

3 - Know the principles of Model-Driven development and its advantages

4 - Know the Model-View-Controller (MVC) architectural style - its constraints and benefits

5 - Know how to implement event-based notification in Java

6 - Know the syntax of the class diagram language (class representations, various kinds of associations)

7 - Know the syntax of the statechart diagram language

8 - Be able to create a class diagram and a statechart from requirements

9 - Know what is tested in different stages of testing (unit, integration, system, acceptance, regression)

10 - Be able to create testcases with a JUnit framework

11 – Be able to create testcases according to boundary, statement and edge coverage criteria