Course Description

Course CodeCourse NameCreditsHours
5905004 Pattern-oriented Software Design 3.0 3
Description Object-oriented programming languages such as C++ and Java have become the main stream in modern software development. Object-orientation makes flexibility and reuse possible through its characteristics of abstraction, encapsulation, delegation, inheritance, and polymorphism. However, as the scale of software increases, software engineers need an even more powerful tool of abstraction and reuse. Design patterns have been established as the main design techniques to achieve reusable object-oriented design. This course aims to establish this core capability. The student is expected to complete a term project that involves 150 to 200 hours of work off class. The following topics are covered: 1 Principles of object-oriented programming 2 Unit testing 3 Design patterns 4 Principles of pattern-oriented design 5 Case studies in pattern-oriented design 6 Pattern languages 7 Case studies in Pattern languages 8 Term project in pattern-oriented design