06-01-Design-Patterns-notes

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

Info iconThis 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
Background image of page 1

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

View Full DocumentRight 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: – user interface, communications, persistent objects, O/S kernels, distributed systems
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 14

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

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online