SlideShare uma empresa Scribd logo
1 de 45
Chapter – 10Chapter – 10
Creating an Architectural DesignCreating an 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
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.
Why is Architecture important?Why is Architecture important?
• Representations of software architecture are an enabler forRepresentations of software architecture are an enabler for
communication between all parties interested in thecommunication between all parties interested in the
development of a computer based system.development of a computer based system.
• The architecture highlights early design decisions thatThe architecture highlights early design decisions that
will have a profound impact on all software engineeringwill have a profound impact on all software engineering
work that follows and, as a important, on the ultimatework 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, intellectuallyArchitecture constitutes a relatively small, intellectually
graspable model of how the system is structured and howgraspable model of how the system is structured and how
its components work together.its components work together.
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
Data DesignData Design
Data Design at the architectural levelData Design at the architectural level
• In large businesses, the challenge is to extract usefulIn 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 wereTo 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 toIt 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.
Data MiningData Mining
• Data mining (sometimes called data or knowledgeData mining (sometimes called data or knowledge
discovery) is the process of analyzing data from differentdiscovery) is the process of analyzing data from different
perspectives and summarizing it into useful informationperspectives and summarizing it into useful information
• information that can be used to increase revenue, cuts costs, orinformation that can be used to increase revenue, cuts costs, or
both.both.
• Data mining software is one of a number of analyticalData 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 differentIt allows users to analyze data from many different
dimensions or angles, categorize it, and summarize thedimensions or angles, categorize it, and summarize the
relationships identified.relationships identified.
• Technically, data mining is the process of findingTechnically, data mining is the process of finding
correlations or patterns among dozens of fields in largecorrelations or patterns among dozens of fields in large
relational databases.relational databases.
Data DesignData Design
Data WarehousingData Warehousing
• Warehouse – storage place, depositoryWarehouse – storage place, depository
• It adds another layer to the data architecture on topIt adds another layer to the data architecture on top
of databases.of databases.
• Data warehouse is a separate data environmentData 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 encompassesIt is a large, independent database that encompasses
some, but not all, of the data that are stored in databasessome, 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, timeThey are subjected to orientation, integration, time
variancy, non-volatility.variancy, non-volatility.
DATA WAREHOUSINGDATA WAREHOUSING
• A data warehouse is essentially a set of hardwareA data warehouse is essentially a set of hardware
and software components that are used to analyzeand software components that are used to analyze
in a more effective manner, the massive amount ofin a more effective manner, the massive amount of
data that an organization has accumulated, anddata that an organization has accumulated, and
thereby facilitate sound business decisions.thereby facilitate sound business decisions.
• Data in a Data Warehouse is extracted fromData 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 usefulData Warehousing is a method of extracting useful
information from on-line / off-line databases forinformation 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.
Data design at the component levelData design at the component level
• Focuses on the representation of data structures that areFocuses on the representation of data structures that are
directlydirectly accessed byaccessed by software componentssoftware components..
Principles for data specification and design:Principles for data specification and design:
1.1. Systematic analysis principles applied to function andSystematic 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 onAll 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 defineData 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)
Data design at the component levelData design at the component level
Principles for data specification and design:Principles for data specification and design:
4.4. Low level design processes should be deferredLow 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 beRepresentations of data structure should be
known only to those modules that makes use ofknown only to those modules that makes use of
it.(information hiding)it.(information hiding)
6.6. A library of useful data structures and operationsA library of useful data structures and operations
should be developed. (class libraries)should be developed. (class libraries)
7.7. A software design and its implementationA software design and its implementation
language should support the specification andlanguage should support the specification and
realization of abstract data typesrealization of abstract data types
Architectural Style and PatternsArchitectural Style and Patterns
• Software built for computer-based systems alsoSoftware 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 componentsSet of components
2.2. Set of connections - that enable communication,Set of connections - that enable communication,
coordination, and cooperation among componentscoordination, and cooperation among components
3.3. Constraints defining - how components can beConstraints defining - how components can be
integrated to form the systemintegrated to form the system
4.4. Semantic models - enable designers to understandSemantic models - enable designers to understand
the overall system properties by analyzingthe overall system properties by analyzing
properties of its constituent partsproperties of its constituent parts
Architectural Style and PatternsArchitectural Style and Patterns• An architectural style is a transformation that is imposed onAn 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 ofThe intent is to establish a structure for all components of
the system.the system.
• An architectural pattern, imposes a transformation on theAn 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 ofHowever, 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 theScope 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 thePatterns imposes rules on the architecture, describing how the
software will handle some aspect of its functionality at thesoftware will handle some aspect of its functionality at the
infrastructure levelinfrastructure level
• Architectural patterns tend to address specific behavioral issuesArchitectural patterns tend to address specific behavioral issues
within the context of the architecture.within the context of the architecture.
Architectural StylesArchitectural Styles
1.Data centered:1.Data centered:
• A data-store (file or database) resides at the center ofA 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 clientswithout concern about other clients
- The client components operate independently.- The client components operate independently.
Data-Centered ArchitectureData-Centered Architecture
Architectural StylesArchitectural Styles2.Data flow architecture:2.Data flow architecture:
Input data is transformed by a series of computational orInput data is transformed by a series of computational or
manipulative components into output datamanipulative 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 transmitComponents 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 componentsEach 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 itsIt 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 seriesThis 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.)
Data Flow ArchitectureData Flow Architecture
Architectural StylesArchitectural Styles
3.Call and return architecture3.Call and return architecture
• Enables software designer to achieve a programEnables software designer to achieve a program
structure relatively easy to modify and scalestructure relatively easy to modify and scale
Sub-stylesSub-styles
• Main program / subprogram architectures:Main program / subprogram architectures:
• the program structure is decomposed into a controlthe program structure is decomposed into a control
hierarchyhierarchy
• i.e. a main program invokes a number of programi.e. a main program invokes a number of program
components which in turn may invoke still othercomponents which in turn may invoke still other
components.components.
• Remote procedure call architectures:Remote procedure call architectures:
• the components of the main program / subprogram arethe components of the main program / subprogram are
distributed across multiple computers on a network.distributed across multiple computers on a network.
Call and Return ArchitectureCall and Return Architecture
Architectural StylesArchitectural Styles
4.Object oriented architectures4.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 becomeEach accomplishing operations that progressively become
closer to the machine instruction setcloser 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 applicationIntermediate layers - provide utility services and application
software functions.software functions.
Layered ArchitectureLayered Architecture
Architectural PatternsArchitectural Patterns
• Architectural patterns for software defines aArchitectural patterns for software defines a
specific approach for handling some behavioralspecific approach for handling some behavioral
characteristics of the system.characteristics of the system.
• Few architectural pattern domains areFew architectural pattern domains are
• ConcurrencyConcurrency
• PersistencePersistence
• DistributionsDistributions
Architectural DesignArchitectural Design
• Software to be developed must be put into contextSoftware 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 modelInformation acquired – In analysis model
Information gathered – In requirement engineeringInformation gathered – In requirement engineering
• Define and refine software components that implementDefine and refine software components that implement
architecturearchitecture
• Continue process iteratively - until complete architecturalContinue process iteratively - until complete architectural
structure has been derived.structure has been derived.
Architectural DesignArchitectural Design
Representing 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 systemContext diagram - models in which the system
interacts with external entitiesinteracts with external entities
(Uses ACD – Architectural Context diagram)(Uses ACD – Architectural Context diagram)
(Input, Output, User interface, Processing)(Input, Output, User interface, Processing)
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 schemehigher 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 systemor 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 systemby 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 requisite.producing or consuming information that is necessary for requisite.
• Interfaces must be defined (relationship)Interfaces must be defined (relationship)
• All the data that flow into or out of the target system must beAll the data that flow into or out of the target system must be
identifiedidentified
Architectural DesignArchitectural Design
Target System
Subordinate systems
Peers
Used by
Depends onUsedActors
Super ordinate system
Architectural DesignArchitectural Design
Target System
Security function
Safe home
Product
Internet based
product
Surveillance
Function
SensorsSensors
Home
owners
Control
Panel
Used by
Actors
Uses Uses
Uses
• Defining ArchetypesDefining Archetypes
• An archetype is a class or pattern that represents a coreAn archetype is a class or pattern that represents a core
abstraction that is critical to the design of an architectureabstraction that is critical to the design of an architecture
for the target system.for the target system.
• The target system architecture is composed of theseThe target system architecture is composed of these
archetypes, which represent stable elements of thearchetypes, which represent stable elements of the
architecture but may be instantiated in many differentarchitecture 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 intoDetector – an abstraction that encompasses all information into
the target systemthe target system
• Indicator – an abstraction that represents all mechanisms forIndicator – an abstraction that represents all mechanisms for
indicationindication
• Controller – an abstraction that depicts the mechanism thatController – an abstraction that depicts the mechanism that
allows the arming & disarming of a node.allows the arming & disarming of a node.
Assessing alternative architectural designs
• Architectural style depends on - requirements.Architectural style depends on - requirements.
• Combine different styles, derive - a new design thatCombine 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 questionsAssess 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.
Assessing alternative architectural designs
Architecture Trade-off Analysis Method (ATAM)Architecture Trade-off Analysis Method (ATAM) ::
 Developed by Software Engineering Institute (SEI)Developed by Software Engineering Institute (SEI)
 Iterative processIterative process
 Perform required activities in sequencePerform required activities in sequence
