Professional Documents
Culture Documents
Cong Nghe Phan Mem - Chuong7
Cong Nghe Phan Mem - Chuong7
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 1
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 2
1
7.2 Thiết kế kiến trúc
Liên quan tới :
Cách thức phần mềm nên được tổ chức và thiết kế cấu trúc tổng
quát của phần mềm tương ứng.
Mối liên kết khắc khe giữa thiết kế và kỹ thuật yêu cầu phần mềm.
Vì nó nhận dạng các thành phần cấu trúc chính yếu trong phần
mềm và các mối quan hệ giữa chúng.
Agile?
Giai đoạn sớm : thiết kế kiến trúc tổng thể phần mềm.
Tái cấu trúc lại kiến trúc phần mềm thường phải trả giá đắt.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 3
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 4
2
Sự trừu tượng kiến trúc
Kiến trúc trong phân mềm nhỏ :
Liên hệ với kiến trúc của các phần mềm riêng lẻ.
Kiến trúc trong phần mềm lớn :
Liên hệ với kiến trúc của hệ thống xí nghiệp phức tạp mà bao
gồm nhiều hệ thống, nhiều chương trình và nhiều thành phần
khác.
Kiến trúc phần mềm rất quan trọng vì nó ảnh hưởng đến các phẩm
chất phần mềm như hiệu suất, độ vững chắc, tính phân tán, độ dễ
bảo trì… của phần mềm.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 5
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 6
3
Các dạng miêu tả kiến trúc
Dạng dùng phổ biến: sơ đồ khối hình thức, đơn lẻ trình bày các
phần tử và mối quan hệ giữa chúng.
Thiếu hụt ngữ nghĩa.
Lược đồ hộp và đường :
Rất trừu tượng, không trình bày được bản chất các mối quan hệ
giữa các thành phần, cũng như các thuộc tính thấy được từ ngoài
của các hệ thống con.
Tuy nhiên, hữu dụng cho việc giao tiếp giữa các bên liên quan và
cho việc xây dựng kế hoạch dự án.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 7
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 8
4
Sự phân rã kiến trúc
Hệ thống phần mềm
Vấn đề về độ phức tạp <=
mối quan hệ giữa các
thành phần.
Mục tiêu :
Tối đa tính kết dính : sự
liên lạc giữa các phần tử
nội bộ
Tối thiểu tính nối ghép : sự
liên lạc giữa các thành
phần khác nhau.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 9
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 10
5
Kiến trúc & Các phẩm chất của phần mềm
Hiệu xuất.
Tối thiểu giao tiếp và nội bộ hóa các hoạt động nguy cấp. Dùng
các thành phần thang độ lớn thay vì thang độ nhỏ.
An ninh :
Dùng kiến trúc phân cấp, trong đó các phần tử nguy cấp được để
ở cấp dưới nhất có thể có.
An toàn
Nội bộ hóa các tính chất nguy cấp về an toàn trong 1 ít hệ thống
con.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 11
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 12
6
Các góc nhìn kiến trúc
Các góc nhìn nào hữu dụng khi thiết kế và lập tài liệu kiến trúc phần
mềm?
Các ký hiệu nào được dùng để diễn tả các mô hình kiến trúc ?
Mỗi mô hình kiến trúc chỉ trình bày được 1 góc nhìn của phần mềm.
Cách phần mềm được chia nhỏ thành các module
Cách các process thời gian chạy tương tác nhau.
Các thành phần hệ thống được phân tán trên mạng.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 13
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 14
7
Mô hình kiến trúc dạng 4+1 view
shows the key abstractions shows how the software is
in the system as objects or decomposed for development.
classes.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 16
8
7.4 Các mẫu kiến trúc
Mẫu là phương tiện trình bày, chia sẻ và dùng lại kiến thức.
Mẫu nên bao gồm thông tin khi nào nó được dùng và khi nào nó
không được dùng.
Mẫu có thể được miêu tả ở dạng bảng hay dạng đồ họa.
Mẫu kiến trúc là sự miêu tả cách điệu thực tiễn thiết kế tốt, đã được
dùng và kiểm thử trong nhiều môi trường khác nhau.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 17
9
Mẫu kiến trúc MVC (Model-View-Controller)
10
Mẫu kiến trúc phân cấp
A generic layered architecture
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 22
11
Mẫu kiến trúc kho dữ liệu
12
Mẫu kiến trúc client-server
13
Mẫu kiến trúc đường ống và lọc
14
Mẫu kiến trúc đường ống và lọc
15
Kiến trúc cho hạ tầng treaming
hạ tầng streaming là nguồn giải trí online theo yêu cầu cho việc
chiếu TV, film và các nguồn media dạng dòng chảy khác. Chẳng
hạn như Hulu, Netflix, Amazon Prime Video, Vimeo, và Sundance
Now.
16
So sánh kiến trúc nguyên khối và vi dịch vụ
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 33
17
Việc dùng kiến trúc phần mềm ứng dụng
như điểm khởi đầu cho thiết kế kiến trúc,
như 1 checklist thiết kế,
như 1 cách tổ chức công việc của đội phát triển phần mềm.
như phương tiện đánh giá các thành phần dùng lại.
như từ vựng để nói về các kiểu phần mềm ứng dụng.
18
Hệ thống xử lý giao tác
xử lý các yêu cầu người dùng về thông tin từ database hay các
yêu cầu cập nhật database.
theo góc nhìn người dùng thì giao tác là :
1 trình tự rất chặt chẻ nhiều hoạt động mà thỏa mãn 1 mục
tiêu xác định.
thí dụ như tìm danh sách giờ các chuyến bay từ London tới
Paris.
người dùng tạo các yêu cầu bất đồng bộ cho dịch vụ, sau đó
được xử lý bởi 1 trình quản lý giao tác.
Sep 2019 CHAPTER 6. SOFTWARE ARCHITECTURE DESIGN
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 37
19
Kiến trúc hệ thống thông tin
hệ thống thông tin có kiến trúc tổng quát mà có thể được tổ
chức như kiến trúc phân cấp.
các hệ thống này là hệ thống dựa trên giao tác vì sự tương tác với
các hệ thống này thường liên quan đến các giao tác xử lý
database.
Các layer bao gồm :
giao diện với người dùng
liên lạc với người dùng
xử lý thông tin
database của phần mềm.
20
Hệ thống thông tin dựa trên web
Hiện nay, các hệ quản lý tài nguyên và quản lý thông tin thường
là hệ thống dựa trên Web ở đó giao diện người dùng được hiện
thực như là trang web chạy trên trình duyệt Web.
chúng thường được hiện thực như kiến trúc client/server đa tầng :
web server chịu trách nhiệm cho các giao tiếp với người dùng,
với giao diện người dùng được hiện thực dùng web browser.
server của ứng dụng chịu trách nhiệm hiện thực công việc
luận lý đặc thù của ứng dụng như lưu trữ thông tin và yêu cầu.
database server di chuyển thông tin tới và từ database và xử lý
việc quản lý giao tác.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 41
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 42
21
Hệ thống xử lý ngôn ngữ
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 43
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 44
22
Kiến trúc chương trình dịch
kiến trúc đường ống và lọc
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 45
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 46
23
7.6 Kết chương
Các mô hình kiến trúc phần mềm ứng dụng giúp chúng ta hiểu
và so sánh các ứng dụng, thẩm định thiết kế phần mềm ứng
dụng và đánh giá các thành phần thang độ lớn cho việc dùng lại.
Các phần mềm xử lý giao tác là phần mềm tương tác mà cho
phép thông tin trong database được truy xuất và hiệu chỉnh từ xa
bởi nhiều người dùng.
Các phần mềm xử lý ngôn ngữ được dung để dịch mã nguồn từ
ngôn ngữ này sang ngôn ngữ khác và thực hiện các chỉ thị được
đặc tả trong mã nguồn đầu vào. Chúng bao gồm máy dịch và
máy trừu tượng mà thi hành chương trình được tạo ra.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 7 : Thiết kế kiến trúc
© 2010 Slide 47
24