0% found this document useful (0 votes)
130 views32 pages

Architecture Design Overview

The document discusses application architecture, focusing on client-server architecture and advances like virtualization and cloud computing. It describes how architecture design is informed by nonfunctional requirements. A hardware and software specification defines the technical resources needed to implement the system, including operating systems, servers, storage, and minimum requirements for each hardware component.

Uploaded by

Vy Nguyễn
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)
130 views32 pages

Architecture Design Overview

The document discusses application architecture, focusing on client-server architecture and advances like virtualization and cloud computing. It describes how architecture design is informed by nonfunctional requirements. A hardware and software specification defines the technical resources needed to implement the system, including operating systems, servers, storage, and minimum requirements for each hardware component.

Uploaded by

Vy Nguyễn
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
You are on page 1/ 32

Software Development Life

Cycle

Chapter 8. Architecture Design

8-1
Chapter 8 Outline

Elements of an architecture design.


Creating an architecture design.
Hardware and software
specification.

8-2
INTRODUCTION

 Architecture design
 Plans for how the system will be distributed across multiple
computers and what hardware, operating system software,
and application software will be used for each computer.
 Key factors in architecture design
 Nonfunctional requirements developed early in the
analysis phase play a key role in architecture design.
 Hardware and software specification
 Defines what hardware and software are needed for the
new system.

8-3
ELEMENTS OF AN ARCHITECTURE DESIGN

 The objective of architecture design is to determine how the


software components of the information system will be
assigned to the hardware devices of the system.

8-4
Architectural Components

 The major architectural components of any system are the software and the
hardware.
 All software systems can be divided into four basic functions:
- Data storage.

- Data access logic: the processing required to


access stored data.
- Application logic: the logic documented in the
DFDs, use cases, and functional requirements.
- Presentation logic: the display of information to the user and the
acceptance of the user’s commands.
8-5
(cont’d)

 The three primary hardware components:


- Client computers: Input-output devices employed by
users (e.g., PCs, laptops, handheld devices, smart phones)
- Servers: Larger multi-user computers used to store
software and data.
- The network: Connects the computers.

8-6
Client-Server Architectures

Client-server architectures balance the processing


between client devices and one or more server
devices.
The client is responsible for the presentation logic,
whereas the server is responsible for the data
access logic and data storage.
A thick or fat client contains all or most of
application logic; whereas a thin client contains a
small portion of the application logic. 8-7
(cont’d)

8-8
(cont’d)

 Client-server architectures have four important benefits.


- Scalable
- Can support different types of clients and servers through
middleware.
- The presentation logic, the application logic, and the data
processing logic can be independent.
- If a server fails, only the applications requiring that sever are
affected.
 The major limitation of client-server architectures is their
complexity.
8-9
Client-Server Tiers

 There are many ways in which the application logic can be


partitioned between the client and the server.
 The arrangement in Figure 8-1 is called two-tiered architecture.

8-10
(cont’d)

 Three-tiered architecture

8-11
(cont’d)

 n-tiered architecture

8-12
Less Common Architectures

Server-Based Architectures

8-13
Client-Based Architectures

8-14
Advances in Architecture Configurations

 Advances in hardware, software, and networking have given


rise to a number of new architecture options.
- Virtualization.
- Cloud computing.

8-15
Virtualization

 Virtualization refers to a creation of a virtual


device or resource, such as a server or storage
device.
 Server virtualization involves partitioning a
physical server into smaller virtual servers.
 Storage virtualization involves combining
multiple network storage devices into what
appears to be single storage unit.

8-16
Cloud Computing

Cloud computing – everything from computing


power to computing infrastructure, applications,
business processes to personal collaboration can be
delivered as a service wherever and whenever
needed.
The “cloud” can be defined as the set of hardware,
networks, storages, devices, and interfaces that
combine to deliver aspects of computing as a service.

8-17
(cont’d)

 Cloud computing can be implemented in three ways:


- private cloud,
- public cloud, and
- hybrid cloud.
 At this time, cloud computing is in its early stage of
development.

8-18
(cont’d)

 Advantages of cloud computing


1. The resources allocated can be increased or
deceased based on demand.
2. Cloud customers can obtain cloud resources in
a straightforward fashion.
3. Cloud services typically have standardized APIs
(application program interfaces).
4. The cloud computing model enables customers
to be billed for resources as they are used.
8-19
Comparing Architecture Options

 Most systems are built to use the existing infrastructure in the


organization, so often the current infrastructure restricts the
choice of architecture.
 Each of the architectures discussed has its strengths and
weaknesses.
 Client-server architectures are strongly favored on the basis of
the cost of infrastructure.

8-20
CREATING AN ARCHITECTURE DESIGN

 Creating an architecture design begins with the


nonfunctional requirements.
 Refine the nonfunctional requirements into more detailed
requirements for the selection of architecture.
 The nonfunctional requirements and the architecture
design are used to develop the hardware and software
specification.

8-21
Operational Requirements

8-22
Performance Requirements

8-23
Security Requirements

8-24
Cultural and Political Requirements

8-25
Designing the Architecture

In many cases, the technical environment


requirements as driven by the business
requirements define the application architecture.
If the technical environment requirements do not
require the choice of a specific architecture, then
other nonfunctional requirements become
important for designing the architecture.

8-26
(cont’d)

 Nonfunctional Requirements and Their Implications for


Architecture Design

8-27
HARDWARE AND SOFTWARE
SPECIFICATION

 The design phase is also the time to begin selecting and


acquiring the hardware and software that will be needed
for the future system.
 The hardware and software specification is a document
that describes what hardware and software are needed to
support the application.

8-28
(cont’d)

 Sample hardware and software specification

8-29
(cont’d)

 First, you define software

Define the operating system and any special purpose


software
Consider additional costs such as training, warranty,
maintenance, licensing agreements.
 Next, you create a list of the hardware needed
Database servers, network servers, peripheral devices,
clients, backup devices, storage components, and
others.
 Finally, you describe the minimum requirements for each piece of hardware.
8-30
(cont’d)

 Factors in hardware and software selection

8-31
SUMMARY

Application architecture.
- Client-server architecture.
- Advances in architecture configurations: virtualization and cloud computing.

Architecture Design.
- Nonfunctional requirements.

Hardware and software specification.


- A document that describes what hardware and software are needed to
support the application.

8-32

You might also like