Download presentation
Presentation is loading. Please wait.
Published byGervais Ward Modified over 9 years ago
1
Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao cunxiao@us.ibm.com
2
Motivations It’s difficult to write good software It’s really difficult to write good, reusable software Where has OO failed to deliver? –where are the big success stories?
3
Course Home Page Information available at www.cse.scu.edu/~jxiao1/ Course description Schedule Homeworks Handouts Patterns Project
4
Course Description Three primary topics: –design patterns –frameworks –component-based software engineering Advanced OO reuse constructs –Design –Implementation References at www.cse.scu.edu/~jxiao1
5
Prerequisites Object-oriented analysis and design (Booch, Rumbaugh, Jacobson, UML) Object-oriented programming (C++, Java)
6
Patterns Project Team-oriented Pick pattern(s) Implementation in Java (Beans)
7
Patterns Project 30 minute class presentation –demo the pattern/discuss issues Prepare homework assignment –concrete design/implementation –reflective component Web page –summary, details, links to info Review –review other teams
8
Possible Groupings observer,mediator abstract factory,building,factory method prototype,singleton,flyweight adapter,bridge,decorator façade,interpreter state,strategy,template method composite,iterator,visitor command,interpreter OR memento, serialization visitor critiques
9
Deliverables Presentation Assignment Assignment Solution Web page Review
10
Deadlines See Syllabus
11
Patterns of Learning Successful solutions to human endeavors are often rooted in patterns Example: becoming a chess master –first learn the rules and physical requirements (pieces, legal moves, board layout, etc) –then learn principles (relative value of pieces, value of center squares, etc) –to become master: study games of other masters memorize their playing patterns –there are hundreds/thousands of patterns
12
Becoming a software design master first learn the rules (algorithms, data structures, languages) then learn principles (structured programming, object-oriented programming, functional programming) to become master: study designs of other masters memorize their designing patterns, apply them repeatedly there are hundreds/thousands of patterns
13
OOA Review OOA –Requirement Analysis –Use Cases/Use Case Diagrams High-level vs. expanded Essential vs. real –Conceptual Model/Class Diagrams Concepts/Classes Attributes Associations/Associative Type Aggregation(Composite/Shared) Generalization –System Sequence Diagrams –Contracts
14
OOD Review OOD –Interaction Diagrams (e.g. Collaboration Diagrams) (from real use cases) Design patterns Visibility (attribute/parameter/local/global) –Design Class Diagrams … Interfaces Methods Navigability Attributes type info
15
Design level reuse szyperski Sharing consistency: programming languages Sharing concrete solution fragments: libraries Sharing individual contracts: interfaces Sharing individual interaction architectures: patterns Sharing architectures: frameworks Sharing overall structure: system architectures Systems of subsystems: framework hierarchies
16
Patterns vs Frameworks vs Components patterns support reuse of software architecture and design capture static and dynamic structure and collaborations of successful solutions to common problems frameworks/components support reuse of detailed design and code an integrated set of software constructs that collaborate to provide a reusable architecture for a family of related applications
17
Design Patterns Gamma, Helm, Johnson, Vlissides (GOF) Studied “super programmers” Catalogued patterns Design patterns solve problems that are: –in every single program you will ever write Generic problem/Generic solution Specific problem/customization of generic solution
18
What is a pattern? Description of a problem/solution pair in a certain context Originate from architecture –Christopher Alexander 1977 –Explicit design expertise and experience Designing a house versus designing a program Building a house versus building a program
19
Pattern Format Format –Name –Context –Problem –Solution –…. Kinds –architectural (overall description) –design patterns (design problems) –idioms (language specific)
20
Example: Singleton See book
21
Patterns Review Expert Creator Controller Low Coupling High Cohesion Polymorphism Pure Fabrication Indirection Law of Demeter
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.