Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 6: Giới thiệu về đối tượng

Nội dung:

? Giới thiệu về mô-đun

? Độ gắn kết

? Nối kết

? Bao gói dữ liệu

? Kiểu dữ liệu trừu t-ợng

? Thông tin ẩn

? Đối t-ợng

pdf13 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1972 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 6: Giới thiệu về đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Huỳnh Xuân Hiệp - CNPM 
67
6 giới thiệu về đối t−ợng(INTRODUCTION TO OBJECTS)
Nội dung: 
ƒ Giới thiệu về mô-đun 
ƒ Độ gắn kết 
ƒ Nối kết 
ƒ Bao gói dữ liệu 
ƒ Kiểu dữ liệu trừu t−ợng 
ƒ Thông tin ẩn 
ƒ Đối t−ợng 
Huỳnh Xuân Hiệp - CNPM 
68
6.1 Giới thiệu về mô-đun
(what is a module ?)
ƒ Định nghĩa của [Stevens, Myers, và Constantine, 1974] về mô-đun: 
‰ tập hợp của một hay nhiều câu lệnh kế tiếp nhau đ−ợc đặt tên, 
‰ các phần khác trong ch−ơng trình có thể kích hoạt với tên đ−ợc đặt, 
‰ có tập hợp các tên biến riêng biệt. 
ƒ Mô-đun là một khối đơn các mã lệnh có thể kích hoạt giống nh− thủ tục, 
hàm hay ph−ơng thức 
 Chip 1 Chip 2 
Registers 
ALU 
Registers 
ALU 
Shifter 
Shifter Chip 3 
Hình 6.1 Thiết kế của máy vi tính Hình 6.2 Máy vi tính Hình 6.1 chế tạo với 3 chip
Huỳnh Xuân Hiệp - CNPM 
69
6.2 Độ gắn kết
(cohesion)
ƒ Là mức độ t−ơng tác bên trong một mô-đun 
ƒ Myers định nghĩa 7 thể loại (mức) gắn kết [Myers, 1978b] 
7. 
Gắn kết chức năng 
Gắn kết thông tin Tốt 
5. 
4. 
3. 
2. 
1. 
Gắn kết truyền thông 
Gắn kết thủ tục 
Gắn kết thời gian 
Gắn kết luận lý 
Gắn kết trùng khớp 
Xấu 
Hình 6.3 Các mức gắn kết 
ƒ Gắn kết trùng khớp (coincidental cohesion): mô-đun thực hiện nhiều hành 
động không liên quan đến nhau 
VD: mô-đun với tên nh− in dòng tiếp theo, đảo ng−ợc chuỗi ký tự tham 
số thứ hai, thêm 7 cho tham số thứ 5, đổi tham số thứ t− thμnh số thực 
Huỳnh Xuân Hiệp - CNPM 
70
ƒ Gắn kết luận lý (logical cohesion): mô-đun thực hiện chuỗi các hành động 
có liên quan với nhau, một trong số đó đ−ợc chọn bởi mô-đun gọi đến 
VD: mô-đun thực hiện việc thêm, xóa, cập nhật các mẩu tin trên tập tin 
ƒ Gắn kết thời gian (temporal cohesion): mô-đun thực hiện chuỗi các hành 
động liên quan với nhau theo thời gian 
VD: mô-đun với tên nh− mở tập tin cũ, tạo tập tin mới, mở tập tin 
giao dịch, in tập tin giao dịch, khởi tạo bảng kinh doanh khu vực, 
đọc mẩu tin giao dịch đầu tiên,đọc mẩu tin đầu tiên trong tập tin cũ 
ƒ Gắn kết thủ tục (procedural cohesion): mô-đun thực hiện chuỗi các hành 
động liên quan với nhau theo các b−ớc đúng trình tự phát triển sản phẩm 
VD: mô-đun với tên nh− đọc số hiệu bộ phận từ tập tin cơ sở dữ liệu 
vμ cập nhật, sửa chữa mẩu tin trên tập tin bảo trì 
ƒ Gắn kết truyền thông (communcational cohesion): mô-đun thực hiện chuỗi 
các hành động liên quan với nhau theo các b−ớc đúng trình tự phát triển 
sản phẩm và nếu nh− mọi hành động đều đ−ợc thực hiện trên dữ liệu 
giống nhau 
VD: mô-đun với tên nh− cập nhật mẩu tin trong cơ sở dữ liệu vμ ghi 
vμo sổ hoặc tính toán quỹ đạo vμ gửi ra máy in 
Huỳnh Xuân Hiệp - CNPM 
71
ƒ Gắn kết thông tin (information cohesion): mô-đun thực hiện một số l−ợng 
các hành động, mỗi hành động có đầu vào riêng, mã lệnh độc lập và thực 
hiện trên dữ liệu giống nhau 
VD: 
 Định nghĩa bảng kinh doanh khu vực 
