Tài liệu Nhập môn Công nghệ phần mềm - Thiết kế kiến trúc phần mềm - Nguyễn Thị Minh Tuyền: Nguyễn Thị Minh Tuyền 
Thiết kế kiến trúc phần mềm 
Nội dung của slide này dựa vào các slides của Ian Sommerville 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.  Quyết định chọn kiến trúc thiết kế 
2.   Các góc nhìn về kiến trúc 
3.   Các kiến trúc mẫu 
4.   Các kiến trúc ứng dụng 
2 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc phần mềm 
v Thiết kế kiến trúc là việc hiểu một hệ 
thống được tổ chức như thế nào và thiết 
kế toàn bộ kiến trúc của hệ thống đó. 
v Đầu ra của quy trình thiết kế này là một 
mô tả về kiến trúc phần mềm. 
3 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Thiết kế kiến trúc 
v Là giai đoạn đầu tiên của một quy trình 
thiết kế hệ thống. 
v Biểu diễn mối liên kết giữa đặc tả và các 
quy trình thiết kế. 
v Thường được tiến hành song song với 
các hoạt động đặc tả. 
v Bước này giúp nhận diện các component 
chính của hệ thống và cách giao tiếp 
của chúng với nhau. 
4 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các mức trừu tượng của kiến t...
                
              
                                            
                                
            
 
            
                
60 trang | 
Chia sẻ: putihuynh11 | Lượt xem: 1300 | Lượt tải: 0
              
            Bạn đang xem trước 20 trang mẫu tài liệu Nhập môn Công nghệ phần mềm - Thiết kế kiến trúc phần mềm - Nguyễn Thị Minh Tuyền, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Nguyễn Thị Minh Tuyền 
