Architectural Design Copyright © 2016 – Curt Hill

Slides:



Advertisements
Similar presentations
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Advertisements

The Architecture Design Process
SWE Introduction to Software Engineering
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Design Description (SDD) Diagram Samples
Architectural Design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
An Introduction to Software Architecture
ITEC 370 Lecture 10 Design. Review Design –Why is it part of the process? –Who is the audience for design?
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Chapter 7 Applying UML and Patterns Craig Larman
Chapter 6 Architectural Design.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
System Context and Domain Analysis Abbas Rasoolzadegan.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Computer Science 340 Software Design & Testing Software Architecture.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
CS223: Software Engineering Lecture 14: Architectural Patterns.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Deployment Diagram.
The Components of Information Systems
Architecture Brief Pepper
CompSci 280 S Introduction to Software Development
UML Diagrams By Daniel Damaris Novarianto S..
Information Systems Development
Deployment Diagram.
Object-Oriented Analysis and Design
IS301 – Software Engineering Dept of Computer Information Systems
System Design and Modeling
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Software Quality Engineering
UML Diagrams Jung Woo.
Abstract descriptions of systems whose requirements are being analysed
Deployment Diagram.
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
The Object Oriented Approach to Design
Chapter 1 The Systems Development Environment
The Components of Information Systems
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
System models October 5, 2005.
CBSE 2014 Modeling Components with UML
CS 425/625 Software Engineering Architectural Design
Chapter 20 Object-Oriented Analysis and Design
Architectural Design.
Chapter 6 – Architectural Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 5 Architectural Design.
Analysis models and design models
An Introduction to Software Architecture
Chapter 9 Architectural Design.
4+1 View Model of Software Architecture
Requirement Analysis using
ICS 52: Introduction to Software Engineering
4+1 View Model of Software Architecture
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Chapter 5 Architectural Design.
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Information Systems Development (ISD) Systems Development Life Cycle
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

4 + 1 Copyright © 2016 – Curt Hill

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

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

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

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

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 Not yet the next two Copyright © 2016 – Curt Hill

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

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

DFD Example Copyright © 2016 – Curt Hill

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