Professional study programme

Back   Schedule   Hrvatski

Object-Oriented Software Design SIR402-17

ECTS 5 | P 30 | A 0 | L 30 | K 0 | ISVU 175207 205571 | Academic year: 2020./2021.

Course groups

Prikaži sve grupe na predmetu

Course lecturers

ZORIĆ BRUNO, Associate


The goal of this course is to enable students to employ advanced, language independent, object-oriented programming concepts in software development. This primarily concerns the S.O.L.I.D. principles and the design patterns that enable the fulfilment of the former. The utilised languages are Java and/or C#.

Conditions for enrollment

The necessary requirements to enrol in the second year of the studies.

Course description

Introduction. Fundamentals of OOP. The principles of object-oriented software design (S.O.L.I.D.). Clean code. Code smells. Creational patterns (factory method, abstract factory, builder, prototype, singleton). Structural patterns (adapter, bridge, composite, decorator, façade, proxy, flyweight). Behavioural patterns (chain of responsibility, command, iterator, mediator, memento, observer, strategy, visitor). Refactoring. Object-relational mapping.

Student requirements

Defined by the Student evaluation criteria of the Faculty of Electrical Engineering, Computer Science and Information Technology Osijek and paragraph 1.9

Monitoring of students

Defined by the Student evaluation criteria of the Faculty of Electrical Engineering, Computer Science and Information Technology Osijek and paragraph 1.9

Obligatory literature

1. 1 Freeman E. et al. Head first design patterns O Reilly Media, 2004, 0596007124

2. 2 Robert C. Martin Clean code: A Handbook of Agile Software Craftsmanship Prentice Hall, 2008, 0132350882

Pretraži literaturu na:

Recommended additional literature

1. 1 Martin Fowler, Refactoring Addison-Wesley, 2001, 0201485672

2. 2 Robert C. Martin Agile Software Development: Principles, Patterns, and Practices Prentice Hall, 2002, 0135974445

3. 3 Gamma E. et al. Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley Professional, 1994, 0201633612

Course assessment

Conducting university questionnaires on teachers (student-teacher relationship, transparency of assessment criteria, motivation for teaching, teaching clarity, etc.). Conducting Faculty surveys on courses (upon passing the exam, student self-assessment of the adopted learning outcomes and student workload in relation to the number of ECTS credits allocated to activities and courses as a whole).

Overview of course assesment

Learning outcomes
Upon successful completion of the course, students will be able to:

1. describe the basic principles important in object-oriented software development

2. describe and use the S.O.L.I.D. principles when developing software

3. describe various frequently used design patterns and explain the problems they solve

4. identify an appropriate design pattern in code or when presented with a specific problem

5. apply the design patterns while developing software

6. connect different design patterns and utilise them when constructing complex software solutions

Aktivnosti studenta: Vidi tablicu aktivnosti