Architectural Design www.mitf09.co.cc Introduction Design has been described as a multistep process in which representations of data and program structure,

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

MAPPING DATA FLOW DIAGRAMS INTO STRUCTURE CHARTS
Design Concepts and Principles
Design Phase What’s design?
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
Software Design Deriving a solution which satisfies software requirements.
Data-Flow Oriented Design
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Communication Notation Part V Chapter 15, 16, 18 and 19.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design Concepts and Principles
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 10: Architectural Design
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Architectural Design.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Fall 2005
Chapter 10 Architectural Design
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Chapter 9 Moving to Design. The Structured Approach To Designing The Application Architecture Module-an identifiable component of a computer program that.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Programming Or Software Engineering?
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 21. Review ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling – Use case Diagram Description.
Lecture 9: Chapter 9 Architectural Design
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
SOFTWARE DESIGN.
Chapter 13 Architectural Design
Analysis Modeling. Function Modeling & Information Flow  Information is transformed as it flows through a computer-based system. The system accepts input.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
TCS2411 Software Engineering1 Data-Flow Oriented Design “From DFD to Structure Chart”
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Design Concepts By Deepika Chaudhary.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5th edition or Chapter th edition) copyright © 1996, 2001, 2005 R.S. Pressman &
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.
CS223: Software Engineering
Chapter : 9 Architectural Design
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10b: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10b:
Chapter : 9 Architectural Design. Software Architecture What Is Architecture? The software architecture of a program or computing system is the structure.
1 Chapter : Architecture & User Interface Design.
Chapter 7 Design methods Design has been described :  Design shares with programming a concern for abstracting information representation Representations.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
CS646: Software Design and Architectures Design methods: SSA/SD †  Stands for: Structured Systems Analysis / Structured Design.  Primary applicable notations:
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 13 Architectural Design
Architectural Design.
Lecture 9- Design Concepts and Principles
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Chapter 9 Architectural Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Lecture 9- Design Concepts and Principles
Chapter 13 Architectural Design
Chapter 9 Architectural Design.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Presentation transcript:

Architectural Design

Introduction Design has been described as a multistep process in which representations of data and program structure, interface characteristics, and procedural detail are synthesized from information requirements. Design is an activity concerned with making major decisions, often of a structural nature.

Design builds coherent, well planned representations of programs that concentrate on the interrelationships of parts at the higher level and the logical operations involved at the lower levels

Software Design Model Information model Functional model Behavioral model Other requirements Design Code Test Data design Architectural design Procedural design Program modules Integrated & validated software

Steps Begins with Proceeds to Architectural Design Data Design Architectural structure of the system

Steps (contd.) Analysis of alternative architectural styles or patterns Selection of Alternative Elaboration of Architecture

Software Architecture What Is Architecture? The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them. The architecture is not the operational software.

