Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao

Similar presentations


Presentation on theme: "Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao"— Presentation transcript:

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


Download ppt "Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao"

Similar presentations


Ads by Google