Architectural Design Top Level View Creative Commons License

  • Slides: 21
Download presentation
Architectural Design Top Level View Creative Commons License - Curt

Architectural Design Top Level View Creative Commons License - Curt

Introduction • This is a brief review of something that you should have seen

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 Creative Commons License - Curt

What is this about? • Organizing and designing the structure of a program or

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 Creative Commons License - Curt

Large and Small • Sommerville has two coverages of this large and small –

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 Creative Commons License - Curt

Timing • The architecture needs to be established early • The design and implementation

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 Creative Commons License - Curt

Why? • Allows team to communicate with stakeholders – In a way that is

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 Creative Commons License - Curt

Design Decisions • Design is not a science with fixed rules – Rather it

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 answers drive the process Creative Commons License - Curt

Questions • Does a common architecture work for this system? – What patterns will

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? Creative Commons License - Curt

Lines • Projects in the same domain often have similar architectures • A product

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 Creative Commons License - Curt

Architectural Modifiers • Performance – Minimize communication – Larger rather than smaller components •

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 Creative Commons License - Curt

Perspectives • There are many different point of views in considering an architecture •

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 Creative Commons License - Curt

4+1 Creative Commons License - Curt

4+1 Creative Commons License - Curt

4 + 1 Pieces • Logical – how the system interfaces with the end

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 the pieces interact Creative Commons License - Curt

Representation • There is a large variance of opinion on how formal (and permanent)

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 Creative Commons License - Curt

Box and Lines • Two components: – A rectangle indicates a component – A

Box and Lines • Two components: – 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 Creative Commons License - Curt

Example (Sommerville) Vision System Object Identification System Arm Controller Packaging Selection System Packing System

Example (Sommerville) Vision System Object Identification System Arm Controller Packaging Selection System Packing System Creative Commons License - Curt Gripper Controller Conveyor Controller

UML • The original 4 + 1 paper was written by Kruchten, who was

UML • The original 4 + 1 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 Creative Commons License - Curt

Entity Relationship Diagrams • • • A favorite of DBers Rectangle is an entity

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 Creative Commons License - Curt

DFD • • • Data Flow Diagrams Show the data flows though a system

DFD • • • Data Flow Diagrams Show 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 Creative Commons License - Curt

DFD Example Creative Commons License - Curt

DFD Example Creative Commons License - Curt

Finally • Finally we need to focus on designing the objects of a program

Finally • Finally we need to focus on designing the objects of a program using design patterns • We must consider a survey of numerous design patterns – In the next presentation Creative Commons License - Curt