Lecture 17 - Software Architecture
Lecture 17 - Software Architecture
2
Software Architecture-Definition
DEF 3: Architecture is the fundamental organization of a
system including its components, their relationships to
each other and to the environment and the principles
guiding its design and evolution
3
Components and Connectors
Components are connected by connectors
They are the building blocks with which an architecture
can be described
No standard notation has emerged yet
4
The Architecture of a Packing Robot Control System
Software Architecture Patterns / Styles
1: Layered Architecture
Organises the system into a set of layers each of which provide
a set of services
A layer provides services to the layer above it so the lowest-
level layers represent core services that are likely to be used
throughout the system.
Supports the incremental development of sub-systems in
different layers
When a layer interface changes, only the adjacent layer is
affected
6
Layered Architecture
THE ARCHITECTURE OF THE LIBSYS SYSTEM
8
LAYERED ARCHITECTURED OF THE HOSPITAL
MANAGEMENT SYSTEM
9
Layered Architecture of Library System
Software Architecture Patterns / Styles
2: Repository Architecture
Sub-systems must exchange data. This may be done in
two ways:
Shared data is held in a central database or
repository and may be accessed by all sub-systems;
Each sub-system maintains its own database and
passes data explicitly to other sub-systems.
All data in a system is managed in a central repository
that is accessible to all system components
Components do not interact directly, only through the
repository.
11
THE REPOSITORY STYLE
12
Repository Architecture
Software Architecture Patterns / Styles
3: Client-Server Architecture
In a client–server architecture, the functionality of the
system is organized into services such as printing, data
management etc, with each service delivered from a
separate server
Clients are users of these services and access servers to
make use of them.
Network which allows clients to access servers.
14
Client-Server Architecture For a Film Library
Software Architecture Patterns / Styles
4: Pipe and Filter Architecture
The processing of the data in a system is organized so that
each processing component (filter) carries out one type of
data transformation
The data flows (as in a pipe) from one component to
another for processing
Inputs are processed in separate stages to generate related
outputs
Not really suitable for interactive systems
16
Pipe and Filter Architecture
Model Transformation
The purpose of object (Class)model transformation is to:
Simplify or optimize the original model
Bringing it into closer compliance with all requirements in
the specification.
A transformation may add, remove, or rename classes,
operations, associations, or attributes
A transformation can also add information to the model or
remove information from it.
Model Transformation - Example
Refactoring
A refactoring is a transformation of the source code that
improves its readability or modifiability without changing
the behavior of the system
25
Forward Engineering - Example
Reverse Engineering
Reverse engineering is applied to a set of source code elements and results in a set
of model elements
Purpose of this type of transformation is to recreate the model for an existing
system, either because
The model was lost or never created, or