+ All Categories
Home > Documents > Architectural Complexity

Architectural Complexity

Date post: 31-Dec-2015
Category:
Upload: melodie-levine
View: 17 times
Download: 0 times
Share this document with a friend
Description:
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: - PowerPoint PPT Presentation
Popular Tags:
46
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
Transcript
Page 1: Architectural Complexity

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

Page 2: Architectural Complexity

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

Page 3: Architectural Complexity

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

Page 4: Architectural Complexity

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

Page 5: Architectural Complexity

ARCHITECTURAL MAPPING USING DATA FLOWOnce 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

Page 6: Architectural Complexity

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

Page 7: Architectural Complexity

Transform Mappingi) 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 SafeHomeSecurity function

Page 8: Architectural Complexity

8

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

Page 9: Architectural Complexity

9

Transform Mappingii) 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

Page 10: Architectural Complexity

10

Transform Mappingii) 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

Page 11: Architectural Complexity

11

Transform Mappingii) 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.

Page 12: Architectural Complexity

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

Page 13: Architectural Complexity

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 lowlevelcomponents perform most input, computation, and output work

-Middle-level components perform some control and do moderate amounts of work.

Page 14: Architectural Complexity

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 sensorsexecutive) 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

Page 15: Architectural Complexity

15

Page 16: Architectural Complexity

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 mappedinto subordinate levels of the software structure. The general approach to secondlevel factoring is illustrated in Figure below

Page 17: Architectural Complexity

17

Transform Mapping

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

Page 18: Architectural Complexity

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

Page 19: Architectural Complexity

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

Page 20: Architectural Complexity

Partitioning the Architecture“horizontal” and “vertical” partitioning are required

20

Page 21: Architectural Complexity

Horizontal Partitioningdefine separate branches of the

module hierarchy for each major function

use control modules to coordinate communication between functions

function 1function 1 function 3function 3

function 2function 221

Page 22: Architectural Complexity

Vertical Partitioning:Factoring

