DOC PREVIEW
MSU CSE 870 - Design Patterns

This preview shows page 1-2-3-21-22-23-43-44-45 out of 45 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 45 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Design PatternsAcknowledgementsMotivationDesign PatternBecoming a Chess MasterBecoming a Software Design MasterSlide 7Design Patterns: ApplicationsWhat Is a Design Pattern (1)What Is a Design Pattern (2)Pattern NameProblemSolutionConsequencesDesign Patterns Are NOTWhere Design Patterns Are UsedHow to Describe Design PatternsA Design PatternPowerPoint PresentationObserver PatternStructure of the Observer PatternCollaboration in the Observer PatternDesign Pattern DescriptionsDesign Pattern SpaceCategorize Design PatternsCategorization TermsCreational PatternsStructural Patterns:Behavioral PatternsBehavior Patterns (more)When to Use PatternsWhat Makes it a PatternClass ScopeExample Class CreationalClass StructuralClass BehavioralObject ScopeObject CreationalObject StructuralObject BehavioralObject Behavioral ExampleObject Structural ExampleBenefits of Design PatternsDrawbacks to Design PatternsSuggestions for Effective Pattern UseCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRDesign PatternsCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRAcknowledgementsMaterials based on a number of sources–D. Levine and D. Schmidt–R. Helm–Gamma et al–S. KonradCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRMotivation•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 structuresCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRDesign Pattern•Describes recurring design structure–names, abstracts from concrete designs–identifies classes, collaborations, responsibilities–applicability, trade-offs, consequencesCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRBecoming 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 patternsCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRBecoming 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 patternsCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRDesign 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): Cheng, Sp2003RRRDesign 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 systemsCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR“Each pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it in the same way twice”Christopher Alexander, A Pattern Language, 1977What Is a Design Pattern (1)Context: City Planning and Building architecturesCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRRA pattern has 4 essential elements:• Pattern name• Problem• Solution• ConsequencesWhat Is a Design Pattern (2)CSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR• A handle used to describe:• a design problem, • its solutions and • its consequences• Increases design vocabulary• Makes it possible to design at a higher level of abstraction• Enhances communication But finding a good name is often difficultPattern NameCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR• Describes when to apply the pattern• Explains the problem and its context• Might describe specific design problems or class or object structures• May contain a list of conditions • must be met• before it makes sense to apply the patternProblemCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR• Describes the elements that make up the • design, • their relationships, • responsibilities and • collaborations• Does not describe specific concrete implementation• Abstract description of design problems and • how the pattern solves itSolutionCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR• Results and trade-offs of applying the pattern• Critical for:• evaluate design alternatives and • understand costs and • understand benefits of applying the pattern• Includes the impacts of a pattern on a system’s:• flexibility, • extensibility • portabilityConsequencesCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR• Designs that can be encoded in classes and reused as is (i.e. linked lists, hash tables)• Complex domain-specific designs (for an entire application or subsystem)They are:“Descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.”Design Patterns Are NOTCSE870: Advanced Software Engineering (Design Patterns): Cheng, Sp2003RRR• Object-Oriented Programming Languages:• more amenable to implementing design patterns• Procedural languages: need to define •


View Full Document

MSU CSE 870 - Design Patterns

Documents in this Course
HW2

HW2

3 pages

splc1

splc1

21 pages

Lessons

Lessons

3 pages

revision

revision

13 pages

ft1

ft1

12 pages

john.dsn

john.dsn

21 pages

Survey

Survey

2 pages

revision

revision

38 pages

Load more
Download Design Patterns
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Design Patterns and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Design Patterns 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?