0% found this document useful (0 votes)
15 views50 pages

Architectural Design in Software Engineering

The document outlines the importance of architectural design in software engineering, detailing its role in organizing software systems and defining their structure and components. It discusses various architectural patterns, views, and the decision-making process involved in architectural design, emphasizing the impact on system performance, security, and maintainability. Key points include the use of architectural patterns for knowledge reuse and the necessity of documenting architectures from multiple perspectives.

Uploaded by

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

Architectural Design in Software Engineering

The document outlines the importance of architectural design in software engineering, detailing its role in organizing software systems and defining their structure and components. It discusses various architectural patterns, views, and the decision-making process involved in architectural design, emphasizing the impact on system performance, security, and maintainability. Key points include the use of architectural patterns for knowledge reuse and the necessity of documenting architectures from multiple perspectives.

Uploaded by

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

DICT221

Software
Engineering
221
ARCHITECTURAL DESIGN 1
Lesson 6:
Architectural Design

PREPARED BY: DR. M. CHERE

ARCHITECTURAL DESIGN 2
Fundamental Software Engineering
Activities

Software specification
Software development
Software validation
Software evolution

ARCHITECTURAL DESIGN 3
Objectives
▪To understand why the architectural design of
software is important

▪To understand the decisions that have to be


made about the software architecture during
the architectural design process

▪To learn how to use Application-Specific


architectural patterns in transaction processing
and language processing systems

ARCHITECTURAL DESIGN 4
Content
• Architectural design decisions
• Architectural views
• Architectural patterns
• Application architectures

ARCHITECTURAL DESIGN 5
Architectural Design

Architectural design is the first stage in the software design process

It is concerned about:

➢ How a software system should be organised

➢ Designing the overall structure of that system

➢ It 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 describes how the


system is organized
[Link]

ARCHITECTURAL DESIGN 6
Architectural Design

▪It determines the structure and features of the components

▪Data flow patterns

▪How these components communicate with each other to


share data

ARCHITECTURAL DESIGN 7
Architectural Design
According to IEEE:

▪ Architectural design is a process of dеfining a collection of hardware and


softwareе components and their intеrfacеs to establish the framework for the
dеvеlopmеnt of a computer system

▪ Architectural design specifies the componеnts including thеir


inputs, outputs, functions, and thе intеraction bеtwееn thеm necessary for
developing a computer-based systеm.

▪ Thе architectural dеsign procеss involvеs:

◦ Identifying thе componеnts i. е. subsystеms that comprisе thе systеm and


structurе of thе subsystem and thе intеraction bеtwееn thеm

ARCHITECTURAL DESIGN 8
Advantages of Software Architecture

• Three advantages for designing and documenting software architecture:

Stakeholder System Analysisi Large-scale Resuse


Communication
Architecture may be used Analysis of whether or not The architecture may be
as a focus of discussion the system meets critical reusable across a range
by the system requirements such as of systems.
stakeholders • Performance
• Reliability
• Maintainability

ARCHITECTURAL DESIGN 9
Architectural Design
Performance
A good software architecture Maintainability
design hеlps dеfіnе: Quality
Scalability

Thе goal is to еnsurе that your softwarе is flеxiblе еnough to adapt, as


nеw requirements еmеrgе

Develop
Tеst
With architеctural dеsign, you can Dеploy
easily Maintain thе softwarе, whilе rеducing thе risk
of еrrors, bugs, and othеr problems arising
during thе SDLC procеss
ARCHITECTURAL DESIGN 10
Architectural Design

System architectures are often modeled informally


using simple block diagrams

Each box in the diagram represents a component

Boxes within boxes indicate that the component has


been decomposed into subcomponents

Arrows mean that data and or control signals are


passed from component to component in the direction The architecture of a packing robot control system

of the arrows
ARCHITECTURAL DESIGN 11
Architectural Design Decisions

ARCHITECTURAL DESIGN 12
Architectural Design Decisions

Architectural design
▪Is a creative process in which you design a system organisation that
will satisfy the functional and non-functional requirements of a
system
▪A series of decisions to be made rather than a sequence of
activities

ARCHITECTURAL DESIGN 13
Architectural Design Decisions
Questions system architects must ask:
During the architectural design

process, system architects have to

make several structural decisions

that strongly affect the system and

its development process

ARCHITECTURAL DESIGN 14
Architectural Design Decisions

15
ARCHITECTURAL DESIGN
Software Architecture

Defines the organisation of the system


◦ Includes all system components

◦ How the components interact with each other

◦ The environment in which they operate

◦ System evolution into the future

ARCHITECTURAL DESIGN 16
Software Architecture

A generic layered architecture

The software architecture of the system


