SlideShare ist ein Scribd-Unternehmen logo
1 von 50
AArrcchhiitteeccttuurree DDeessiiggnn 
Preeti Mishra 
Course Instructor
Definitions 
• The software architecture of a program or computing system is 
the structure or structures of the system which comprise 
– The software components 
– The externally visible properties of those components 
– The relationships among the components 
• Software architectural design represents the structure of the 
data and program components that are required to build a 
computer-based system 
• An architectural design model is transferable 
– It can be applied to the design of other systems 
– It represents a set of abstractions that enable software engineers to 
describe architecture in predictable ways
Why Architecture? 
The architecture is not the operational software. RRaatthheerr,, iitt iiss aa 
rreepprreesseennttaattiioonn tthhaatt eennaabblleess aa ssooffttwwaarree eennggiinneeeerr ttoo:: 
((11)) analyze the effectiveness of the design iinn mmeeeettiinngg iittss ssttaatteedd 
rreeqquuiirreemmeennttss,, 
((22)) consider architectural alternatives aatt aa ssttaaggee wwhheenn mmaakkiinngg 
ddeessiiggnn cchhaannggeess iiss ssttiillll rreellaattiivveellyy eeaassyy,, aanndd 
((33)) reduce the risks aassssoocciiaatteedd wwiitthh tthhee ccoonnssttrruuccttiioonn ooff tthhee 
ssooffttwwaarree..
Why is Architecture Important? 
• Representations of software architecture are an enabler 
for communication between all parties (stakeholders) 
interested in the development of a computer-based system. 
• The architecture highlights early design decisions that will 
have a profound impact on all software engineering work 
that follows and, as important, on the ultimate success of 
the system as an operational entity. 
• Architecture “constitutes a relatively small, intellectually 
graspable mode of how the system is structured and how its 
components work together”
Architectural Descriptions 
• The IEEE Computer Society has proposed IEEE-Std-1471-2000, 
Recommended Practice for Architectural Description of Software- 
Intensive System, [IEE00] 
– to establish a conceptual framework and vocabulary for use during the 
design of software architecture, 
– to provide detailed guidelines for representing an architectural description, 
and 
– to encourage sound architectural design practices. 
• The IEEE Standard defines an architectural description (AD) as a “a 
collection of products to document an architecture.” 
– The description itself is represented using multiple views, where each view 
is “a representation of a whole system from the perspective of a related set 
of [stakeholder] concerns.”
Architectural Design Process 
• Basic Steps 
– Creation of the data design 
– Derivation of one or more representations of the architectural 
structure of the system 
– Analysis of alternative architectural styles to choose the one best 
suited to customer requirements and quality attributes 
– Elaboration of the architecture based on the selected architectural 
style 
• A database designer creates the data architecture for a system 
to represent the data components 
• A system architect selects an appropriate architectural style 
derived during system engineering and software requirements 
analysis
Emphasis on Software 
Components 
• A software architecture enables a software engineer to 
– Analyze the effectiveness of the design in meeting its stated 
requirements 
– Consider architectural alternatives at a stage when making 
design changes is still relatively easy 
– Reduce the risks associated with the construction of the 
software 
• Focus is placed on the software component 
– A program module 
– An object-oriented class 
– A database 
– Middleware
DDaattaa DDeessiiggnn
Purpose of Data Design 
• Data design translates data objects defined as part of the 
analysis model into 
– Data structures at the software component level 
– A possible database architecture at the application level 
• It focuses on the representation of data structures that 
are directly accessed by one or more software components 
• The challenge is to store and retrieve the data in such way 
that useful information can be extracted from the data 
environment 
• "Data quality is the difference between a data warehouse 
and a data garbage dump"
Data Design Principles 
• The systematic analysis principles that are applied to function and 
behavior should also be applied to data 
• All data structures and the operations to be performed on each one 
should be identified 
• A mechanism for defining the content of each data object should be 
established and used to define both data and the operations applied 
to it 
• Low-level data design decisions should be deferred until late in the 
design process 
• The representation of a data structure should be known only to those 
modules that must make direct use of the data contained within the 
structure 
• A library of useful data structures and the operations that may be 
applied to them should be developed 
• A software programming language should support the specification 
and realization of abstract data types
SSooffttwwaarree AArrcchhiitteeccttuurraall 
SSttyylleess
Common Architectural Styles 
13 
of American Homes
Architectural Styles 
Each style describes a system category tthhaatt eennccoommppaasssseess:: 
((11)) aa set of components ((ee..gg..,, aa ddaattaabbaassee,, ccoommppuuttaattiioonnaall mmoodduulleess)) tthhaatt ppeerrffoorrmm aa 
ffuunnccttiioonn rreeqquuiirreedd bbyy aa ssyysstteemm,, 
((22)) aa set of connectors tthhaatt eennaabbllee ““ccoommmmuunniiccaattiioonn,, ccoooorrddiinnaattiioonn aanndd ccooooppeerraattiioonn”” 
aammoonngg ccoommppoonneennttss,, 
((33)) constraints tthhaatt ddeeffiinnee hhooww ccoommppoonneennttss ccaann bbee iinntteeggrraatteedd ttoo ffoorrmm tthhee ssyysstteemm,, 
((44)) semantic models tthhaatt eennaabbllee aa ddeessiiggnneerr ttoo uunnddeerrssttaanndd tthhee oovveerraallll pprrooppeerrttiieess ooff 
aa ssyysstteemm bbyy aannaallyyzziinngg tthhee kknnoowwnn pprrooppeerrttiieess ooff iittss ccoonnssttiittuueenntt ppaarrttss.. 
• Data-centered architectures 
• Data flow architectures 
• Call and return architectures 
• Object-oriented architectures 
• Layered architectures
Software Architectural 
Style 
• The software that is built for computer-based systems 
exhibit one of many architectural styles 
• Each style describes a system category that encompasses 
– A set of component types that perform a function required by 
the system 
– A set of connectors (subroutine call, remote procedure call, 
data stream, socket) that enable communication, coordination, 
and cooperation among components 
– Semantic constraints that define how components can be 
integrated to form the system 
– A topological layout of the components indicating their runtime 
interrelationships
A Taxonomy of Architectural 
16 
Styles Independent Components 
Communicating 
Processes 
Event Systems 
Client/Server Peer-to-Peer Implicit 
Invocation 
Explicit 
Invocation 
Data Flow 
Batch Sequential Pipe and 
Filter 
Virtual Machine 
Interpreter Rule-Based 
System 
Data-Centered 
Repository Blackboard 
Call and Return 
Main Program 
and Subroutine 
Object 
Layered Oriented 
Remote Procedure Call
Data-Centered Architecture
Data Flow Style 
Validate Sort Update Report
Data Flow Style 
• Has the goal of modifiability 
• Characterized by viewing the system as a series of transformations on 
successive pieces of input data 
• Data enters the system and then flows through the components one at 
a time until they are assigned to output or a data store 
• Batch sequential style 
– The processing steps are independent components 
– Each step runs to completion before the next step begins 
• Pipe-and-filter style 
– Emphasizes the incremental transformation of data by successive 
components 
– The filters incrementally transform the data (entering and exiting via 
streams) 
– The filters use little contextual information and retain no state between 
instantiations 
– The pipes are stateless and simply exist to move data between filters
Data Flow Style (continued) 
• Advantages 
– Has a simplistic design in the limited ways in which the 
components interact with the environment 
– Consists of no more and no less than the construction of its parts 
– Simplifies reuse and maintenance 
– Is easily made into a parallel or distributed execution in order to 
enhance system performance 
• Disadvantages 
– Implicitly encourages a batch mentality so interactive applications 
are difficult to create in this style 
– Ordering of filters can be difficult to maintain so the filters 
cannot cooperatively interact to solve a problem 
– Exhibits poor performance 
• Filters typically force the least common denominator of data 
representation (usually ASCII stream) 
• Filter may need unlimited buffers if they cannot start producing 
output until they receive all of the input 
• Each filter operates as a separate process or procedure call, thus 
incurring overhead in set-up and take-down time
Data Flow Style (continued) 
• Use this style when it makes sense to view your system as one 
that produces a well-defined easily identified output 
– The output should be a direct result of sequentially transforming 
a well-defined easily identified input in a time-independent 
fashion
Data Flow Architecture
Call-and-Return Style 
• Has the goal of modifiability and scalability 
• Has been the dominant architecture since the start of software 
development 
• Main program and subroutine style 
– Decomposes a program hierarchically into small pieces (i.e., modules) 
– Typically has a single thread of control that travels through various 
components in the hierarchy 
• Remote procedure call style 
– Consists of main program and subroutine style of system that is 
decomposed into parts that are resident on computers connected via 
a network 
– Strives to increase performance by distributing the computations 
and taking advantage of multiple processors 
– Incurs a finite communication time between subroutine call and 
response
Call-and-Return Style (continued) 
• Object-oriented or abstract data type system 
– Emphasizes the bundling of data and how to manipulate and access data 
– Keeps the internal data representation hidden and allows access to the 
object only through provided operations 
– Permits inheritance and polymorphism 
• Layered system 
– Assigns components to layers in order to control inter-component 
interaction 
– Only allows a layer to communicate with its immediate neighbor 
– Assigns core functionality such as hardware interfacing or system kernel 
operations to the lowest layer 
– Builds each successive layer on its predecessor, hiding the lower layer 
and providing services for the upper layer 
– Is compromised by layer bridging that skips one or more layers to 
improve runtime performance 
• Use this style when the order of computation is fixed, when 
interfaces are specific, and when components can make no useful 
progress while awaiting the results of request to other components
25 
Call-and-Return Style 
Main module 
Subroutine A Subroutine B 
Subroutine A-1 Subroutine A-2 
Application layer Class V Class W 
Transport layer 
Network layer 
Data layer 
Physical layer 
Class X 
Class Z 
Class Y
Call and Return 
Architecture
Layered 
Architecture
Architectural Patterns 
• Concurrency—applications must handle multiple tasks in a manner that simulates 
parallelism 
– operating system process management pattern 
– task scheduler pattern 
• Persistence—Data persists if it survives past the execution of the process that 
created it. Two patterns are common: 
– a database management system pattern that applies the storage and retrieval 
capability of a DBMS to the application architecture 
– an application level persistence pattern that builds persistence features into the 
application architecture 
• Distribution— the manner in which systems or components within systems 
communicate with one another in a distributed environment 
– A broker acts as a ‘middle-man’ between the client component and a server component.
Architectural Design 
• The software must be placed into context 
– the design should define the external entities (other systems, 
devices, people) that the software interacts with and the nature of 
the interaction 
• A set of architectural archetypes should be identified 
– An archetype is an abstraction (similar to a class) that represents 
one element of system behavior 
• The designer specifies the structure of the system by 
defining and refining software components that implement 
each archetype
Architectural Context 
Safehome 
Product 
Internet-based 
target system: 
Security Function 
uses 
system 
surveillance 
function 
homeowner uses peers 
sensors 
control 
panel 
uses 
sensors
Archetypes 
Controller 
Node 
communicates with 
Detector Indicator 
Figure 10.7 UML relationships for SafeHome security function archetypes 
(adapted from [BOS00])
Component 
Structure 
SafeHome 
Execut ive 
Ext ernal 
Communicat ion 
Management 
GUI Int ernet 
Int erface 
Funct ion 
select ion 
Securit y Surveillance Home 
management 
Cont rol 
panel 
processing 
det ect or 
management 
alarm 
processing
Refined Component 
Structure 
sensor 
sseennssoor sensor 
r 
sseennssoor sseennssoor r r Ext ernal 
Communicat ion 
Management 
GUI Internet 
Interface 
Security 
Cont rol 
panel 
processing 
det ect or 
management 
alarm 
processing 
Key pad 
processing 
CP display 
funct ions 
scheduler 
sseennssoor r sseennssoor r 
phone 
communicat ion 
alarm 
SafeHome 
Executive
Analyzing Architectural Design 
11.. CCoolllleecctt sscceennaarriiooss.. 
22.. EElliicciitt rreeqquuiirreemmeennttss,, ccoonnssttrraaiinnttss,, aanndd eennvviirroonnmmeenntt ddeessccrriippttiioonn.. 
3.. DDeessccrriibbee tthhee aarrcchhiitteeccttuurraall ssttyylleess//ppaatttteerrnnss tthhaatt hhaavvee bbeeeenn cchhoosseenn 
ttoo aaddddrreessss tthhee sscceennaarriiooss aanndd rreeqquuiirreemmeennttss:: 
•• mmoodduullee vviieeww 
•• pprroocceessss vviieeww 
•• ddaattaa ffllooww vviieeww 
44.. EEvvaalluuaattee qquuaalliittyy aattttrriibbuutteess bbyy ccoonnssiiddeerreedd eeaacchh aattttrriibbuuttee iinn 
iissoollaattiioonn.. 
55.. IIddeennttiiffyy tthhee sseennssiittiivviittyy ooff qquuaalliittyy aattttrriibbuutteess ttoo vvaarriioouuss 
aarrcchhiitteeccttuurraall aattttrriibbuutteess ffoorr aa ssppeecciiffiicc aarrcchhiitteeccttuurraall ssttyyllee.. 
66.. CCrriittiiqquuee ccaannddiiddaattee aarrcchhiitteeccttuurreess ((ddeevveellooppeedd iinn sstteepp 3)) uussiinngg tthhee 
sseennssiittiivviittyy aannaallyyssiiss ccoonndduucctteedd iinn sstteepp 55..
Architectural Complexity 
• the overall complexity of a proposed architecture is 
assessed by considering the dependencies between 
components within the architecture [Zha98] 
– Sharing dependencies represent dependence relationships among 
consumers who use the same resource or producers who produce for 
the same consumers. 
– Flow dependencies represent dependence relationships between 
producers and consumers of resources. 
– Constrained dependencies represent constraints on the relative flow 
of control among a set of activities.
ADL 
• Architectural description language (ADL) provides 
a semantics and syntax for describing a software 
architecture 
• Provide the designer with the ability to: 
– decompose architectural components 
– compose individual components into larger architectural 
blocks and 
– represent interfaces (connection mechanisms) between 
components.
An Architectural Design 
Method 
customer requirements 
"four bedrooms, three baths, 
lots of glass ..." 
architectural design
Deriving Program 
Architecture 
PPrrooggrraamm 
AArrcchhiitteeccttuurree
Partitioning the Architecture 
• “horizontal” and “vertical” 
partitioning are required
Horizontal Partitioning 
• define separate branches of the module 
hierarchy for each major function 
• use control modules to coordinate 
communication between functions 
ffuunnccttiioonn 11 ffuunnccttiioonn 33 
ffuunnccttiioonn 22
Vertical Partitioning: Factoring 
• design so that decision making and work 
are stratified 
• decision making modules should reside 
at the top of the architecture 
decision-makers 
workers
Why Partitioned Architecture? 
• results in software that is easier to test 
• leads to software that is easier to maintain 
• results in propagation of fewer side effects 
• results in software that is easier to extend
Structured Design 
• objective: to derive a program architecture that is 
partitioned 
• approach: 
– a DFD is mapped into a program architecture 
– the PSPEC and STD are used to indicate the content of 
each module 
• notation: structure chart
Flow 
Characteristics 
Transform flow 
Transaction 
flow 
This edition of 
SEPA does not 
cover transaction 
mapping. For a 
detailed 
discussion see the 
SEPA website
General Mapping 
Approach 
isolate incoming aanndd oouuttggooiinngg ffllooww 
bboouunnddaarriieess;; ffoorr ttrraannssaaccttiioonn fflloowwss,, iissoollaattee 
tthhee ttrraannssaaccttiioonn cceenntteerr 
wwoorrkkiinngg ffrroomm tthhee bboouunnddaarryy oouuttwwaarrdd,, mmaapp 
DDFFDD ttrraannssffoorrmmss iinnttoo ccoorrrreessppoonnddiinngg mmoodduulleess 
aadddd ccoonnttrrooll mmoodduulleess aass rreeqquuiirreedd 
rreeffiinnee tthhee rreessuullttaanntt pprrooggrraamm ssttrruuccttuurree 
uussiinngg eeffffeeccttiivvee mmoodduullaarriittyy ccoonncceeppttss
General Mapping Approach 
• Isolate the transform center by specifying incoming and 
outgoing flow boundaries 
• Perform "first-level factoring.” 
– The program architecture derived using this mapping results in a 
top-down distribution of control. 
– Factoring leads to a program structure in which top-level 
components perform decision-making and low-level components 
perform most input, computation, and output work. 
– Middle-level components perform some control and do moderate 
amounts of work. 
• Perform "second-level factoring."
Transform 
Mapping 
data flow model 
"Transform" mapping 
a 
b 
c 
d e f 
g h 
i 
j 
x1 
x2 x3 x4 
b c 
a 
d e f g i 
h j
Factori 
ng 
typical "decision 
making" modules 
typical "worker" modules 
direction of increasing 
decision making
First Level 
Factoring main 
program 
controller 
input 
controller 
processing 
controller 
output 
controller
Second Level 
Mapping 
D 
C 
B A 
A 
C 
B 
mapping from the D 
flow boundary outward 
main 
control

