Lecture: Object Oriented Software Construction

Lecture (3V) and Exercise (2Ü)


Format of the course

  • The lectures are given online Wednesdays  (10:30-12:00) and Fridays (10:30-12:00) using Zoom, starting on Oct 13 !
  • The exercises are given in face-to-face teaching format in lecture hall AH 3 (Thursdays, 12:30-14:00).

Please note

  • We limit the number of participants in the exercises to 60. The selection process is as fair as possible considering your study program, your progress in the program etc.
  • To take the written exam, you need to participate in the exercises!
  • We plan to perform the exam using Dynexite!

Further information regarding the organization of the course is given in the first lecture.


Course Information

Module level: Master
Language: English
Credits*: 6
* The number of credits can vary depending on the corresponding SPO version. The valid number is always indicated on the Transcript of Records or the Performance Record.

Content:
This module introduces central methods, techniques, and processes of systematic software construction based on object-oriented concepts.
The lecture covers the following topics:
– Foundations of object orientation
– Software reuse
– Design by Contract
– Inheritance, polymorphism, and generics
– Software design principles
– Domain modeling, domain-driven design
– Component Technology
– Advanced patterns and frameworks
– Smells and Refactoring

Study goals:
After completing the module the students have the following knowledge and competencies. They …
– know how to apply important object-oriented modeling concepts
– are able to perform use case based and domain-driven design
– know the concepts of framework based development
– know important design patterns and are able to apply patterns in architectural design
– know how to improve code and architecture based on smells and refactoring
– know the architecture of Java-based component models

Benefits for future professional life / soft skills:
All competencies are trained in the exercises, where small teams of students have to create typical analysis, design, and implementation artifacts. They have to present and discuss their solutions and ideas in front of the class. As professional knowledge on software construction is provided, students gain personal and professional competencies that enable them to work as software architects.

Literature:

  • Meyer, B. (1997) : Object-Oriented Software Construction, 2nd edition, Prentice Hall.
  • Züllighoven, H. (2005): Object-Oriented Construction Handbook – Developing Application-Oriented Software with the Tools and Materials Approach. dpunkt.verlag, Heidelberg.
  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995): Design Patterns, Addison-Wesley
  • Fowler Martin (1999): Refactoring – Improving the design of existing code, Addison Wesley.