A PRESENTATION ON
ARCHITECTURAL DESIGN
By Drishya Phuel
Acknowledgement
I would like to express my sincere gratitude
to our respected teacher Engineer Ramesh
Tamang Sir for providing me with this
wonderful opportunity and helpful
materials to share my ideas on my today’s
topic.
Topics to be discussed
vArchitectural design decisions
vSystem Organization
vModular Decomposition Styles
vControl Styles
Initial queries
• What are Architecture?
• What is Architectural designing?
• What is organization?
An Overview of Architectural Design
• Architectural design in software engineering
is about
• decomposing the system into interacting
components.
• defining an overview of the system
structure, features of the components
• how these components communicate with
each other to share data
System properties of Architectural
Design
• Security: uses a layered architecture with
critical assets in the innermost layers.
• Performance:
-meantime taken between request and
response of the page
-can be improved by avoiding critical
operations and reducing communication
between
• Maintainability: easily modifiable and
replaceable components
Architectural Design Decisions
• How will the system be distributed across a
number of cores, processors; network?
• What approach will be used to structure the
system?
• Which architectural styles are appropriate?
• How can software architecture be documented?
• How can the system be decomposed into
modules?
• What control strategy must be used to control
the operation of the components in the system?
• What architectural organization is best for
delivering the non-functional requirements
of the system?
What comes into play once we have talked
about organization?
System Organization
What does organization mean in literal words
in terms of software development?
ØStructural Relationship
ØImplementation of architectural design
ØComponents relationships
ØRealizing architectural specifications
Software Architectural Models
q static type of architectural structural model
represents the major system components.
qDynamic type of architectural process model
represents the process structure of the system.
qDistribution type of architectural model
represents how the component is distributed
across various computers.
qInterface type of architectural model represents
the interface of the components.
qRelationships type of architectural model
represent models such as data flow diagram to
represent the component interrelationship.
Could this design process BE more
perfect?
To document the
architectural design
process, architectural
models are used.
• Architectural design models are application
domain-specific and the most common two
types of domain-specific models are:
• Generic model:
abstractions derived from a number of real
systems and encapsulated the characteristics
of these systems.
-follow bottom-up approach
• Reference model:
-derived from the application domain rather
than from existing systems
-top-down approach
-provides a comparison between different
software architecture
Architectural Styles
1. Data-flow Architecture:
Each component is known as filter
-filter transforms the data and sends this to other
filters using connectors
-pipes are connectors
- pipe is a unidirectional channel
-Each filter works as an independent entity
Data Flow Architecture diagram
Aspects
Some advantages
• It supports reusability.
• It is maintainable and
modifiable.
• It supports concurrent
execution.
Some disadvantages
• It often degenerates to
batch sequential system.
• It does not provide
enough support for
applications requires
user interaction
• It is difficult to
synchronize two different
but related streams.
2. Object Oriented Architecture
• components are
represented as objects
• objects interact with each
other through methods.
• methods are connectors
• Objects maintain the
integrity of the system.
• An object is not aware of
the representation of
other objects.
Advantages
• allows designers to decompose a problem
into a collection of independent objects.
• implementation detail of objects is hidden
from each other and hence, they can be
changed without affecting other objects.
3.Layered Architecture
• layers are components
• layers are arranged in a hierarchical manner, each
one built upon the one below it
• protocols are used as connectors
• The interaction between layers is provided
through protocols
Layered Architecture representation
and communication
• also known as n-tiered
architecture
• Closed: The previous
layer cannot bypass a
layer with a “closed”
label, and the request
must go through it
before it proceeds.
• Open: The previous
layer can bypass the
layer with the “open”
label
4.Data-centered Architecture
• a central data
structure or data store
(central repository)
• represents the current
state of the data
• a collection of client
software
client software
performs several
operations like add,
delete, update, etc.,
onthe data stored
Advantages
• Clients operate independently of one another.
• Data repository is independent of the clients.
• It adds scalability (that is, new clients can be
added easily).
• It supports modifiability.
• It achieves data integration in component-based
development using blackboard.
Data-repository
5.Call and Return Architecture
-enables software designers to achieve a program structure, which can
be easily modified.
-function is decomposed into a control hierarchy where the main
program invokes a number of program components, which in turn may
invoke other components.
-Remote procedure call architecture: In this, components of the main
or subprogram architecture are distributed over a network across
multiple computers
Control Styles
• concerned with how a system is
decomposed into sub-systems
• sub-systems must be controlled so that their
services are delivered to the right place at
the right time
• Structural models do not and should not
include control information
Generic control styles that are used in
software systems:
• Centralized Control
Style
• - control
- start
- stop
Centralized control style: Call-return
model
• Example: When a Java object requests a
service from another object, it does so by
calling an associated method
Centralized Control style:The manager
model.
• One system component is designated as a
system manager
• controls the starting, stopping and
coordination of other system processes.
• may also be applied in sequential systems
The Manager Model
EVENT-BASED CONTROL
• Rather than control information being
embedded in a subsystem,
• each sub-system can respond to externally
generated events.
• events may be command inputs, certain
range of values
Eg: active objects where changing a value of
an object's attribute triggers some actions.
We will discuss two even-driven models
Broadcast model
-When these events occur,
control is transferred to the
sub-system that can handle
the event.
Interrupt-driven models
• exclusively used in
real-time systems
where external
interrupts are detected
by an interrupt
handler.
Aspects of interrupt-driven models
Advantages
• allows very fast
responses to events to
be implemented
• may be combined with
the centralized
management model.
Disadvantages
• complex to program and
difficult to validate
• may be impossible to
replicate patterns of
interrupt timing during
system testing.
• interrupt mapping may
be impractical if a very
fast response to
individual interrupts is
required.
Important Questions asked in IOE
Examination
1. Write short notes on
a)Modular Decomposition
2. Compare the following:
i) Client Server vs Distributed object architecture
3. What is software design architecture and what is
its significanc in software engineering?
4.Explain multi-tier architecture with example.
5. What are the differences between thin client and
thick clients?
Oh My God!
Differences between thin client and thick
client
• Thin Client
a. Thin clients have browser
based installation.
b. There is complete
processing on the server side
c. are easily deployable
d. data verification is done
required from server
• Thick Client
a. Thick clients have locally
based installation
b. Thick clients make
use of computer
resources more than
server.
c. expensive to deploy
d. data verification is done
from clients
References:
i. geeksforgeeks.org
ii. tutorialspoint
iii. technology.purplepedia.com
iv. educba.com
v. coursera.org
vi. compilations by Dr. Sunil Chaudhary
vii. Ian Sommerville, Software Engineering, Latest
edition
•
A Presentation on Architectual Design by Students of Engineering

