unit 3 3 architectural design

45
Chapter – 10 Chapter – 10 Creating an Architectural Creating an Architectural Design Design

Upload: hiren-selani

Post on 28-Jan-2015

120 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Unit 3 3 architectural design

Chapter – 10Chapter – 10

Creating an Architectural DesignCreating an Architectural Design

Page 2: Unit 3 3 architectural design

IntroductionIntroduction• Architectural design represents

• Structure of the data + program components required to build a computer-based system.

• Begins with data design and proceeds to the derivation of one or more representations of the architectural structure of the system.

• The resulting architectural model:

- Encompasses both the data architecture +program structure. • Alternative architectural patterns are analyzed

• to determine the structure - best suited to the customer's requirements.

• Architectural model is subjected to software quality review

Page 3: Unit 3 3 architectural design

What is software Architecture• Contains various components, with visible properties of

those components and relationships among them.

(Various components are integrated to form a cohesive whole)• Architectural level – details of algorithm not given• Overall shape of the physical structure

It is a representation that enables a software engineer to:

(1) analyze the effectiveness of the design in meeting its stated requirements

(2) consider architectural alternatives

(design changes is easy)

(3) reduce the risks associated with the construction of the software.

Page 4: Unit 3 3 architectural design

Why is Architecture important?Why is Architecture important?• Representations of software architecture are an enabler Representations of software architecture are an enabler

for communication between all parties interested in the for communication between all parties interested in the development of a computer based system.development of a computer based system.

• The architecture highlights early design decisions that The architecture highlights early design decisions that will have a profound impact on all software engineering will have a profound impact on all software engineering work that follows and, as a important, on the ultimate work that follows and, as a important, on the ultimate success of the system as an operational entity.success of the system as an operational entity.

• Architecture constitutes a relatively small, intellectually Architecture constitutes a relatively small, intellectually graspable model of how the system is structured and how graspable model of how the system is structured and how its components work together. its components work together.

Page 5: Unit 3 3 architectural design

What is software ArchitectureWhat is software Architecture

Software architecture considers two levels of designSoftware architecture considers two levels of design::

1. Data Design – action translates data objects defined as part of the analysis model into data structures at the software component level and when necessary, a database architecture at the application level.

2.2. Architectural designArchitectural design – representation of the structure – representation of the structure of software components, their properties and relationsof software components, their properties and relations

Page 6: Unit 3 3 architectural design

Data DesignData DesignData Design at the architectural levelData Design at the architectural level

• In large businesses, the challenge is to extract useful In large businesses, the challenge is to extract useful information from the data environment.information from the data environment.

• To solve these challenges data mining techniques were To solve these challenges data mining techniques were developed (Knowledge Discovery in Databases).developed (Knowledge Discovery in Databases).

Data Mining:Data Mining:• It navigates through existing databases in an attempt to It navigates through existing databases in an attempt to

extract appropriate business level information.extract appropriate business level information.• But these databases would have different structuresBut these databases would have different structures• the degree of details may be differentthe degree of details may be different• data mining becomes difficult.data mining becomes difficult.

Page 7: Unit 3 3 architectural design

Data MiningData Mining• Data mining (sometimes called data or knowledge Data mining (sometimes called data or knowledge

discovery) is the process of analyzing data from different discovery) is the process of analyzing data from different perspectives and summarizing it into useful information perspectives and summarizing it into useful information • information that can be used to increase revenue, cuts costs, or information that can be used to increase revenue, cuts costs, or

both.both.

• Data mining software is one of a number of analytical Data mining software is one of a number of analytical tools for analyzing data. tools for analyzing data.

• It allows users to analyze data from many different It allows users to analyze data from many different dimensions or angles, categorize it, and summarize the dimensions or angles, categorize it, and summarize the relationships identified. relationships identified.

• Technically, data mining is the process of finding Technically, data mining is the process of finding correlations or patterns among dozens of fields in large correlations or patterns among dozens of fields in large relational databases. relational databases.

