Presentation is loading. Please wait.

Presentation is loading. Please wait.

Architectural Design Copyright © 2016 – Curt Hill

Similar presentations


Presentation on theme: "Architectural Design Copyright © 2016 – Curt Hill"— Presentation transcript:

1 Architectural Design Copyright © 2016 – Curt Hill
Chapter 6 of Sommerville 10th Copyright © 2016 – Curt Hill

2 Introduction This is a brief review of something that you should have seen in an earlier class This is the design of programs and systems It is intended to get us into design patterns Copyright © 2016 – Curt Hill

3 What is this about? Organizing and designing the structure of a program or system of programs Link between requirements and design This is where we structure the components The result is a model of the future product Model consists of communicating components Copyright © 2016 – Curt Hill

4 Large and Small Sommerville has two coverages of this large and small
Large is chapter 17 and 18 Small is chapter 6 The communicating components are: In the large programs and systems of programs In the small classes and functions This presentation is mostly about small Copyright © 2016 – Curt Hill

5 Timing The architecture needs to be established early
The design and implementation of components depends on the architecture Any changes to the architecture tends to nullify the results of component design and implementation Copyright © 2016 – Curt Hill

6 Why? Allows team to communicate with stakeholders
In a way that is helpful to the non-technical Enables the team to determine if the system can meet its non-functional requirements Provides the possibility of reusing components The architecture may give rise to several resulting implementations – a product line rather than just a product Copyright © 2016 – Curt Hill

7 Design Decisions Design is not a science with fixed rules
Rather it is a creative process Each project is different The text provides a number of questions to ask The answer drive the process Copyright © 2016 – Curt Hill

8 Questions Does a common architecture work for this system?
What patterns will work? What is the fundamental approach used to design the system? How will the operation of the components be controlled? How will the system be spread across hardware? What form of documentation will be used? How will the components be subdivided into subcomponents? What structures will work for the constraints on the system? Copyright © 2016 – Curt Hill

9 Lines Projects in the same domain often have similar architectures
A product line might use the same architecture with variations in the components These facts enable component reuse Copyright © 2016 – Curt Hill

10 Architectural Modifiers
Performance Minimize communication Larger rather than smaller components Maintainability Components should be small to ease replacement Safety Localize features in few components Security Critical assets should be in inner layers of a layered architecture Upper layers provide authentication Availability Redundant components Fault tolerance Copyright © 2016 – Curt Hill

11 Perspectives There are many different point of views in considering an architecture Corresponding to these different perspectives are representations of the architecture Sommerville promotes the 4+1 model Copyright © 2016 – Curt Hill

12 4 + 1 Copyright © 2016 – Curt Hill

13 4 + 1 Pieces Logical – how the system interfaces with the end users
Development – programmer view Process – communication of the various processes of the system Physical – considers machines and communication lines Scenarios – a series of use cases that show how the pieces interact Copyright © 2016 – Curt Hill

14 Representation There is a large variance of opinion on how formal (and permanent) architectural representations should be The informal extreme are box and line diagrams ERDs, UMLs and DFDs are in somewhere in the middle How many of these are familiar to you? The formal extreme has substantial semantics Copyright © 2016 – Curt Hill

15 Box and Lines Two components: These do not show:
A rectangle indicates a component A single or double headed arrow indicates communication flow These do not show: Component properties How the pieces relate Very understandable at a very abstract level Makes them helpful for non-technical stakeholders Copyright © 2016 – Curt Hill

16 Example (Sommerville)
Vision System Object Identification System Arm Controller Gripper Controller Packaging Selection System Conveyor Controller Packing System Copyright © 2016 – Curt Hill

17 UML The original paper was written by Kruchten, who was working at Rational Software They are known proponents of UML Not surprisingly there are one or more UML type diagrams for each of the four views Somerville is unenthusiastic UML encompasses many different types of diagrams Not yet the next two Copyright © 2016 – Curt Hill

18 Entity Relationship Diagrams
A favorite of DBers Rectangle is an entity Diamond is a relationship Lines connect these and show arity Either this was seen or will be seen in the database class or a separate presentation is forthcoming Copyright © 2016 – Curt Hill

19 DFD Data Flow Diagrams Show how the data flows though a system
Arrows show the flow An open box is a database or file A rounded rectangle is process that transforms the data Like ERDs this will receive another presentation if needed Copyright © 2016 – Curt Hill

20 DFD Example Copyright © 2016 – Curt Hill

21 Finally Finally we need to focus on designing the objects of a program using design patterns First we must consider a survey of numerous design patterns In the next presentation Copyright © 2016 – Curt Hill


Download ppt "Architectural Design Copyright © 2016 – Curt Hill"

Similar presentations


Ads by Google