Architectural Design Top Level View Creative Commons License





















- Slides: 21
Architectural Design Top Level View Creative Commons License - Curt
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 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 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 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 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 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 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 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 • 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 • 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 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) 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 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 Creative Commons License - Curt Gripper Controller Conveyor Controller
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 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 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
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