Page 8: Unit 3 3 architectural design

Data DesignData DesignData WarehousingData Warehousing• Warehouse – storage place, depositoryWarehouse – storage place, depository• It adds another layer to the data architecture on top It adds another layer to the data architecture on top

of databases. of databases. • Data warehouse is a separate data environment Data warehouse is a separate data environment

encompasses all data used by business. encompasses all data used by business. • It is a large, independent database that encompasses It is a large, independent database that encompasses

some, but not all, of the data that are stored in databases some, but not all, of the data that are stored in databases used by individual applications. used by individual applications.

• Many characteristics are different from regular databases.Many characteristics are different from regular databases.• They are subjected to orientation, integration, time They are subjected to orientation, integration, time

variancy, non-volatility.variancy, non-volatility.

Page 9: Unit 3 3 architectural design

DATA WAREHOUSINGDATA WAREHOUSING• A data warehouse is essentially a set of hardware A data warehouse is essentially a set of hardware

and software components that are used to analyze and software components that are used to analyze in a more effective manner, the massive amount of in a more effective manner, the massive amount of data that an organization has accumulated, and data that an organization has accumulated, and thereby facilitate sound business decisions.thereby facilitate sound business decisions.

• Data in a Data Warehouse is extracted from Data in a Data Warehouse is extracted from heterogeneous sources as and when it is generated. heterogeneous sources as and when it is generated.

• Data Warehousing is a method of extracting useful Data Warehousing is a method of extracting useful information from on-line / off-line databases for information from on-line / off-line databases for the purpose of decision support and analysis. the purpose of decision support and analysis.

• Data Warehousing is a concept. Data Warehousing is a concept.

Page 10: Unit 3 3 architectural design

Data design at the component levelData design at the component level• Focuses on the representation of data structures that are Focuses on the representation of data structures that are

directlydirectly accessed by accessed by software componentssoftware components..Principles for data specification and design:Principles for data specification and design:1.1. Systematic analysis principles applied to function and Systematic analysis principles applied to function and

behavior should also be applied to data. behavior should also be applied to data. (data object identified, alternative data organizations should be (data object identified, alternative data organizations should be

considered)considered)

2.2. All data structures and the operations to be performed on All data structures and the operations to be performed on each should be identified. each should be identified. (efficient data structure picked)(efficient data structure picked)

3.3. Data dictionary should be established and used to define Data dictionary should be established and used to define both data and program design. both data and program design. (define the data items within the class & processing applied (define the data items within the class & processing applied to data items)to data items)

Page 11: Unit 3 3 architectural design

Data design at the component levelData design at the component levelPrinciples for data specification and design:Principles for data specification and design:

4.4. Low level design processes should be deferred Low level design processes should be deferred until late in the design process. until late in the design process.

5.5. Representations of data structure should be Representations of data structure should be known only to those modules that makes use of known only to those modules that makes use of it.(information hiding)it.(information hiding)

6.6. A library of useful data structures and operations A library of useful data structures and operations should be developed. (class libraries)should be developed. (class libraries)

7.7. A software design and its implementation A software design and its implementation language should support the specification and language should support the specification and realization of abstract data types realization of abstract data types

Page 12: Unit 3 3 architectural design

Architectural Style and PatternsArchitectural Style and Patterns• Software built for computer-based systems also Software built for computer-based systems also

exhibits one of many architectural stylesexhibits one of many architectural styles

Architectural Style Elements:Architectural Style Elements:

1.1. Set of components Set of components

2.2. Set of connections - that enable communication, Set of connections - that enable communication, coordination, and cooperation among components coordination, and cooperation among components

3.3. Constraints defining - how components can be Constraints defining - how components can be integrated to form the system integrated to form the system

4.4. Semantic models - enable designers to understand Semantic models - enable designers to understand the overall system properties by analyzing the overall system properties by analyzing properties of its constituent partsproperties of its constituent parts

