SlideShare a Scribd company logo
1 of 55
Software Architecture 1
Software Architecture
Software Architecture 2
Background
īŽ Any complex system is composed of
sub-systems that interact
īŽ While designing systems, an approach
is to identify sub-systems and how they
interact with each other
īŽ Sw Arch tries to do this for software
īŽ A recent area, but a lot of interest in it
Software Architecture 3
Backgroundâ€Ļ
īŽ Architecture is the system design at the
highest level
īŽ Choices about technologies, products to use,
servers, etc are made at arch level
īŽ Not possible to design system details and then
accommodate these choices
īŽ Arch must be created accommodating them
īŽ Is the earliest place when properties like
rel/perf can be evaluated
Software Architecture 4
Architecture
īŽ Arch is a design of the sw that gives a very
high level view of parts and they relate to
form the whole
īŽ Partitions the sys in parts such that each part can
be comprehended independently
īŽ And describes relationship between parts
īŽ A complex system can be partitioned in many
diff ways, each providing a useful view
īŽ Same holds true of software also
īŽ There is no unique structure; many possible
Software Architecture 5
Architecture
īŽ Defn: Software arch is the structure or
structures which comprise elements, their
externally visible properties, and relationships
among them
īŽ For elements only interested in external properties
needed for relationship specification
īŽ Details on how the properties are supported is not
important for arch
īŽ The defn does not say anything about whether an
arch is good or not – analysis needed for it
īŽ An arch description describes the different
structures of the system
Software Architecture 6
Key Uses of Arch Descriptions
īŽ Understanding and communication
īŽ By showing a system at a high level and
hiding complexity of parts, arch descr
facilitates communication
īŽ To get a common understanding between
the diff stakeholders (users, clients,
architect, designer,â€Ļ)
īŽ For negotiation and agreement
īŽ Arch descr can also aid in understanding of
existing systems
Software Architecture 7
Usesâ€Ļ
īŽ Reuse
īŽ A method of reuse is to compose systems from
parts and reuse existing parts
īŽ This model is facilitated by reusing components at
a high level providing complete services
īŽ To reuse existing components, arch must be
chosen such that these components fit together
with other components
īŽ Hence, decision about using existing components
is made at arch design time
Software Architecture 8
Uses..
īŽ Construction and evolution
īŽ Some structures in arch descr will be used to
guide system development
īŽ Partitioning at arch level can also be used for work
allocation to teams as parts are relatively
independent
īŽ During sw evolution, arch helps decide what
needs to be changed to incorporate the new
changes/features
īŽ Arch can help decide what is the impact of
changes to existing components on others
Software Architecture 9
Usesâ€Ļ
īŽ Analysis
īŽ If properties like perf, reliability can be determined
from design, alternatives can be considered during
design to reach the desired perf levels
īŽ Sw arch opens such possibilities for software
(other engg disciplines usually can do this)
īŽ E.g. rel and perf of a system can be predicted
from its arch, if estimates for parms like load etc is
provided
īŽ Will require precise description of arch, as well as
properties of the elements in the description
Software Architecture 10
Architectural Views
īŽ There is no unique arch of a sys
īŽ There are different views of a sw sys
īŽ A view consists of elements and relationships
between them, and describes a structure
īŽ The elements of a view depends on what the
view wants to highlight
īŽ Diff views expose diff properties
īŽ A view focusing on some aspects reduces its
complexity
Software Architecture 11
Viewsâ€Ļ
īŽ Many types of views have been proposed
īŽ Most belong to one of these three types
īŽ Module
īŽ Component and Connector
īŽ Allocation
īŽ The diff views are not unrelated – they all
represent the same system
īŽ There are relationships between elements of diff
views; this rel may be complex
Software Architecture 12
Viewsâ€Ļ
īŽ Module view
īŽ A sys is a collection of code units i.e. they
do not represent runtime entitites
īŽ I.e. elements are modules, eg. Class,
package, function, procedure,â€Ļ
īŽ Relationship between them is code based,
e.g. part of, depends on, calls,
generalization-specialization,..
Software Architecture 13
Viewsâ€Ļ
īŽ Component and Connector (C&C)
īŽ Elements are run time entities called
components
īŽ I.e. a component is a unit that has identity
in executing sys, e.g. objects,
processes, .exe, .dll
īŽ Connectors provide means of interaction
between components, e.g. pipes, shared
memory, sockets
Software Architecture 14
Viewsâ€Ļ
īŽ Allocation view
īŽ Focuses on how sw units are allocated to
resources like hw, file system, people
īŽ I.e. specifies relationship between sw
elements and execution units in the env
īŽ Expose structural properties like which
process runs on which processor, which
file resides where, â€Ļ
Software Architecture 15
Viewsâ€Ļ
īŽ An arch description consists of views of diff
types, each showing a diff structure
īŽ Diff sys need diff types of views depending on the
needs
īŽ E.g. for perf analysis, allocation view is necessary;
for planning, module view helps
īŽ The C&C view is almost always done, and
has become the primary view
īŽ We focus primarily on the C&C view
īŽ Module view is covered in high level design,
whose focus is on identifying modules
Software Architecture 16
Component and Connector View
īŽ Two main elements – components and connectors
īŽ Components: Computational elements or data stores
īŽ Connectors: Means of interaction between comps
īŽ A C&C view defines the comps, and which comps are
connected through which connector
īŽ The C&C view describes a runtime structure of the
system – what comps exist at runtime and how they
interact during execution
īŽ Is a graph; often shown as a box-and-line drawing
īŽ Most commonly used structure
Software Architecture 17
Components
īŽ Units of computations or data stores
īŽ Has a name, which represents its role, and
provides it identity
īŽ A comp may have a type; diff types rep by diff
symbols in C&C view
īŽ Comps use ports (or interfaces) to
communicate with others
īŽ An arch can use any symbols to rep
components; some common ones are shown
Software Architecture 18
Some Component
examplesâ€Ļ
Software Architecture 19
Connectors
īŽ Interaction between components happen
through connectors
īŽ A connector may be provided by the runtime
environment, e.g. procedure call
īŽ But there may be complex mechanisms for
interaction, e.g http, tcp/ip, ports,â€Ļ; a lot of
sw needed to support them
īŽ Important to identify them explicitly; also
needed for programming comps properly
Software Architecture 20
Connectorsâ€Ļ
īŽ Connectors need not be binary, e.g. a
broadcast bus
īŽ Connector has a name (and a type)
īŽ Often connectors represented as protocol –
i.e. comps need to follow some conventions
when using the connector
īŽ Best to use diff notation for diff types of
connectors; all connectors should not be
shown by simple lines
Software Architecture 21
Connector examples
Software Architecture 22
An Example
īŽ Design a system for taking online survey of
students on campus
īŽ Multiple choice questions, students submit online
īŽ When a student submits, current result of the
survey is shown
īŽ Is best built using web; a 3-tier architecture is
proposed
īŽ Has a client, server, and a database components
(each of a diff type)
īŽ Connector between them are also of diff types
Software Architecture 23
Exampleâ€Ļ
Software Architecture 24
Exampleâ€Ļ
īŽ At arch level, details are not needed
īŽ The connectors are explicitly stated,
which implies that the infrastructure
should provide http, browser, etc.
īŽ The choice of connectors imposes
constraints on how the components are
finally designed and built
Software Architecture 25
Extension 1
īŽ This arch has no security – anyone can
take the survey
īŽ We want that only registered students
can take the survey (at most once)
īŽ To identify students and check for one-only
submission, need a authentication server
īŽ Need to use cookies, and server has to be
built accordingly (the connector between
server and auth server is http with cookies)
Software Architecture 26
Extension 1â€Ļ
Software Architecture 27
Extension 2
īŽ It was found that DB is frequently down
īŽ For improving reliability, want that if DB
is down, student is given an older
survey result and survey data stored
īŽ The survey data given can be outdated
by at most 5 survey data points
īŽ For this, will add a cache comp, which
will store data as well as results
Software Architecture 28
Extension 2â€Ļ
Software Architecture 29
Exampleâ€Ļ
īŽ One change increased security, 2nd
increased performance and reliability
īŽ I.e. Arch level choices have a big
impact on system properties
īŽ That is why, choosing a suitable arch
can help build a good system
Software Architecture 30
Architectural Styles for C&C View
īŽ Diff systems have diff C&C structure
īŽ Some structures are general and are useful
for a class of problems – architectural styles
īŽ An arch style defines a family of archs that
satisfy the constraint of that style
īŽ Styles can provide ideas for creating arch for
a sys; they can be combined also
īŽ We discuss a few common styles
Software Architecture 31
Pipe and filter
īŽ Well suited for systems that mainly do data
transformations
īŽ A system using this style uses a network of
transforms to achieve the desired result
īŽ Has one component type – filter
īŽ Has one connector type – pipe
īŽ A filter does some transformation and passes
data to other filters through pipes
Software Architecture 32
Pipe and Filterâ€Ļ
īŽ A filter is independent; need not know the id
of filters sending/receiving data
īŽ Filters can be asynchronous and are
producers or consumers of data
īŽ A pipe is unidirectional channel which moves
streams of data from one filter to another
īŽ A pipe is a 2-way connector
īŽ Pipes have to perform buffering, and
synchronization between filters
Software Architecture 33
Pipe and filterâ€Ļ
īŽ Pipes should work without knowing the
identify of producers/consumers
īŽ A pipe must connect the output port of
one filter to input port of another
īŽ Filters may have indep thread of control
Software Architecture 34
Example
īŽ A system needed to count the
frequency of different words in a file
īŽ One approach: first split the file into a
sequence of words, sort them, then
count the #of occurrences
īŽ The arch of this system can naturally
use the pipe and filter style
Software Architecture 35
Example..
Software Architecture 36
Shared-data style
īŽ Two component types – data repository and
data accessor
īŽ Data repository – provides reliable permanent
storage
īŽ Data accessors – access data in repositories,
perform computations, and may put the
results back also
īŽ Communication between data accessors is
only through the repository
Software Architecture 37
Shared-data styleâ€Ļ
īŽ Two variations possible
īŽ Black board style: if data is posted in a
repository, all accessors are informed; i.e.
shared data source is an active agent
īŽ Repository style: passive repository
īŽ Eg. database oriented systems; web
systems; programming environments,..
Software Architecture 38
Example
īŽ A student registration system of a
university
īŽ Repository contains all the data about
students, courses, schedules,â€Ļ
īŽ Accessors like admin, approvals,
registration, reports which perform
operations on the data
Software Architecture 39
Exampleâ€Ļ
Software Architecture 40
Example..
īŽ Components do not directly
communicate with each other
īŽ Easy to extend – if a scheduler is
needed, it is added as a new accessor
īŽ No existing component needs to be
changed
īŽ Only one connector style in this –
read/write
Software Architecture 41
Client-Server Style
īŽ Two component types – clients and servers
īŽ Clients can only communicate with the server,
but not with other clients
īŽ Communication is initiated by a client which
sends request and server responds
īŽ One connector type – request/reply, which is
asymmetric
īŽ Often the client and the servers reside on
different machines
Software Architecture 42
Client-server styleâ€Ļ
īŽ A general form of this style is the n-tier
structure
īŽ A 3-tier structure is commonly used by
many application and web systems
īŽ Client-tier contains the clients
īŽ Middle-tier contains the business rules
īŽ Database tier has the information
Software Architecture 43
Some other styles
īŽ Publish-subscribe style
īŽ Some components generate events, and others
subscribe to them
īŽ On an event, those component that subscribe to it
are invoked
īŽ Peer-to-peer style
īŽ Like object oriented systems; components use
services from each other through methods
īŽ Communication processes style
īŽ Processes which execute and communicate with
each other through message passing
Software Architecture 44
Architecture and Design
īŽ Both arch and design partition the system into
parts and their org
īŽ What is the relationship between design and
arch?
īŽ Arch is a design; it is about the solution domain,
and not problem domain
īŽ Can view arch as a very high level design focusing
on main components
īŽ Design is about modules in these components that
have to be coded
īŽ Design can be considered as providing the module
view of the system
Software Architecture 45
Contdâ€Ļ
īŽ Boundaries between architecture and design
are not clear or hard
īŽ It is for designer and architect to decide
where arch ends and design begins
īŽ In arch, issues like files, data structure etc are
not considered, while they are important in
design
īŽ Arch does impose constraints on design in
that the design must be consistent with arch
Software Architecture 46
Preserving the Integrity of
Architecture
īŽ What is the role of arch during the rest of the
development process
īŽ Many designers and developers use it for
understanding but nothing more
īŽ Arch imposes constraints; the implementation must
preserve the arch
īŽ I.e. the arch of the final system should be same as
the arch that was conceived
īŽ It is very easy to ignore the arch design and go
ahead and do the development
īŽ Example – impl of the word frequency problem
Software Architecture 47
Documenting Arch Design
īŽ While designing and brainstorming,
diagrams are a good means
īŽ Diagrams are not sufficient for
documenting arch design
īŽ An arch design document will need to
precisely specify the views, and the
relationship between them
Software Architecture 48
Documentingâ€Ļ
īŽ An arch document should contain
īŽ System and architecture context
īŽ Description of architecture views
īŽ Across view documentation
īŽ A context diagram that establishes the sys
scope, key actors, and data sources/sinks
can provide the overall context
īŽ A view description will generally have a
pictorial representation, as discussed earlier
Software Architecture 49
Documentingâ€Ļ
īŽ Pictures should be supported by
īŽ Element catalog: Info about behavior,
interfaces of the elements in the arch
īŽ Architectural rationale: Reasons for making
the choices that were made
īŽ Behavior: Of the system in different
scenarios (e.g. collaboration diagram)
īŽ Other Information: Decisions which are to
be taken, choices still to be made,..
Software Architecture 50
Documentingâ€Ļ
īŽ Inter-view documentation
īŽ Views are related, but the relationship is not clear
in the view
īŽ This part of the doc describes how the views are
related (eg. How modules are related to
components)
īŽ Rationale for choosing the views
īŽ Any info that cuts across views
īŽ Sometimes views may be combined in one
diagram for this – should be done if the
resulting diagram is still easy to understand
Software Architecture 51
Evaluating Architectures
īŽ Arch impacts non-functional attributes like
modifiability, performance, reliability,
portability, etc
īŽ Attr. like usability etc are not impacted
īŽ Arch plays a much bigger impact on these
than later decisions
īŽ So should evaluate a proposed arch for these
properties
īŽ Q: How should this evaluation be done?
īŽ Many different ways
Software Architecture 52
Evaluating Architecturesâ€Ļ
īŽ Procedural approach – follow a sequence of
steps
īŽ Identify the attributes of interest to different
stakeholders
īŽ List them in a table
īŽ For each attribute, evaluate the architectures
under consideration
īŽ Evaluation can be subjective based on experience
īŽ Based on this table, then select some arch or
improve some existing arch for some attribute
Software Architecture 53
Summary
īŽ Arch of a sw system is its structures
comprising of elements, their external
properties, and relationships
īŽ Arch is a high level design
īŽ Three main view types – module, component
and connector, and allocation
īŽ Component and connector (C&C) view is
most commonly used
Software Architecture 54
Summaryâ€Ļ
īŽ There are some C&C styles that are
commonly used, e.g. pipe-and-filter,
shared data, client server,....
īŽ An arch description should document
the different views and their relationship
– views can be combined
īŽ Rationale and other supporting
information should also be captured
Software Architecture 55
Summaryâ€Ļ
īŽ Arch can be analyzed for various non-
functional attributes like performance,
reliability, security, etc
īŽ ATAM is one approach for analyzing
architectures, which evaluates
attributes of interest under different
scenarios