1.1. Collect scenariosCollect 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 environmentalElicit requirements, constraints, and environmental
descriptiondescription
- Information required for requirement engineering- Information required for requirement engineering
3.3. Describe architectural styles/patterns chosen toDescribe 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)
Assessing alternative architectural designs
4.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)
4.4. 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
4.4. 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)
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 ofRelationships between producers & consumers of
resourcesresources
• Constrained dependencies :Constrained dependencies :
• The relative flow among a set of componentsThe relative flow among a set of components
Assessing alternative architectural designs
Architectural Description Language (ADL)Architectural Description Language (ADL)
• Provides syntax and semantics for describingProvides syntax and semantics for describing
software architecturesoftware architecture
• Provides designersProvides 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)
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 elaboratedArchitectural description is refined and elaborated
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
The 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 flowTransform flow
2.2. Transaction flowTransaction 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
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
Transform Flow:Transform Flow:
• InformationInformation entersenters andand exitsexits thethe softwaresoftware in an “externalin 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 forExternalized 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 toprocessed (transformed) and converted into external form to
interact with the outside world.interact with the outside world.
(Data(Data  enters s/wenters s/w  internal forminternal form  processedprocessed  external)external)
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 incomingIncoming 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 isOutgoing path (path that converts data for sending out is
called outgoing flowcalled outgoing flow
• Central part:Central part:
• does actual processing (transformation) called transformdoes actual processing (transformation) called transform
center.center.
• Overall flow of data in a sequential mannerOverall flow of data in a sequential manner
• Follows one, or only few, “straight line” paths.Follows one, or only few, “straight line” paths.
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
Transaction 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 isTriggers data flow along one of many paths i.e. there is
branching.branching.
• Data moving along an incoming path that converts externalData 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 ofTransaction 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 calledInformation 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 pathsDepending on command there are: three different paths
flow will continue.flow will continue.
MappingMapping RequirementsRequirements to Software Architectureto Software Architecture
• DFD for large systems – transform + transactionDFD for large systems – transform + transaction
• Within a transaction flow we have one action path whichWithin 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 interactionEg, Process password action path in the user interaction
subsystem shows transform flow characteristics.subsystem shows transform flow characteristics.
T
Transaction Flow
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
Transform mappingTransform mapping
• A set of design steps allows DFD with transform flowA set of design steps allows DFD with transform flow
characteristics to be mapped into a specific architecturalcharacteristics 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.
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
3.3. Determine whether the DFD has transform orDetermine whether the DFD has transform or
transaction flow characteristics:transaction flow characteristics:
-- Incoming data: only oneIncoming 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 specifyingIsolate the transform center by specifying
incoming and outgoing boundaries:incoming and outgoing boundaries:
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
5.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 threeexecutive 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)
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
Monitor
sensors
executive
Alarm
Output
controller
Alarm
Conditions
controller
Sensor
input
controller
Monitor
sensors
executive
Alarm
Output
controller
Alarm
Conditions
controller
Sensor
input
controller
Generate
display
Generate
Pulses
Format
Display
Generate
alarm
Connection
To phone
First level factoring
For monitor sensors
Second level factoring
For monitor sensors
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
6.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
factoringfactoring
- 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.
Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture
7.7. Refine the first iteration architecture using designRefine 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 controllerSensor input controller and Alarm conditions controller
are removed and Format display and generate display areare removed and Format display and generate display are
combined to give Produce display.combined to give Produce display.