Page 13: Unit 3 3 architectural design

Architectural Style and PatternsArchitectural Style and Patterns• An architectural style is a transformation that is imposed on An architectural style is a transformation that is imposed on

the design of an entire system.the design of an entire system.• The intent is to establish a structure for all components of The intent is to establish a structure for all components of

the system.the system.• An architectural pattern, imposes a transformation on the An architectural pattern, imposes a transformation on the

design of an architecture.design of an architecture.• However, a pattern differs from a style in a number of However, a pattern differs from a style in a number of

fundamental ways,fundamental ways,• Scope of a pattern is less broad focusing on one aspect of the Scope of a pattern is less broad focusing on one aspect of the

architecture rather than the architecture in its entirety.architecture rather than the architecture in its entirety.• Patterns imposes rules on the architecture, describing how the Patterns imposes rules on the architecture, describing how the

software will handle some aspect of its functionality at the software will handle some aspect of its functionality at the infrastructure levelinfrastructure level

• Architectural patterns tend to address specific behavioral issues Architectural patterns tend to address specific behavioral issues within the context of the architecture.within the context of the architecture.

Page 14: Unit 3 3 architectural design

Architectural Styles Architectural Styles 1.Data centered:1.Data centered:• A data-store (file or database) resides at the center of A data-store (file or database) resides at the center of

architecture and is accessed frequently by other componentsarchitecture and is accessed frequently by other components• that update, delete, or modify data within the store.that update, delete, or modify data within the store.

• The client software accesses a central repository.The client software accesses a central repository.• (Railway reservation system)(Railway reservation system)

• This style promotes integrabilityThis style promotes integrability

- existing components can be changed - existing components can be changed

- new client components can be added to the architecture - new client components can be added to the architecture without concern about other clients without concern about other clients

- The client components operate independently. - The client components operate independently.

Page 15: Unit 3 3 architectural design

Data-Centered ArchitectureData-Centered Architecture

Page 16: Unit 3 3 architectural design

Architectural StylesArchitectural Styles2.Data flow architecture:2.Data flow architecture:

Input data is transformed by a series of computational or Input data is transformed by a series of computational or manipulative components into output data manipulative components into output data

This style described as a pipe and filter pattern:This style described as a pipe and filter pattern:• Components are called filters, transforms data and transmit Components are called filters, transforms data and transmit

them through the pipes to the next filter.them through the pipes to the next filter.• Each filter works independently of those components Each filter works independently of those components • It expects data input and generates output in specified form.It expects data input and generates output in specified form.• It does not require knowledge of the working of its It does not require knowledge of the working of its

neighboring filters. neighboring filters. • If the data flow degenerates a single line of transforms - If the data flow degenerates a single line of transforms -

batch sequential.batch sequential.• This pattern accepts a batch of data and then applies a series This pattern accepts a batch of data and then applies a series

of sequential components (filters) to transform it. of sequential components (filters) to transform it. • (There is no data flow in data-centered architecture. Data (There is no data flow in data-centered architecture. Data

stay in the center they do not flow.)stay in the center they do not flow.)

Page 17: Unit 3 3 architectural design

Data Flow ArchitectureData Flow Architecture

Page 18: Unit 3 3 architectural design

Architectural StylesArchitectural Styles3.Call and return architecture 3.Call and return architecture • Enables software designer to achieve a program Enables software designer to achieve a program

structure relatively easy to modify and scalestructure relatively easy to modify and scaleSub-styles Sub-styles • Main program / subprogram architectures:Main program / subprogram architectures:

• the program structure is decomposed into a control the program structure is decomposed into a control hierarchy hierarchy

• i.e. a main program invokes a number of program i.e. a main program invokes a number of program components which in turn may invoke still other components which in turn may invoke still other components. components.

• Remote procedure call architectures:Remote procedure call architectures:• the components of the main program / subprogram are the components of the main program / subprogram are

distributed across multiple computers on a network. distributed across multiple computers on a network.

