Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
MAPPING DATA FLOW DIAGRAMS INTO STRUCTURE CHARTS
Design Concepts and Principles
Software Design Process A Process is a set of related and (sequenced) tasks that transforms a set of input to a set of output. Inputs Outputs Design Process.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
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.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Software Design Deriving a solution which satisfies software requirements.
© Copyright 2011 John Wiley & Sons, Inc.
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Modeling the Processes and Logic
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
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.
Data Flow Diagrams.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
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 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Lecture 9: Chapter 9 Architectural Design
SOFTWARE DESIGN.
Chapter 9 Moving to Design
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
Chapter 13 Architectural Design
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
TCS2411 Software Engineering1 Data-Flow Oriented Design “From DFD to Structure Chart”
Design Concepts and Principles Instructor: Dr. Jerry Gao.
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 &
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
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.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Chapter : 9 Architectural Design
Data Flow Diagram, Data Dictionary, and Process Specification PART I
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.
McGraw-Hill/Irwin Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 Modeling the Processes and Logic.
Chapter 7 Design methods Design has been described :  Design shares with programming a concern for abstracting information representation Representations.
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.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
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
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Architectural Design.
Lecture 9- Design Concepts and Principles
Software Quality Engineering
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
CIS 375 Bruce R. Maxim UM-Dearborn
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 9 Architectural Design.
Presentation transcript:

Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components within the architecture.  3 dependencies:  Sharing dependencies – relationships among consumers who uses the same resource. For example, for two components u and v, if u and v refer to the same global data, then there exists a shared dependence relationship between u and v.  Flow dependencies- relationship between producers and consumers of resources. For example, for two components u and v, if u must complete before control flows into v (prerequisite), or if u communicates with v by parameters, then there exists a flow dependence relationship between u and v. 1

Architectural Complexity  Constrained dependencies – represent constraints on the relative flow of control among a set of activities. For example, for two components u and v, u and v cannot execute at the same time (mutual exclusion), then there exists a constrained dependence relationship between u and v. 2

Architectural Description Languages  The architect of a house has a set of standardized tools and notation that allow the design to be represented in an unambiguous, understandable fashion.  Architectural description language (ADL) provides a semantics and syntax for describing a software architecture.  Hofmann and his colleagues [Hof01] suggest that an ADL should provide the designer with the ability to decompose architectural components, compose individual components into larger architectural blocks, and represent interfaces (connection mechanisms) between components 3

ARCHITECTURAL MAPPING USING DATA FLOW  There is no practical mapping for some architectural styles, and the designer must approach the translation of requirements to design for these styles in using the techniques discussed  To illustrate one approach to architectural mapping, consider the call and return architecture—an extremely common structure for many types of systems.  In order to perform the mapping, the type of information flow must be determined.  One type of information flow is called transform flow and exhibits a linear quality.  Data flows into the system along an incoming flow path where it is transformed from an external world representation into internalized form. 4

ARCHITECTURAL MAPPING USING DATA FLOW  Once it has been internalized, it is processed at a transform center.  Finally, it flows out of the system along an outgoing flow path that transforms the data into external world form. 5

Transform Mapping  Transform mapping is a set of design steps that allows a DFD with transform flow characteristics to be mapped into a specific architectural style.  To illustrate this approach, we again consider the SafeHome security function  One element of the analysis model is a set of data flow diagrams that describe information flow within the security function.  To map these data flow diagrams into a software architecture, you would initiate the following design steps: i)Step 1. Review the fundamental system model. 6

Transform Mapping i) Step 1. Review the fundamental system model. The fundamental system model or context diagram depicts the security function as a single transformation, representingthe external producers and consumers of data that flow into and out of the function. Next picture shows refined data flow for the security function 7 Context-level DFD for the SafeHome Security function

8 Transform Mapping i) Step 1. Review the fundamental system model cont. refined data flow for the security function

9 Transform Mapping ii) Step 2. Review and refine data flow diagrams for the software Information obtained from the requirements model is refined to produce greater detail. For example, the level 2 DFD for monitor sensors is examined

10 Transform Mapping ii) Step 2. Review and refine data flow diagrams for the software At level 3, each transform in the data flow diagram exhibits relatively high cohesion That is, the process implied by a transform performs a single, distinct function that can be implemented as a component in the SafeHome software. Therefore, the DFD in Figure below contains sufficient detail for a “first cut” at the design of architecture for the monitor sensors subsystem, and we proceed without further refinement

11 Transform Mapping ii) Step 3. Determine whether the DFD has transform or transaction flow characteristics. Evaluating the DFD (Figure below, we see data entering the software along one incoming path and exiting along three outgoing paths. Therefore, an overall transform characteristic will be assumed for information flow.

12 - Transform Mapping ii) Step 4. Isolate the transform center by specifying incoming and outgoing flow boundaries Incoming data flows along a path in which information is converted from external to internal form. outgoing flow converts internalized data to external form. Incoming and outgoing flow boundaries are open to interpretation - That is, different designers may select slightly different points in the flow as boundary locations

13 Transform Mapping ii) Step 5. Perform “first-level factoring.” -The program architecture derived using this mapping results in a top-down distribution of control. - Factoring leads to a program structure in which top-level components perform decision making and lowlevel components perform most input, computation, and output work -Middle-level components perform some control and do moderate amounts of work.

14 - Transform Mapping ii) Step 5. Perform “first-level factoring.” - This first-level factoring for the monitor sensors subsystem is illustrated in Figure below. main controller (called monitor sensors executive ) resides at the top of the program structure and coordinates the following subordinate control functions: An incoming information processing controller, called sensor input controller, coordinates receipt of all incoming data transform flow controller, called alarm conditions controller, supervises all operations on data in internalized form (e.g., a module that invokes various data transformation procedures). An outgoing information processing controller, called alarm output controller, coordinates production of output information

15

16 - Transform Mapping ii) Step 6. Perform “second-level factoring.” Second-level factoring is accomplished by mapping individual transforms (bubbles) of a DFD into appropriate modules within the architecture. Beginning at the transform center boundary and moving outward along incoming and then outgoing paths, transforms are mapped into subordinate levels of the software structure. The general approach to secondlevel factoring is illustrated in Figure below

17 - Transform Mapping ii) Step 6. Perform “second-level factoring.”

18 Transform Mapping ii) Step 6. Perform “second-level factoring.” -Although Figure above illustrates a one-to-one mapping between DFD transforms and software modules, different mappings frequently occur. -Two or even three bubbles can be combined and represented as one component, or a single bubble may be expanded to two or more components

19 Transform Mapping ii) Step 7. Refine the first-iteration architecture using design heuristics for improved software quality. Components are exploded or imploded to produce sensible factoring, separation of concerns, good cohesion, minimal coupling, and most important, a structure that can be implemented without difficulty, tested without confusion, and maintained without grief