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: 970 | 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