A Presentation on Architectual Design by Students of Engineering

  • 1.
    A PRESENTATION ON ARCHITECTURALDESIGN By Drishya Phuel
  • 2.
    Acknowledgement I would liketo express my sincere gratitude to our respected teacher Engineer Ramesh Tamang Sir for providing me with this wonderful opportunity and helpful materials to share my ideas on my today’s topic.
  • 3.
    Topics to bediscussed vArchitectural design decisions vSystem Organization vModular Decomposition Styles vControl Styles
  • 4.
    Initial queries • Whatare Architecture? • What is Architectural designing? • What is organization?
  • 5.
    An Overview ofArchitectural Design • Architectural design in software engineering is about • decomposing the system into interacting components. • defining an overview of the system structure, features of the components • how these components communicate with each other to share data
  • 6.
    System properties ofArchitectural Design • Security: uses a layered architecture with critical assets in the innermost layers. • Performance: -meantime taken between request and response of the page -can be improved by avoiding critical operations and reducing communication between • Maintainability: easily modifiable and replaceable components
  • 7.
    Architectural Design Decisions •How will the system be distributed across a number of cores, processors; network? • What approach will be used to structure the system? • Which architectural styles are appropriate? • How can software architecture be documented? • How can the system be decomposed into modules? • What control strategy must be used to control the operation of the components in the system?
  • 8.
    • What architecturalorganization is best for delivering the non-functional requirements of the system? What comes into play once we have talked about organization?
  • 9.
    System Organization What doesorganization mean in literal words in terms of software development? ØStructural Relationship ØImplementation of architectural design ØComponents relationships ØRealizing architectural specifications
  • 10.
    Software Architectural Models qstatic type of architectural structural model represents the major system components. qDynamic type of architectural process model represents the process structure of the system. qDistribution type of architectural model represents how the component is distributed across various computers. qInterface type of architectural model represents the interface of the components. qRelationships type of architectural model represent models such as data flow diagram to represent the component interrelationship.
  • 11.
    Could this designprocess BE more perfect? To document the architectural design process, architectural models are used.
  • 12.
    • Architectural designmodels are application domain-specific and the most common two types of domain-specific models are: • Generic model: abstractions derived from a number of real systems and encapsulated the characteristics of these systems. -follow bottom-up approach • Reference model: -derived from the application domain rather than from existing systems -top-down approach -provides a comparison between different software architecture
  • 13.
    Architectural Styles 1. Data-flowArchitecture: Each component is known as filter -filter transforms the data and sends this to other filters using connectors -pipes are connectors - pipe is a unidirectional channel -Each filter works as an independent entity
  • 14.
  • 15.
    Aspects Some advantages • Itsupports reusability. • It is maintainable and modifiable. • It supports concurrent execution. Some disadvantages • It often degenerates to batch sequential system. • It does not provide enough support for applications requires user interaction • It is difficult to synchronize two different but related streams.
  • 16.
    2. Object OrientedArchitecture • components are represented as objects • objects interact with each other through methods. • methods are connectors • Objects maintain the integrity of the system. • An object is not aware of the representation of other objects.
  • 17.
    Advantages • allows designersto decompose a problem into a collection of independent objects. • implementation detail of objects is hidden from each other and hence, they can be changed without affecting other objects.
  • 18.
    3.Layered Architecture • layersare components • layers are arranged in a hierarchical manner, each one built upon the one below it • protocols are used as connectors • The interaction between layers is provided through protocols
  • 19.
    Layered Architecture representation andcommunication • also known as n-tiered architecture • Closed: The previous layer cannot bypass a layer with a “closed” label, and the request must go through it before it proceeds. • Open: The previous layer can bypass the layer with the “open” label
  • 20.
    4.Data-centered Architecture • acentral data structure or data store (central repository) • represents the current state of the data • a collection of client software client software performs several operations like add, delete, update, etc., onthe data stored
  • 21.
    Advantages • Clients operateindependently of one another. • Data repository is independent of the clients. • It adds scalability (that is, new clients can be added easily). • It supports modifiability. • It achieves data integration in component-based development using blackboard.
  • 22.
  • 23.
    5.Call and ReturnArchitecture -enables software designers to achieve a program structure, which can be easily modified. -function is decomposed into a control hierarchy where the main program invokes a number of program components, which in turn may invoke other components. -Remote procedure call architecture: In this, components of the main or subprogram architecture are distributed over a network across multiple computers
  • 24.
    Control Styles • concernedwith how a system is decomposed into sub-systems • sub-systems must be controlled so that their services are delivered to the right place at the right time • Structural models do not and should not include control information
  • 25.
    Generic control stylesthat are used in software systems: • Centralized Control Style • - control - start - stop
  • 26.
    Centralized control style:Call-return model
  • 27.
    • Example: Whena Java object requests a service from another object, it does so by calling an associated method
  • 28.
    Centralized Control style:Themanager model. • One system component is designated as a system manager • controls the starting, stopping and coordination of other system processes. • may also be applied in sequential systems
  • 29.
  • 30.
    EVENT-BASED CONTROL • Ratherthan control information being embedded in a subsystem, • each sub-system can respond to externally generated events. • events may be command inputs, certain range of values Eg: active objects where changing a value of an object's attribute triggers some actions. We will discuss two even-driven models
  • 31.
    Broadcast model -When theseevents occur, control is transferred to the sub-system that can handle the event.
  • 32.
    Interrupt-driven models • exclusivelyused in real-time systems where external interrupts are detected by an interrupt handler.
  • 33.
    Aspects of interrupt-drivenmodels Advantages • allows very fast responses to events to be implemented • may be combined with the centralized management model. Disadvantages • complex to program and difficult to validate • may be impossible to replicate patterns of interrupt timing during system testing. • interrupt mapping may be impractical if a very fast response to individual interrupts is required.
  • 34.
    Important Questions askedin IOE Examination 1. Write short notes on a)Modular Decomposition 2. Compare the following: i) Client Server vs Distributed object architecture 3. What is software design architecture and what is its significanc in software engineering? 4.Explain multi-tier architecture with example. 5. What are the differences between thin client and thick clients?
  • 35.
  • 36.
    Differences between thinclient and thick client • Thin Client a. Thin clients have browser based installation. b. There is complete processing on the server side c. are easily deployable d. data verification is done required from server • Thick Client a. Thick clients have locally based installation b. Thick clients make use of computer resources more than server. c. expensive to deploy d. data verification is done from clients
  • 37.
    References: i. geeksforgeeks.org ii. tutorialspoint iii.technology.purplepedia.com iv. educba.com v. coursera.org vi. compilations by Dr. Sunil Chaudhary vii. Ian Sommerville, Software Engineering, Latest edition •