More Related Content

What's hot

Matching techniques
Matching techniquesMatching techniques
Matching techniquesNagpalkirti
 
Context model
Context modelContext model
Context modelUbaid423
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentationmewaseem
 
distributed Computing system model
distributed Computing system modeldistributed Computing system model
distributed Computing system modelHarshad Umredkar
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based systemChetan Selukar
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuseMarco Brambilla
 
Semantic net in AI
Semantic net in AISemantic net in AI
Semantic net in AIShahDhruv21
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)Manoj Reddy
 
Io t system management with
Io t system management withIo t system management with
Io t system management withxyxz
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26koolkampus
 
The analysis synthesis model of compilation
The analysis synthesis model of compilationThe analysis synthesis model of compilation
The analysis synthesis model of compilationHuawei Technologies
 
JSP Processing
JSP ProcessingJSP Processing
JSP ProcessingSadhana28
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 

What's hot (20)

Matching techniques
Matching techniquesMatching techniques
Matching techniques
 
Context model
Context modelContext model
Context model
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
distributed Computing system model
distributed Computing system modeldistributed Computing system model
distributed Computing system model
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based system
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
 
UML
UMLUML
UML
 
Semantic net in AI
Semantic net in AISemantic net in AI
Semantic net in AI
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
Io t system management with
Io t system management withIo t system management with
Io t system management with
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26
 
