Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
03/05/2018
1
Chương 4. MÔ HÌNH HÓA CẤU TRÚC
TS. Vũ Chí Cường
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Nội dung
� Đối tượng và lớp� Quan hệ giữa các lớp
03/05/2018
2
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Đối tượng là một kháiniệm, một sự trừu tượnghóa hay một sự vật cónghĩa trong bài toánđang khảo sát
� Đặc trưng của đối tượng• Trạng thái - state (thuộc
tính, tính chất)• Hành vi - behavior
(phương thức, hành động)• Định danh – identify (duy
nhất)
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Các đặc trưng trongmô hình đối tượng• Tính trừu tượng
• Tính đóng gói• Tính modun• Tính phân cấp (kế thừa)• Tính đồng thời
03/05/2018
3
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Các đặc trưng trongmô hình đối tượng• Tính trừu tượng• Tính đóng gói
• Tính modun• Tính phân cấp (kế thừa)• Tính đồng thời
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Các đặc trưng trongmô hình đối tượng• Tính trừu tượng• Tính đóng gói• Tính modun
• Tính phân cấp (kế thừa)• Tính đồng thời
03/05/2018
4
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Các đặc trưng trongmô hình đối tượng• Tính trừu tượng• Tính đóng gói• Tính modun• Tính phân cấp (kế
thừa)
• Tính đồng thời
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Các đặc trưng trongmô hình đối tượng• Tính trừu tượng• Tính đóng gói• Tính modun• Tính phân cấp (kế thừa)• Tính đồng thời
03/05/2018
5
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Lớp là một mô tả củamột tập các đối tượngcó chung các thuộctính, các hành vi, cácmối liên quan, cácràng buộc và ngữnghĩa
� Lớp là kiểu� Đối tượng thuộc lớp
là một thể hiện(instance)
03/05/2018
6
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Xác định đối tượng• Cách tốt nhất là khảo sát danh từ trong luồng sự
kiện hay tìm trong tài liệu kịch bản• Danh từ trong kịch bản có thể là tác nhân, là đối
tượng, là thuộc tính của đối tượng.• Nếu chỉ cho thông tin thì đó là thuộc tính• Nếu có hành vi thì đó là đối tượng
� Chú ý• Mẫu báo cáo (forms) không có trong luồng sự kiện
-> đối tượng để nhập hay xem dữ liệu• Đối tượng điều khiển không có trong luồng sự kiện
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Xác định thuộc tính của lớp• Thuộc tính của lớp mô tả các đặc tính của các
đối tượng trong lớp• Thuộc tính của lớp có cấu trúc
� Tên của thuộc tính� Kiểu xác định các loại giá trị thuộc tính
• Kiểu nguyên thủy: số nguyên (Integer, int), số thực(Real, Float), giá trị logic (Boolean), ký tự (Character),thời gian (Time),...
• Kiểu mới
� Giá trị mặc định (khởi đầu)� Phạm vi thuộc tính: public, protected, private,
implementation.
03/05/2018
7
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Ví dụ
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Đối tượng và lớp
� Xác định thuộc tính của lớp• Đọc kỹ các mô tả bài toán, nghiên cứu hồ sơ các chức năng
hệ thống, các đặc tả ca sử dụng, các kịch bản để tìm tất cảnhững thông tin, dữ liệu cần phải lưu trữ, xử lý và cậpnhật. Các mục này thường là các danh từ, hoặc mệnh đềdanh từ đơn, được xem như là đại biểu của các thuộc tính.
• Sử dụng các quy tắc� Liên kết các khái niệm với nhau bằng quan hệ kết hợp, không
bằng các thuộc tính phức hợp� Phần tử của kiểu dữ liệu thuần túy có thể được xác định trong một
thuộc tính của một lớp, mặc dù nó cũng có thể được sử dụng nhưmột khái niệm (lớp) tách biệt trong mô hình
� Nên kết nối các khái niệm với nhau bằng các quan hệ kết hợp,không sử dụng thuộc tính (khóa ngoại).
• Đọc những giả thiết, sự phân loại hay những quy ước cầnáp dụng cho hệ thống hiện thời để khẳng định lại nhữngthuộc tính của từng lớp.
• Gán các thuộc tính cho các lớp đối tượng trong sơ đồ lớp.
03/05/2018
8
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Xác định hành vi của lớp
� Hành vi của lớp được mô tả bởi: phạm vi, tên gọi,danh sách các tham số và kiểu giá trị trả về
� Cú phápvisibility name (arg1: DataType1, arg2:DataType2,…, argn: DataTypen): ReturnType• visibility khai báo phạm vi quan sát (public, protected,
private, hay mặc định)• name là tên gọi của thao tác, quy ước thường là các
động từ (cụm động từ), viết hoa các chữ cái đầu tiên củacác từ trừ từ đầu tiên.
• argk là tên của tham số hình thức thứ k trong danhsách.
• DataTypek là các kiểu thuộc tính.• ReturnType là kiểu dữ liệu trả lại sau khi thao tác kết
thúc.
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Phân loại hành vi
� Hành vi nghiệp vụ/cài đặt (implementor)� Hành vi quản lý (manager)� Hành vi truy cập (access)� Hành vi trợ giúp (helper)� Hành vi hiển thị, trao đổi thông tin
03/05/2018
9
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Cách xác định hành vi
� Khảo sát biểu đồ tương tác� Các hành vi quản lý (bổ sung cấu tử, hủy
tử)� Các hành vi truy cập (get, set)� Chú ý:
• Nếu lớp chỉ có 1 hay 2 hành vi thì nên gộp vàolớp khác
• Nếu lớp không có hành vi nào thì nên mô hìnhhóa nó như là thuộc tính
• Nếu lớp có quá nhiều hành vi thì nên chia sẻcho các lớp khác
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Xác định mối quan hệ giữa các lớp
� Quan hệ kết hợp (association)� Quan hệ tụ hợp (aggregation)� Quan hệ tổng quát hóa, kế thừa
(generalization)� Quan hệ phụ thuộc (dependencies)
• Dùng để diễn đạt một lớp (bên phụ thuộc) chịuảnh hưởng của mọi thay đổi trong một lópkhác (bên độc lập), mà ngưọc lại thi khôngnhất thiết
� Quan hệ thực hiện hóa (realisation)
03/05/2018
10
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Quan hệ kết hợp
� Định nghĩa• là quan hệ giữa hai lớp xác định cách các đối
tượng của các lớp có thể liên kết với nhau đểthực hiện công việc
� Vai trò (role)� Cơ số (multiplicity)
• 1, 0..1, m..n, 0..*, 1..*
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Quan hệ tụ hợp
� Định nghĩa• Tụ hợp (aggregation)
là một loại của quanhệ kết hợp, tập trungthể hiện quan hệ giữatổng thể và bộ phận.
• Tụ hợp thường biểudiễn cho quan hệ “cómột”, “là bộ phậncủa”, hoặc “baogồm”,... thể hiện mốiquan hệ một lớp tổngthể có, gồm, chứa hayliên kết với một hoặcnhiều lớp thành phần.
03/05/2018
11
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Quan hệ tổng quát hóa
� Định nghĩa• là quan hệ kế thừa
giữa hai lớp. Nó chophép lớp con (lớpdưới, lớp kế thừa,hay lớp dẫn xuất)kế thừa trực tiếp cácthuộc tính và cáchàm thuộc loại côngkhai, hay được bảovệ (protected) củalớp cha (lớp cơ sở,lớp trên).
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Quan hệ thực hiện hóa
� Định nghĩa• Quan hệ thực hiện
hóa thể hiện sự kếtnối giữa các lớp vàgiao diện thườngđược sử dụng vớicác giao diện vànhững lớp làmnhiệm vụ cài đặt cácdịch vụ (thao tác)đã được khai báotrong các giao diện
03/05/2018
12
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Phân nhóm lớp (stereotype)
� Lớp biên (Boundary Class)• là lớp nằm trên đường biên của hệ thống
với phần thế giới bên ngoài.• có thể là biểu mẫu (form), báo cáo
(report), giao diện với các thiết bị phầncứng như máy in, máy đọc ảnh(Scanner),... hoặc là giao diện với các hệthống khác
� Lớp thực thể (Entity Class)• là lớp lưu giữ các thông tin mà nó được
ghi vào bộ nhớ ngoài.• Ví dụ lớp SinhVien là lớp thực thể
� Lớp điều khiển (Control Class)• là lớp làm nhiệm vụ điều phối hoạt động
của các lớp khác
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Xây dựng biểu đồ lớp
� Bước 1: Xác định mục đích của mỗi ca sửdụng
� Bước 2: Dựa vào các mục đích để xác địnhcác thực thể (lớp)
� Bước 3: Xác định các mối quan hệ chủ yếu(kết hợp) giữa các lớp
� Bước 4: Xác định các hành vi/hàm thànhphần thể hiện sự cộng tác của các lớptrong ca sử dụng
� Bước 5: Kiểm tra các sơ đồ ca sử dụng
03/05/2018
13
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Bước 1
� Tìm cách trả lời những câu hỏi sau:• Mục tiêu của ca sử dụng là gì?• Ca sử dụng này cung cấp những dịch vụ nào?• Những giá trị hay những đáp ứng nào mà ca sử
dụng có thể cung cấp.
� Ví dụ
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Bước 2
� Thực thể là người nào đó, cái gì đó đóng một vaitrò nhất định trong ca sử dụng để thực hiện đượcnhững mục đích của ca sử dụng
� Tìm cách trả lời các câu hỏi sau• Những thực thể nào là cần thiết và quan trọng để thực
hiện được mục đích của ca sử dụng?• Những thuộc tính nào của thực thể là cần thiết và quan
trọng để thực hiện được mục đích của ca sử dụng?
� Ví dụ
03/05/2018
14
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Bước 3
� Một ca sử dụng có thể liên quan tới nhiều thựcthể, những thực thể đó kết hợp với nhau để thựchiện được mục đích của ca sử dụng.
� Các câu hỏi• Với mỗi thực thể, nó được sinh ra dựa vào hay bị phụ
thuộc vào những thực thể khác? Nếu có, nó phải thamchiếu tới những thực thể đó.
• Với mỗi thực thể, nó có thể tác động vào hay bị tác độngbởi những thực thể khác? Nếu có, nó phải tham chiếu tớinhững thực thể đó.
� Ví dụ
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Bước 4
� Những thực thể liên quan đến một ca sử dụng thìchúng cộng tác với nhau để thực hiện một số côngviệc nhằm đạt được mục đích của ca sử dụng. Nhữngcông việc đó chính là các hàm thành phần của lớp.
� Các câu hỏi• Ca sử dụng này cần làm gì với mỗi thực thể liên quan với
nó?• Ca sử dụng này cần biết gì về mỗi thực thể liên quan với
nó?• Mỗi thực thể liên quan có thể đóng góp được gì trong ca sử
dụng này?� Ví dụ
03/05/2018
15
Các phương pháp phân tích và thiết kế hệ thống hiện đại
Bước 5
� Kiểm tra các yêu cầu chức năng xem:• Tất cả các ca sử dụng có thực hiện được hết các yêu cầu chưa?• Mục đích của mỗi ca sử dụng có đúng như các tác nhân yêu cầu
không?� Kiểm tra các thực thể của các ca sử dụng:
• Các thực thể trong sơ đồ lớp có cần và đủ để thực hiện các mụcđích của mçi ca sử dụng hay không?
• Các thuộc tính của mỗi thực thể có phải là những cái mà ca sửdụng cần biết hay không?
• Các hàm thành phần của lớp có cần và đủ để thực hiện các mụcđích của mỗi ca sử dụng hay không?
� Loại bỏ các dư thừa• Lớp dư thừa: khi có 2 lớp trở lên định nghĩa cho cùng một thực thể
thì chỉ cần giữ lại một.• Lớp biệt lập: những lớp không có quan hệ với các lớp khác trong
hệ thống thì cần phải loại bỏ.• Lớp mơ hồ: những lớp không có chức năng rõ ràng thì phải định
nghĩa lại chính xác hoặc loại bỏ đi./.