là một cấu trúc hay những cấu trúc của hệ thống mà bao gồm những thành phần phần mềm, tính chất có thể thấy được từ bên ngoài của những thành phần này và những quan hệ của chúng Phân t
Trang 2Công Nghệ Phần Mềm 2
Analysis Model
use-cases - text use-case diagrams activity diagrams swim lane diagrams
data flow diagrams control-flow diagrams processing narratives
state diagrams sequence diagrams
Da t a / Cla ss De sign Arc hit e c t ura l De sign Int e rf a c e De sign
Com pone nt -
Le v e l De sign
Design Model
Trang 3Chương 6: Thiết kế kiến trúc
• 6.1 Kiến trúc?
• 6.2 Loại kiến trúc (style)
• 6.3 Thiết kế kiến trúc
• 6.4 Ánh xạ data flow thành kiến trúc
• 6.5 Tạo mô hình điều khiển
• 6.6 Đánh giá kiến trúc
• 6.7 Một số mô hình ứng dụng
Trang 4Công Nghệ Phần Mềm 4
6.1 Kiến trúc?
là một cấu trúc hay những cấu trúc của hệ thống
mà bao gồm những thành phần phần mềm, tính
chất có thể thấy được từ bên ngoài của những
thành phần này và những quan hệ của chúng
Phân tích hiệu quả việc đáp ứng các yêu cầu phần mềm
Dễ chọn lựa kiến trúc trong các giai đoạn kế tiếp
Trang 5Tại sao kiến trúc là quan trọng
• Cho phép truyền thông giữa các stakeholder
• Kiến trúc rõ ràng giúp cho những quyết định thiết
kế dễ dàng
• Kiến trúc là mô hình cho biết cấu trúc của hệ thống các thành phần làm việc với nhau như thế nào
Trang 6thể truy cập tới nhiều CSDL
Trang 7Data mining và data warehourse
• Kỹ thuật data mining còn gọi là khám phá tri thức trong CSDL, sẽ trích dẫn thông tin cần thiết qua
Trang 8 Hiện thực những thuộc tính dữ liệu như
là một hay nhiều cấu trúc dữ liệu
Kiểm tra cấu trúc dữ liệu để đảm bảo rằng các quan hệ thích hợp đã được tạo
Đơn giản cấu trúc dữ liệu
Trang 9Nguyên lý khi thiết kế dữ liệu ở mức thành phần
cho chức năng và hành vi cũng được áp dụng cho dữ liệu: biểu diễn luồng dữ liệu và nội dung phải được phát
triển và kiểm tra, xác định đối tượng dữ liệu, những tổ chức
dữ liệu thay thế, những tác động của mô hình dữ liệu trên thiết kế phần mềm sẽ được thẩm định
thực hiện trên mỗi cấu trúc
dữ liệu dùng để xác định dữ liệu và tác vụ được áp
dụng Dùng mô hình class với thuộc tính và phương thức
Trang 10Công Nghệ Phần Mềm 10
hoãn cho đến cuối của quá trình thiết kế
những module trực tiếp sử dụng dữ liệu trong cấu trúc
tác vụ sử dụng chúng
trợ đặc tả và hiện thực những loại cấu trúc dữ liệu trừu tượng
Trang 11ATM Kiến trúc ba tầng (tree-layer)
Data layer
CSDL
Business layer User interface layer
System software Middleware Data layer Business layer
User interface
layer
Trả lời tương tác người dùng: chuyển dịch những hành động của người dùng tới một tình huống xử lý phù hợp
Hiển thị các đối tượng tác nghiệp : trình bày một hình ảnh tốt nhất các đối tượng tác nghiệp tới người dùng trong một giao diện
Thực hiện các giao tác xử lý liên quan đến nghiệp vụ mà không quan tâm đến hiển thị chúng như thế nào? Và CSDL được lấy ở đâu?
Chuyển dịch yêu cầu: chuyển dịch tất cả các yêu cầu liên quan đến dữ liệu từ tầng tác nghiệp đến một phương thức truy cập
dữ liệu thích hợp (dạng SQL, truy xuất file,…)
Chuyển dịch kết quả
Trang 12Xử lý
Truy cập dữ liệu
Trang 15Thiết kế tầng giao diện hệ thống ATM
• Thiết kế mẫu giao diện:
Trang 16Công Nghệ Phần Mềm 16
GiaoDịchGD (Rút tiền)
Trang 17Thiết kế tầng giao diện hệ thống ATM
: KháchHàng : MáyATM_GD : GiaoDịchGD : ĐiềuKhiểnGiaoDịch : KháchHàng : TàiKhoản : GiaoDịch : NgânHàngDBChọn nút rút tiền
rútTiền()
Rút thành công
Rút không thành công Kết quả
Trang 18Công Nghệ Phần Mềm 18
6.2 Loại kiến trúc (style)
database, computational modules)
“communication, coordination and cooperation”
giữa các thành phần
hợp hệ thống
Cho phép người thiết kế hiểu những thuộc tính
tổng thể của hệ thống
Trang 19Loại kiến trúc (style)
• Data-centered architectures
• Data flow architectures
• Call and return architectures
• Object-oriented architectures
• Layered architectures
• Có thể kết hợp nhiều loại kiến trúc:
• Vd: kiến trúc tầng kết hợp với kiến trúc trung
tâm dữ liệu trong nhiều ứng dụng CSDL
Trang 20Công Nghệ Phần Mềm 20
Trang 21Kiến trúc luồng dữ liệu
Trang 23Chương trình chính/chương trình con
Trang 24Công Nghệ Phần Mềm 24
Kiến trúc tầng
Trang 25Mẫu kiến trúc (Pattern)
Mẫu quản lý quá trình hệ điều hành (operating
system process management )
Định thời tác vụ (task scheduler)
còn khi quá trình tạo ra nó chấm dứt Có 2 mẫu:
Hệ thống quản lý CSDL
Mẫu tồn tại mức ứng dụng ( application level
persistence), Vd: xử lý từ
Trang 26Công Nghệ Phần Mềm 26
Mẫu kiến trúc (Pattern)
thống hay là những thành phần trong hệthống truyền thông với những thánh
phần khác qua môi trường phân bố
Người môi giới (broker) Giữa thành phần client và server
Trang 276.3 Thiết kế kiến trúc
• Các vấn đề Thiết kế kiến trúc
Trong giai đoạn thiết kế, các kết quả của quá trình phân tích được mở rộng thành một giải pháp kỹ
thuật, gồm thiết kế: Kiến trúc, giao diện…
Quy trình thiết kế kiến trúc nhằm xác định hệ
thống gồm các hệ thống con cùng một framework giúp điều khiển các hệ thống con và giao tiếp giữa chúng
Trang 28Công Nghệ Phần Mềm 28
• Kết quả của quy trình thiết kế này là đặc tả về kiến trúc phần mềm
• Thiết kế kiến trúc thường được thực hiện song
song với việc đặc tả
• Kiến trúc có thể được tái sử dụng trong nhiều hệ
thống
• Kiến trúc tạo điều kiện giao tiếp cho các
stakeholder
Trang 29Yêu cầu của kiến trúc hệ thống
thiểu hoá giao tiếp, tiện dụng
kiểm soát chặt chẽ ở các lớp sâu hơn
toàn
Trang 30 Nếu dữ liệu bị dư thừa thì sẽ cải thiện tính sẵn
dùng nhưng làm cho việc bảo mật khó khăn hơn.
Tăng cường tính an toàn và bảo mật sẽ làm giảm hiệu năng.
Trang 31Những câu hỏi thông thường
• Thiết kế kiến trúc là một quy trình sáng tạo, nhưng các quy trình thiết kế thường dựa vào những câu hỏi:
Kiến trúc ứng dụng chung có được sử dụng lại hay không?
Hệ thống sẽ được phân bố như thế nào?
nào?
Chiến lược điều khiển nào sẽ được sử dụng?
Kiến trúc sẽ được tư liệu hoá như thế nào?
Trang 32Công Nghệ Phần Mềm 32
Các lưu ý thiết kế
• Phải có sự lựa chọn dựa vào yêu cầu, tài nguyên,
phản ảnh được vấn đề thực tế
• Có thể truy ngược lại những yêu cầu đã phân tích
• Tiết kiệm thời gian bằng cách dùng thành phần có
sẵn
• Phải đồng nhất và hợp thành khối
• Phù hợp với những biến đổi
• Thiết kế có mức trừu tượng cao, không phải là tạo
Trang 33Các bước thiết kế kiến trúc
• Phần mềm phải đặt trong ngữ cảnh
Xác định thực thể ngoài (con người, hệ thống
khác, thiết bị) và bản chất của tương tác
• Xác định một tập nguyên mẫu (archetype) kiến trúc
class) mà biểu diễn cho một thành phần của hành
Trang 34Công Nghệ Phần Mềm 34
Nguyên mẫu (Archetype)
Figure 10.7 UML relationships for SafeHome security function archetypes (adapted from [BOS00])
Controller
Node
communicates with
Detector Indicator
Trang 35Internet-based system
surveillance function
Trang 36Công Nghệ Phần Mềm 36
Thành phần
SafeHome Execut ive
Ext ernal Communicat ion Management
GUI Int ernet
Int erface
Funct ion select ion
Securit y Surveillance Home
management
Cont rol panel processing
det ect or management
alarm processing
Trang 38Công Nghệ Phần Mềm 38
• Thu thập kịch bản (scenarios)
• Đưa ra những mô tả môi trường, ràng buộc, yêu cầu
• Mô tả những mẫu (styles/patterns) kiến trúc được chọn
theo kịch bản và yêu cầu
Khung nhìn module
Khung nhìn Xử lý
Khung nhìn luồng dữ liệu
mỗi thuộc tính được cô lập
những thuộc tính kiến trúc khác nhau cho những mẫu kiến trúc đặc trưng
tính nhạy (b5)
Trang 39"four bedrooms, three baths, lots of glass "
customer requirements
architectural design
6.4 Ánh xạ data flow thành kiến trúc
Trang 40Công Nghệ Phần Mềm 40
Chuyển thành kiến trúc chương trình
Program Architecture
Trang 41Đặc trưng luồng
Transform flow
Transaction
flow
Trang 43Ánh xạ biến đổi (Transform)
data flow model
h j
Trang 44Công Nghệ Phần Mềm 44
Phân tách (Factoring) mức 1
main program controller
input controller processingcontroller
output controller
Trang 47Giao dịch (Transaction)
operator commands process
operator commands
fixture setting
report
robot control
fixture servos
display screen
robot control software
in reality, other commands would also be shown assembly
record
Trang 48Công Nghệ Phần Mềm 48
data flow model
a b
t
g
h i j
k l
m
b a
x1
t x2
d e f
x3
g h x3.1
i j k
x4
l m n
Trang 49Ánh xạ DFD
process operator commands
command input controller
read command commandvalidate
produce error message
determine type
fixture status controller
report generation controller
send control value
each of the action paths must be expanded further
Trang 50Công Nghệ Phần Mềm 50
process operator commands
command input controller
read
command commandvalidate
produce error message
determine type
send control value
read fixture status
determine setting format setting
read record
calculate output values
format report
fixture status controller
report generation controller
Trang 51Module tương tác người dùng
Trang 52Công Nghệ Phần Mềm 52
Tinh chế module tương tác người dùng
Trang 536.5 Tạo mô hình điều khiển
• Để hệ thống làm việc tốt, ta phải điều khiển được các hệ thống con, làm cho các dịch vụ của chúng phải được thực hiện đúng chỗ và đúng thời điểm
• Có 2 loại điều khiển:
Điều khiển tập trung: một hệ thống con chịu trách nhiệm kiểm soát, khởi tạo hoặc dừng các hệ thống con khác.
Điều khiển hướng sự kiện: mỗi hệ thống đáp ứng với các sự kiện xảy ra từ các hệ thống con khác
hoặc từ môi trường của hệ thống.
Trang 54Công Nghệ Phần Mềm 54
Điều khiển tập trung
• Một phân hệ được thiết kế như bộ điều khiển chịu trách nhiệm quản lý việc thực hiện của các hệ
thống con khác
• Điều khiển tập trung gồm 2 loại mô hình:
Mô hình gọi - trả lời (call-return)
Mô hình quản lý
Trang 55Mô hình gọi - trả lời (call-return)
• Gồm các thủ tục con được sắp xếp phân cấp, thủ
tục điều khiển nằm ở đỉnh của cấu trúc phân cấp
và di chuyển dần xuống dưới Mô hình này thường được áp dụng cho các hệ thống tuần tự
Trang 56Công Nghệ Phần Mềm 56
Mô hình quản lý
• Thường áp dụng cho các hệ thống xử lý đồng thời Một thành phần hệ thống điều khiển việc khởi tạo, ngừng, hoặc cộng tác với các quy trình hệ thống
khác
Trang 57Điều khiển hướng sự kiện
• Điều khiển hướng sự kiện
Mô hình lan truyền (Broadcast)
Mô hình hướng ngắt (Interrupt-driven)
Trang 58Công Nghệ Phần Mềm 58
Mô hình lan truyền (Broadcast)
• Trong mô hình lan truyền, sự kiện được lan truyền
tới tất cả các hệ thống con Hệ thống con được thiết
kế để điều khiển sự kiện này sẽ đáp ứng sự kiện.
• Mô hình này có hiệu quả đối với các hệ thống con
phân bố trên nhiều máy tính khác nhau trong cùng một mạng.
• Phát triển tương đối đơn giản
• Không biết sự kiện có được xử lý không và khi nào
được xử lý
• Hai phân hệ cùng sinh sự kiện có thể gây xung đột
Trang 59Mô hình hướng ngắt (Interrupt-driven)
• Mô hình hướng ngắt được sử dụng trong các hệ
thống thời gian thực trong đó các sự kiện được phát hiện bởi bộ bắt ngắt (interrupt handler) và được
truyền cho một số các thành phần khác để xử lý
• Mô hình này cho phép đáp ứng rất nhanh, nhưng lập trình khá phức tạp và khó đánh giá.
Trang 60Công Nghệ Phần Mềm 60
• Đích của việc đánh giá:
Thỏa mãn thuộc tính chất lượng
Hỗ trợ cho software product line
Trang 61Đánh giá kiến trúc
architecture assessment
architecture
stakeholders expert (comparing)qualitative quantitative(predicting)
Trang 62Công Nghệ Phần Mềm 62
Trang 64Công Nghệ Phần Mềm 64
Trang 65Xử lý XSLT với ASP
Trang 66Công Nghệ Phần Mềm 66
Kiến trúc LIBSYS
Trang 67LIBSYS
Trang 68Công Nghệ Phần Mềm 68
• Hệ thống thương mại điện tử dựa vào hệ
thống quản lý tài nguyên dựa vào Internet,
chấp nhận đặt hàng điện tử cho hàng hóa
hay dịch vụ băng
• Chúng được tổ chức dùng một kiến trúc đa
tầng tầng ứng dụng được kết hợp với mỗi
tầng
Trang 70Công Nghệ Phần Mềm 70
• Hệ thống soạn thảo theo hướng đối tượng
Screen - monitors screen memory and detects
events;
Event - recognises events and passes them for
processing;
Editor data - manages the editor data structure;
Ancillary data - manages other data such as styles and preferences;
File system - manages file I/O;
Display - updates the screen display.
Trang 71Kiến trúc hệ thống soạn thảo
Trang 72Công Nghệ Phần Mềm 72
Kiến trúc 3 tầng
• Trong kiến trúc 3 tầng mỗi tầng ứng dụng có thể
thực thi trên một bộ xử lý riêng biệt
• Dễ mở rộng
Trang 73Kiến trúc client server 3 tầng
Trang 74Công Nghệ Phần Mềm 74
Trang 75Dùng kiến trúc client - server
Applications where computationally-intensive processing of data (e.g.
data visualisation) is required.
Applications with relatively stable end-user functionality used in an environment with well-established system management.
Trang 76Công Nghệ Phần Mềm 76
Trang 77Hệ thống khai khoáng dữ liệu
• Mô hình logic của hệ thống không là một hệ thống cung cấp dịch vụ mà có những dịch vụ quản lý dữliệu phân biệt
• Cho phép số CSDL để truy cập được gia tăng mà
không phá hủy hệ thống
• Cho phép những loại mới của quan hệ được khai
thác bằng cách cộng thêm những đối tượng tích
hợp mới