The analysis synthesis model of compilation
The analysis synthesis model of compilationThe analysis synthesis model of compilation
The analysis synthesis model of compilation
 
JSP Processing
JSP ProcessingJSP Processing
JSP Processing
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 

Similar to 5 architecture

software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxSomnathMule5
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSomnathMule5
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxMahmoudZidan53
 
Architectural Design
Architectural DesignArchitectural Design
Architectural DesignJay Thakkar
 
Ch6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxCh6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxubaidullah75790
 
Architectural Design.pptx
Architectural Design.pptxArchitectural Design.pptx
Architectural Design.pptxssuser8c0d24
 
Architectural design
Architectural designArchitectural design
Architectural designHuda Alameen
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfProf. Dr. K. Adisesha
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10Dhairya Joshi
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docesrabilgic2
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxLeahRachael
 
Object oriented sad-5 part ii
Object oriented sad-5 part iiObject oriented sad-5 part ii
Object oriented sad-5 part iiBisrat Girma
 

Similar to 5 architecture (20)

software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Ch6
Ch6Ch6
Ch6
 
Ch6
Ch6Ch6
Ch6
 
Ch 6
Ch 6Ch 6
Ch 6
 
Ch6.ppt
Ch6.pptCh6.ppt
Ch6.ppt
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Ch6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxCh6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptx
 