may be based on a particular
architectural pattern or style such as:

◦ Client–server organisation

◦ Layered architecture

ARCHITECTURAL DESIGN 17
Layered architecture

A software design pattern that organises


an application into
➢ Distinct
➢ Horizontal layers, each with a
specific responsibility
Each layer communicates with adjacent
layers, creating a hierarchical structure
[Link]

ARCHITECTURAL DESIGN 18
Architecture
and System Characteristics
The choice of architectural style and structure should depend on the non-functional requirements of the system:

Non-functional Requirements
If performance is a critical requirement, the architecture should be designed to localize critical operations within a
Performance small number of components, with these components deployed on the same computer rather than distributed
across the network

If security is a critical requirement, a layered structure for the architecture


Security should be used, with the most critical assets protected in the innermost layers and a high level of security validation
applied to these layers.

If safety is a critical requirement, the architecture should be designed to co-locate safety-related operations in a
Safety single component or a small number of components. This reduces the costs and problems of safety validation and
may make it possible to provide related protection systems that can safely shut down the system in the event of
failure

ARCHITECTURAL DESIGN 19
Architecture
and System Characteristics
The choice of architectural style and structure should depend on the non-functional requirements of the system:

Non-functional Requirements
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.
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

ARCHITECTURAL DESIGN 20
Architectural Views

ARCHITECTURAL DESIGN 21
Architectural Views

Software architectural views are representations of the overall


architecture of a software system that is meaningful to one or more
stakeholders

They enable the architecture to be communicated to and understood


by the stakeholders so they can verify that the system will address
their concerns
02052024
22
[Link]
Architectural Views

Architectural models of a software system can be used in


discussions about the software requirements or design

Alternatively, they may be used to document a design so that it


can be used as a basis or more detailed design and system
implementation

02052024
23
[Link]
Architectural Views

Two important questions to ask:


➢ What views or perspectives are helpful when designing and
documenting a system’s architecture?

➢ What representations should be used for describing


architectural models?

02052024
24
[Link]
Fundamental Architectural Views

• There are different opinions as to what views are required

•Krutchen (Krutchen 1995), in his well-known 4 +1 view model of


software architecture, suggests

•four fundamental architectural views, which can be linked


through common use cases or scenarios

ARCHITECTURAL DESIGN 25
Types of Architectural Views
Architectural View Description

Logical view It shows the system's functionality and how it is organised into components.
It is typically represented using diagrams such as class diagrams, sequence
diagrams, and activity diagrams.
Process view It shows how, at runtime, the system is composed of interacting processes.
This view is useful for making judgments about non-functional system
characteristics such as performance and availability.
Development view Shows how the software is decomposed for development; that is, it shows the
breakdown of the software into components that are implemented by a single
developer or development team
This view is useful for software managers and programmers
Physical view Shows the system hardware and how software components are distributed
across the processors in the system. This view is useful for systems engineers
planning a system deployment. 26
Types of Architectural Views

27
ARCHITECTURAL DESIGN
Architectural Patterns

ARCHITECTURAL DESIGN 28
Architectural Patterns

Patterns are commonly used for knowledge presentation, sharing, and reuse

Architectural patterns were proposed in the 1990s called architectural styles

They are stylized descriptions of good design practices that have been tried and tested in
different environments.

Patterns should include information about when they are and when they are not helpful.

Patterns may be represented using tabular and graphical descriptions.

ARCHITECTURAL DESIGN 29
Layered Architecture Pattern
The Layered Architecture pattern:
A generic layered architecture
▪ This layered approach supports the incremental development of

systems

▪ As a layer is developed, some of the services provided by that

layer may be made available to users

▪ The architecture is also changeable and portable i.e. If its interface

is unchanged, a new layer with extended functionality can replace an

existing layer without changing other parts of the system

ARCHITECTURAL DESIGN 30
Architecture of the iLearn System

Has a four-layer architecture


that follows this pattern

ARCHITECTURAL DESIGN 31
Client-Server Architecture

Refers to an organised set of services, associated servers and


clients that access and use the services
▪ A network model where clients request services or data
from a server.
▪ The server then processes the request and responds to
the client
▪ This model is widely used in various applications, from
web browsing to email communication [Link]

ARCHITECTURAL DESIGN 32
Client-Server Architecture

The major components of this model are:


▪ A set of servers that offer services to other components

▪ Examples of servers include print servers that offer printing services, file servers
that offer file management services, and a compile server that offers programming
language compilation services.

▪ Servers are software components, and several servers may run on the same
computer

ARCHITECTURAL DESIGN 33
Client-Server Architecture

▪A set of clients that call on the services offered by servers