Page 19: Unit 3 3 architectural design

Call and Return ArchitectureCall and Return Architecture

Page 20: Unit 3 3 architectural design

Architectural StylesArchitectural Styles4.Object oriented architectures 4.Object oriented architectures

- Encapsulate data and the operations that must be applied - Encapsulate data and the operations that must be applied to manipulate the data. to manipulate the data. - Communication and coordination between components is - Communication and coordination between components is accomplished by message passing. accomplished by message passing.

5.Layered architectures:5.Layered architectures:• Number of different layers are definedNumber of different layers are defined• Each accomplishing operations that progressively become Each accomplishing operations that progressively become

closer to the machine instruction set closer to the machine instruction set • Outer layer - components service user interface operations. Outer layer - components service user interface operations. • Inner layer - components perform OS interfacing. Inner layer - components perform OS interfacing. • Intermediate layers - provide utility services and application Intermediate layers - provide utility services and application

software functions.software functions.

Page 21: Unit 3 3 architectural design

Layered ArchitectureLayered Architecture

Page 22: Unit 3 3 architectural design

Architectural PatternsArchitectural Patterns• Architectural patterns for software defines a Architectural patterns for software defines a

specific approach for handling some behavioral specific approach for handling some behavioral characteristics of the system.characteristics of the system.

• Few architectural pattern domains areFew architectural pattern domains are• ConcurrencyConcurrency• PersistencePersistence• Distributions Distributions

Page 23: Unit 3 3 architectural design

Architectural Design Architectural Design • Software to be developed must be put into context Software to be developed must be put into context

(i.e., define external entities and define the nature of (i.e., define external entities and define the nature of interactions) interactions)

• Information acquired – In analysis model Information acquired – In analysis model

Information gathered – In requirement engineeringInformation gathered – In requirement engineering• Define and refine software components that implement Define and refine software components that implement

architecturearchitecture• Continue process iteratively - until complete architectural Continue process iteratively - until complete architectural

structure has been derived.structure has been derived.

Page 24: Unit 3 3 architectural design

Architectural DesignArchitectural DesignRepresenting the System in Context:Representing the System in Context:

• System engineer must model the contextSystem engineer must model the context• Context diagram - models in which the system Context diagram - models in which the system

interacts with external entities interacts with external entities

(Uses ACD – Architectural Context diagram)(Uses ACD – Architectural Context diagram)

(Input, Output, User interface, Processing)(Input, Output, User interface, Processing)

Page 25: Unit 3 3 architectural design

Architectural DesignArchitectural Design• Systems that interoperate with the target system are represented as: Systems that interoperate with the target system are represented as:

• Super ordinate systemsSuper ordinate systems - using the target system as part of some - using the target system as part of some higher level processing scheme higher level processing scheme

• Subordinate systemsSubordinate systems - used by the target system to provide data - used by the target system to provide data or processing needed to complete the target system or processing needed to complete the target system

• Peer level systemsPeer level systems - producing or consuming information needed - producing or consuming information needed by peers and the target system by peers and the target system

• ActorsActors – those entities that interact with the target system by – those entities that interact with the target system by producing or consuming information that is necessary for producing or consuming information that is necessary for requisite.requisite.

• Interfaces must be defined (relationship)Interfaces must be defined (relationship)• All the data that flow into or out of the target system must be All the data that flow into or out of the target system must be

identifiedidentified

Page 26: Unit 3 3 architectural design

Architectural DesignArchitectural Design

Target System

Subordinate systems

Peers

Used by

Depends onUsed Actors

Super ordinate system

Page 27: Unit 3 3 architectural design

Architectural DesignArchitectural Design

Target SystemSecurity function

Safe home Product

Internet based product

SurveillanceFunction

SensorsSensors

Home owners

Control Panel

Used by

ActorsUses Uses

Uses

Page 28: Unit 3 3 architectural design

