Design Patterns #3 & MidTerm Review Reid Holmes Lecture 13 - - - PowerPoint PPT Presentation

design patterns 3 midterm review
SMART_READER_LITE
LIVE PREVIEW

Design Patterns #3 & MidTerm Review Reid Holmes Lecture 13 - - - PowerPoint PPT Presentation

Material and some slide content from: - GoF Design Patterns Book Design Patterns #3 & MidTerm Review Reid Holmes Lecture 13 - Thursday October 28 2010. GoF design patterns !"#$%&'()*$+,--&.*' /.&,-("*,0 1-.23-2.,0


slide-1
SLIDE 1

Lecture 13 - Thursday October 28 2010. Material and some slide content from:

  • GoF Design Patterns Book

Design Patterns #3 & MidTerm Review

Reid Holmes

slide-2
SLIDE 2

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

GoF design patterns

!"#$%&'()*$+,--&.*' /.&,-("*,0 1-.23-2.,0 4&5,6(".,0

#,3-".7$8&-5"9 :;'-.,3-$#,3-".7 42(09&. +."-"-7<&

1(*)0&-"*

:9,<-".$=$30,'' 4.(9)& /"><"'(-& %&3".,-".

#,3,9&

:9,<-".=";?&3-

#07@&()5- +."A7

B*-&.<.&-&. /5,(*$"C$.&'<"*'(;(0(-7 /">>,*9 B-&.,-".

8&9(,-".

D&><0,-&$8&-5"9

8&>&*-" E;'&.6&. 1-,-& 1-.,-&)7 F('(-". 30,'' ";?&3-

slide-3
SLIDE 3

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

MidTerm Review

  • Intended Learning Outcomes:
  • “Critique an existing architecture or design.”
  • “Differentiate how various architectural styles and

design patterns enhance and degrade functional- and non-functional properties.”

  • “Generate and justify and architecture and/or

design given a collection of requirements.”

  • “Produce and present concise and unambiguous

architecture and design descriptions.”

  • “Create and implement an architecture and

design, refining it into a complete system.”

slide-4
SLIDE 4

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 1: Critique

  • “Critique an existing architecture or design.”
  • So what is architecture?
slide-5
SLIDE 5

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 1: Critique

  • “Critique an existing architecture or design.”
  • Why is architecting software hard?
  • What has improved complexity?
slide-6
SLIDE 6

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 1: Critique

  • “Critique an existing architecture or design.”
  • Example:
  • Given GWTs architecture, what is one benefit of 2nd

generation web apps compared to GWT-based web-apps?

slide-7
SLIDE 7

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 2: Differentiate

  • “Differentiate how various architectural styles and

design patterns enhance and degrade functional- and non-functional properties.”

  • What is an architectural style?
  • What is a design pattern?
slide-8
SLIDE 8

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 2: Differentiate

  • “Differentiate how various architectural styles and

design patterns enhance and degrade functional- and non-functional properties.”

  • Abstraction:
  • Separation of concerns:
slide-9
SLIDE 9

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 2: Differentiate

  • “Differentiate how various architectural styles and

design patterns enhance and degrade functional- and non-functional properties.”

  • FPs:
  • NFPs:
  • Covered Styles: client-server, main / subroutine, OO, VM,

layered, batch-sequential, pipe & filter, rule-based, blackboard, event-based, publish / subscribe, interpreter, mobile code, peer to peer.

  • Covered Patterns: singleton, abstract factory, builder,

proxy, facade, decorator, composite, visitor.

slide-10
SLIDE 10

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 2: Differentiate

  • “Differentiate how various architectural styles and

design patterns enhance and degrade functional- and non-functional properties.”

  • Security:
  • Security Arch Principles:
slide-11
SLIDE 11

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 3: Generate and Justify

  • “Generate and justify and architecture and/or

design given a collection of requirements.”

  • Analysis vs design:
  • Example: Apply your knowledge of architectural

styles to architect a system that allows users to dynamically enter text commands that the system will then carry out. Provide a component diagram. Justify your selection of architectural style.

slide-12
SLIDE 12

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 3: Generate and Justify

  • “Generate and justify and architecture and/or

design given a collection of requirements.”

  • Example:
  • DatabaseLayer layer = DatabaseLayer.getInstance();
  • What design pattern is being demonstrated above. Why is

this pattern used? What visibility is applied to constructors in this pattern? Why?

slide-13
SLIDE 13

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 4: Produce and Present

  • “Produce and present concise and unambiguous

architecture and design descriptions.”

  • Alternative views:
slide-14
SLIDE 14

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 4: Produce and Present

  • “Produce and present concise and unambiguous

architecture and design descriptions.”

  • Example:
  • Create a component diagram for an event-based

system that has a Producer component and a Consumer component connected to an event bus.

slide-15
SLIDE 15

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

ILO 5: Create and Implement

  • “Create and implement an architecture and

design, refining it into a complete system.”

  • This is really about the project.