{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

06-01-Design-Patterns-notes

06-01-Design-Patterns-notes - Acknowledgements Materials...

Info icon This preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
1 CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Design Patterns CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Acknowledgements Materials based on a number of sources – D. Levine and D. Schmidt – R. Helm – Gamma et al – S. Konrad CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Motivation Developing software is hard Designing reusable software is more challenging – finding good objects and abstractions – flexibility, modularity, elegance reuse – takes time for them to emerge, trial and error Successful designs do exist – exhibit recurring class and object structures CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Design Pattern Describes recurring design structure – names, abstracts from concrete designs – identifies classes, collaborations, responsibilities – applicability, trade-offs, consequences
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Becoming a Chess Master First learn rules and physical requirements e.g., names of pieces, legal movements, chess board geometry and orientation, etc. Then learn principles e.g, relative value of certain pieces, strategic value of center squares, power of a threat, etc. To become a Master of chess, one must study the games of other masters These games contain patterns that must be understood, memorized, and applied repeatedly. There are hundreds of these patterns CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Becoming a Software Design Master First learn rules e.g., algorithms, data structures, and languages of software. Then learn principles e.g., structured programming, modular programming, object- oriented programming, etc. To become a Master of SW design, one must study the designs of other masters These designs contain patterns that must be understood, memorized, and applied repeatedly. There are hundreds of these patterns CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Design Patterns Design patterns represent solutions to problems that arise when developing software within a particular context “Patterns == problem/solution pairs in a context” Patterns capture the static and dynamic structure and collaboration among key participants in software designs Especially good for describing how and why to resolve non-functional issues Patterns facilitate reuse of successful software architectures and designs. CSE870: Advanced Software Engineering (Design Patterns): ChengCSE 435: Software Engineering B. Cheng Design Patterns: Applications Wide variety of application domains: – drawing editors, banking, CAD, CAE, cellular network management, telecomm switches, program visualization Wide variety of technical areas:
Image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}