Mais conteúdo relacionado

Mais procurados

Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metricsIndu Sharma Bhardwaj
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software EngineeringManish Kumar
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Non Functional Requirement.
Non Functional Requirement.Non Functional Requirement.
Non Functional Requirement.Khushboo Shaukat
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
Software engineering critical systems
Software engineering   critical systemsSoftware engineering   critical systems
Software engineering critical systemsDr. Loganathan R
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 

Mais procurados (20)

Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Non Functional Requirement.
Non Functional Requirement.Non Functional Requirement.
Non Functional Requirement.
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
Component level design
Component   level designComponent   level design
Component level design
 
Software engineering critical systems
Software engineering   critical systemsSoftware engineering   critical systems
Software engineering critical systems
 
Software design
Software designSoftware design
Software design
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software quality
Software qualitySoftware quality
Software quality
 
RMMM Plan
RMMM PlanRMMM Plan
RMMM Plan
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 

Destaque

Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 Drawing
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 DrawingArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 Drawing
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 DrawingGalala University
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 Structure
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 StructureArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 Structure
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 StructureGalala University
 
Architecture design studio 1 project 1 brief march 2016
Architecture design studio 1 project 1 brief march 2016Architecture design studio 1 project 1 brief march 2016
Architecture design studio 1 project 1 brief march 2016Lau Hui Ming Belinda
 