Thiết kế kiến trúc phần mềm 
Nội dung của slide này dựa vào các slides của Ian Sommerville 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.  Quyết định chọn kiến trúc thiết kế 
2.   Các góc nhìn về kiến trúc 
3.   Các kiến trúc mẫu 
4.   Các kiến trúc ứng dụng 
2 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc phần mềm 
v Thiết kế kiến trúc là việc hiểu một hệ 
thống được tổ chức như thế nào và thiết 
kế toàn bộ kiến trúc của hệ thống đó. 
v Đầu ra của quy trình thiết kế này là một 
mô tả về kiến trúc phần mềm. 
3 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Thiết kế kiến trúc 
v Là giai đoạn đầu tiên của một quy trình 
thiết kế hệ thống. 
v Biểu diễn mối liên kết giữa đặc tả và các 
quy trình thiết kế. 
v Thường được tiến hành song song với 
các hoạt động đặc tả. 
v Bước này giúp nhận diện các component 
chính của hệ thống và cách giao tiếp 
của chúng với nhau. 
4 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các mức trừu tượng của kiến trúc 
v Kiến trúc phần mềm nhỏ liên quan đến kiến 
trúc của các chương trình đơn lẻ. Ở mức này, 
một chương trình được phân thành các 
component. 
v Kiến trúc hệ thống lớn liên quan đến kiến trúc 
của một hệ thống phức tạp gồm nhiều hệ 
thống khác, chương trình và các components 
chương trình. Những hệ thống này được phân 
tán trên nhiều máy tính khác nhau, có thể 
được sở hữu và quản lý bởi nhiều công ty khác 
nhau. 
5 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ưu điểm của kiến trúc 
v Giao tiếp với các stakeholder 
§  Kiến trúc được sử dụng như là một trọng tâm của việc 
thảo luận với các stakeholder hệ thống. 
v Phân tích hệ thống 
§  Là cách để phân tích xem liệu hệ thống có đáp ứng 
được các yêu cầu phi chức năng hay không. 
v Tái sử dụng 
§  Kiến trúc có thể được tái sử dụng cho nhiều hệ thống 
khác. 
6 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Biểu diễn kiến trúc 
v Sử dụng các biểu đồ khối đơn giản, không 
mang tính hình thức để chỉ ra các thực thể và 
quan hệ giữa chúng là phương pháp thường 
gặp nhất để viết tài liệu về kiến trúc phần 
mềm. 
v Việc sử dụng loại kiến trúc này bị chỉ trích 
trong một thời gian dài do nó thiếu ngữ nghĩa, 
không chỉ ra được loại quan hệ giữa các thực 
thể và không chỉ ra các thuộc tính của thực thể 
trong kiến trúc. 
v Phụ thuộc vào việc sử dụng các mô hình kiến 
trúc. Yêu cầu về ngữ nghĩa của mô hình phụ 
thuộc vào cách các mô hình đó được sử dụng. 
7 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc của một hệ thống điều 
khiển robot 
Vision
system
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
Conveyor
controller
8 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Sử dụng các mô hình kiến trúc 
v Là phương tiện để thảo luận về thiết kế hệ 
thống 
§  Thiết kế kiến trúc ở mức cao có ích khi giao tiếp với các 
stakeholder và lên kế hoạch dự án vì nó không đi sâu vào chi 
tiết. Các stakeholder có thể hiểu được mô hình trừu tượng 
của hệ thống. Do đó mà họ có thể thảo luận về toàn bộ hệ 
thống mà không bị rối bởi việc quá đi sâu vào chi tiết. 
v Là cách để viết tài liệu về kiến trúc đã được 
thiết kế 
§  Mục tiêu ở đây là tạo ra một mô hình hệ thống hoàn chỉnh 
trong đó nó chỉ ra được các component khác nhau trong hệ 
thống, giao diện và sự kết nối của chúng. 
9 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.  Quyết định chọn kiến trúc thiết kế 
2.   Các góc nhìn về kiến trúc 
3.   Các kiến trúc mẫu 
4.   Các kiến trúc ứng dụng 
10 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Quyết định chọn kiến trúc thiết kế 
v Thiết kế kiến trúc là một quy trình sáng 
tạo. Các hoạt động trong quy trình phụ 
thuộc vào loại ứng dụng được phát 
triển, kinh nghiệm của người thiết kế 
kiến trúc và các yêu cầu cụ thể của hệ 
thống. 
v Thiết kế kiến trúc được như là một chuỗi 
các quyết định hơn là một chuỗi tuần tự 
các hoạt động. 
11 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Quyết định chọn kiến trúc thiết kế 
1.   Có thể sử dụng kiến trúc tổng quát nào 
không? 
2.   Hệ thống được phân tán như thế nào? 
3.   Mẫu kiến trúc nào phù hợp? 
4.   Phương pháp nào được sử dụng để cấu trúc 
hóa hệ thống? 
5.   Hệ thống được phân rã thành các module 
như thế nào? 
6.   Chiến thuật điều khiển nào được sử dụng? 
7.   Thiết kế kiến trúc sẽ được đánh giá bằng 
cách nào? 
8.   Kiến trúc được viết thành tài liệu như thế 
nào? 
12 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Tái sử dụng kiến trúc 
v Các hệ thống có cùng lĩnh vực thường có cấu 
trúc tương tự nhau phản ánh những đặc điểm 
của lĩnh vực đó. 
§  Các dòng sản phẩm ứng dụng được xây dựng dựa vào một kiến 
trúc lõi với một số biến thể để thỏa mãn các yêu cầu cụ thể của 
khách hàng. 
v Kiến trúc của một hệ thống có thể được thiết 
kế dựa vào một hoặc nhiều mẫu kiến trúc 
(architectural pattern). 
§  Mẫu kiến trúc là mô tả về kiến trúc của một hệ thống. 
§  Các mẫu này chứa các đặc điểm chính của một kiến trúc đã được 
sử dụng qua các hệ thống phần mềm khác nhau. 
13 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc và đặc điểm của hệ thống 
v Hiệu năng (Performance) 
§  Định vị các chức năng quan trọng và giảm thiểu giao tiếp. 
v Bảo mật (Security) 
§  Sử dụng kiến trúc phân tầng với các phần quan trọng được đặt ở các 
lớp bên trong. 
v An toàn (Safety) 
§  Định vị các thao tác liên quan đến an toàn trong một số ít các hệ 
thống con. 
v Tính thường trực (Availability) 
§  Thiết kế sẵn các component dư thừa sao cho có thể thay thế hoặc 
cập nhật các component mà không phải dừng hệ thống, nghĩa là 
đảm bảo cho hệ thống hoạt động liên tục. 
v Tính dễ bảo trì (Maintainability) 
§  Sử dụng các component nhỏ, chi tiết, có thể thay thế được. 
14 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.  Quyết định chọn kiến trúc thiết kế 
2.   Các góc nhìn về kiến trúc 
3.   Các kiến trúc mẫu 
4.   Các kiến trúc ứng dụng 
15 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các góc nhìn về mặt kiến trúc 
v Góc nhìn nào là hữu ích khi thiết kế và viết 
tài liệu về kiến trúc của một hệ thống? 
v Các khái niệm nào nên được sử dụng để mô 
tả về mô hình kiến trúc? 
v Mỗi mô hình kiến trúc chỉ thể hiện một góc 
nhìn về hệ thống. 
§  Có thể chỉ ra một hệ thống được phân rã thành các module như 
thế nào, các tiến trình thời gian thực tương tác như thế nào, các 
component hệ thống được phân tán trên mạng như thế nào. 
§  Đối với việc thiết kế và viết tài liệu, ta thường cần biểu diễn nhiều 
góc nhìn khác nhau của hệ thống phần mềm. 
16 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình kiến trúc phần mềm 4 + 1 
17 
logical view development view 
process view physical view 
use case 
chỉ ra các biểu diễn trừu tượng 
trong hệ thống dưới dạng các đối 
tượng và lớp đối tượng. 
chỉ ra cách một phần mềm 
được phân rã để phát triển 
như thế nào. 
chỉ ra cách các tương tác 
thời gian thực xảy ra trong hệ 
thống. 
chỉ ra phần cứng của hệ 
thống và cách các component 
của hệ thống được phân tán 
trên các processor như thế 
nào. 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình kiến trúc phần mềm 4 + 1 
v Góc nhìn về logic (logical view) 
§  chỉ ra các biểu diễn trừu tượng trong hệ thống dưới dạng các đối 
tượng và lớp đối tượng. 
v Góc nhìn về mặt quy trình (process view) 
§  chỉ ra cách các tương tác thời gian thực xảy ra trong hệ thống. 
v Góc nhìn về mặt phát triển (development 
view) 
§  chỉ ra cách một phần mềm được phân rã để phát triển như thế 
nào. 
v Góc nhìn về mặt vật lý (physical view) 
§  chỉ ra phần cứng của hệ thống và cách các component của hệ 
thống được phân tán trên các processor như thế nào. 
v Liên quan đến việc sử dụng use case hay kịch 
bản (+1) 
18 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.  Quyết định chọn kiến trúc thiết kế 
2.   Các góc nhìn về kiến trúc 
3.   Các kiến trúc mẫu 
4.   Các kiến trúc ứng dụng 
19 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc mẫu (Architectural pattern) 
v Thiết kế mẫu là một phương tiện để biểu diễn, 
chia sẻ và tái sử dụng lại các kiến thức. 
v Các mẫu thường chứa thông tin về khi nào 
chúng hữu ích và khi nào không, độ mạnh yếu 
của chúng. 
v Các mẫu được biểu diễn sử dụng bảng và mô tả 
đồ họa. 
20 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Một số mô hình kiến trúc mẫu 
v Mô hình Model-View-Controller (MVC) 
v Mô hình kiến trúc phân tầng 
v Mô hình Repository 
v Mô hình client–server 
v Mô hình pipe and filter 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
The Model-View-Controller (MVC) 
pattern 
Tên" Mô hình MVC (Model-View-Controller)"
Mô tả" Tách riêng phần biểu diễn và phần tương tác ra khỏi dữ liệu hệ 
thống. Hệ thống được cấu trúc hóa thành ba component logic 
tương tác với nhau. /
•  Model component: quản lý dữ liệu hệ thống và các thao tác 
trên dữ trên dữ liệu đó./
•  View component: định nghĩa và quản lý cách dữ liệu được 
biểu diễn tới người dùng như thế nào. /
•  Controller component: Quản lý tương tác người dùng ( ví 
dụ như ấn phím, nhấp chuột, ...) và chuyển các tương tác 
này tới View và Model. /
Sử dụng khi nào" Được sử dụng khi có nhiều cách biểu diễn và tương tác với dữ 
liệu. Cũng được sử dụng khi chưa biết được các yêu cầu 
tương lai cho tương tác và biểu diễn dữ liệu. /
Ưu điểm" Cho phép dữ liệu thay đổi độc lập với việc biểu diễn của nó và 
ngược lại. Hỗ trợ biểu diễn theo nhiều cách khác nhau trên 
cùng một dữ liệu. /
Nhược điểm" Có thể chứa code bổ sung và code sẽ phức tạp hơn khi mô 
hình dữ liệu và mô hình tương tác đơn giản./
22 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Tổ chức của mô hình Model-View-
Controller 
Controller View
Model
View
selection
State
change
Change
notification
State query
User events
Maps user actions
to model updates
Selects view
Renders model
Requests model updates
Sends user events to
controller
Encapsulates application
state
Notifies view of state
changes
23 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ví dụ: Kiến trúc ứng dụng Web sử 
dụng mô hình MVC 
Controller View
Model
Form to
display
Update
request
Change
notification
Refresh request
User events
Browser
HTTP request processing
Application-specific logic
Data validation
Dynamic page
generation
Forms management
Business logic
Database
24 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc phân tầng 
v Được sử dụng để mô hình hóa giao diện 
của các hệ thống con. 
v Tổ chức hệ thống thành một tập các 
tầng, mỗi tầng cung cấp một tập các 
dịch vụ. 
v Hỗ trợ việc phát triển dần dần các hệ 
thống con trên các tầng khác nhau. Khi 
giao diện của tầng thay đổi, chỉ các tầng 
lân cận mới bị ảnh hưởng. 
25 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình kiến trúc phân tầng 
Tên" Kiến trúc phân tầng"
Mô tả" Tổ chức hệ thống thành các tầng, mỗi tầng chứa các chức 
năng liên quan đến nhau. Một tầng cung cấp các dịch vụ cho 
tầng trên của nó vì vậy các tầng thấp nhất biểu diễn các dịch vụ 
lõi được sử dụng trong toàn bộ hệ thống. /
Được sử dụng khi 
nào"
Được sử dụng khi xây dựng các tính năng mới dựa trên những 
hệ thống có sẵn; khi việc phát triển được dàn trải trên nhiều 
nhóm khác nhau và mỗi nhóm chịu trách nhiệm về chức năng 
của một tầng; khi có một yêu cầu về bảo mật ở nhiều mức độ./
Ưu điểm" Cho phép thay thế các phần miễn là interface được duy trì. Các 
chức năng dư thừa (ví dụ như phân quyền) có thể được cung 
cấp ở mỗi tầng để tăng độ tin cậy của hệ thống./
Nhược điểm " Thực tế, cung cấp một sự phân chia rõ rệt giữa các tầng 
thường rất khó khăn và tầng cao hơn có thể tương tác trực tiếp 
với tầng thấp hơn hơn là thông qua một tầng bên dưới nó. Hiệu 
năng cũng có thể là một vấn đề vì nhiều mức diễn giải của một 
yêu cầu dịch vụ khi nó được thực hiện tại mỗi tầng./
26 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Một kiến trúc phân tầng tổng quát 
User interface
Core business logic/application functionality
System utilities
System support (OS, database etc.)
User interface management
Authentication and authorization
27 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc của hệ thống LIBSYS 
Web browser interface
Library index
LIBSYS
login
Distributed
search
Document
retrieval
Rights
manager Accounting
Forms and
query manager
Print
manager
DB1 DB2 DB3 DB4 DBn
28 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Tổng kết 
v  Kiến trúc phần mềm là mô tả về cách tổ chức của một hệ 
thống phần mềm. 
v  Quyết định chọn kiến trúc thiết kế bao gồm các quyết 
định về loại ứng dụng, việc phân tán của hệ thống, mẫu 
kiến trúc được sử dụng. 
v  Các kiến trúc có thể được viết thành tài liệu từ một vài 
góc nhìn chẳng hạn như góc nhìn về mặt khái niệm, góc 
nhìn về mặt logic, góc nhìn về mặt quy trình, góc nhìn về 
mặt phát triển. 
v  Các mô hình kiến trúc mẫu là phương tiện đẻ tái sử dụng 
các kiến thức về kiến trúc hệ thống tổng quát. Chúng mô 
tả kiến trúc, giải thích khi nào được sử dụng và ưu nhược 
điểm của nó. 
29 
Thiết kế kiến trúc phần mềm 
phần 2 
Lecture 2 
30 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc repository 
v Các hệ thống con phải trao đổi dữ liệu 
với nhau. Có hai khả năng: 
§  Việc chia sẻ dữ liệu được thực hiện ở cơ sở dữ 
liệu trung tâm hay còn gọi là kho dữ liệu, kho 
này được truy cập bởi tất cả các hệ thống con; 
§ Mỗi hệ thống con duy trì một cơ sở dữ liệu riêng 
và chuyển dữ liệu trực tiếp tới các hệ thống con 
khác. 
v Khi có một lượng lớn dữ liệu cần chia sẻ, 
mô hình về chia sẻ là mô hình phổ biến 
nhất và là cơ chế chia sẻ dữ liệu hiệu 
quả nhất. 
 31 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình Repository 