Weitere ähnliche Inhalte

Was ist angesagt?

Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineeringkirupasuchi1996
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)kunj desai
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Context model
Context modelContext model
Context modelUbaid423
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns pptAman Jain
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdfbcanawakadalcollege
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 

Was ist angesagt? (20)

Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Rad model
Rad modelRad model
Rad model
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Context model
Context modelContext model
Context model
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Software process
Software processSoftware process
Software process
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
Unit 2
Unit 2Unit 2
Unit 2
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 

Andere mochten auch

Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTvicci4041
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design op205
 
User Interface Design
User Interface DesignUser Interface Design
User Interface DesignJReifman
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15koolkampus
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principlesDavid Little
 
Software testing basic concepts
Software testing basic conceptsSoftware testing basic concepts
Software testing basic conceptsHưng Hoàng
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing BasicsBelal Raslan
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and typesConfiz
 

Andere mochten auch (17)

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
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
USER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPTUSER INTERFACE DESIGN PPT
USER INTERFACE DESIGN PPT
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design
 
User Interface Design
User Interface DesignUser Interface Design
User Interface Design
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principles
 
5 Type Of Architecture Design Process
5 Type Of Architecture Design Process 5 Type Of Architecture Design Process
5 Type Of Architecture Design Process
 
Software testing basic concepts
Software testing basic conceptsSoftware testing basic concepts
Software testing basic concepts
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Ch6 architectural design
Ch6 architectural designCh6 architectural design
Ch6 architectural design
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 

