Tải bản đầy đủ (.pdf) (23 trang)

Bài giảng Nhập môn công nghệ phần mềm: Chương 6 - Nguyễn Minh Huy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 23 trang )

Kiến trúc phần mềm
GV. Nguyễn Minh Huy

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
1


Nội dung
Các khái niệm cơ bản
bản..
Các mô hình kiến trúc
trúc..
Công nghệ phân tán.
tán.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
2


Nội dung
Các khái niệm cơ bản
bản..
Các mô hình kiến trúc


trúc..
Công nghệ phân tán.
tán.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
3


Các khái niệm cơ bản
Thiết kế phần mềm là gì
gì?
?
Trả lời câu hỏi HOW
HOW..
Phác thảo cách hiện thực hóa yêu cầu
cầu..
Thiết kế kiến trúc
trúc:: subsub-systems, architecture model.
Thiết kế thành phần
phần:: màn hình
hình,, đối tượng
tượng,, dữ liệu
liệu..
Thiết kế xử lý:
lý: hiện thực hóa kịch bản Use Case.
VISION?

-Need 1
-Need 2

Stakeholders

WHAT?
-Req 1
-Req 2

Business Analyst

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

HOW?
-Architecture
-Elements
-Processing

Designer/Architect

/>
4


Các khái niệm cơ bản
Kiến trúc phần mềm là gì
gì?
?

Chương trình đơn giản
một thành phần
phần..
Chương trình phức tạp
nhiều thành phần con.
Những câu hỏi về thành phần con:
Được tổ chức
chức,, sắp xếp thế nào
nào?
?
Tương tác ra sao
sao?
?
Cấu tạo bên trong
trong?
?

Kiến trúc phần mềm
Bản mô tả cấu tạo,
tạo, tương tác
bên trong của phần mềm
mềm..

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
5