Architectural design studio 1 project 2 brief march 2015
Architectural design studio 1 project 2 brief march 2015Architectural design studio 1 project 2 brief march 2015
Architectural design studio 1 project 2 brief march 2015Arvindhan Balasingam
 
Design studio 1 project 3a brief march 2015_updated
Design studio 1 project 3a brief march 2015_updatedDesign studio 1 project 3a brief march 2015_updated
Design studio 1 project 3a brief march 2015_updatedArvindhan Balasingam
 
Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & PatternsInocentshuja Ahmad
 
Studio 1 Project 2 presentation board
Studio 1 Project 2 presentation boardStudio 1 Project 2 presentation board
Studio 1 Project 2 presentation boardDexter Ng
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Process
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - ProcessArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Process
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - ProcessGalala University
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 Styles
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 StylesArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 Styles
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 StylesGalala University
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 AestheticsArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 AestheticsGalala University
 
Architectural design project project 1a brief august 2016
Architectural design project project 1a brief august 2016Architectural design project project 1a brief august 2016
Architectural design project project 1a brief august 2016Preston Liew
 
Draft Brief - West Vancouver Centre for Art Architecture Design
Draft Brief - West Vancouver Centre for Art Architecture DesignDraft Brief - West Vancouver Centre for Art Architecture Design
Draft Brief - West Vancouver Centre for Art Architecture DesignStacy Reynaud
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - Program
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - ProgramArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - Program
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - ProgramGalala University
 
Project 1 brief design studio 1 march 2015
Project 1 brief design studio 1 march 2015Project 1 brief design studio 1 march 2015
Project 1 brief design studio 1 march 2015aswadtheman
 

Destaque (20)

05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
5 Type Of Architecture Design Process
5 Type Of Architecture Design Process 5 Type Of Architecture Design Process
5 Type Of Architecture Design Process
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 Drawing
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 DrawingArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 Drawing
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 7 Drawing
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 Structure
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 StructureArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 Structure
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 8 Structure
 
Architecture design studio 1 project 1 brief march 2016
Architecture design studio 1 project 1 brief march 2016Architecture design studio 1 project 1 brief march 2016
Architecture design studio 1 project 1 brief march 2016
 
Architectural design studio 1 project 2 brief march 2015
Architectural design studio 1 project 2 brief march 2015Architectural design studio 1 project 2 brief march 2015
Architectural design studio 1 project 2 brief march 2015
 
Design studio 1 project 3a brief march 2015_updated
Design studio 1 project 3a brief march 2015_updatedDesign studio 1 project 3a brief march 2015_updated
Design studio 1 project 3a brief march 2015_updated
 
Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
 
Studio 1 Project 2 presentation board
Studio 1 Project 2 presentation boardStudio 1 Project 2 presentation board
Studio 1 Project 2 presentation board
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Process
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - ProcessArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Process
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Process
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 Styles
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 StylesArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 Styles
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 9 Styles
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 AestheticsArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
 
Architectural design project project 1a brief august 2016
Architectural design project project 1a brief august 2016Architectural design project project 1a brief august 2016
Architectural design project project 1a brief august 2016
 
Draft Brief - West Vancouver Centre for Art Architecture Design
Draft Brief - West Vancouver Centre for Art Architecture DesignDraft Brief - West Vancouver Centre for Art Architecture Design
Draft Brief - West Vancouver Centre for Art Architecture Design
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - Program
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - ProgramArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - Program
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 4 - Program
 
Project 1 brief design studio 1 march 2015
Project 1 brief design studio 1 march 2015Project 1 brief design studio 1 march 2015
Project 1 brief design studio 1 march 2015
 

Semelhante a Unit 3 3 architectural design

An Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignAn Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignBlue Elephant Consulting
 
Lecture4 big data technology foundations
Lecture4 big data technology foundationsLecture4 big data technology foundations
Lecture4 big data technology foundationshktripathy
 