• Defining ArchetypesDefining Archetypes• An archetype is a class or pattern that represents a core An archetype is a class or pattern that represents a core

abstraction that is critical to the design of an architecture abstraction that is critical to the design of an architecture for the target system.for the target system.

• The target system architecture is composed of these The target system architecture is composed of these archetypes, which represent stable elements of the archetypes, which represent stable elements of the architecture but may be instantiated in many different architecture but may be instantiated in many different ways.ways.

• The following archetypes areThe following archetypes are• Node – represents a collection of input and output elementsNode – represents a collection of input and output elements• Detector – an abstraction that encompasses all information into Detector – an abstraction that encompasses all information into

the target systemthe target system• Indicator – an abstraction that represents all mechanisms for Indicator – an abstraction that represents all mechanisms for

indicationindication• Controller – an abstraction that depicts the mechanism that Controller – an abstraction that depicts the mechanism that

allows the arming & disarming of a node.allows the arming & disarming of a node.

Page 29: Unit 3 3 architectural design

Assessing alternative architectural designs• Architectural style depends on - requirements.Architectural style depends on - requirements.• Combine different styles, derive - a new design that Combine different styles, derive - a new design that

best fits the requirements.best fits the requirements.• Number of alternatives which fit the requirements.Number of alternatives which fit the requirements.• Assess different alternatives by asking questions Assess different alternatives by asking questions

regarding data and controls. regarding data and controls. • Preliminary idea regarding - quality of design. Preliminary idea regarding - quality of design.

Page 30: Unit 3 3 architectural design

Assessing alternative architectural designsArchitecture Trade-off Analysis Method (ATAM)Architecture Trade-off Analysis Method (ATAM) : : Developed by Software Engineering Institute (SEI) Developed by Software Engineering Institute (SEI) Iterative process Iterative process Perform required activities in sequencePerform required activities in sequence

1.1. Collect scenarios Collect scenarios - Use Cases are developed to represent the system from the - Use Cases are developed to represent the system from the

user’s point of view.user’s point of view.

2.2. Elicit requirements, constraints, and environmental Elicit requirements, constraints, and environmental description description

- Information required for requirement engineering- Information required for requirement engineering

3.3. Describe architectural styles/patterns chosen to Describe architectural styles/patterns chosen to address scenarios and requirementsaddress scenarios and requirements

- (module view, process view, data flow view)- (module view, process view, data flow view)

Page 31: Unit 3 3 architectural design

Assessing alternative architectural designs4.4. Evaluate quality attributes independentlyEvaluate quality attributes independently

- e.g., reliability, performance, security, maintainability, - e.g., reliability, performance, security, maintainability, flexibility, testability, portability, reusability, flexibility, testability, portability, reusability, interoperability) interoperability)

5.5. Identify sensitivity points for architectureIdentify sensitivity points for architecture- any attributes significantly affected by variation in the - any attributes significantly affected by variation in the

architecturearchitecture

6.6. Critique candidate architectures (from step 3) Critique candidate architectures (from step 3) using the sensitivity analysis (conducted in step 5)using the sensitivity analysis (conducted in step 5)

Page 32: Unit 3 3 architectural design

Assessing alternative architectural designs• Dependencies between components within the architectureDependencies between components within the architecture• Dependencies – information /control flow between systemsDependencies – information /control flow between systems• Architectural Complexity (similar to coupling) Architectural Complexity (similar to coupling) • Sharing dependencies:Sharing dependencies:

- dependence relationships among consumers - dependence relationships among consumers

- who use the same resource or producers - who use the same resource or producers

- who produce for the same consumers - who produce for the same consumers • Flow dependencies:Flow dependencies:

• Relationships between producers & consumers of Relationships between producers & consumers of resources resources

• Constrained dependencies : Constrained dependencies : • The relative flow among a set of componentsThe relative flow among a set of components

Page 33: Unit 3 3 architectural design

