Object-oriented design, including both logical and physical design. In logical design, rules related to class interfaces, containment, inheritance, and associations are covered along with design patterns. Physical design addresses components, levelized designs, and the application of generic programming concepts in design. Students develop design documentation for an engineering software project.
Object-oriented software principles are being applied in all engineering disciplines. This course provides an introduction to fundamental and advanced object-oriented analysis and design topics.
Experience with dynamic polymorphism, operator overloading, generic progamming and working with frameworks at the level of 4574, Large-Scale Software Development for Engineers, is required.
Percentage of Course
|Design rules for class interfaces||5%|
|Design rules for moving from procedural programs||5%|
|Design rules for containment||10%|
|Design rules for single-inheritance||10%|
|Design rules for multiple-inheritance||5%|
|Design rules for association relationships||5%|
|Ground rules for physical design||5%|
|Designing with components||10%|
|Creating levelized designs||15%|
|Application of design patterns||15%|
|Generic programming fundamentals||5%|
|Generic programming in design of algorithms||10%|