Các khái niệm cơ bản
Tầm quan trọng của kiến trúc
trúc::
Ảnh hưởng hiệu quả hoạt động
động::
Tốc độ xử lý (performance).
Tính ổn định (reliability).
Tính bảo mật (security).
Tính chịu lỗi (fault
(fault--tolerance).

Ảnh hưởng chi phí
phí::
Khả năng triển khai
khai..
Khả năng vận hành
hành..
Khả năng bảo trì
trì..

Ảnh hưởng thiết kế và cài đặt
đặt..

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
6



Các khái niệm cơ bản
Thiết kế kiến trúc
trúc::
Hoạt động đầu tiên của pha thiết kế.
kế.
Xác định khung sườn phần mềm
mềm..
Các bước thực hiện
hiện::
Bổ dọc
dọc:: xác định sub
sub--systems.
Bổ ngang
ngang:: lựa chọn architecture model.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
7


Các khái niệm cơ bản
“Bổ dọc
dọc”” phần mềm
mềm::
Chia phần mềm thành các sub

sub--system.
Hệ thống con nằm trong phần mềm
mềm..
Phân hệ của phần mềm
mềm..
Nhóm các chức năng liên quan với nhau.
nhau.
Phần mềm
Phần mềm

Chức Chức Chức Chức
năng năng năng năng
1
2
3
4

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

Phần mềm
Phân hệ 1

Phân hệ 2

Chức Chức Chức
năng năng năng
1
2

4

Chức
năng
3

/>
8


Các khái niệm cơ bản
“Bổ dọc
dọc”” phần mềm
mềm::
Tiêu chí phân chia sub
sub--system:
Bảo mật người dùng
dùng..
Chức năng dùng chung
chung..
Quản lý thư viện
Thủ thư

Quản lý thư viện
Tra
cứu
sách

Nhập
Mượn độc

giả
sách
mới

Nhập
sách
mới

Nhập
độc
giả
mới

Nhập
sách
mới

Khách

Độc giả

Tra
cứu
sách

Mượn
sách

CSDL


Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
9


Các khái niệm cơ bản
“Bổ ngang
ngang”” phần mềm
mềm::
Phân tầng xử lý các chức năng
năng..
Dựa theo các mô hình kiến trúc
trúc..

Các mô hình kiến trúc
trúc::
Mô hình đơn lập.
lập.
Mô hình phân tầng
tầng::
Mô hình 2-Tầng (Client
(Client--Server).
Mô hình 3-Tầng.
Mô hình Peer
Peer--To
To--Peer.


Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

Phần mềm
Phân hệ 1
Tầng A
Chức Chức Chức
năng năng năng
1A
2A
4A
Tầng B
Chức Chức Chức
năng năng năng
1B
2B
4B

/>
10


Nội dung
Các khái niệm cơ bản
bản..
Các mô hình kiến trúc.
trúc.
Công nghệ phân tán.
tán.


Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
11


Các mô hình kiến trúc
Mô hình đơn lập:
lập:
Không phân tầng xử lý.
lý.
Các thành phần tự do tương tác
tác..
Ưu điểm
điểm::
Dễ lập trình và triển khai
khai..
Tốc độ xử lý.
lý.

Nhược điểm
điểm::
Khó bảo trì
trì,, nâng cấp
cấp..
Khó chia sẻ dữ liệu
liệu..


Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
12


Các mô hình kiến trúc
Mô hình Client
Client--Server:
Phân làm hai tầng
tầng::

Server

Server:

Thư viện
xử lý

Cung cấp dịch vụ.
vụ.
Dữ liệu
liệu,, thư viện
viện..
Chia sẻ,
sẻ, dùng chung
chung..


Client:
Sử dụng dịch vụ.
vụ.
Giao diện
diện,, thư viện
viện..
Phân tán.
tán.

Client
Màn
hình

Thư viện
xử lý

Tương tác giữa các thành phần
phần::
Trong phân hệ:
hệ: tự do tương tác
tác..
Giữa hai phân hệ:
hệ: tương tác 1 chiều từ client đến server.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>

13


Các mô hình kiến trúc
Mô hình Client
Client--Server:
Mô hình Thin
Thin--Client:
Server đảm trách dữ liệu + xử lý.
lý.
Client chỉ lo giao diện người dùng
dùng..
Dump terminal.

Mô hình Fat
Fat--Client:
Server đảm trách dữ liệu
liệu..
Client lo toàn bộ xử lý + giao diện người dùng
dùng..

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
14


Các mô hình kiến trúc

Mô hình Client
Client--Server:
Ưu điểm
điểm::
Dữ liệu chia sẻ và đồng bộ.
bộ.
Hạn chế tương tác
Cô lập lỗi client
client--server.
Dễ bảo trì
trì,, nâng cấp
cấp..

Nhược điểm
điểm::
Chi phí triển khai
khai..
Tốc độ xử lý.
lý.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
15


Các mô hình kiến trúc
Mô hình 3-Tầng (3

(3--Tiers):
Phân làm ba tầng
tầng::

Data Layer

Tầng dữ liệu (data layer).
Dịch vụ dữ liệu
liệu..
Data server.

Tầng xử lý (business layer).
Thư viện xử lý.
lý.
Application server.

Tầng giao diện (presentation layer).
Giao diện người dùng
dùng..
Thin--Client.
Thin

Business Layer
Thư viện
xử lý

Client

Quy tắc tương tác “thang máy
máy”.

”.
Không tương tác vượt tầng
tầng..

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

Màn
hình

/>
16


Các mô hình kiến trúc
Mô hình 3-Tầng (3
(3--Tiers):
Mô hình đa tầng
tầng::

Data Layer

Mở rộng mô hình 3-Tầng.
Phân làm nhiều tầng xử lý.
lý.
Dùng trong ứng dụng web.

Ưu điểm
điểm::

Tương tự mô hình Client
Client--Server.
Tầng xử lý riêng biệt
biệt..

Business Layer
Thư viện
xử lý

Nhược điểm
điểm::
Tương tự mô hình Client
Client--Server.

Client
Màn
hình

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
17


Các mô hình kiến trúc
Mô hình Peer
Peer--to
to--Peer:

Là mô hình đơn lập phân tán.
tán.
Triển khai trên nhiều máy (nút
nút).
).
Các nút tương tác được với nhau.
nhau.
Mỗi nút đóng vai Client
Client--Server.
Chia sẻ dữ liệu + xử lý trên toàn bộ nút
nút..

Ưu điểm
điểm::
Không cần server trung tâm
tâm..
Không gian lưu trữ và khả năng xử lý dàn trải
trải..
Dễ triển khai
khai..

Nhược điểm
điểm::
Khó lập trình và quản lý dữ liệu
liệu..
Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>

18


Nội dung
Các khái niệm cơ bản
bản..
Các mô hình kiến trúc
trúc..
Công nghệ phân tán.
tán.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
19


Công nghệ phân tán
Middleware:
Các thành phần trong hệ phân tán giao tiếp thế nào
nào?
?
Hệ thống đứng giữa điều phối
phối..
Server
Đối tượng
Server
Học sinh Middleware


Client
Client
Middleware

Màn hình
Học sinh

Các chuẩn phổ biến
biến::
CORBA (C
(Common Object Request Broker Architecture).
COM (C
(Component Object Model).
JavaBeans.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
20


Công nghệ phân tán
Web Service:
Thư viện lập trình online.
Cung cấp dạng dịch vụ.
vụ.
Truy xuất qua internet.

Các dịch vụ phổ biến
biến::

Math Services

Weather Services

Web Browser 1

Internet
Web Browser 2

Map Services

Math services.
Google map.
Amazon services.

Cloud computing.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
21


Bài tập
Bài tập thiết kế kiến trúc

trúc::
Hệ thống “Online Bookstore”.
Công việc
việc::
Bổ dọc
dọc::
Xác định stakeholders & yêu cầu tổng quan
quan..
Gom nhóm các yêu cầu để tăng bảo mật và tốc độ xử lý.
lý.
Vẽ các phân hệ.
hệ.

Bổ ngang
ngang::
Lựa chọn mô hình kiến trúc
trúc..
Sử dụng ít nhất 1 web service.
Vẽ kiến trúc hệ thống theo mô hình lựa chọn.

Nhập môn Công Nghệ
Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
22


Ví dụ Kiến trúc phần mềm
Quản lý học sinh

Phân hệ Giáo viên

Phân hệ Học sinh

Tầng giao diện

Tầng giao diện

Màn hình
Nhập điểm

Màn hình
Tra cứu

Màn hình
Xem điểm

Tầng xử lý
BangDiem

HocSinh

GiaoVien

LopHoc

Tầng dữ liệu
DataLib

Nhập môn Công Nghệ

Phần Mềm - Nguyễn Minh Huy
CuuDuongThanCong.com

/>
23



×