design so that decision making and work are stratified (To form, arrange, or deposit in layers.

decision making modules should reside at the top of the architecture

workersworkers

decision-makersdecision-makers

22

Page 23: Architectural Complexity

Why Partitioned Architecture?

results in software that is easier to testleads to software that is easier to

maintainresults in propagation of fewer side

effectsresults in software that is easier to

extend

23

Page 24: Architectural Complexity

Structured Design

objective: to derive a program architecture that is partitioned

approach: the Data Flow Diagram (DFD) is

mapped into a program architecture

the Process Specification (PSPEC) and STD are used to indicate the content of each module

notation: structure chart

24

Page 25: Architectural Complexity

Structured Design

25

Context-level DFD for the SafeHomeSecurity function

Page 26: Architectural Complexity

Flow Characteristics

Transform flow

Transactionflow

26

Page 27: Architectural Complexity

Transform flowInformation must enter and exit

software in an “external world” form.Example : data typed on keyboard,

tones on telephone line, Incoming Flow = information enters the

system along path that transform external data into external form

Transform centre = transition occursOutgoing flow = data begin to lead out the

software.

27

Page 28: Architectural Complexity

Transform MappingSet of design steps that allow a DFD

with transform flow characteristics to be mapped into a specific architectural style.

Consider the safe home security function

28

Page 29: Architectural Complexity

Transform mapping step

Transform mapping is a set of design steps that allows a DFD with transform flow characteristics to be mapped into a specific architectural style.

Review the fundamental system model - The fundamental system model or context diagram depicts the security function as a single transformation, representing the external producers and consumers of data that flow into and out of the function.

Review and refine the DFD for the software- Information obtained from the requirements model is refined to produce greater detail

Determine whether the DFD has flow or transaction flow characteristics.

29

Page 30: Architectural Complexity

Transform mapping step Isolate the transform centre by specifying outcoming and

incoming 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

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.

Perform second level factoring- Second-level factoring is accomplished by mapping individual transforms (bubbles) of a DFD into appropriate modules within the architecture.

1. Refine the first iteration architecture using design heuristic for improved software quality.

30

Page 31: Architectural Complexity

General Mapping Approachisolate incoming and outgoing flow isolate incoming and outgoing flow boundaries; for transaction flows, isolate boundaries; for transaction flows, isolate the transaction centerthe transaction center

working from the boundary outward, mapworking from the boundary outward, mapDFD transforms into corresponding modulesDFD transforms into corresponding modules

add control modules as requiredadd control modules as required

refine the resultant program structurerefine the resultant program structureusing effective modularity conceptsusing effective modularity concepts

31

Page 32: Architectural Complexity

Transform Mapping

data flow model

"Transform" mapping

ab

c

d e fg h

ij

x1

x2 x3 x4

b c

a

d e f g i

h j

32

Page 33: Architectural Complexity

Factoring

typical "worker" modules

typical "decision making" modules

direction of increasing decision making

33

Page 34: Architectural Complexity

First Level Factoring

main programcontroller

inputcontroller

processingcontroller

outputcontroller

34

Page 35: Architectural Complexity

Second Level Mapping

D

C

B A

A

C

B

Dmapping from the flow boundary outward

main

control

35

Page 36: Architectural Complexity

Transaction Flow

T

incoming flow

action path

36

Page 37: Architectural Complexity

Transaction Example

operatorcommands

processoperator commands

fixture setting

report

robot control

fixtureservos

displayscreen

robotcontrolsoftware

in reality, other commandswould also be shown

assemblyrecord

37

Page 38: Architectural Complexity

Refining the Analysis Model

write an English languagewrite an English language processing narrativeprocessing narrative for the level 01 flow modelfor the level 01 flow model

apply noun/verb parse to isolate processes, data apply noun/verb parse to isolate processes, data items, store and entitiesitems, store and entities

develop level 02 and 03 flow modelsdevelop level 02 and 03 flow models

create corresponding data dictionary entriescreate corresponding data dictionary entries

refine flow models as appropriaterefine flow models as appropriate

... now, we're ready to begin design!... now, we're ready to begin design!

1.1.

2.2.

3.3.

4.4.

5.5.

38

Page 39: Architectural Complexity

Level 1 Data Flow Diagram

operator fixtureservos

displayscreen

generate

analyzefixturestatus

sendcontrolvalue

determinecommand

type

readoperator

commandsFixture setting

assembly record

status

Error msg

commands

Validcommand

fixture

select report

control robot report

robot control

39

Page 40: Architectural Complexity

Level 2 Data Flow Diagram error msg

fixture setting

readcommand

validatecommand

determinetype

readrecord

calculateoutputvalues

formatreport

produceerror msg

readfixturestatus

determinesetting

formatsetting

sendcontrolvalue

command

commandinvalid command

status

combinedstatus

raw setting

robot control

start/stop

assemblyrecord

record

values

report

valid command

40

Page 41: Architectural Complexity

Transaction Mapping Principles

isolate the incomingisolate the incoming flow path flow path

define each of the actiondefine each of the action paths by looking for paths by looking for the "spokes of the wheel"the "spokes of the wheel"

assess the flow on each action pathassess the flow on each action path

define the dispatch and control structuredefine the dispatch and control structure

map each action path flow individuallymap each action path flow individually

41

Page 42: Architectural Complexity

Transaction Mapping

In many software application , a single data item triggers one of a number of information flows that effects a functions applied by trigerring the data item.

42

Page 43: Architectural Complexity

Transaction Mapping

a

b

t

g

h

d

e

f

i

k

j

l

m

n

Data flow model

x1

b

a

t

x2 x3 x4

d e f g h x3.1 l m n

i j

k

mapping program structure

43

Page 44: Architectural Complexity

Isolate Flow Paths

readcommand

validatecommand

determinetype

readrecord

calculateoutputvalues

formatreport

produceerror msg

readfixturestatus

determinesetting

formatsetting

sendcontrolvalue

command

commandinvalid command

error msg

status

combinedstatus

raw setting

fixture setting

robot control

start/stop

assemblyrecord

record

values

report

valid command

44

Page 45: Architectural Complexity

Map the Flow Model

45

process operator

commands

command input

controller

read command

validate command

produce error

message

determine type

fixture status

controller

report generation controller

send control value

each of the action paths must be expanded further

Page 46: Architectural Complexity

Refining the Structure Chart process

operator commands

command input

controller

read command

validate command

produce error

message

determine type

send control value

read fixture status

determine setting

format setting

read record

calculate output values

format report

fixture status

controller

report generation controller

46


Recommended