Object-oriented software design

Course coordinator:
Goldschmidt Balázs
Degree program:
IT engineering
Study cycle:
Semester in curriculum:

A magyar kurzus információi a tárgy magyar weboldalán találhatók.

Lecturer: Dr. Simon Balázs

Subject info: BMEVIIIAC00

Location and time:

  • Thursdays: 14:15-16:00 IL.408.
  • Even Thursdays: 16:15-18:00 IL.408.

Small tests

There will be 5 small tests during the semester. In order to get a signature from the subject, the best three of the small tests must be successfully passed, i.e. they should achieve at least 2.0 points. The small tests cannot be repeated.

The small tests are required only for the signature, the final mark is independent of them.

The small tests are written at the beginning of the lectures on even Thursdays. They take about 10 minutes.

The results of the small tests can be seen in the JPorta system.

1 October 3 OO design principles
2 October 17 OO design principles, OO design heuristics, Package management and build tools
3 October 31 OO design heuristics, Refactoring
4 November 14 Clean-code
5 November 28 API design principles, Distributed OO, Concurrent and distributed patterns


Slides can only be downloaded after login.

WeekDateKindTopicSlidesExtra material
Week 1 September 12 Holiday Sports day
Week 2 September 19 Lecture OO design principles Intro
Cheat sheet
Design patterns
Practice OO design principles Slides
Week 3 September 26 Lecture OO design heuristics (classes, responsibilities) Slides Cheat sheet
Week 4 October 3 Lecture OO design heuristics (associations, inheritance) Slides Cheat sheet
Practice Package management and build tools (ANT, Maven, Gradle, ...) Slides
Week 5 October 10 Lecture OO design heuristics (inheritance, sequence diagrams) Slides Cheat sheet
Week 6 October 17 Lecture Refactoring Slides Cheat sheet
Practice Refactoring Slides
Week 7 October 24 Lecture Clean-code Slides
Week 8 October 31 Lecture Clean-code Slides
Practice Git Slides
Week 9 November 7 Lecture Distributed OO, SOAP, REST Slides
Week 10 November 14 Lecture API design principles Slides Cheat sheet
Practice Analysis task: API Flaws Slides
Week 11 November 21 Lecture Concurrent and Distributed Patterns Slides
Week 12 November 28 Lecture Concurrent and Distributed Patterns Slides
Practice Analysis task: Common concurrency issues Slides
Week 13 December 5 Lecture Concurrent and Distributed Patterns Slides
Week 14 December 12 Lecture Immutable objects Slides
Practice Practice for the exam


  • Robert C. Martin: Principles of Object-Oriented Design, http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
  • Arthur J. Riel: Object-Oriented Design Heuristics, Addison Wesley, 1996, ISBN-10: 0321774965, ISBN-13: 978-0321774965
  • Robert C. Martin: Clean Code, A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008, ISBN-10: 0132350882, ISBN-13: 978-0132350884
  • Jasmin Blanchette: The Little Manual of API Design, Trolltech, a Nokia company, 2008
  • Matt Gemmell: API Design, http://mattgemmell.com/api-design/
  • Martin Fowler: Refactoring: Improving the Design of Existing Code, 1999, Addison Wesley, ISBN-10: 0201485672, ISBN-13: 978-0201485677
  • Douglas Schmidt: Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, 2000, Wiley, ISBN: 0-471-60695-2