Assessing alternative architectural designsArchitectural Description Language (ADL) Architectural Description Language (ADL) • Provides syntax and semantics for describing Provides syntax and semantics for describing

software architecture software architecture • Provides designers Provides designers

• with ability to decompose componentswith ability to decompose components• Compose individual components into large componentsCompose individual components into large components• Combines componentsCombines components• define interfaces between components (connection)define interfaces between components (connection)

Page 34: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture

Transition from DFD to program structure is as :Transition from DFD to program structure is as :

1.1. The type of information flow is established.The type of information flow is established.

2.2. Flow boundaries are indicated.Flow boundaries are indicated.

3.3. DFD is mapped into program structure.DFD is mapped into program structure.

4.4. Control hierarchy is defined.Control hierarchy is defined.

5.5. Resultant structure refined using design measuresResultant structure refined using design measures

6.6. Architectural description is refined and elaborated Architectural description is refined and elaborated

Page 35: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software ArchitectureThe whole method is called information flow. The whole method is called information flow.

There are two types of flows: There are two types of flows:

1.1. Transform flow Transform flow

2.2. Transaction flow Transaction flow • Transform flowTransform flow - data flow is sequential & flows - data flow is sequential & flows

in small number of straight line paths;in small number of straight line paths;• Transaction flowTransaction flow - a single data item triggers - a single data item triggers

information flow along one of many pathsinformation flow along one of many paths

Page 36: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software ArchitectureTransform Flow:Transform Flow:• Information Information entersenters and and exitsexits the the softwaresoftware in an “external in an “external

form”form”

( i.e. data typed on a keyboard, voice commands to voice ( i.e. data typed on a keyboard, voice commands to voice recognition systems, tones on a telephone line) recognition systems, tones on a telephone line)

• This form of data cannot be understood by the softwareThis form of data cannot be understood by the software• Externalized data converted into an internal form for Externalized data converted into an internal form for

processing.processing.

(External data (External data Internal data) Internal data)• Data enters the software converted into internal form, Data enters the software converted into internal form,

processed (transformed) and converted into external form to processed (transformed) and converted into external form to interact with the outside world.interact with the outside world.

(Data (Data enters s/w enters s/w internal form internal form processed processed external) external)

Page 37: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture• Two paths for conversion of data:Two paths for conversion of data:

• Incoming path (path that does conversion of incoming Incoming path (path that does conversion of incoming data is called incoming flow )data is called incoming flow )