Lecture 6 se
Lecture 6 seLecture 6 se
Lecture 6 se
 
Architectural Design.pptx
Architectural Design.pptxArchitectural Design.pptx
Architectural Design.pptx
 
Architectural design
Architectural designArchitectural design
Architectural design
 
Se lec6
Se lec6Se lec6
Se lec6
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
 
UNIT 3 SE.pptx
UNIT 3 SE.pptxUNIT 3 SE.pptx
UNIT 3 SE.pptx
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
 
Object oriented sad-5 part ii
Object oriented sad-5 part iiObject oriented sad-5 part ii
Object oriented sad-5 part ii
 

Recently uploaded

Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 

Recently uploaded (20)

9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 

5 architecture

  • 2. Software Architecture 2 Background īŽ Any complex system is composed of sub-systems that interact īŽ While designing systems, an approach is to identify sub-systems and how they interact with each other īŽ Sw Arch tries to do this for software īŽ A recent area, but a lot of interest in it
  • 3. Software Architecture 3 Backgroundâ€Ļ īŽ Architecture is the system design at the highest level īŽ Choices about technologies, products to use, servers, etc are made at arch level īŽ Not possible to design system details and then accommodate these choices īŽ Arch must be created accommodating them īŽ Is the earliest place when properties like rel/perf can be evaluated
  • 4. Software Architecture 4 Architecture īŽ Arch is a design of the sw that gives a very high level view of parts and they relate to form the whole īŽ Partitions the sys in parts such that each part can be comprehended independently īŽ And describes relationship between parts īŽ A complex system can be partitioned in many diff ways, each providing a useful view īŽ Same holds true of software also īŽ There is no unique structure; many possible
  • 5. Software Architecture 5 Architecture īŽ Defn: Software arch is the structure or structures which comprise elements, their externally visible properties, and relationships among them īŽ For elements only interested in external properties needed for relationship specification īŽ Details on how the properties are supported is not important for arch īŽ The defn does not say anything about whether an arch is good or not – analysis needed for it īŽ An arch description describes the different structures of the system
  • 6. Software Architecture 6 Key Uses of Arch Descriptions īŽ Understanding and communication īŽ By showing a system at a high level and hiding complexity of parts, arch descr facilitates communication īŽ To get a common understanding between the diff stakeholders (users, clients, architect, designer,â€Ļ) īŽ For negotiation and agreement īŽ Arch descr can also aid in understanding of existing systems
  • 7. Software Architecture 7 Usesâ€Ļ īŽ Reuse īŽ A method of reuse is to compose systems from parts and reuse existing parts īŽ This model is facilitated by reusing components at a high level providing complete services īŽ To reuse existing components, arch must be chosen such that these components fit together with other components īŽ Hence, decision about using existing components is made at arch design time
  • 8. Software Architecture 8 Uses.. īŽ Construction and evolution īŽ Some structures in arch descr will be used to guide system development īŽ Partitioning at arch level can also be used for work allocation to teams as parts are relatively independent īŽ During sw evolution, arch helps decide what needs to be changed to incorporate the new changes/features īŽ Arch can help decide what is the impact of changes to existing components on others
  • 9. Software Architecture 9 Usesâ€Ļ īŽ Analysis īŽ If properties like perf, reliability can be determined from design, alternatives can be considered during design to reach the desired perf levels īŽ Sw arch opens such possibilities for software (other engg disciplines usually can do this) īŽ E.g. rel and perf of a system can be predicted from its arch, if estimates for parms like load etc is provided īŽ Will require precise description of arch, as well as properties of the elements in the description
  • 10. Software Architecture 10 Architectural Views īŽ There is no unique arch of a sys īŽ There are different views of a sw sys īŽ A view consists of elements and relationships between them, and describes a structure īŽ The elements of a view depends on what the view wants to highlight īŽ Diff views expose diff properties īŽ A view focusing on some aspects reduces its complexity
  • 11. Software Architecture 11 Viewsâ€Ļ īŽ Many types of views have been proposed īŽ Most belong to one of these three types īŽ Module īŽ Component and Connector īŽ Allocation īŽ The diff views are not unrelated – they all represent the same system īŽ There are relationships between elements of diff views; this rel may be complex
  • 12. Software Architecture 12 Viewsâ€Ļ īŽ Module view īŽ A sys is a collection of code units i.e. they do not represent runtime entitites īŽ I.e. elements are modules, eg. Class, package, function, procedure,â€Ļ īŽ Relationship between them is code based, e.g. part of, depends on, calls, generalization-specialization,..
  • 13. Software Architecture 13 Viewsâ€Ļ īŽ Component and Connector (C&C) īŽ Elements are run time entities called components īŽ I.e. a component is a unit that has identity in executing sys, e.g. objects, processes, .exe, .dll īŽ Connectors provide means of interaction between components, e.g. pipes, shared memory, sockets
  • 14. Software Architecture 14 Viewsâ€Ļ īŽ Allocation view īŽ Focuses on how sw units are allocated to resources like hw, file system, people īŽ I.e. specifies relationship between sw elements and execution units in the env īŽ Expose structural properties like which process runs on which processor, which file resides where, â€Ļ
  • 15. Software Architecture 15 Viewsâ€Ļ īŽ An arch description consists of views of diff types, each showing a diff structure īŽ Diff sys need diff types of views depending on the needs īŽ E.g. for perf analysis, allocation view is necessary; for planning, module view helps īŽ The C&C view is almost always done, and has become the primary view īŽ We focus primarily on the C&C view īŽ Module view is covered in high level design, whose focus is on identifying modules
  • 16. Software Architecture 16 Component and Connector View īŽ Two main elements – components and connectors īŽ Components: Computational elements or data stores īŽ Connectors: Means of interaction between comps īŽ A C&C view defines the comps, and which comps are connected through which connector īŽ The C&C view describes a runtime structure of the system – what comps exist at runtime and how they interact during execution īŽ Is a graph; often shown as a box-and-line drawing īŽ Most commonly used structure
  • 17. Software Architecture 17 Components īŽ Units of computations or data stores īŽ Has a name, which represents its role, and provides it identity īŽ A comp may have a type; diff types rep by diff symbols in C&C view īŽ Comps use ports (or interfaces) to communicate with others īŽ An arch can use any symbols to rep components; some common ones are shown
  • 18. Software Architecture 18 Some Component examplesâ€Ļ
  • 19. Software Architecture 19 Connectors īŽ Interaction between components happen through connectors īŽ A connector may be provided by the runtime environment, e.g. procedure call īŽ But there may be complex mechanisms for interaction, e.g http, tcp/ip, ports,â€Ļ; a lot of sw needed to support them īŽ Important to identify them explicitly; also needed for programming comps properly
  • 20. Software Architecture 20 Connectorsâ€Ļ īŽ Connectors need not be binary, e.g. a broadcast bus īŽ Connector has a name (and a type) īŽ Often connectors represented as protocol – i.e. comps need to follow some conventions when using the connector īŽ Best to use diff notation for diff types of connectors; all connectors should not be shown by simple lines
  • 22. Software Architecture 22 An Example īŽ Design a system for taking online survey of students on campus īŽ Multiple choice questions, students submit online īŽ When a student submits, current result of the survey is shown īŽ Is best built using web; a 3-tier architecture is proposed īŽ Has a client, server, and a database components (each of a diff type) īŽ Connector between them are also of diff types
  • 24. Software Architecture 24 Exampleâ€Ļ īŽ At arch level, details are not needed īŽ The connectors are explicitly stated, which implies that the infrastructure should provide http, browser, etc. īŽ The choice of connectors imposes constraints on how the components are finally designed and built
  • 25. Software Architecture 25 Extension 1 īŽ This arch has no security – anyone can take the survey īŽ We want that only registered students can take the survey (at most once) īŽ To identify students and check for one-only submission, need a authentication server īŽ Need to use cookies, and server has to be built accordingly (the connector between server and auth server is http with cookies)
  • 27. Software Architecture 27 Extension 2 īŽ It was found that DB is frequently down īŽ For improving reliability, want that if DB is down, student is given an older survey result and survey data stored īŽ The survey data given can be outdated by at most 5 survey data points īŽ For this, will add a cache comp, which will store data as well as results
  • 29. Software Architecture 29 Exampleâ€Ļ īŽ One change increased security, 2nd increased performance and reliability īŽ I.e. Arch level choices have a big impact on system properties īŽ That is why, choosing a suitable arch can help build a good system
  • 30. Software Architecture 30 Architectural Styles for C&C View īŽ Diff systems have diff C&C structure īŽ Some structures are general and are useful for a class of problems – architectural styles īŽ An arch style defines a family of archs that satisfy the constraint of that style īŽ Styles can provide ideas for creating arch for a sys; they can be combined also īŽ We discuss a few common styles
  • 31. Software Architecture 31 Pipe and filter īŽ Well suited for systems that mainly do data transformations īŽ A system using this style uses a network of transforms to achieve the desired result īŽ Has one component type – filter īŽ Has one connector type – pipe īŽ A filter does some transformation and passes data to other filters through pipes
  • 32. Software Architecture 32 Pipe and Filterâ€Ļ īŽ A filter is independent; need not know the id of filters sending/receiving data īŽ Filters can be asynchronous and are producers or consumers of data īŽ A pipe is unidirectional channel which moves streams of data from one filter to another īŽ A pipe is a 2-way connector īŽ Pipes have to perform buffering, and synchronization between filters
  • 33. Software Architecture 33 Pipe and filterâ€Ļ īŽ Pipes should work without knowing the identify of producers/consumers īŽ A pipe must connect the output port of one filter to input port of another īŽ Filters may have indep thread of control
  • 34. Software Architecture 34 Example īŽ A system needed to count the frequency of different words in a file īŽ One approach: first split the file into a sequence of words, sort them, then count the #of occurrences īŽ The arch of this system can naturally use the pipe and filter style
  • 36. Software Architecture 36 Shared-data style īŽ Two component types – data repository and data accessor īŽ Data repository – provides reliable permanent storage īŽ Data accessors – access data in repositories, perform computations, and may put the results back also īŽ Communication between data accessors is only through the repository
  • 37. Software Architecture 37 Shared-data styleâ€Ļ īŽ Two variations possible īŽ Black board style: if data is posted in a repository, all accessors are informed; i.e. shared data source is an active agent īŽ Repository style: passive repository īŽ Eg. database oriented systems; web systems; programming environments,..
  • 38. Software Architecture 38 Example īŽ A student registration system of a university īŽ Repository contains all the data about students, courses, schedules,â€Ļ īŽ Accessors like admin, approvals, registration, reports which perform operations on the data
  • 40. Software Architecture 40 Example.. īŽ Components do not directly communicate with each other īŽ Easy to extend – if a scheduler is needed, it is added as a new accessor īŽ No existing component needs to be changed īŽ Only one connector style in this – read/write
  • 41. Software Architecture 41 Client-Server Style īŽ Two component types – clients and servers īŽ Clients can only communicate with the server, but not with other clients īŽ Communication is initiated by a client which sends request and server responds īŽ One connector type – request/reply, which is asymmetric īŽ Often the client and the servers reside on different machines
  • 42. Software Architecture 42 Client-server styleâ€Ļ īŽ A general form of this style is the n-tier structure īŽ A 3-tier structure is commonly used by many application and web systems īŽ Client-tier contains the clients īŽ Middle-tier contains the business rules īŽ Database tier has the information
  • 43. Software Architecture 43 Some other styles īŽ Publish-subscribe style īŽ Some components generate events, and others subscribe to them īŽ On an event, those component that subscribe to it are invoked īŽ Peer-to-peer style īŽ Like object oriented systems; components use services from each other through methods īŽ Communication processes style īŽ Processes which execute and communicate with each other through message passing
  • 44. Software Architecture 44 Architecture and Design īŽ Both arch and design partition the system into parts and their org īŽ What is the relationship between design and arch? īŽ Arch is a design; it is about the solution domain, and not problem domain īŽ Can view arch as a very high level design focusing on main components īŽ Design is about modules in these components that have to be coded īŽ Design can be considered as providing the module view of the system
  • 45. Software Architecture 45 Contdâ€Ļ īŽ Boundaries between architecture and design are not clear or hard īŽ It is for designer and architect to decide where arch ends and design begins īŽ In arch, issues like files, data structure etc are not considered, while they are important in design īŽ Arch does impose constraints on design in that the design must be consistent with arch
  • 46. Software Architecture 46 Preserving the Integrity of Architecture īŽ What is the role of arch during the rest of the development process īŽ Many designers and developers use it for understanding but nothing more īŽ Arch imposes constraints; the implementation must preserve the arch īŽ I.e. the arch of the final system should be same as the arch that was conceived īŽ It is very easy to ignore the arch design and go ahead and do the development īŽ Example – impl of the word frequency problem
  • 47. Software Architecture 47 Documenting Arch Design īŽ While designing and brainstorming, diagrams are a good means īŽ Diagrams are not sufficient for documenting arch design īŽ An arch design document will need to precisely specify the views, and the relationship between them
  • 48. Software Architecture 48 Documentingâ€Ļ īŽ An arch document should contain īŽ System and architecture context īŽ Description of architecture views īŽ Across view documentation īŽ A context diagram that establishes the sys scope, key actors, and data sources/sinks can provide the overall context īŽ A view description will generally have a pictorial representation, as discussed earlier
  • 49. Software Architecture 49 Documentingâ€Ļ īŽ Pictures should be supported by īŽ Element catalog: Info about behavior, interfaces of the elements in the arch īŽ Architectural rationale: Reasons for making the choices that were made īŽ Behavior: Of the system in different scenarios (e.g. collaboration diagram) īŽ Other Information: Decisions which are to be taken, choices still to be made,..
  • 50. Software Architecture 50 Documentingâ€Ļ īŽ Inter-view documentation īŽ Views are related, but the relationship is not clear in the view īŽ This part of the doc describes how the views are related (eg. How modules are related to components) īŽ Rationale for choosing the views īŽ Any info that cuts across views īŽ Sometimes views may be combined in one diagram for this – should be done if the resulting diagram is still easy to understand
  • 51. Software Architecture 51 Evaluating Architectures īŽ Arch impacts non-functional attributes like modifiability, performance, reliability, portability, etc īŽ Attr. like usability etc are not impacted īŽ Arch plays a much bigger impact on these than later decisions īŽ So should evaluate a proposed arch for these properties īŽ Q: How should this evaluation be done? īŽ Many different ways
  • 52. Software Architecture 52 Evaluating Architecturesâ€Ļ īŽ Procedural approach – follow a sequence of steps īŽ Identify the attributes of interest to different stakeholders īŽ List them in a table īŽ For each attribute, evaluate the architectures under consideration īŽ Evaluation can be subjective based on experience īŽ Based on this table, then select some arch or improve some existing arch for some attribute
  • 53. Software Architecture 53 Summary īŽ Arch of a sw system is its structures comprising of elements, their external properties, and relationships īŽ Arch is a high level design īŽ Three main view types – module, component and connector, and allocation īŽ Component and connector (C&C) view is most commonly used
  • 54. Software Architecture 54 Summaryâ€Ļ īŽ There are some C&C styles that are commonly used, e.g. pipe-and-filter, shared data, client server,.... īŽ An arch description should document the different views and their relationship – views can be combined īŽ Rationale and other supporting information should also be captured
  • 55. Software Architecture 55 Summaryâ€Ļ īŽ Arch can be analyzed for various non- functional attributes like performance, reliability, security, etc īŽ ATAM is one approach for analyzing architectures, which evaluates attributes of interest under different scenarios