0% found this document useful (0 votes)
28 views29 pages

Architectural Design in Software Systems

Advanced information system

Uploaded by

sun.hope4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views29 pages

Architectural Design in Software Systems

Advanced information system

Uploaded by

sun.hope4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Advanced Systems Analysis and Design – MSIS811

Dr. Asif Khan

Architectural Design

19/12/2024 Chapter 6 Architectural Design 1


Topics covered

 Architectural design decisions


 Architectural views
 Architectural patterns
 Application architectures

19/12/2024 Chapter 6 Architectural Design 2


Architectural design

 Architectural design is concerned with


understanding how a software system should be
organized and designed the overall structure of that
system.
 Architectural design is the critical link between
design and requirements engineering, as it identifies
the main structural components in a system and the
relationships between them.
 The output of the architectural design process is an
architectural model that describes how the system is
organized as a set of communicating components.

19/12/2024 Chapter 6 Architectural Design 3


Architectural abstraction

Architecture can be designed at two levels of abstraction


 Architecture in the small is concerned with the
architecture of individual programs. At this level, we
are concerned with the way that an individual
program is decomposed into components.
 Architecture in the large is concerned with the
architecture of complex enterprise systems that
include other systems, programs, and program
components. These enterprise systems are
distributed over different computers, which may be
owned and managed by different companies.

19/12/2024 Chapter 6 Architectural Design 4


Individual components implement the functional system
requirements

The nonfunctional requirements depend on the system


architecture—the way in which these components are
organized and communicate

In many systems, non-functional requirements are also


influenced by individual components, but the
architecture of the system is the dominant influence

19/12/2024 Chapter 6 Architectural Design 5


Advantages of explicit architecture

 Stakeholder communication
 Architecture may be used as a focus of discussion by
system stakeholders.
 System analysis
 Means that analysis of whether the system can meet its
non-functional requirements is possible.
 Large-scale reuse
 The architecture may be reusable across a range of
systems
 Product-line architectures may be developed.

19/12/2024 Chapter 6 Architectural Design 6


Architectural representations

 Simple, informal block diagrams showing entities


and relationships are the most frequently used
method for documenting software architectures.
 But these have been criticized because they lack
semantics, do not show the types of relationships
between entities nor the visible properties of entities
in the architecture.
 Depends on the use of architectural [Link]
requirements for model semantics depends on how
the models are used.

19/12/2024 Chapter 6 Architectural Design 7


Use of architectural model

 As a way of facilitating discussion about the system


design
 A high-level architectural view of a system is useful for
communication with system stakeholders and project
planning because it is not cluttered with detail.
Stakeholders can relate to it and understand an abstract
view of the system. They can then discuss the system as a
whole without being confused by detail.
 As a way of documenting an architecture that has
been designed
 The aim here is to produce a complete system model that
shows the different components in a system, their
interfaces and their connections.
19/12/2024 Chapter 6 Architectural Design 8
Architectural design decisions

19/12/2024 Chapter 6 Architectural Design 9


Architectural design decisions

 Architectural design is a creative process so the


process differs depending on the type of system
being developed, background and experience of
architect and specific system requirements.
 However, a number of common decisions span all
design processes and these decisions affect the
non-functional characteristics of the system.

19/12/2024 Chapter 6 Architectural Design 10


Architectural design decisions

19/12/2024 Chapter 6 Architectural Design 11


Architecture reuse

 Systems in the same domain often have similar


architectures that reflect domain concepts.
 Application product lines are built around a core
architecture with variants that satisfy particular
customer requirements.
 The architecture of a system may be based on a
particular architectural pattern or style.
 An architecture pattern is a description of a system
organization, such as a client–server organization or
a layered architecture

19/12/2024 Chapter 6 Architectural Design 12


Architecture and non-functional
requirements
 Performance
 If performance is a critical requirement, the architecture
should be designed to localize critical operations within
a small number of components, with these components
all deployed on the same computer rather than
distributed across the network.
 Large components rather than small, fine grain
components reduce communication
 Security
If security is a critical requirement, a layered structure
for the architecture should be used, with the most
critical assets protected in the innermost layers, with
a high level of security validation applied to these
layers
19/12/2024 Chapter 6 Architectural Design 13
 Safety
If safety is a critical requirement, the architecture should be
designed so that safety-related operations are all located in
either a single component or in a small number of components

 Availability
If availability is a critical requirement, the architecture should be
designed to include redundant components so that it is possible
to replace and update components without stopping the system

 Maintainability
If maintainability is a critical requirement, the system architecture
should be designed using fine-grain, self-contained components
that may readily be changed

19/12/2024
Evaluating anChapter
architectural
6 Architectural Design
design is difficult 14
Architectural views

