Bài giảng Phân tích hệ thống – mô hình khái niệm và biểu đồ lớp
Mô hình khái niệm – mô hình đối tượng
1.1 Đối tượng và lớp
Trong mô hình hóa hướng đối tượng, những phần tử cấu
thành căn bản nhất của mô hình là lớp, đối tượng và
mối quan hệ giữa chúng với nhau.
Lớp và đối tượng sẽ mô hình hóa những gì có trong hệ
thống mà chúng ta muốn miêu tả, các mối quan hệ sẽ
biểu thị cấu trúc.
Khi sử dụng lập trình hướng đối tượng để xây dựng các
hệ thống phần mềm thì lớp và các mối quan hệ của
chúng là các thông tin cơ bản để xây dựng sản phẩm
phần mềm.
41. Mô hình khái niệm – mô hình đối tượng
1.2 Trạng thái, ứng xử và nhận diện của đối tượng
Cho đến nay, lớp là không có gì mới. Darwin là người đã
sử dụng các lớp để mô tả các nhóm sinh vật. Ông nhóm
các loài vào các lớp để mô tả lý thuyết tiến hóa.
Thiết kế hướng đối tượng phân loại thông tin một cách
tương tự. Song UML cung cấp một điều mới: một sự
phân biệt rõ ràng giữa lớp và đối tượng.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Bài giảng Phân tích hệ thống – mô hình khái niệm và biểu đồ lớp
tả các thuộc tính và hành vi chung cho các
lớp khác. Trong hệ thống phân cấp lớp trong hình dưới đây, rất khó
để tưởng tượng các đối tượng của phương tiện – vehicle, khác với.
các lớp con là car- xe hơi hay boat - chiếc thuyền.
Tuy nhiên, lớp Vehicle nắm bắt sự tương đồng giữa xe và thuyền.
Vehicle đại diện cho một lớp trừu tượng, mà không có bất kỳ đối
tượng, nhưng cho thấy đặc điểm chung của các lớp con. Một lớp có
thể được xác định là trừu tượng bằng cách đặt từ khóa {abstract}
trong khoang tên của lớp
80
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
81
Loại cấu trúc lớp như vậy được gọi là một cấu trúc hình cây hoặc cấu
trúc phân cấp. Khi chúng ta dịch chuyển từ điểm xuất phát của cây
xuống dưới, chúng ta sẽ gặp các khái niệm càng ngày càng được
chuyên biệt hóa. Theo con đường đi từ dưới lên các lớp được khái
quát dần.
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
82
Tạo lớp trừu tượng
Lớp Vehicle đứng đầu cây cấu trúc và
được gọi là lớp căn bản. Lớp căn bản
của một cây cấu trúc chứa những
thuộc tính đã được khái quát hóa và có
thể được áp dụng cho mọi lớp dẫn
xuất từ nó.
Trong quá trình khái quát hóa, các
thuộc tính được dùng chung trong các
lớp chuyên biệt được đưa lên lớp cha.
Lớp cha về cuối được tạo bởi các
thuộc tính chung của tất cả các lớp dẫn
xuất từ nó.
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
83
Tạo lớp trừu tượng
Các lớp Car và Boat là hai lớp chuyên
biệt dẫn xuất từ lớp Vehicle.
Chúng có những thuộc tính chuyên
biệt riêng của chúng bên cạnh phương
thức chung drive() mà chúng thừa kế.
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
84
Lớp cụ thể
Lớp cụ thể (concrete class) là những
lớp có thể thực thể hóa. Như đã nói
từ trước, các lớp cụ thể khi thực thể
hóa được gọi là các đối tượng.
Trong ví dụ trên, các lớp Car và
Boat có thể được thực thể hóa thành
đối tượng. Tương tự đối với account
tiết kiệm và account bình thường.
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
Tổng kết về phát triển cây cấu trúc
Cơ chế khái quát hóa dùng chung thuộc tính và thủ tục
được gọi là tính thừa kế (inheritance). Sử dụng tính thừa kế
sẽ dẫn tới việc phát triển một cây cấu trúc. Nên phát hiện
những ứng xử (behaviour) chung trong một loạt lớp rồi thể
hiện nó thành một lớp cha. Sự khác biệt trong ứng xử của
cùng một lớp sẽ dẫn tới việc tạo ra các lớp con.
85
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
Tổng kết về phát triển cây cấu trúc
Khi phát triển cây cấu trúc, hãy quan sát ứng xử của các
lớp. Trong trường hợp có một thuộc tính hay phương
thức tồn tại từ một lớp cụ thể đến tất cả các lớp con của
một lớp cha, nên chuyển thuộc tính hay phương thức
này lên lớp cha.
Nếu tồn tại một thuộc tính hay phương thức trong một
lớp nào đó và một lớp cha, hãy chuyên biệt hóa và nâng
cao cấu trúc để xác định xem liệu thuộc tính hay phương
thức này có được áp dụng cho tất cả các lớp con của lớp
cha đó hay không. Nếu có thì gán nó vào lớp cha, nếu
không thì dịch xuống cho những lớp con phù hợp.
86
3. Mối quan hệ giữa các lớp đối tượng
3.2 Quan hệ khái quát hóa và chuyên biệt hóa
Tổng kết về phát triển cây cấu trúc
87
3. Mối quan hệ giữa các lớp đối tượng
3.3 Quan hệ phụ thuộc và nâng cấp
Quan hệ phụ thuộc (dependency) là một sự liên quan
ngữ nghĩa giữa hai phần tử mô hình, một mang tính độc
lập và một mang tính phụ thuộc
Mọi sự thay đổi trong phần tử độc lập sẽ ảnh hưởng đến
phần tử phụ thuộc.
Phần tử mô hình ở đây có thể là một lớp, một gói
(package), một Use Case, .v.v...
Có thể nêu một vài ví dụ cho sự phụ thuộc như: một lớp
lấy tham số là đối tượng của một lớp khác, một lớp truy
nhập một đối tượng toàn cục của một lớp khác, một lớp
gọi một thủ tục thuộc thuộc một lớp khác. Trong tất cả
các trường hợp trên đều có một sự phụ thuộc của một
lớp này vào một lớp kia, mặc dù chúng không có liên hệ
rõ ràng với nhau. 88
3. Mối quan hệ giữa các lớp đối tượng
3.3 Quan hệ phụ thuộc và nâng cấp
Quan hệ phụ thuộc được thể hiện bằng đường thẳng gạch
rời với mũi tên (và có thể thêm một nhãn) giữa các phần tử
mô hình.
89
3. Mối quan hệ giữa các lớp đối tượng
3.3 Quan hệ phụ thuộc và nâng cấp
Quan hệ Nâng cấp (refinement) là một quan hệ giữa hai
lời miêu tả của cùng một sự vật, nhưng ở những mức độ
trừu tượng hóa khác nhau.
Nâng cấp có thể là mối quan hệ giữa một loại đối tượng
và lớp thực hiện nó.
Các nâng cấp thường gặp khác là quan hệ giữa một lớp
phân tích (trong mô hình phân tích) và một lớp thiết kế
(trong mô hình thiết kế) đều mô hình hóa cùng một thứ,
quan hệ giữa một lời miêu tả có mức trừu tượng hóa cao
và một lời miêu tả có mức trừu tượng hóa thấp (ví dụ
một bức tranh khái quát của một sự cộng tác động và
một biểu đồ chi tiết của cũng cộng tác đó).
90
3. Mối quan hệ giữa các lớp đối tượng
3.3 Quan hệ phụ thuộc và nâng cấp
Quan hệ Nâng cấp (refinement) là một quan hệ giữa hai
lời miêu tả của cùng một sự vật, nhưng ở những mức độ
trừu tượng hóa khác nhau.
Nâng cấp có thể là mối quan hệ giữa một loại đối tượng
và lớp thực hiện nó.
Các nâng cấp thường gặp khác là quan hệ giữa một lớp
phân tích (trong mô hình phân tích) và một lớp thiết kế
(trong mô hình thiết kế) đều mô hình hóa cùng một thứ,
quan hệ giữa một lời miêu tả có mức trừu tượng hóa cao
và một lời miêu tả có mức trừu tượng hóa thấp (ví dụ
một bức tranh khái quát của một sự cộng tác động và
một biểu đồ chi tiết của cũng cộng tác đó).
91
3. Mối quan hệ giữa các lớp đối tượng
3.3 Quan hệ phụ thuộc và nâng cấp
Quan hệ nâng cấp còn được sử dụng để mô hình hóa
nhiều mức thực thi của cùng một thứ (một thực thi đơn
giản và một thực thi phức tạp hơn, hiệu quả hơn). Quan
hệ nâng cấp được thể hiện bằng đường thẳng gạch rời
(dashed line) với mũi tên rỗng, xem ví dụ sau
92
3. Mối quan hệ giữa các lớp đối tượng
3.3 Quan hệ phụ thuộc và nâng cấp
Quan hệ nâng cấp được sử dụng trong việc phối hợp mô
hình. Trong các dự án lớn, mọi mô hình đều cần phải được
phối hợp với nhau. Phối hợp mô hình được sử dụng nhằm
mục đích:
Chỉ ra mối liên quan giữa các mô hình ở nhiều mức độ
trừu tượng khác nhau.
Chỉ ra mối liên quan giữa các mô hình ở nhiều giai đoạn
khác nhau (phân tích yêu cầu, phân tích, thiết kế, thực
thi).
Hỗ trợ việc quản trị cấu hình.
93
3. Mối quan hệ giữa các lớp đối tượng
3.4 Tìm các quan hệ
Thường sẽ có nhiều mối quan hệ giữa các đối tượng
trong một hệ thống.
Quyết định quan hệ nào cần phải được thực thi là công
việc thụôc giai đoạn thiết kế.
Có thể tìm các mối quan hệ qua việc nghiên cứu các lời
phát biểu vấn đề, các yêu cầu.
Giống như danh từ đã giúp chúng ta tìm lớp, các động từ
ở đây sẽ giúp ta tìm ra các mối quan hệ.
94
3. Mối quan hệ giữa các lớp đối tượng
3.4 Tìm các quan hệ
Một vài chỉ dẫn tìm quan hệ:
Vị trí về mặt vật lý hoặc sự thay thế, đại diện: Mỗi cụm
động từ xác định hay biểu lộ một vị trí đều là một biểu
hiện chắc chắn cho quan hệ. Ví dụ: tại địa điểm, ở trong
Sự bao chứa: Cụm động từ biểu lộ sự bao chứa, ví dụ
như: là thành phần của...
Giao tiếp: Có nhiều cụm động từ biểu lộ sự giao tiếp, ví
dụ trao đổi thông tin điệp, nói chuyện với
Quyền sở hữu: Ví dụ thuộc về, của
Thoả mãn một điều kiện: Những cụm từ như: làm việc
cho, là chồng/vợ của, quản trị
95
3. Mối quan hệ giữa các lớp đối tượng
3.4 Tìm các quan hệ
Xử lý các quan hệ không cần thiết
Sau khi tìm các mối quan hệ, bước tiếp theo đó là phân
biệt các quan hệ cần thiết ra khỏi các quan hệ không cần
thiết. Quan hệ không cần thiết có thể bao gồm những quan
hệ bao chứa các lớp ứng viên đã bị loại trừ hoặc các quan
hệ không liên quan đến hệ thống. Có những quan hệ được
tạo ra nhằm mục đích tăng hiệu quả. Những quan hệ như
thế là ví dụ tiêu tiểu của các chi tiết thực thi và không liên
quan tới giai đoạn này.
96
3. Mối quan hệ giữa các lớp đối tượng
3.4 Tìm các quan hệ
Xử lý các quan hệ không cần thiết
Cần chú ý phân biệt giữa phương thức và mối quan hệ.
Người ta thường có xu hướng miêu tả phương thức như
là quan hệ, bởi cả quan hệ lẫn phương thức đều được
dẫn xuất từ những cụm từ mang tính động từ trong bản
miêu tả yêu cầu.
Các phương thức đã được thể hiện sai thành quan hệ
cũng cần phải được loại bỏ. Khi làm việc này, có thể áp
dụng một nguyên tắc: quan hệ là kết nối mang tính tĩnh
giữa các đối tượng, trong khi phương thức chỉ là thao tác
xảy ra một lần. phương thức vì vậy nên được coi là
phương thức đối với một đối tượng chứ không phải quan
hệ giữa các lớp.
97
3. Mối quan hệ giữa các lớp đối tượng
3.4 Tìm các quan hệ
Xử lý các quan hệ không cần thiết
Ví dụ với "Ban quản trị ngân hàng tiếp nhận một nhân
viên", động từ “tiếp nhận” thể hiện phương thức. Trong
khi đó với “Một nhân viên làm việc cho hãng" thì động
từ “làm việc" miêu tả quan hệ giữa hai lớp nhân viên và
hãng.
Trong khi cố gắng loại bỏ các quan hệ dư thừa, ta sẽ
thấy có một số quan hệ dư thừa đã "lẻn vào" mô hình
trong giai đoạn thiết kế. Hình sau chỉ ra một số loại quan
hệ dư thừa cần đặc biệt chú trọng.
98
3. Mối quan hệ giữa các lớp đối tượng
3.4 Tìm các quan hệ
Nâng cấp các quan hệ
Một khi các quan hệ cần thiết đã được nhận dạng, bước
tiếp theo là ngiên cứu kỹ mô hình và nâng cấp các mối
quan hệ đó.
Động tác nâng cấp đầu tiên là xem xét lại tên quan hệ,
tên vai trò, đặt lại cho đúng với bản chất quan hệ mà
chúng thể hiện. Mỗi quan hệ cần phải được suy xét kỹ
về phương diện số lượng thành phần tham gia
(cardinality). Sự hạn định (qualification) cho quan hệ
đóng một vai trò quan trọng ở đây, bổ sung yếu tố hạn
định có thể giúp làm giảm số lượng. Nếu cần thiết, hãy
bổ sung các quan hệ còn thiếu. Nghiên cứu kỹ các thuộc
tính, xem liệu trong số chúng có thuộc tính nào thật ra
thể hiện quan hệ. 99
4. Nâng cấp mô hình
Khi nâng cấp mô hình cần chú ý đến các bước sau:
a) Nghiên cứu các lớp để tìm các thuộc tính và thủ tục
không đồng dạng (dissimilar). Nếu có, chia nhỏ lớp
thành các thành phần để tạo tính đồng nhất (harmony)
trong lớp. Ví dụ với một lớp đảm nhận hai vai trò khác
nhau, hãy chia nhỏ lớp này thành các lớp với những thủ
tục được xác định rõ ràng.
b) Nếu phát hiện thấy một chức năng không hướng tới
một lớp đích nào thì đó là triệu chứng thiếu lớp. Hãy bổ
sung lớp thiếu và đưa thủ tục kể trên vào lớp đó.
10
0
4. Nâng cấp mô hình
Khi nâng cấp mô hình cần chú ý đến các bước sau:
c) Khái quát hóa là còn chưa đủ độ nếu có các quan hệ
trùng lặp (nhiều quan hệ cùng định nghĩa một quan hệ).
Trong trường hợp này, cần tạo lớp cha để kết hợp các
mối quan hệ đó.
d) Nếu một vai trò mang một ý nghĩa đặc biệt quan trọng
đối với hệ thống thì thường nó cần một lớp riêng. Một
lựa chọn khác là biến định nghĩa vai trò của quan hệ này
thành một lớp quan hệ.
e) Nếu một lớp thiếu cả thuộc tính lẫn thủ tục hoặc quan
hệ thì rất có thể đây là một lớp không cần thiết. Hãy loại
bỏ những lớp đó nếu có thể.
10
1
4. Nâng cấp mô hình
Khi nâng cấp mô hình cần chú ý đến các bước sau:
f) Rà sát toàn bộ hệ thống để tìm những vai trò giữa các
lớp còn chưa được thể hiện. Nếu có, đây là triệu chứng
thiếu quan hệ.
g) Nếu có một quan hệ giữa các đối tượng nhưng lại
chẳng được thủ tục nào sử dụng tới thì rất có thể đây là
một quan hệ không cần thiết. Ví dụ ta đã xác định một
quan hệ giữa nhân viên thu ngân và khách hàng nhưng
lại không có thủ tục nào được định nghĩa giữa hai người.
Trong trường hợp này, rất có thể quan hệ đó là không
cần thiết.
10
2
4. Nâng cấp mô hình
Một số chỉ dẫn thực tế:
Nghiên cứu để hiểu thấu đáo vấn đề cần giải quyết: Khi
xây dựng mô hình đối tượng, không nên bắt đầu bằng
cách viết ra các cấu trúc lớp, các mối quan hệ cũng như
những mối quan hệ thừa kế lộ rõ trên bề mặt và đập
thẳng vào mắt chúng ta. Hãy dành thời gian nghiên cứu
kỹ bản chất vấn đề. Mô hình đối tượng phải được thiết
kế để phù hợp với giải pháp cho vấn đề mà chúng ta
nhắm tới.
10
3
4. Nâng cấp mô hình
Một số chỉ dẫn thực tế:
Cẩn thận khi chọn tên: Tên cần được chọn một cách cẩn
thận bởi nó chứng nhận sự tồn tại các thực thể. Tên cần
phải chính xác, ngắn gọn, tránh gây tranh cãi. Tên phải
thể hiện tổng thể đối tượng chứ không chỉ nhắm tới một
khía cạnh nào đó của đối tượng. Hãy chọn những tên
nào chứa các danh từ chuyên ngành quen thuộc đối với
người sử dụng. Những tên xa vời đối với người sử dụng,
hoặc các thực thể được đặt tên một cách tồi tệ rất dễ gây
ra nhầm lẫn.
10
4
4. Nâng cấp mô hình
Một số chỉ dẫn thực tế:
Cần giữ cho mô hình đối tượng được đơn giản: Hãy đi
ngược lại xu hướng tạo ra các mô hình phức tạp, chúng
chỉ mang lại sự nhầm lẫn, khó hiểu. Trong vòng đầu của
quy trình mô hình hóa đối tượng, hãy xác định các mối
quan hệ căn bản và gạt ra ngoài các chi tiết, việc xem xét
tới các số lượng thành phần tham gia (Cardinality) trong
quan hệ nên để dành cho giai đoạn sau; rất có thể là ở
vòng thứ hai.
10
5
4. Nâng cấp mô hình
Một số chỉ dẫn thực tế:
Nên sử dụng các mối quan hệ hạn định bất cứ khi nào có
thể.
Tránh khái quát hóa quá nhiều. Thường chỉ nên hạn chế
ở ba tầng khái quát.
Nghiên cứu thật kỹ các mối quan hệ 1-nhiều. Chúng
thường có thể được chuyển thành các quan hệ 1- 0 hoặc
1- 1.
10
6
4. Nâng cấp mô hình
Một số chỉ dẫn thực tế:
Tất cả các mô hình cần phải được lấy làm đối tượng cho
việc tiếp tục nâng cấp. Nếu không thực hiện những vòng
nâng cấp sau đó, rất có thể mô hình của chúng ta sẽ thiếu
hoàn chỉnh.
Động tác để cho người khác xem xét lại mô hình là rất
quan trọng. Thường sự liên quan quá gần với mô hình sẽ
khiến chúng không nhận những ra khiếm khuyết của nó.
Một cái nhìn vô tư trong trường hợp này là rất cần thiết.
10
7
4. Nâng cấp mô hình
Một số chỉ dẫn thực tế:
Không nên mô hình hóa các mối quan hệ thành thuộc
tính. Nếu điều này xảy ra, ta thường có thể nhận thấy
triệu chứng là mô hình thiếu quan hệ. Thêm vào đó, đã
có lúc ta bỏ qua sự cần thiết của một yếu tố hạn định.
Việc viết tài liệu cho mô hình là vô cùng quan trọng.
Các tài liệu cần phải nắm bắt thấu đáo những nguyên
nhân nằm đằng sau mô hình và trình bày chúng chính
xác như có thể.
10
8
Tóm tắt
Phân tích hệ thống – Mô hình khái niệm và biểu đồ lớp
4.1 Mô hình khái niệm – mô hình đối tượng
4.2 Xác định các lớp, đối tượng
4.3 Mối quan hệ giữa các lớp đối tượng
4.4 Nâng cấp mô hình
10
9
DISCUSSION – CÂU HỎI
https://sites.google.com/site/daonamanhedu/teac
hing/objectorientedanalysisanddesign
110
File đính kèm:
bai_giang_phan_tich_he_thong_mo_hinh_khai_niem_va_bieu_do_lo.pdf