▪ There will typically be several instances of a client program executing
concurrently on different computers

▪ A network that allows the clients to access these services

▪ Client–server systems are usually implemented as distributed systems,


connected using Internet protocols

ARCHITECTURAL DESIGN 34
Client-Server Architecture

▪A network that allows the clients to access these services


▪ Client–server systems are usually implemented as distributed
systems, connected using Internet protocols

ARCHITECTURAL DESIGN 35
Client-Server Architecture for a Film Library

ARCHITECTURAL DESIGN 36
Application Architecture

ARCHITECTURAL DESIGN 37
Application Architecture

Application systems are intended to meet a business or an organizational


need

Businesses operating in the same sector use common sector-specific


applications

These commonalities have led to the development of software architectures


that describe the structure and organization of particular types of software
systems
ARCHITECTURAL DESIGN 38
Application Architecture

Application architectures summarize the principal characteristics of a class of


systems, e.g., in real-time systems, there might be generic architectural models of
different system types, such as data collection systems or monitoring systems

The application architecture may be reimplemented when developing new systems


➢ However, for many business systems, application architecture reuse is only
understood when generic application systems are configured to create a new
application, e.g. Enterprise Resource Planning Systems

ARCHITECTURAL DESIGN 39
Application Architecture

There are various ways to use models of application architectures


➢ As a starting point for the architectural design process
➢ If, as a developer, you are not unfamiliar with the type of application you are
developing, you can base your initial design on a generic application
architecture
➢ As a design checklist
➢ If you have developed an architectural design for an application system, you
can compare this with the generic application architecture. You can check
that your design is consistent with the generic architecture

ARCHITECTURAL DESIGN 40
Application Architecture

➢ As a way of organizing the work of the development team


➢ The application architectures identify stable structural features of the system architectures, and
in many cases, it is possible to develop these in parallel
➢ As a means of assessing components for reuse
➢ If you have components, you might be able to reuse, you can compare these with the generic
structures to see whether there are comparable components in the application architecture
➢ As a vocabulary for talking about applications
➢ If you are discussing a specific application or trying to compare applications, then you can use
the concepts identified in the generic architecture to talk about these applications

ARCHITECTURAL DESIGN 41
Transaction Processing Systems

Transaction processing systems are designed to process user requests for information from a
database or requests to update a database

A database transaction is part of a sequence of operations and is treated as a single unit

All of the operations in a transaction have to be completed before the database changes are made
permanent
◦ This ensures that failure of operations within a transaction does not lead to inconsistencies in
the database

ARCHITECTURAL DESIGN 42
Transaction Processing Systems

Transaction processing systems are interactive systems in which users make asynchronous service
requests

The Structure of Transaction Processing Applications:

ARCHITECTURAL DESIGN 43
Application Architecture

▪Transaction processing (TP) systems are designed to process user


requests for information from a database or requests to update a
database

▪Transaction processing systems may be organized as a ‘pipe and


filter’ architecture with system components responsible for input,
processing, and output

ARCHITECTURAL DESIGN 44
Software Architecture of an ATM System

First, a user requests the system through an I/O processing component

Some application-specific logic processes the request

A transaction is created and passed to a transaction manager, usually embedded in the


database management system

After the transaction manager has ensured that the transaction is properly completed, it
signals to the application that processing has finished

Transaction processing systems may be organized as a “pipe and filter” architecture, with
system components responsible for input, processing, and output: e.g., a banking system

ARCHITECTURAL DESIGN 45
Software Architecture of an ATM System

ARCHITECTURAL DESIGN 46
Key Points

A software architecture describes how a software system is organized. The architecture


influences properties of a system such as performance, security, and availability used

Architectural design decisions include decisions on the type of application, the


distribution of the system, the architectural styles to be used, and how the architecture
should be documented and evaluated

Architectures may be documented from several different perspectives or views. Possible


views include a conceptual view, a logical view, a process view, a development view, and a
physical view

ARCHITECTURAL DESIGN 48
Key Points

Architectural patterns are a means of reusing knowledge about generic system


architectures. They describe the architecture, explain when it may be used, and point out
its advantages and disadvantages

Commonly used Architectural patterns include model-view-controller, layered


architecture, repository, client-server, and pipe and filter

Transaction processing systems are interactive systems that allow information in a


database to be remotely accessed and modified by several users. Information systems
and resource management systems are examples of transaction processing systems

ARCHITECTURAL DESIGN 49
Food for Thought
Develop an Online Student Course Registration System (OSCRS)
➢ Describe the types of architectural views

➢ Apply the 4+1 model for designing the OSCRS

ARCHITECTURAL DESIGN 50
Next Lesson: Design & Implementation

51

You might also like