Tên" Mô hình Repository "
Mô tả" Tất cả các dữ liệu trong hệ thống được quản lý ở một kho trung 
tâm, kho này được truy cập bởi tất cả các component của hệ 
thống. Các component không tương tác trực tiếp với nhau, chỉ 
thông qua kho chung thôi./
Khi nào được sử 
dụng"
Sử dụng mô hình này khi ta có một hệ thống trong đó một lượng 
lớn thông tin được sinh ra phải được lưu trữ trong một thời gian 
dài. Ta cũng có thể sử dụng nó trong các hệ thống hướng dữ liệu 
trong đó dữ liệu trong kho kích hoạt hành động hay công cụ./
Ưu điểm" Các component có thể độc lập với nhau – chúng không cần biết 
sự tồn tại của các component khác. Các thay đổi xảy ra ở một 
component không ảnh hưởng tới các component khác. Tất cả các 
dữ liệu có thể được quản lý một cách nhất quán (ví dụ như 
backup dữ liệu được thực hiện đồng thời) vì tất cả dữ liệu được 
lưu trữ ở cùng một nơi. /
Nhược điểm" Các vấn đề xảy ra trên kho chung ảnh hưởng đến toàn hệ thống. 
Có thể không hiệu quả trong việc tổ chức các giao tiếp thông qua 
kho. Phân tán kho trên nhiều máy tính có thể khó khăn./
32 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Một kiến trúc repository cho một 
IDE 
Project
repository
Design
translator
Java
editor
UML
editors
Code
generators
Design
analyzer
Report
generator
Python
editor
33 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc client-server 
v Các mô hình hệ thống phân tán chỉ ra 
cách dữ liệu và các xử lý được phân tán 
trên nhiều component như thế nào. 
§  Có thể được cài đặt trên một máy đơn. 
v Tập hợp các server độc lập cung cấp các 
dịch vụ cụ thể ví dụ như in ấn, quản trị 
dữ liệu, ... 
v Tập hợp các khách hàng triệu gọi các 
dịch vụ này. 
v Hệ thống mạng cho phép người dung 
truy cập vào các server. 
34 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình client–server 
Tên" Mô hình client-server"
Mô tả" Trong một kiến trúc client–server, chức năng của hệ thống 
được tổ chức thành các dịch vụ, mỗi dịch vụ được đặt trên 
một server riêng lẻ. Khách hàng là người sử dụng các dịch vụ 
này và truy cập vào các server để sử dụng dịch vụ./
Khi nào được sử 
dụng"
Được sử dụng khi dữ liệu trong một cơ sở dữ liệu chia sẻ 
phải truy cập từ nhiều nơi. Vì các server được truy cập từ 
nhiều nơi khác nhau, có thể được sử dụng khi tải trên hệ 
thống thay đổi./
Ưu điểm" Ưu điểm chính là server được phân tán trên mạng. Chức 
năng chung (dịch vụ in ấn chẳng hạn) có thể có sẵn cho tất cả 
các khách hàng và không cần thiết phải cài đặt toàn bộ các 
dịch vụ. /
Nhược điểm" Mỗi dịch vụ là một điểm đơn gây lỗi vì vậy dễ bị tấn công từ 
chối dịch vụ hoặc lỗi server. Hiệu năng có thể không dự đoán 
trước được do nó phụ thuộc vào mạng cũng như hệ thống. 
Có thể có các vấn đề về quản lý nếu server được sở hữu bởi 
các tổ chức khác nhau./
35 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc client–server cho một thư 
viện phim ảnh 
Catalog
server
Library
catalogue
Video
server
Film store
Picture
server
Photo store
Web
server
Film and
photo info.
Client 1 Client 2 Client 3 Client 4
Internet
36 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc pipe and filter 
v Các chuyển đổi chức năng xử lý các đầu 
vào và tạo ra các đầu ra. 
v Các biến thể của phương pháp này rất 
phổ biến. Khi các chuyển đổi là tuần tự, 
đây là mô hình xử lý khối tuần tự mà 
các hệ thống xử lý dữ liệu sử dụng. 
v Không thật sự phù hợp với các hệ thống 
tương tác. 
37 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô hình pipe and filter 
Tên" Mô hình pipe and filter"
Mô tả" Việc xử lý dữ liệu trong một hệ thống được tổ chức sao cho mỗi 
component xử lý (filter) là rời rạc và tiến hành một loại xử lý dữ 
liệu. Dòng dữ liệu (pipe) đi từ một component đến một component 
khác để xử lý. /
Khi nào sử 
dụng"
Thường sử dụng trong các ứng dụng xử lý dữ liệu ( cả ứng dụng 
xử lý khối và xử lý giao tác) trong đó các đầu vào được xử lý ở 
các giai đoạn rời rạc để tạo ra các đầu ra tương ứng./
Ưu điểm" Dễ hiểu và hỗ trợ việc tái sử dụng chuyển đổi. Kiểu dòng dữ liệu 
phù hợp với cấu trúc của của nhiều quy trình công việc. Tiến hóa 
bằng cách thêm vào các chuyển đổi là dễ dàng. Có thể cài đặt 
theo kiểu hệ thống tuần tự hoặc song song./
Nhược điểm" Format của dữ liệu truyền đi phải được chấp thuận trong việc giao 
tiếp giữa các chuyển đổi. Mỗi chuyển đổi phải phân tích cú pháp 
đầu vào của nó và chuyển nó thành đầu ra ở dạng được chấp 
nhận. Điều này gây khó khăn trong việc tái sử dụng các chuyển 
đổi hàm mà cấu trúc dữ liệu không tương thích./
38 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ví dụ về kiến trúc pipe and filter 
Read issued
invoices
Identify
payments
Issue
receipts
Find
payments
due
Receipts
Issue
payment
reminder
Reminders
Invoices Payments
39 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
1.  Quyết định chọn kiến trúc thiết kế 
2.   Các góc nhìn về kiến trúc 
3.   Các kiến trúc mẫu 
4.   Các kiến trúc ứng dụng 
40 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các kiến trúc ứng dụng 
v Các hệ thống ứng dụng được thiết kế để 
đáp ứng nhu cầu của một tổ chức. 
v Vì công việc có nhiều điểm chung, các 
hệ thống ứng dụng cũng có xu hướng có 
kiến trúc chung phản ánh các yêu cầu 
ứng dụng. 
v Kiến trúc ứng dụng tổng quát là một 
kiến trúc cho một loại hệ thống phần 
mềm được cấu hình và điều chỉnh để tạo 
ra một hệ thống đáp ứng các yêu cầu cụ 
thể. 
41 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Sử dụng các kiến trúc ứng dụng 
v Như là điểm khởi đầu của thiết kế kiến 
trúc. 
v Như là một checklist về thiết kế. 
v Như một cách để tổ chức công việc của 
nhóm phát triển phần mềm. 
v Như là một phương tiện để đánh giá 
việc tái sử dụng các component. 
v Như là kho từ vựng để bàn về các loại 
ứng dụng. 
42 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ví dụ về loại ứng dụng 
v Ứng dụng xử lý dữ liệu 
§  Các ứng dụng hướng dữ liệu trong đó xử lý dữ liệu khối mà không 
có sự can thiệp của người dùng trong suốt quá trình xử lý. 
v Ứng dụng xử lý giao tác 
§  Ứng dụng dữ liệu trung tâm trong đó xử lý các yêu cầu người 
dùng và cập nhật thông tin trong một cơ sở dữ liệu hệ thống. 
v Hệ thống xử lý sự kiện 
§  Ứng dụng trong đó các hoạt động của hệ thống phụ thuộc vào việc 
diễn giải các sự kiện từ môi trường hệ thống. 
v Hệ thống xử lý ngôn ngữ 
§  Ứng dụng trong đó ý định của người dùng được đặc tả trong các 
ngôn ngữ hình thức và được xử lý, diễn giải bởi hệ thống. 
43 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Ví dụ về loại ứng dụng 
v Tập trung vào hệ thống xử lý giao tác và 
xử lý ngôn ngữ. 
v Hệ thống xử lý giao tác 
§  Hệ thống thương mại điện tử; 
§  Hệ thống đặt chỗ. 
v Hệ thống xử lý ngôn ngữ 
§  Trình biên dịch; 
§  Diễn giải lệnh. 
44 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Hệ thống xử lý giao tác 
v Xử lý các yêu cầu người dùng về thông 
tin từ một cơ sở dữ liệu hoặc các yêu 
cầu cập nhật cơ sở dữ liệu. 
v Từ góc độ của một người sử dụng, một 
giao tác là: 
§  Một chuỗi liên tục các thao tác để thỏa mãn một mục 
tiêu; 
§  Ví dụ: tìm thời gian của các chuyến bay từ London tới 
Paris. 
v Người dùng thực hiện các yêu cầu 
không đồng bộ về dịch vụ sau đó được 
xử lý bởi một bộ quản lý giao tác. 
45 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Cấu trúc của ứng dụng xử lý giao tác 
I/O
processing
Application
logic
Transaction
manager Database
46 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc phần mềm của hệ thống 
ATM 
Input Process Output
ATM Database ATM
Get customer
account id
Query account
Print details
Return card
Dispense cash
Update account
Validate card
Select service
47 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc hệ thống thông tin 
v Các hệ thống thông tin có cấu trúc tổng 
quát có thể được tổ chức theo kiểu cấu 
trúc phân tầng. 
v Đây là những hệ thống dựa vào giao tác 
vì tương tác với hệ thống này thường là 
các giao tác cơ sở dữ liệu. 
v Các tầng bao gồm: 
§  The user interface 
§  User communications 
§  Information retrieval 
§  System database 
48 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc phân tầng của hệ thống 
thông tin 
User interface
User communications
Information retrieval and modification
Transaction management
Database
Authentication and
authorization
49 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc của hệ thống MHC-PMS 
Web browser
Report
generation
Transaction management
Patient database
Login Form and menumanager
Data
validationRole checking
Security
management
Patient info.
manager
Data import
and export
50 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các hệ thống thông tin dựa vào web 
v Hệ thống quản lý tài nguyên và thông tin thường là 
các hệ thống dựa vào web trong đó giao diện người 
dùng được cài đặt trên web browser. 
v Ví dụ, các hệ thống thương mại điện tử là các hệ 
thống quản trị tài nguyên dựa vào internet mà 
trong đó các đơn đặt hàng điện tử về hàng hóa hay 
dịch vụ được chấp nhận, các đơn hàng này sau đó 
được lên lịch giao cho khách hàng. 
v Trong hệ thống thương mại điện tử, tầng ứng dụng 
chứa các tính năng bổ sung hỗ trợ “giỏ hàng” trong 
đó người dùng có thể đặt nhiều món hàng trên các 
giao tác khác nhau sau đó tính tiền chung trong 
một giao tác đơn. 
51 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Cài đặt phía server 
v Những hệ thống này thường được cài 
đặt theo kiểu kiến trúc đa tầng client-
server 
§  Web server chịu trách nhiệm giao tiếp với người dùng, 
giao diện người dùng được cài đặt sử dụng web 
browser; 
§  Server ứng dụng chịu trách nhiệm cài đặt các chức 
năng ứng dụng cụ thể cũng như lưu trữ thông tin và truy 
vấn yêu cầu; 
§  Server cơ sở dữ liệu chuyển thông tin từ và đến cơ sở 
dữ liệu và nắm quyền quản lý giao tác. 
52 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Hệ thống xử lý ngôn ngữ 
v Chấp nhận một ngôn ngữ tự nhiên hoặc 
ngôn ngữ nhân tạo làm đầu vào và tạo 
ra một biểu diễn khác của ngôn ngữ đó. 
v Có thể chứa một bộ diễn giải để thực 
hiện các chỉ dẫn lệnh trong ngôn ngữ 
được xử lý. 
v Được dùng trong các tình huống trong 
đó cách dễ nhất để xử lý vấn đề là mô tả 
một thuật toán hoặc mô tả dữ liệu hệ 
thống. 
53 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc của một hệ thống xử lý 
ngôn ngữ 
Source
language
instructions
Data Results
Translator
Interpreter
Abstract m/c
instructions
Check syntax
Check semantics
Generate
Fetch
Execute
54 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các component của trình biên dịch 
v Bộ phân tích từ vựng, lấy các token đầu vào, 
chuyển đổi chúng thành một hình thức trung 
gian. 
v Bảng ký hiệu, lưu giữ thông tin về tên thực 
thể (biến, tên lớp, tên đối tượng, ...) được sử 
dụng trong văn bản cần biên dịch. 
v Bộ phân tích cú pháp, kiểm tra cú pháp của 
ngôn ngữ cần biên dịch. 
v Cây cú pháp là một biểu diễn cấu trúc bên 
trong mà chương trình được dịch. 
55 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Các component của trình biên dịch 
v Bộ phân tích ngữ nghĩa: sử dụng thông 
tin từ cây cú pháp và bảng ký hiệu để 
kiểm tra tính đúng đắn về ngữ nghĩa 
của văn bản ngôn ngữ đầu vào. 
v Bộ phát sinh mã : duyệt qua cây cú 
pháp và sinh ra mã máy trừu tượng. 
56 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc pipe and filter của trình 
biên dịch 
Lexical
analysis
Syntactic
analysis
Semantic
analysis
Code
generation
Symbol table
Syntax tree
57 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Kiến trúc repository cho hệ thống 
xử lý ngôn ngữ 
Syntax
analyzer
Lexical
analyzer
Semantic
analyzer
Abstract
syntax tree
Grammar
definition
Symbol
table
Output
definition
Pretty-
printer
Editor
Optimizer
Code
generator
Repository
58 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Tổng kết 
v  Các mô hình của kiến trúc hệ thống ứng dụng hỗ trợ 
việc hiểu và so sánh các ứng dụng, thẩm định thiết kế 
hệ thống ứng dụng và đánh giá việc tái sử dụng các 
component. 
v  Các hệ thống xử lý giao tác là các hệ thống tương tác 
mà nó cho phép thông tin trong một cơ sở dữ liệu được 
truy cập và cập nhật từ xa bởi một số lượng người 
dùng. 
v  Hệ thống xử lý ngôn ngữ được dùng để dịch văn bản từ 
một ngôn ngữ sang một ngôn ngữ khác và thực hiện 
các chỉ dẫn lệnh cụ thể của ngôn ngữ đầu vào. Các hệ 
thống này chứa một bộ biên dịch và một máy trừu 
tượng để chạy ngôn ngữ được sinh ra. 
59 
            Các file đính kèm theo tài liệu này:
nguyen_thi_minh_tuyen_05_architectural_design_4501_1994369.pdf