- Schedule 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).
- We limit the number of participants in the exercises to 60. We are trying to fairly allocate the seats considering your study program and your progress in the study program.
- To be admitted to the exam, you need to successfully participate in the exercises.
- We plan to perform the exam online using Dynexite.
- Further information regarding the organization of the course is given in the first lecture and the RWTHmoodle course room.
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
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.
- 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.