Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
59 views

Lecture 17 - Software Architecture

The document defines software architecture as the fundamental organization of a system comprising its components, relationships between components, and principles guiding its design and evolution. It discusses common architectural patterns including layered, repository, client-server, and pipe-and-filter architectures. The document also covers model transformations, refactoring, and the relationships between forward and reverse engineering.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Lecture 17 - Software Architecture

The document defines software architecture as the fundamental organization of a system comprising its components, relationships between components, and principles guiding its design and evolution. It discusses common architectural patterns including layered, repository, client-server, and pipe-and-filter architectures. The document also covers model transformations, refactoring, and the relationships between forward and reverse engineering.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Software Architecture, Definition

 DEF1: The architecture of a software system defines the


system in terms of components/sub-systems and
interactions among those components.

 DEF2: The software architecture of a system is the


structure of the system, which comprise software
elements, the externally visible properties of those
elements, and the relationships among them

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

[IEEE Standard on the Recommended Practice for


Architectural Descriptions, 2000]

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

•Information System, Programming Environments,


Graphical Editors, AI Knowledge Bases, Reverse
Engineering System are the examples of Repository
Architecture 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

 Refactoring aims at improving the design of a working


system by focusing on a specific field or method of a class
Refactoring - Example
Forward Engineering
 Forward engineering produces a source code that corresponds
to a model (e.g. Use Case model, class model, sequence model
etc)
 Many modeling constructs, such as attribute, can be
mechanically mapped to source code constructs supported by
the selected programming language (e.g. Java, C#)
 While the bodies and additional private methods are added by
developers
22
Reverse Engineering
 Reverse engineering produces a model that corresponds to
source code

 This transformation is used when the design of the system


has been lost and must be recovered from the source code
Forward and Reverse Engineering
Forward Engineering
 Forward engineering is applied to a set of model elements
and results in a set of corresponding source code statements,
i.e. a class declaration, a Java/C# expression etc
 The purpose of forward engineering is to:
 Maintain a strong correspondence between the design models
and the code
 Reduce the number of errors introduced during implementation

 Decrease implementation effort

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

 It became out of sync with the source code

 Reverse engineering is essentially an inverse transformation of forward engineering

 Reverse engineering creates:


 A UML class for each class declaration statement

 Adds an attribute for each field

 Adds an operation for each method

You might also like