• Outgoing path (path that converts data for sending out is Outgoing path (path that converts data for sending out is called outgoing flow called outgoing flow

• Central part:Central part:• does actual processing (transformation) called transform does actual processing (transformation) called transform

center.center.

• Overall flow of data in a sequential manner Overall flow of data in a sequential manner • Follows one, or only few, “straight line” paths. Follows one, or only few, “straight line” paths.

Page 38: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software ArchitectureTransaction Flow:Transaction Flow:• Flows a single data item, called a transaction, butFlows a single data item, called a transaction, but• Triggers data flow along one of many paths i.e. there is Triggers data flow along one of many paths i.e. there is

branching.branching.• Data moving along an incoming path that converts external Data moving along an incoming path that converts external

world information into a transaction.world information into a transaction.• Transaction evaluated based on its value, flow along one of Transaction evaluated based on its value, flow along one of

many action paths is initiated.many action paths is initiated.• Information flow - many action paths emanate called Information flow - many action paths emanate called

transaction center.transaction center.

Eg: Receives a user command - control panel. Eg: Receives a user command - control panel.

Depending on command there are: three different paths Depending on command there are: three different paths flow will continue. flow will continue.

Page 39: Unit 3 3 architectural design

MappingMapping RequirementsRequirements to Software Architecture to Software Architecture• DFD for large systems – transform + transaction DFD for large systems – transform + transaction • Within a transaction flow we have one action path which Within a transaction flow we have one action path which

would have transform flow. would have transform flow. • Eg, Process password action path in the user interaction Eg, Process password action path in the user interaction

subsystem shows transform flow characteristics. subsystem shows transform flow characteristics.

T

Transaction Flow

Page 40: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software ArchitectureTransform mappingTransform mapping• A set of design steps allows DFD with transform flow A set of design steps allows DFD with transform flow

characteristics to be mapped into a specific architectural characteristics to be mapped into a specific architectural style.style.

Design steps:Design steps:1.1. Review the fundamental system modelReview the fundamental system model

- - Data flow into and out of the functionData flow into and out of the function- i.e. consider the level 0 and level 1 DFD.- i.e. consider the level 0 and level 1 DFD.

2.2. Review and refine DFD for the software:Review and refine DFD for the software:- Information from analysis model refined- Information from analysis model refined- i.e. refine DFD to get level 2 and 3 DFD.- i.e. refine DFD to get level 2 and 3 DFD.- At level 3 of DFD:- At level 3 of DFD:

- each transform exhibits high level of cohesion- each transform exhibits high level of cohesion- process implied by a transform performs a single function - process implied by a transform performs a single function that can be implemented as a component. that can be implemented as a component.

Page 41: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture3.3. Determine whether the DFD has transform or Determine whether the DFD has transform or

transaction flow characteristics:transaction flow characteristics:

- - Incoming data: only one Incoming data: only one

- outgoing : appears to be three - outgoing : appears to be three

(i) alarm condition(i) alarm condition

(ii) second one is for display (Sensor, telephone)(ii) second one is for display (Sensor, telephone)

- so action path is only one. - so action path is only one.

- Hence it can be considered as transform flow.- Hence it can be considered as transform flow.

4.4. Isolate the transform center by specifying Isolate the transform center by specifying incoming and outgoing boundaries:incoming and outgoing boundaries:

Page 42: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture5.5. Perform “first level factoring”:Perform “first level factoring”:

- We know that there is transform flow - We know that there is transform flow - We divide structure in 3 different controls - We divide structure in 3 different controls

(i) incoming path(i) incoming path(ii) transform (ii) transform (iii) outgoing path. (iii) outgoing path.

- One main controller called monitor sensors - One main controller called monitor sensors executive which controls and supervises three executive which controls and supervises three controllerscontrollers(sensor input controller, alarm conditions controller (sensor input controller, alarm conditions controller and alarm output controller)and alarm output controller)

Page 43: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture

Monitor sensors

executive

AlarmOutput

controller

AlarmConditionscontroller

Sensor input

controller

Monitor sensors

executive

AlarmOutput

controller

AlarmConditionscontroller

Sensor input

controller

Generatedisplay

GeneratePulses to line

FormatDisplay

Generatealarm

ConnectionTo phone

First level factoringFor monitor sensors

Second level factoringFor monitor sensors

Page 44: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture6.6. Perform second level factoring:Perform second level factoring:

- Assign one program component to each bubble - Assign one program component to each bubble

- Decide the modules which are going to do actual - Decide the modules which are going to do actual work. work.

- Using controls decided in the first level of - Using controls decided in the first level of factoring factoring

- Worker modules decided in the second level of - Worker modules decided in the second level of factoringfactoring

- Decide the complete program structure. - Decide the complete program structure.

- This is the first iteration architecture.- This is the first iteration architecture.

Page 45: Unit 3 3 architectural design

Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture

7.7. Refine the first iteration architecture using design Refine the first iteration architecture using design heuristics for improved software quality:heuristics for improved software quality:

• RRefinement modules are to produceefinement modules are to produce• sensible factoringsensible factoring• good cohesiongood cohesion• minimal couplingminimal coupling• a structure that can be implemented without difficultya structure that can be implemented without difficulty• tested without confusiontested without confusion• maintainedmaintained

• Sensor input controller and Alarm conditions controller Sensor input controller and Alarm conditions controller are removed and Format display and generate display are are removed and Format display and generate display are combined to give Produce display.combined to give Produce display.