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