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
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:
- 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.pdf