19/12/2024 Chapter 6 Architectural Design 15


Architectural views

 What views or perspectives are useful when designing


and documenting a system’s architecture?
 What notations should be used for describing
architectural models?
 Each architectural model only shows one view or perspective of
the system rather than all details of system architecture
 It might show how a system is decomposed into modules,
how the run-time processes interact or the different ways in
which system components are distributed across a network.
For both design and documentation, you usually need to
present multiple views of the software architecture.

19/12/2024 Chapter 6 Architectural Design 16


Architectural views

19/12/2024 Chapter 6 Architectural Design 17


4 + 1 view model of software architecture

 A logical view
 This shows the key abstractions in the system as objects or
object classes.
 It should be possible to relate the system requirements to
entities in this logical view.
 A process view
 This which shows how, at run-time, the system is composed
of interacting processes.
 This view is useful for making judgments about
nonfunctional system characteristics such as performance
and availability

19/12/2024 Chapter 6 Architectural Design 18


 A development view
• This view shows how the software is decomposed for
development.
• It shows the breakdown of the software into
components that are implemented by a single developer
or development team.
 A physical view
• This view shows the system hardware and how software
components are distributed across the processors in
the system.
 Scenarios
• Small set of use cases or scenarios to describe sequences of
interactions between objects and between processes.
19/12/2024 Chapter 6 Architectural Design 19
Representing architectural views

 Some people argue that the Unified Modeling


Language (UML) is an appropriate notation for
describing and documenting system architectures
 UML does not include abstractions appropriate for
high-level system description.
 Architectural description languages (ADLs) have
been developed but are not widely used

19/12/2024 Chapter 6 Architectural Design 20


Architectural patterns

19/12/2024 Chapter 6 Architectural Design 21


Architectural patterns

 Patterns are a means of representing, sharing and


reusing knowledge.
 An architectural pattern is a stylized description of
good design practice, which has been tried and
tested in different environments.
 Patterns should include information about when
they are and when the are not useful.
 Patterns may be represented using tabular and
graphical descriptions.

19/12/2024 Chapter 6 Architectural Design 22


The Model-View-Controller (MVC) pattern
Name MVC (Model-View-Controller)

Description Separates presentation and interaction from the system data. The system is
structured into three logical components that interact with each other. The
Model component manages the system data and associated operations on
that data. The View component defines and manages how the data is
presented to the user. The Controller component manages user interaction
(e.g., key presses, mouse clicks, etc.) and passes these interactions to the
View and the Model.

Example Next figure shows the architecture of a web-based application system


organized using the MVC pattern.
When used Used when there are multiple ways to view and interact with data. Also used
when the future requirements for interaction and presentation of data are
unknown.
Advantages Allows the data to change independently of its representation and vice versa.
Supports presentation of the same data in different ways with changes made
in one representation shown in all of them.
Disadvantages Can involve additional code and code complexity when the data model and
interactions are simple.

19/12/2024 Chapter 6 Architectural Design 23


Web application architecture using MVC

19/12/2024 Chapter 6 Architectural Design 24


Layered architecture

 Used to model the interfacing of sub-systems.


 Organizes the system into a set of layers (or abstract
machines) each of which provide a set of services.
 Supports the incremental development of sub-
systems in different layers. When a layer interface
changes, only the adjacent layer is affected.
 However, often artificial to structure systems in this
way.

19/12/2024 Chapter 6 Architectural Design 25


A generic layered architecture

19/12/2024 Chapter 6 Architectural Design 26


Client-server architecture

 Client–server architectures are usually thought of as


distributed systems architectures.
 logical model of independent services running on separate
servers can be implemented on a single computer.
 Services and servers can be changed without
affecting other parts of the system.
 Set of clients which call on these services.
 Network which allows clients to access servers.

19/12/2024 Chapter 6 Architectural Design 27


The Client–server pattern

Name Client-server

Description In a client–server architecture, the functionality of the system is


organized into services, with each service delivered from a
separate server. Clients are users of these services and access
servers to make use of them.
Example Figure 6.11 is an example of a film and video/DVD library
organized as a client–server system.
When used Used when data in a shared database has to be accessed from a
range of locations. Because servers can be replicated, may also
be used when the load on a system is variable.
Advantages The principal advantage of this model is that servers can be
distributed across a network. General functionality (e.g., a printing
service) can be available to all clients and does not need to be
implemented by all services.
Disadvantages Each service is a single point of failure so susceptible to denial of
service attacks or server failure. Performance may be
unpredictable because it depends on the network as well as the
system. May be management problems if servers are owned by
different organizations.

19/12/2024 Chapter 6 Architectural Design 28


A client–server architecture for a film library

19/12/2024 Chapter 6 Architectural Design 29

You might also like