Vào Khởi tạo bảng kinh doanh khu vực 
.......... Thoát
Vào Cập nhật bảng kinh doanh khu vực 
.......... Thoát 
Vào In bảng kinh doanh khu vực 
.......... Thoát 
Hình 6.4 Mô-đun gắn kết về thông tin 
ƒ Chức năng: mô-đun thực hiện một hành động hoặc nhận lấy một kết quả 
VD: mô-đun với tên nh− lấy nhiệt độ lò; tính toán quỹ đạo của điện 
tử; ghi lên đĩa mềm; tính toán tiền hoa hồng 
Huỳnh Xuân Hiệp - CNPM 
72
™ Ví dụ về các dạng gắn kết 
 chức năng 
 tính toán nhiệt độ trung bình 
hàng ngày tại nhiều địa điểm 
khác nhau 
trùng khớp chức năng chức năng trùng khớp
khởi tạo tổng 
số và mở các 
tập tin 
 tạo mẩu tin 
nhiệt độ mới 
 l−u trữ mẩu tin 
nhiệt độ 
 đóng các tập 
tin và in nhiệt 
độ trung bình 
 chức năng chức năng 
 đọc thời gian 
và nhiệt độ tại 
địa điểm 
 l−u trữ mẩu tin 
cho từng địa 
điểm 
 luận lý 
 chọn lọc thời 
gian hoặc các 
tr−ờng nhiệt 
độ 
Hình 6.5 Biểu diễn dạng gắn kết của từng mô-đun 
Huỳnh Xuân Hiệp - CNPM 
73
6.3 Nối kết
(coupling)
ƒ Là mức độ t−ơng tác giữa hai mô-đun, rất quan trọng trong đánh giá 
ƒ Các mức độ nối kết 
5. Nối kết dữ liệu Tốt 
4. 
3. 
2. 
1. 
Nối kết nhãn hiệu 
Nối kết điều khiển 
Nối kết chung 
Nối kết nộu dung 
Xấu 
Hình 6.6 Các mức độ nối kết 
ƒ Nối kết nội dung(content coupling): hai mô-đun đ−ợc gọi là nối kết về nội 
dung nếu nh− chúng có thể tham khảo rực tiếp nội dung của nhau 
VD: mô-đun p tham khảo dữ liệu cục bộ của mô-đun q, hoặc mô-đun p 
thay đổi một câu lệnh của mô-đun q. 
Huỳnh Xuân Hiệp - CNPM 
74
ƒ Nối kết chung (common coupling): hai mô-đun đ−ợc gọi là nối kết chung 
nếu cả hai truy xuất đến các dữ liệu toàn cục giống nhau 
VD: 
mb 
 ma 
 biến toàn cục 
Hình 6.7 Nối kết chung 
ƒ Nối kết điều khiển (control coupling): hai mô-đun đ−ợc gọi là nối kết điều 
khiển nếu mô-đun này có thể gửi phàn tử điều khiển đến mô-đun kia (có 
thể điều khiển lẫn nhau) 
ƒ Nối kết nhãn hiệu (stamp coupling): hai mô-đun đ−ợc gọi là nối kết nhãn 
hiệu nếu nh− tham số đ−ợc gửi đi là một cấu trúc dữ liệu và mô-đun đ−ợc 
gọi chỉ thao tác trên một vài thành phần của cấu trúc dữ liệu đó 
ƒ Nối kết dữ liệu (data coupling): hai mô-đun đ−ợc gọi là nối kết dữ liệu nếu 
nh− tất cả các tham số đều là các mục dữ liệu thuần nhất (homogeneous 
data items) 
Huỳnh Xuân Hiệp - CNPM 
75
ƒ Ví dụ về nối kết 
 p số nhập xuất 
 1 1 kiểu máy bay cờ trạng thái 
 q 2 2 - danh sách các phần của máy bay 
 3 4 