System engineering
System engineeringSystem engineering
System engineeringLisa Elisa
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and designRobinsonObura
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
Management information system database management
Management information system database managementManagement information system database management
Management information system database managementOnline
 
Business Intelligence and Analytics Unit-2 part-A .pptx
Business Intelligence and Analytics Unit-2 part-A .pptxBusiness Intelligence and Analytics Unit-2 part-A .pptx
Business Intelligence and Analytics Unit-2 part-A .pptxRupaRani28
 
Agile Testing Days 2017 Intoducing AgileBI Sustainably - Excercises
Agile Testing Days 2017 Intoducing AgileBI Sustainably - ExcercisesAgile Testing Days 2017 Intoducing AgileBI Sustainably - Excercises
Agile Testing Days 2017 Intoducing AgileBI Sustainably - ExcercisesRaphael Branger
 

Semelhante a Unit 3 3 architectural design (20)

An Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignAn Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed Design
 
Csc 303
Csc 303 Csc 303
Csc 303
 
Computing 7
Computing 7Computing 7
Computing 7
 
Lecture4 big data technology foundations
Lecture4 big data technology foundationsLecture4 big data technology foundations
Lecture4 big data technology foundations
 
System engineering
System engineeringSystem engineering
System engineering
 
Chapter 09
Chapter 09Chapter 09
Chapter 09
 
02 - DatabaseConcepts.pdf
02 - DatabaseConcepts.pdf02 - DatabaseConcepts.pdf
02 - DatabaseConcepts.pdf
 
Big Data SE vs. SE for Big Data
Big Data SE vs. SE for Big DataBig Data SE vs. SE for Big Data
Big Data SE vs. SE for Big Data
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and design
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Info sphere overview
Info sphere overviewInfo sphere overview
Info sphere overview
 
pptse-160111094410.pdf
pptse-160111094410.pdfpptse-160111094410.pdf
pptse-160111094410.pdf
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Management information system database management
Management information system database managementManagement information system database management
Management information system database management
 
Introduction
IntroductionIntroduction
Introduction
 
semana1.pptx
semana1.pptxsemana1.pptx
semana1.pptx
 
Db design
Db designDb design
Db design
 
Business Intelligence and Analytics Unit-2 part-A .pptx
Business Intelligence and Analytics Unit-2 part-A .pptxBusiness Intelligence and Analytics Unit-2 part-A .pptx
Business Intelligence and Analytics Unit-2 part-A .pptx
 
MS-CIT Unit 9.pptx
MS-CIT Unit 9.pptxMS-CIT Unit 9.pptx
MS-CIT Unit 9.pptx
 
Agile Testing Days 2017 Intoducing AgileBI Sustainably - Excercises
Agile Testing Days 2017 Intoducing AgileBI Sustainably - ExcercisesAgile Testing Days 2017 Intoducing AgileBI Sustainably - Excercises
Agile Testing Days 2017 Intoducing AgileBI Sustainably - Excercises
 

Mais de Hiren Selani

Dss & knowledge management
Dss & knowledge managementDss & knowledge management
Dss & knowledge managementHiren Selani
 
Computer forensics
Computer forensicsComputer forensics
Computer forensicsHiren Selani
 
Application in manufacturing sector
Application in manufacturing sectorApplication in manufacturing sector
Application in manufacturing sectorHiren Selani
 
Application In service sector
Application In service sectorApplication In service sector
Application In service sectorHiren Selani
 
Development process of mis
Development process of misDevelopment process of mis
Development process of misHiren Selani
 
DEVELOPMENT PROCESS OF MIS
DEVELOPMENT PROCESS OF MISDEVELOPMENT PROCESS OF MIS
DEVELOPMENT PROCESS OF MISHiren Selani
 
Information,Knowledge,Business intelligence
Information,Knowledge,Business intelligenceInformation,Knowledge,Business intelligence
Information,Knowledge,Business intelligenceHiren Selani
 

Mais de Hiren Selani (13)

Digitalbusiness
DigitalbusinessDigitalbusiness
Digitalbusiness
 
Introduction
IntroductionIntroduction
Introduction
 
Process models
Process modelsProcess models
Process models
 
Dss & knowledge management
Dss & knowledge managementDss & knowledge management
Dss & knowledge management
 
Computer forensics
Computer forensicsComputer forensics
Computer forensics
 
Cyber terrorism
Cyber terrorismCyber terrorism
Cyber terrorism
 
Application in manufacturing sector
Application in manufacturing sectorApplication in manufacturing sector
Application in manufacturing sector
 