Architectural Styles Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures Each style describes a system category that encompasses: (1) a set of components (e.g., a database, computational modules) that perform a function required by a system, (2) a set of connectors that enable “communication, coordination and cooperation” among components, (3) constraints that define how components can be integrated to form the system, and (4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.

Data-Centered Architecture

Data Flow Architecture

Call and Return Architecture

Layered Architecture

Mapping Requirements into a Software Architecture

An Architectural Design Method "four bedrooms, lounge, drawing & dinning, lots of glass..." customer requirements architectural design

Mapping Requirements Into Software Architecture Earlier had said certain models can be mapped directing into an architectural design  methods do not exist for all architectural styles  Will look at 1 approach for the call & return architecture sometimes called structured design - origins in top-down design [WIR71], structured programming [DAH72], SD is a data-flow oriented design method Provides a method to go from a DFD to program structure

Deriving Program Architecture ProgramArchitecture

Structured Design objective: develop a modular program structure and represent control relationships between modules approach: the DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module notation: structure chart

Structured Design It provides a convenient transition from a data flow diagram to software Architecture 1.The type of information flow is established 2.Flow boundaries are indicated 3.The DFD is mapped into program structure 4.Control hierarchy is defined 5.Resultant structure is refined using design measures and heuristics 6.The architectural description is refined and elaborated

Types of Information Flow There are 2 different types of information flow that have different treatments  Transform flow - Overall data flows in sequential manner and follows one, or only a few, “straight line” paths. (incoming, transform, output)  Transaction Flow - Info flow has a single transaction node that triggers other data flow

A B transform center incoming flow outgoing flows C Transform Flow

 Transform Flow  Incoming Flow: The paths that transform the external data into an internal form  Transform Center: The incoming data are passed through a transform center and begin to move along paths that lead it out of the software  Outgoing Flow: The paths that move the data out of the software Transform flow

Transform Flow Characteristics the system has a single, coherent objective transformation center executes algorithms, data transformation, database manipulation,... input-driven processes filter, check and translate external data flows output-driven processes format results for presentation to the environment (user) multiple paths to obtain input

Transform Analysis: mapping heuristic i1 i2 tc2 o1o2 o3 sys I-ctrlP-ctrlO-ctrl i1i2 tc1tc2 o1 o2 tc1 o3

Transaction Flow T Transaction center Transaction Action paths

Transaction flow  Transaction Flow Information flow is often characterized by a single data item, called a transaction that triggers other data flow along one of many paths Action Paths :The transaction is evaluated and based on its value flow along one of many action paths Transaction center :The hub of info flow from which many action paths originate

Transaction Flow Characteristics single line of reception processes transaction: a single data item that includes all necessary information for execution transaction center evaluates transaction & initializes correct action-path => distribution action-paths implement (clearly) different types of functionality => execution an action-path could be a complete (sub-)system with transform flow characteristics

r1 r2 r1 sys trc s1s2 i2 i1 coto1 i1 i2 cot o1 trc Transaction Analysis: mapping heuristic

Transaction Analysis may include Transform Analysis as an element.

r1 r2 r1 sys trc s1s2 i2 i1 coto1 i1 i2 cot o1 trc Transform Analysis as an element of Transaction Analysis

Transform Mapping (cont) Design steps Step 1. Review the fundamental system model. Step 2. Review and refine data flow diagrams for the software. Step 3. Determine whether DFD has transform or transaction flow characteristics. in general---transform flow special case---transaction flow

Context Level DFD

Level 1 DFD

Transform Mapping (cont) Step 4. Isolate the transform center by specifying incoming and outgoing flow boundaries different designers may select slightly differently transform center can contain more than one bubble. Step 5. Perform “first-level factoring” program structure represent a top-down distribution control. factoring results in a program structure(top-level, middle- level, low-level) number of modules limited to minimum.

First Level Factoring

Transform Mapping (cont) Step 6. Perform “second-level factoring” mapping individual transforms(bubbles) to appropriate modules. factoring accomplished by moving outwards from transform center boundary. Step 7. Refine the first iteration program structure using design heuristics for improved software quality.

Second Level Factoring

Transaction Mapping A single data item triggers one or more information flows

Transaction Mapping Design Step 1.Review the fundamental system model. Step 2.Review and refine DFD for the software Step 3.Determine whether the DFD has transform or transaction flow characteristics Step 4. Identify the transaction center and flow characteristics along each of the action paths isolate incoming path and all action paths each action path evaluated for its flow characteristic.

Transaction Mapping (cont) Step 5. Map the DFD in a program structure amenable to transaction processing incoming branch bubbles along this path map to modules dispatch branch dispatcher module controls all subordinate action modules each action path mapped to corresponding structure

Transaction Mapping

Validate the Input String Conversion Executive Get User Selection Reverse String Controller Display Choices Append String Controller Count String Controller First Level Factoring

Validate the Input String Conversion Executive Get User Selection Reverse String Controller Reverse String Processing Controller Display Choices Read Char.Increment Count Append String Controller Input String Controller Append Str Get new Str Display Output Count String Controller Get String

Transaction Mapping (cont) Step 6. Factor and refine the transaction structure and the structure of each action path Step 7. Refine the first iteration program structure using design heuristics for improved software quality

Design Post processing A processing narrative must be developed for each module An interface description is provided for each module Local and global data structures are defined All design restrictions/limitations are noted A design review is conducted “Optimization” is considered (if required and justified)

Summary  Data-flow oriented design: Natural flow from analysis Find type of information flow Find flow boundaries Map DFD to program flow Factor control Refine structure

References: Software Engineering - A practitioner’ s Approach by Roger S. Pressman (6 th Ed) 10.1, 10.3,10.6 Software Engineering - A practitioner’ s Approach by Roger S. Pressman(5 th Ed) Chapter (14.1.1, ), 14.3-(14.3.1), 14.5-(14.5.1, ), 14.6-(14.6.1, ), 14.7-(14.7.1, )