(Created 2009-08-11.)

OBJECT-ORIENTED MODELING AND DISCRETE STRUCTURES | EDAF10 |

**Aim**

The course will give ability to sustainable and resource aware construction of programs that can be reused and modified with respect to changing requirements in an industrial context.

*Knowledge and understanding*

For a passing grade the student must

- be able to identify the use of common design principles and design patterns in given programs. This and all other course objectives refer to programs with some hundreds or thousands lines of code.
- understand the mathematical notation and abstractions that are the basis for discrete models in computer science.

*Skills and abilities*

For a passing grade the student must

- be able to design and implement object-oriented programs with many classes and a few packages.
- be able to choose and implement suitable design patterns in typical problems.
- be able to use the central parts of an integrated development environment to design, implementation, and refactoring of programs.
- be able to describe program design with UMLÂ (Unified Modeling Language).

*Judgement and approach*

For a passing grade the student must

- be able to evaluate a program design with respect to design principles.
- be able to construct programs that are easy to understand for those who need to modify them.
- be able use mathematical notation to descripe and reason about discrete models.

**Contents**

Design principles for object-oriented programs. Design patterns and frameworks. A development environment for object-oriented modeling, implementation, and refactoring.

Formal langauges, logic, and set theory including relations and functions.

**Literature**

Martin, R C: Agile Software Development - Principles, Patterns, and

Practices. Prentice Hall 2003. ISBN: 0-13-597444-5.

Andersson, L: Lecture notes (in Swedish).

**Code: **0108.
**Name: **Written Examination.

**Higher education credits: ** 5,5.
**Grading scale: **TH.
**Assessment:** Written examination.The final grade of the course is based on the result of the written exam. Activity at the seminars may improve the grade.

**Code: **0208.
**Name: **Project.

**Higher education credits: ** 2.
**Grading scale: **UG.
**Assessment:** For a final grade, the students must have completed the project work.