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