Ähnlich wie Architecture design in software engineering

architectural design
 architectural design architectural design
architectural designPreeti Mishra
 
Se ii unit3-architectural-design
Se ii unit3-architectural-designSe ii unit3-architectural-design
Se ii unit3-architectural-designAhmad sohail Kakar
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssadPreeti Mishra
 
Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptMotherTheresa2
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Architectural design1
Architectural design1Architectural design1
Architectural design1Zahid Hussain
 
Architectural design1
Architectural design1Architectural design1
Architectural design1Zahid Hussain
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptBule Hora University
 
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 design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 

Ähnlich wie Architecture design in software engineering (20)

architectural design
 architectural design architectural design
architectural design
 
Se ii unit3-architectural-design
Se ii unit3-architectural-designSe ii unit3-architectural-design
Se ii unit3-architectural-design
 
Architec design introduction
Architec design introductionArchitec design introduction
Architec design introduction
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.ppt
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Architectural design1
Architectural design1Architectural design1
Architectural design1
 
Architectural design1
Architectural design1Architectural design1
Architectural design1
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
 
Software Design - SDLC Model
Software Design - SDLC ModelSoftware Design - SDLC Model
Software Design - SDLC Model
 
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
 
Architectural design
Architectural designArchitectural design
Architectural design
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 