Application In service sector
Application In service sectorApplication In service sector
Application In service sector
 
Development process of mis
Development process of misDevelopment process of mis
Development process of mis
 
DEVELOPMENT PROCESS OF MIS
DEVELOPMENT PROCESS OF MISDEVELOPMENT PROCESS OF MIS
DEVELOPMENT PROCESS OF MIS
 
System
SystemSystem
System
 
Information,Knowledge,Business intelligence
Information,Knowledge,Business intelligenceInformation,Knowledge,Business intelligence
Information,Knowledge,Business intelligence
 
Decision making
Decision makingDecision making
Decision making
 

Último

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Unit 3 3 architectural design

  • 1. Chapter – 10Chapter – 10 Creating an Architectural DesignCreating an Architectural Design
  • 2. 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
  • 3. 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.
  • 4. Why is Architecture important?Why is Architecture important? • Representations of software architecture are an enabler forRepresentations of software architecture are an enabler for communication between all parties interested in thecommunication between all parties interested in the development of a computer based system.development of a computer based system. • The architecture highlights early design decisions thatThe architecture highlights early design decisions that will have a profound impact on all software engineeringwill have a profound impact on all software engineering work that follows and, as a important, on the ultimatework 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, intellectuallyArchitecture constitutes a relatively small, intellectually graspable model of how the system is structured and howgraspable model of how the system is structured and how its components work together.its components work together.
  • 5. 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
  • 6. Data DesignData Design Data Design at the architectural levelData Design at the architectural level • In large businesses, the challenge is to extract usefulIn 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 wereTo 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 toIt 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.
  • 7. Data MiningData Mining • Data mining (sometimes called data or knowledgeData mining (sometimes called data or knowledge discovery) is the process of analyzing data from differentdiscovery) is the process of analyzing data from different perspectives and summarizing it into useful informationperspectives and summarizing it into useful information • information that can be used to increase revenue, cuts costs, orinformation that can be used to increase revenue, cuts costs, or both.both. • Data mining software is one of a number of analyticalData 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 differentIt allows users to analyze data from many different dimensions or angles, categorize it, and summarize thedimensions or angles, categorize it, and summarize the relationships identified.relationships identified. • Technically, data mining is the process of findingTechnically, data mining is the process of finding correlations or patterns among dozens of fields in largecorrelations or patterns among dozens of fields in large relational databases.relational databases.
  • 8. Data DesignData Design Data WarehousingData Warehousing • Warehouse – storage place, depositoryWarehouse – storage place, depository • It adds another layer to the data architecture on topIt adds another layer to the data architecture on top of databases.of databases. • Data warehouse is a separate data environmentData 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 encompassesIt is a large, independent database that encompasses some, but not all, of the data that are stored in databasessome, 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, timeThey are subjected to orientation, integration, time variancy, non-volatility.variancy, non-volatility.
  • 9. DATA WAREHOUSINGDATA WAREHOUSING • A data warehouse is essentially a set of hardwareA data warehouse is essentially a set of hardware and software components that are used to analyzeand software components that are used to analyze in a more effective manner, the massive amount ofin a more effective manner, the massive amount of data that an organization has accumulated, anddata that an organization has accumulated, and thereby facilitate sound business decisions.thereby facilitate sound business decisions. • Data in a Data Warehouse is extracted fromData 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 usefulData Warehousing is a method of extracting useful information from on-line / off-line databases forinformation 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.
  • 10. Data design at the component levelData design at the component level • Focuses on the representation of data structures that areFocuses on the representation of data structures that are directlydirectly accessed byaccessed by software componentssoftware components.. Principles for data specification and design:Principles for data specification and design: 1.1. Systematic analysis principles applied to function andSystematic 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 onAll 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 defineData 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)
  • 11. Data design at the component levelData design at the component level Principles for data specification and design:Principles for data specification and design: 4.4. Low level design processes should be deferredLow 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 beRepresentations of data structure should be known only to those modules that makes use ofknown only to those modules that makes use of it.(information hiding)it.(information hiding) 6.6. A library of useful data structures and operationsA library of useful data structures and operations should be developed. (class libraries)should be developed. (class libraries) 7.7. A software design and its implementationA software design and its implementation language should support the specification andlanguage should support the specification and realization of abstract data typesrealization of abstract data types
  • 12. Architectural Style and PatternsArchitectural Style and Patterns • Software built for computer-based systems alsoSoftware 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 componentsSet of components 2.2. Set of connections - that enable communication,Set of connections - that enable communication, coordination, and cooperation among componentscoordination, and cooperation among components 3.3. Constraints defining - how components can beConstraints defining - how components can be integrated to form the systemintegrated to form the system 4.4. Semantic models - enable designers to understandSemantic models - enable designers to understand the overall system properties by analyzingthe overall system properties by analyzing properties of its constituent partsproperties of its constituent parts
  • 13. Architectural Style and PatternsArchitectural Style and Patterns• An architectural style is a transformation that is imposed onAn 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 ofThe intent is to establish a structure for all components of the system.the system. • An architectural pattern, imposes a transformation on theAn 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 ofHowever, 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 theScope 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 thePatterns imposes rules on the architecture, describing how the software will handle some aspect of its functionality at thesoftware will handle some aspect of its functionality at the infrastructure levelinfrastructure level • Architectural patterns tend to address specific behavioral issuesArchitectural patterns tend to address specific behavioral issues within the context of the architecture.within the context of the architecture.
  • 14. Architectural StylesArchitectural Styles 1.Data centered:1.Data centered: • A data-store (file or database) resides at the center ofA 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 clientswithout concern about other clients - The client components operate independently.- The client components operate independently.
  • 16. Architectural StylesArchitectural Styles2.Data flow architecture:2.Data flow architecture: Input data is transformed by a series of computational orInput data is transformed by a series of computational or manipulative components into output datamanipulative 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 transmitComponents 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 componentsEach 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 itsIt 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 seriesThis 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.)
  • 17. Data Flow ArchitectureData Flow Architecture
  • 18. Architectural StylesArchitectural Styles 3.Call and return architecture3.Call and return architecture • Enables software designer to achieve a programEnables software designer to achieve a program structure relatively easy to modify and scalestructure relatively easy to modify and scale Sub-stylesSub-styles • Main program / subprogram architectures:Main program / subprogram architectures: • the program structure is decomposed into a controlthe program structure is decomposed into a control hierarchyhierarchy • i.e. a main program invokes a number of programi.e. a main program invokes a number of program components which in turn may invoke still othercomponents which in turn may invoke still other components.components. • Remote procedure call architectures:Remote procedure call architectures: • the components of the main program / subprogram arethe components of the main program / subprogram are distributed across multiple computers on a network.distributed across multiple computers on a network.
  • 19. Call and Return ArchitectureCall and Return Architecture
  • 20. Architectural StylesArchitectural Styles 4.Object oriented architectures4.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 becomeEach accomplishing operations that progressively become closer to the machine instruction setcloser 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 applicationIntermediate layers - provide utility services and application software functions.software functions.
  • 22. Architectural PatternsArchitectural Patterns • Architectural patterns for software defines aArchitectural patterns for software defines a specific approach for handling some behavioralspecific approach for handling some behavioral characteristics of the system.characteristics of the system. • Few architectural pattern domains areFew architectural pattern domains are • ConcurrencyConcurrency • PersistencePersistence • DistributionsDistributions
  • 23. Architectural DesignArchitectural Design • Software to be developed must be put into contextSoftware 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 modelInformation acquired – In analysis model Information gathered – In requirement engineeringInformation gathered – In requirement engineering • Define and refine software components that implementDefine and refine software components that implement architecturearchitecture • Continue process iteratively - until complete architecturalContinue process iteratively - until complete architectural structure has been derived.structure has been derived.
  • 24. Architectural DesignArchitectural Design Representing 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 systemContext diagram - models in which the system interacts with external entitiesinteracts with external entities (Uses ACD – Architectural Context diagram)(Uses ACD – Architectural Context diagram) (Input, Output, User interface, Processing)(Input, Output, User interface, Processing)
  • 25. 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 schemehigher 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 systemor 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 systemby 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 requisite.producing or consuming information that is necessary for requisite. • Interfaces must be defined (relationship)Interfaces must be defined (relationship) • All the data that flow into or out of the target system must beAll the data that flow into or out of the target system must be identifiedidentified
  • 26. Architectural DesignArchitectural Design Target System Subordinate systems Peers Used by Depends onUsedActors Super ordinate system
  • 27. Architectural DesignArchitectural Design Target System Security function Safe home Product Internet based product Surveillance Function SensorsSensors Home owners Control Panel Used by Actors Uses Uses Uses
  • 28. • Defining ArchetypesDefining Archetypes • An archetype is a class or pattern that represents a coreAn archetype is a class or pattern that represents a core abstraction that is critical to the design of an architectureabstraction that is critical to the design of an architecture for the target system.for the target system. • The target system architecture is composed of theseThe target system architecture is composed of these archetypes, which represent stable elements of thearchetypes, which represent stable elements of the architecture but may be instantiated in many differentarchitecture 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 intoDetector – an abstraction that encompasses all information into the target systemthe target system • Indicator – an abstraction that represents all mechanisms forIndicator – an abstraction that represents all mechanisms for indicationindication • Controller – an abstraction that depicts the mechanism thatController – an abstraction that depicts the mechanism that allows the arming & disarming of a node.allows the arming & disarming of a node.
  • 29. Assessing alternative architectural designs • Architectural style depends on - requirements.Architectural style depends on - requirements. • Combine different styles, derive - a new design thatCombine 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 questionsAssess 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.
  • 30. Assessing alternative architectural designs Architecture Trade-off Analysis Method (ATAM)Architecture Trade-off Analysis Method (ATAM) ::  Developed by Software Engineering Institute (SEI)Developed by Software Engineering Institute (SEI)  Iterative processIterative process  Perform required activities in sequencePerform required activities in sequence 1.1. Collect scenariosCollect 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 environmentalElicit requirements, constraints, and environmental descriptiondescription - Information required for requirement engineering- Information required for requirement engineering 3.3. Describe architectural styles/patterns chosen toDescribe 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)
  • 31. Assessing alternative architectural designs 4.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) 4.4. 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 4.4. 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)
  • 32. 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 ofRelationships between producers & consumers of resourcesresources • Constrained dependencies :Constrained dependencies : • The relative flow among a set of componentsThe relative flow among a set of components
  • 33. Assessing alternative architectural designs Architectural Description Language (ADL)Architectural Description Language (ADL) • Provides syntax and semantics for describingProvides syntax and semantics for describing software architecturesoftware architecture • Provides designersProvides 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)
  • 34. 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 elaboratedArchitectural description is refined and elaborated
  • 35. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture The 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 flowTransform flow 2.2. Transaction flowTransaction 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
  • 36. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture Transform Flow:Transform Flow: • InformationInformation entersenters andand exitsexits thethe softwaresoftware in an “externalin 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 forExternalized 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 toprocessed (transformed) and converted into external form to interact with the outside world.interact with the outside world. (Data(Data  enters s/wenters s/w  internal forminternal form  processedprocessed  external)external)
  • 37. 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 incomingIncoming 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 isOutgoing path (path that converts data for sending out is called outgoing flowcalled outgoing flow • Central part:Central part: • does actual processing (transformation) called transformdoes actual processing (transformation) called transform center.center. • Overall flow of data in a sequential mannerOverall flow of data in a sequential manner • Follows one, or only few, “straight line” paths.Follows one, or only few, “straight line” paths.
  • 38. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture Transaction 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 isTriggers data flow along one of many paths i.e. there is branching.branching. • Data moving along an incoming path that converts externalData 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 ofTransaction 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 calledInformation 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 pathsDepending on command there are: three different paths flow will continue.flow will continue.
  • 39. MappingMapping RequirementsRequirements to Software Architectureto Software Architecture • DFD for large systems – transform + transactionDFD for large systems – transform + transaction • Within a transaction flow we have one action path whichWithin 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 interactionEg, Process password action path in the user interaction subsystem shows transform flow characteristics.subsystem shows transform flow characteristics. T Transaction Flow
  • 40. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture Transform mappingTransform mapping • A set of design steps allows DFD with transform flowA set of design steps allows DFD with transform flow characteristics to be mapped into a specific architecturalcharacteristics 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.
  • 41. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture 3.3. Determine whether the DFD has transform orDetermine whether the DFD has transform or transaction flow characteristics:transaction flow characteristics: -- Incoming data: only oneIncoming 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 specifyingIsolate the transform center by specifying incoming and outgoing boundaries:incoming and outgoing boundaries:
  • 42. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture 5.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 threeexecutive 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)
  • 43. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture Monitor sensors executive Alarm Output controller Alarm Conditions controller Sensor input controller Monitor sensors executive Alarm Output controller Alarm Conditions controller Sensor input controller Generate display Generate Pulses Format Display Generate alarm Connection To phone First level factoring For monitor sensors Second level factoring For monitor sensors
  • 44. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture 6.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 factoringfactoring - 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.
  • 45. Mapping Requirements to Software ArchitectureMapping Requirements to Software Architecture 7.7. Refine the first iteration architecture using designRefine 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 controllerSensor input controller and Alarm conditions controller are removed and Format display and generate display areare removed and Format display and generate display are combined to give Produce display.combined to give Produce display.