p,t và u truy xuất 
cùng một cơ sở dữ 
liệu trong cập nhật 3 mã hàm - 
r s 4 - danh sách các phần của máy bay 
5 6 5 số phần phần chế tạo 
t u 6 số phần tên phần 
Hình 6.8 Sơ đồ các mô-đun nối kết Hình 6.9 Mô tả giao diện Hình 6.6 
 q r s t u 
p Dữ liệu - Dữ liệu hoặc Nhãn hiệu Chung Chung 
q Điều khiển Dữ liệu hoặc Nhãn hiệu - - 
r Dữ liệu - 
s - Dữ liệu 
t Chung 
Hình 6.10 Nối kết giữa các cặp mô-đun 
Huỳnh Xuân Hiệp - CNPM 
76
6.4 Bao gói dữ liệu
(data encapsulation)
ƒ Là một dạng của trừu t−ợng hóa 
m_encapsulation 
 Definition of job_queue 
 initialize_job_queue() 
{..........} 
 add_job_to_queue(job j) 
{..........} 
 remove_job_from_queue(job j) 
{..........} 
Hình 6.11 Thiết kế job_queue trong một 
phần hệ điều hành sử dụng bao gói dữ liệu
Huỳnh Xuân Hiệp - CNPM 
77
6.5 Kiểu dữ liệu trừu t−ợng
(abstract data types)
ƒ Kiểu dữ liệu trừu t−ợng: là kiểu dữ liệu cùng với các thao tác trên chính nó 
VD: 
class JobQueue 
{ 
// dữ liệu 
private int queueLength; 
private int queue[25] = new int[25]; 
// các ph−ơng thức 
public void initializeJobQueue() 
{...} 
public void addJobToQueue(int jobNumber) 
{...} 
public void removeJobfromQueue() 
{...} 
} 
Hình 6.12 JobQueue cài đặt trên Java nh− là một kiểu dữ liệu trừu t−ợng
ƒ Trừu t−ợng hóa thủ tục (procedural abstraction) 
ƒ Trừu t−ợng hóa lặp (iteration abstraction) [Liskov và Guttag, 1986] 
Huỳnh Xuân Hiệp - CNPM 
78
6.6 Thông tin ẩn
(information hiding)
ƒ Do Parnas đề xuất [Parnas, 1971, 1972a, 1972b] 
 Cμi đặt chi tiết của: 
queue 
queueLength 
initializeJobQueue 
addJobToQueue 
removeJobFromQueue 
 Giao diện: 
initializeJobQueue 
addJobToQueue 
removeJobFromQueue 
 Thông tin ẩn Thông tin thấy đ−ợc 
Hình 6.13 Kiểu dữ liệu trừu t−ợng với thông tin ẩn 
Huỳnh Xuân Hiệp - CNPM 
79
6.7 Đối t−ợng
(objects)
ƒ Là kiểu dữ liệu trừu t−ợng hay mô-đun với thông tin đ−ợc gắn kết 
ƒ Là thể hiện (instance) của một kiểu dữ liệu trừu t−ợng 
ƒ Hỗ trợ thừa kế, khái niệm đ−ợc giới thiệu đầu tiên ở ngôn ngữ lập trình 
Simula67 [Dahl và Nygaard, 1966; Dahl, Myrhaug and Nygaard, 1973] 
Các đối t−ợng với độ gắn kết cao và nối kết thấp 
Các đối t−ợng 
Các kiểu dữ kiệu trừu t−ợng 
Bao gói dữ liệu 
Các mô-đun với độ gắn kết cao và nối kết thấp 
Các mô-đun 
ƒ Hỗ trợ đa hình và liên kết động 
ƒ Một số vấn đề: 
‰ gắn kết giữa các mô-đun đ−ợc 
thừa kế và các mô-đun định 
nghĩa mới 
‰ nối kết chung với định nghĩa 
công cộng: public 
Hình 6.14 Các khái niệm chính 

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 6 Giới thiệu về đối tượng.pdf