Mehr von Preeti Mishra

Effective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsEffective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsPreeti Mishra
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matricesPreeti Mishra
 
Oo concepts and class modeling
Oo concepts and class modelingOo concepts and class modeling
Oo concepts and class modelingPreeti Mishra
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface designPreeti Mishra
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tacticsPreeti Mishra
 
requirements analysis and design
requirements analysis and designrequirements analysis and design
requirements analysis and designPreeti Mishra
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basicsPreeti Mishra
 
Design process design rules
Design process  design rulesDesign process  design rules
Design process design rulesPreeti Mishra
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designsPreeti Mishra
 
Foundations understanding users and interactions
Foundations  understanding users and interactionsFoundations  understanding users and interactions
Foundations understanding users and interactionsPreeti Mishra
 
Coupling coheshion tps
Coupling coheshion tpsCoupling coheshion tps
Coupling coheshion tpsPreeti Mishra
 

Mehr von Preeti Mishra (20)

Effective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labsEffective Ways to Conduct Programming labs
Effective Ways to Conduct Programming labs
 
Uml intro
Uml introUml intro
Uml intro
 
Component diagram
Component diagramComponent diagram
Component diagram
 
Activity diag
Activity diagActivity diag
Activity diag
 
Object diagram
Object diagramObject diagram
Object diagram
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Use case Diagram
Use case DiagramUse case Diagram
Use case Diagram
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
 
