3. Contents
1. Definitions
2. What is Software Architecture and why it is
important.
3. Objectives of Architectural Design
4. Architectural design process
5. Architectural models
6. System Architecture
7. System Organization
8. Key points
4. What is Architecture?
A high-level model of a thing
• Describes critical aspects of the thing.
• Understandable to many stakeholders.
• Allows evaluation of the thing’s properties before
it is built.
• Provides well understood tools and techniques
for constructing the thing from its blueprint.
5. What is Software Architecture ?
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.
6. Why Architecture?
The architecture is not the operational
software. Rather, it is a representation that
enables a software engineer to:
(1) Analyze the effectiveness of the design in meeting
its stated requirements.
(2) Consider architectural alternatives at a stage when
making design changes is still relatively easy, and
(3) Reduce the risks associated with the construction of
the software.
7. 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”.
8. Objectives of Architectural Design
• To introduce architectural design and to
discuss its importance.
• To explain why multiple models are
required to document a software
architecture.
• To describe types of architectural model
that may be used.
9. Architectural design process
• System structuring
– The system is decomposed into several principal sub-
systems.
– Communications between these sub-systems are
identified.
• Control modelling
– A model of the control relationships between the
different parts of the system is established.
• Modular decomposition
– The identified sub-systems are decomposed into
modules.
10. Architectural models
• Different architectural models may be produced
during the design process.
• Each model presents different perspectives on the
architecture:
– Static structural model that shows the major system
components.
– Dynamic process model that shows the process structure
of the system.
– Interface model that defines sub-system interfaces.
– Relationship models that shows relationships, such as data
flow, between the sub-systems.
– A distribution model that shows how sub-systems may be
distributed across computers.
11. What is System Architecture?
• A system architecture or systems architecture is
the conceptual model that defines
the structure, behavior, and more views of a system.
• A system architecture can comprise
system components, the expand systems developed,
that will work together to implement the overall
system. There have been efforts to formalize languages
to describe system architecture, collectively these are
called architecture description languages (ADLs).
12. System Architecture
The System Architecture affects the performance,
robustness,distributability and maintainability of a system.
The particular style and structure chosen for an application
may therefore depend on the non-functional system
requirements:
1. Performance
2. Security
3. Safety
4. Availability
5. Maintainability
13. Packing robot control system
Vision
system
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
Conveyor
controller
14. System Organization
The organization of a system reflects the basic
strategy that is used to structure a system.
Here I discuss about two organizational styles
that are very widely used.
1. The Repository Model
2. The client-server Model
15. The Repository Model
Sub-systems making up a system must exchange
information so that they can work together effectively .
There are two fundamental ways in which this can be
done.
1. All shared data held in a central database that can be accessed
by all sub-systems. A system model based on a shared database
is sometimes called a repository model.
2. Each sub-system maintains its own database. Data is
interchanged with other sub-systems by passing message to
them.
17. The client-server Model
The client-server model architectural model is a
system model where the system is organized as a
set of services and associated servers and clients
that access and use the service. The major
components of this model are:
1. A set of servers that offer services to other sub-systems.
2. A set of clients that call on the services offered by
servers.
3. A network that allows the clients to access the services.
18. Film and picture library
Catalogue
server
Catalogue
Video
server
Film clip
files
Picture
server
Digitized
photographs
Hypertext
server
Hypertext
web
Client 1 Client 2 Client 3 Client 4
Wide-bandwidth network
19. Key points
• The software architect is responsible for
deriving a structural system model, a control
model and a sub-system decomposition
model.
• Large systems rarely conform to a single
architectural model.
• Key architectural concepts are components,
connectors, and configurations.