Oo concepts and class modeling
Oo concepts and class modelingOo concepts and class modeling
Oo concepts and class modeling
 
Unit 7 performing user interface design
Unit 7 performing user interface designUnit 7 performing user interface design
Unit 7 performing user interface design
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
requirements analysis and design
requirements analysis and designrequirements analysis and design
requirements analysis and design
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
 
Design process design rules
Design process  design rulesDesign process  design rules
Design process design rules
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designs
 
Foundations understanding users and interactions
Foundations  understanding users and interactionsFoundations  understanding users and interactions
Foundations understanding users and interactions
 
IntrIntroduction
IntrIntroductionIntrIntroduction
IntrIntroduction
 
Coupling coheshion tps
Coupling coheshion tpsCoupling coheshion tps
Coupling coheshion tps
 
Analysis
AnalysisAnalysis
Analysis
 

Kürzlich hochgeladen

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 

Kürzlich hochgeladen (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 

Architecture design in software engineering

  • 2. Definitions • The software architecture of a program or computing system is the structure or structures of the system which comprise – The software components – The externally visible properties of those components – The relationships among the components • Software architectural design represents the structure of the data and program components that are required to build a computer-based system • An architectural design model is transferable – It can be applied to the design of other systems – It represents a set of abstractions that enable software engineers to describe architecture in predictable ways
  • 3. Why Architecture? The architecture is not the operational software. RRaatthheerr,, iitt iiss aa rreepprreesseennttaattiioonn tthhaatt eennaabblleess aa ssooffttwwaarree eennggiinneeeerr ttoo:: ((11)) analyze the effectiveness of the design iinn mmeeeettiinngg iittss ssttaatteedd rreeqquuiirreemmeennttss,, ((22)) consider architectural alternatives aatt aa ssttaaggee wwhheenn mmaakkiinngg ddeessiiggnn cchhaannggeess iiss ssttiillll rreellaattiivveellyy eeaassyy,, aanndd ((33)) reduce the risks aassssoocciiaatteedd wwiitthh tthhee ccoonnssttrruuccttiioonn ooff tthhee ssooffttwwaarree..
  • 4.
  • 5. Why is Architecture Important? • Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. • The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. • Architecture “constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together”
  • 6. Architectural Descriptions • The IEEE Computer Society has proposed IEEE-Std-1471-2000, Recommended Practice for Architectural Description of Software- Intensive System, [IEE00] – to establish a conceptual framework and vocabulary for use during the design of software architecture, – to provide detailed guidelines for representing an architectural description, and – to encourage sound architectural design practices. • The IEEE Standard defines an architectural description (AD) as a “a collection of products to document an architecture.” – The description itself is represented using multiple views, where each view is “a representation of a whole system from the perspective of a related set of [stakeholder] concerns.”
  • 7. Architectural Design Process • Basic Steps – Creation of the data design – Derivation of one or more representations of the architectural structure of the system – Analysis of alternative architectural styles to choose the one best suited to customer requirements and quality attributes – Elaboration of the architecture based on the selected architectural style • A database designer creates the data architecture for a system to represent the data components • A system architect selects an appropriate architectural style derived during system engineering and software requirements analysis
  • 8. Emphasis on Software Components • A software architecture enables a software engineer to – Analyze the effectiveness of the design in meeting its stated requirements – Consider architectural alternatives at a stage when making design changes is still relatively easy – Reduce the risks associated with the construction of the software • Focus is placed on the software component – A program module – An object-oriented class – A database – Middleware
  • 10. Purpose of Data Design • Data design translates data objects defined as part of the analysis model into – Data structures at the software component level – A possible database architecture at the application level • It focuses on the representation of data structures that are directly accessed by one or more software components • The challenge is to store and retrieve the data in such way that useful information can be extracted from the data environment • "Data quality is the difference between a data warehouse and a data garbage dump"
  • 11. Data Design Principles • The systematic analysis principles that are applied to function and behavior should also be applied to data • All data structures and the operations to be performed on each one should be identified • A mechanism for defining the content of each data object should be established and used to define both data and the operations applied to it • Low-level data design decisions should be deferred until late in the design process • The representation of a data structure should be known only to those modules that must make direct use of the data contained within the structure • A library of useful data structures and the operations that may be applied to them should be developed • A software programming language should support the specification and realization of abstract data types
  • 13. Common Architectural Styles 13 of American Homes
  • 14. Architectural Styles Each style describes a system category tthhaatt eennccoommppaasssseess:: ((11)) aa set of components ((ee..gg..,, aa ddaattaabbaassee,, ccoommppuuttaattiioonnaall mmoodduulleess)) tthhaatt ppeerrffoorrmm aa ffuunnccttiioonn rreeqquuiirreedd bbyy aa ssyysstteemm,, ((22)) aa set of connectors tthhaatt eennaabbllee ““ccoommmmuunniiccaattiioonn,, ccoooorrddiinnaattiioonn aanndd ccooooppeerraattiioonn”” aammoonngg ccoommppoonneennttss,, ((33)) constraints tthhaatt ddeeffiinnee hhooww ccoommppoonneennttss ccaann bbee iinntteeggrraatteedd ttoo ffoorrmm tthhee ssyysstteemm,, ((44)) semantic models tthhaatt eennaabbllee aa ddeessiiggnneerr ttoo uunnddeerrssttaanndd tthhee oovveerraallll pprrooppeerrttiieess ooff aa ssyysstteemm bbyy aannaallyyzziinngg tthhee kknnoowwnn pprrooppeerrttiieess ooff iittss ccoonnssttiittuueenntt ppaarrttss.. • Data-centered architectures • Data flow architectures • Call and return architectures • Object-oriented architectures • Layered architectures
  • 15. Software Architectural Style • The software that is built for computer-based systems exhibit one of many architectural styles • Each style describes a system category that encompasses – A set of component types that perform a function required by the system – A set of connectors (subroutine call, remote procedure call, data stream, socket) that enable communication, coordination, and cooperation among components – Semantic constraints that define how components can be integrated to form the system – A topological layout of the components indicating their runtime interrelationships
  • 16. A Taxonomy of Architectural 16 Styles Independent Components Communicating Processes Event Systems Client/Server Peer-to-Peer Implicit Invocation Explicit Invocation Data Flow Batch Sequential Pipe and Filter Virtual Machine Interpreter Rule-Based System Data-Centered Repository Blackboard Call and Return Main Program and Subroutine Object Layered Oriented Remote Procedure Call
  • 18. Data Flow Style Validate Sort Update Report
  • 19. Data Flow Style • Has the goal of modifiability • Characterized by viewing the system as a series of transformations on successive pieces of input data • Data enters the system and then flows through the components one at a time until they are assigned to output or a data store • Batch sequential style – The processing steps are independent components – Each step runs to completion before the next step begins • Pipe-and-filter style – Emphasizes the incremental transformation of data by successive components – The filters incrementally transform the data (entering and exiting via streams) – The filters use little contextual information and retain no state between instantiations – The pipes are stateless and simply exist to move data between filters
  • 20. Data Flow Style (continued) • Advantages – Has a simplistic design in the limited ways in which the components interact with the environment – Consists of no more and no less than the construction of its parts – Simplifies reuse and maintenance – Is easily made into a parallel or distributed execution in order to enhance system performance • Disadvantages – Implicitly encourages a batch mentality so interactive applications are difficult to create in this style – Ordering of filters can be difficult to maintain so the filters cannot cooperatively interact to solve a problem – Exhibits poor performance • Filters typically force the least common denominator of data representation (usually ASCII stream) • Filter may need unlimited buffers if they cannot start producing output until they receive all of the input • Each filter operates as a separate process or procedure call, thus incurring overhead in set-up and take-down time
  • 21. Data Flow Style (continued) • Use this style when it makes sense to view your system as one that produces a well-defined easily identified output – The output should be a direct result of sequentially transforming a well-defined easily identified input in a time-independent fashion
  • 23. Call-and-Return Style • Has the goal of modifiability and scalability • Has been the dominant architecture since the start of software development • Main program and subroutine style – Decomposes a program hierarchically into small pieces (i.e., modules) – Typically has a single thread of control that travels through various components in the hierarchy • Remote procedure call style – Consists of main program and subroutine style of system that is decomposed into parts that are resident on computers connected via a network – Strives to increase performance by distributing the computations and taking advantage of multiple processors – Incurs a finite communication time between subroutine call and response
  • 24. Call-and-Return Style (continued) • Object-oriented or abstract data type system – Emphasizes the bundling of data and how to manipulate and access data – Keeps the internal data representation hidden and allows access to the object only through provided operations – Permits inheritance and polymorphism • Layered system – Assigns components to layers in order to control inter-component interaction – Only allows a layer to communicate with its immediate neighbor – Assigns core functionality such as hardware interfacing or system kernel operations to the lowest layer – Builds each successive layer on its predecessor, hiding the lower layer and providing services for the upper layer – Is compromised by layer bridging that skips one or more layers to improve runtime performance • Use this style when the order of computation is fixed, when interfaces are specific, and when components can make no useful progress while awaiting the results of request to other components
  • 25. 25 Call-and-Return Style Main module Subroutine A Subroutine B Subroutine A-1 Subroutine A-2 Application layer Class V Class W Transport layer Network layer Data layer Physical layer Class X Class Z Class Y
  • 26. Call and Return Architecture
  • 28. Architectural Patterns • Concurrency—applications must handle multiple tasks in a manner that simulates parallelism – operating system process management pattern – task scheduler pattern • Persistence—Data persists if it survives past the execution of the process that created it. Two patterns are common: – a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture – an application level persistence pattern that builds persistence features into the application architecture • Distribution— the manner in which systems or components within systems communicate with one another in a distributed environment – A broker acts as a ‘middle-man’ between the client component and a server component.
  • 29. Architectural Design • The software must be placed into context – the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction • A set of architectural archetypes should be identified – An archetype is an abstraction (similar to a class) that represents one element of system behavior • The designer specifies the structure of the system by defining and refining software components that implement each archetype
  • 30. Architectural Context Safehome Product Internet-based target system: Security Function uses system surveillance function homeowner uses peers sensors control panel uses sensors
  • 31. Archetypes Controller Node communicates with Detector Indicator Figure 10.7 UML relationships for SafeHome security function archetypes (adapted from [BOS00])
  • 32. Component Structure SafeHome Execut ive Ext ernal Communicat ion Management GUI Int ernet Int erface Funct ion select ion Securit y Surveillance Home management Cont rol panel processing det ect or management alarm processing
  • 33. Refined Component Structure sensor sseennssoor sensor r sseennssoor sseennssoor r r Ext ernal Communicat ion Management GUI Internet Interface Security Cont rol panel processing det ect or management alarm processing Key pad processing CP display funct ions scheduler sseennssoor r sseennssoor r phone communicat ion alarm SafeHome Executive
  • 34. Analyzing Architectural Design 11.. CCoolllleecctt sscceennaarriiooss.. 22.. EElliicciitt rreeqquuiirreemmeennttss,, ccoonnssttrraaiinnttss,, aanndd eennvviirroonnmmeenntt ddeessccrriippttiioonn.. 3.. DDeessccrriibbee tthhee aarrcchhiitteeccttuurraall ssttyylleess//ppaatttteerrnnss tthhaatt hhaavvee bbeeeenn cchhoosseenn ttoo aaddddrreessss tthhee sscceennaarriiooss aanndd rreeqquuiirreemmeennttss:: •• mmoodduullee vviieeww •• pprroocceessss vviieeww •• ddaattaa ffllooww vviieeww 44.. EEvvaalluuaattee qquuaalliittyy aattttrriibbuutteess bbyy ccoonnssiiddeerreedd eeaacchh aattttrriibbuuttee iinn iissoollaattiioonn.. 55.. IIddeennttiiffyy tthhee sseennssiittiivviittyy ooff qquuaalliittyy aattttrriibbuutteess ttoo vvaarriioouuss aarrcchhiitteeccttuurraall aattttrriibbuutteess ffoorr aa ssppeecciiffiicc aarrcchhiitteeccttuurraall ssttyyllee.. 66.. CCrriittiiqquuee ccaannddiiddaattee aarrcchhiitteeccttuurreess ((ddeevveellooppeedd iinn sstteepp 3)) uussiinngg tthhee sseennssiittiivviittyy aannaallyyssiiss ccoonndduucctteedd iinn sstteepp 55..
  • 35. Architectural Complexity • the overall complexity of a proposed architecture is assessed by considering the dependencies between components within the architecture [Zha98] – Sharing dependencies represent dependence relationships among consumers who use the same resource or producers who produce for the same consumers. – Flow dependencies represent dependence relationships between producers and consumers of resources. – Constrained dependencies represent constraints on the relative flow of control among a set of activities.
  • 36. ADL • Architectural description language (ADL) provides a semantics and syntax for describing a software architecture • Provide the designer with the ability to: – decompose architectural components – compose individual components into larger architectural blocks and – represent interfaces (connection mechanisms) between components.
  • 37. An Architectural Design Method customer requirements "four bedrooms, three baths, lots of glass ..." architectural design
  • 38. Deriving Program Architecture PPrrooggrraamm AArrcchhiitteeccttuurree
  • 39. Partitioning the Architecture • “horizontal” and “vertical” partitioning are required
  • 40. Horizontal Partitioning • define separate branches of the module hierarchy for each major function • use control modules to coordinate communication between functions ffuunnccttiioonn 11 ffuunnccttiioonn 33 ffuunnccttiioonn 22
  • 41. Vertical Partitioning: Factoring • design so that decision making and work are stratified • decision making modules should reside at the top of the architecture decision-makers workers
  • 42. Why Partitioned Architecture? • results in software that is easier to test • leads to software that is easier to maintain • results in propagation of fewer side effects • results in software that is easier to extend
  • 43. Structured Design • objective: to derive a program architecture that is partitioned • approach: – a DFD is mapped into a program architecture – the PSPEC and STD are used to indicate the content of each module • notation: structure chart
  • 44. Flow Characteristics Transform flow Transaction flow This edition of SEPA does not cover transaction mapping. For a detailed discussion see the SEPA website
  • 45. General Mapping Approach isolate incoming aanndd oouuttggooiinngg ffllooww bboouunnddaarriieess;; ffoorr ttrraannssaaccttiioonn fflloowwss,, iissoollaattee tthhee ttrraannssaaccttiioonn cceenntteerr wwoorrkkiinngg ffrroomm tthhee bboouunnddaarryy oouuttwwaarrdd,, mmaapp DDFFDD ttrraannssffoorrmmss iinnttoo ccoorrrreessppoonnddiinngg mmoodduulleess aadddd ccoonnttrrooll mmoodduulleess aass rreeqquuiirreedd rreeffiinnee tthhee rreessuullttaanntt pprrooggrraamm ssttrruuccttuurree uussiinngg eeffffeeccttiivvee mmoodduullaarriittyy ccoonncceeppttss
  • 46. General Mapping Approach • Isolate the transform center by specifying incoming and outgoing flow boundaries • Perform "first-level factoring.” – The program architecture derived using this mapping results in a top-down distribution of control. – Factoring leads to a program structure in which top-level components perform decision-making and low-level components perform most input, computation, and output work. – Middle-level components perform some control and do moderate amounts of work. • Perform "second-level factoring."
  • 47. Transform Mapping data flow model "Transform" mapping a b c d e f g h i j x1 x2 x3 x4 b c a d e f g i h j
  • 48. Factori ng typical "decision making" modules typical "worker" modules direction of increasing decision making
  • 49. First Level Factoring main program controller input controller processing controller output controller
  • 50. Second Level Mapping D C B A A C B mapping from the D flow boundary outward main control