Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
804 KB
Nội dung
Công nghệ phần mềm Thiết kế hướng đối tượng Trần Minh Châu dịch từ nguyên Software Mục tiêu • Thiết kế phần mềm kiểu hướng đối tượng trình bày tập đối tượng tương tác với – Các đối tượng tự quản lý trạng thái thao tác • Mô tả hoạt động quy trình thiết kế hướng đối tượng • Giới thiệu số mô hình dùng để mô tả thiết kế hướng đối tượng • Minh họa cách trình bày mô hình ngôn ngữ UML Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Các chủ đề • Đối tượng lớp đối tượng • Một quy trình thiết kế hướng đối tượng • Tiến hóa thiết kế Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Phát triển hướng đối tượng • Phân tích (OOA), thiết kế (OOD) lập trình hướng đối tượng (OOP) có quan hệ với không trùng – Phân tích hướng đối tượng nhằm phát triển mô hình đối tượng miền ứng dụng – Thiết kế hướng đối tượng nhằm phát triển mô hình hệ thống hướng đối tượng để thực thi yêu cầu hệ thống – Lập trình hướng đối tượng nhằm thực hóa thiết kế hướng đối tượng cách sử dụng ngôn ngữ lập trình hướng đối tượng Java C++ Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Đặc điểm OOD • Các đối tượng trừu tượng hóa thực thể giới thực thực thể hệ thống, chúng tự quản lý thân • Các đối tượng có tính độc lập, chúng đóng gói trạng thái thao tác liên quan • Các chức hệ thống diễn đạt theo dịch vụ đối tượng – Loại bỏ vùng liệu dùng chung – Các đối tượng liên lạc với cách truyền thông điệp • Các đối tượng phân tán máy tính khác thực thi song song Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Các đối tượng tương tác o1: C1 state o1 ops1() o3:C3 state o3 ops3 () o4 : C4 state o4 ops4 () o2: C3 o6: C1 o5:C5 state o2 ops3 () state o6 ops1 () state o5 ops5 () Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Ưu điểm OOD • Dễ bảo trì – Có thể xem đối tượng thực thể độc lập (stand-alone) • Các đối tượng thành phần tái sử dụng tiềm Vì chúng đóng gói độc lập trạng thái thao tác • Dễ mô hình hóa – Có thể có ánh xạ dễ thấy từ thực giới thực tới thực thể hệ thống Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Đối tượng lớp đối tượng • Đối tượng thực thể hệ thống phần mềm, đại diện cho thể thực thể giới thực thực thể hệ thống • Lớp đối tượng khuôn mẫu (template) cho đối tượng – Dùng để tạo đối tượng • Các lớp đối tượng thừa kế thuộc tính dịch vụ từ lớp đối tượng khác Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Đối tượng lớp đối tượng Một đối tượng thực thể có trạng thái (state) tập xác định trước gồm thao tác (operation) mà chúng hoạt động trạng thái Trạng thái đại diện tập thuộc tính đối tượng Các thao tác gắn với đối tượng cung cấp dịch vụ cho đối tượng khác (client) Khi cần tính toán, đối tượng client gọi dịch vụ Các đối tượng tạo theo định nghĩa lớp đối tượng Một định nghĩa lớp đối tượng template cho đối tượng Nó bao gồm khai báo cho tất thuộc tính dịch vụ gắn với đối tượng thuộc lớp Trần Minh Châu dịch từ nguyên Software The Unified Modeling Language • Một số kí pháp khác cho việc mô tả thiết kế hướng đối tượng đề xuất thập kỉ 1980 1990 • Unified Modeling Language (UML) tích hợp kí pháp – Nó mô tả kí pháp cho loạt mô hình khác tạo trình phân tích thiết hế hướng đối tượng – Nó chuẩn không thức cho mô hình hóa hướng đối tượng Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Các mô hình thiết kế • Các mô hình thiết kế mô tả đối tượng, lớp đối tượng mối quan hệ thực thể – Các mô hình tĩnh mô tả cấu trúc tĩnh hệ thống lớp đối tượng quan hệ chúng – Các mô hình động mô tả tương tác động đối tượng Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Ví dụ mô hình thiết kế • Mô hình hệ thống mô tả phân nhóm lô-gic đối tượng thành hệ thống có tính gắn kết cao • Mô hình mô tả trình tự tương tác đối tượng • Sơ đồ trạng thái mô tả đối tượng thay đổi trạng thái để đáp ứng kiện • Các mô hình khác use-case models, aggregation models, generalisation models, etc Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Các mô hình hệ thống • Miêu tả thiết kế tổ chức thành nhóm đối tượng có liên quan đến lô-gic • Trong UML, hệ thống thể package – cấu trúc đóng gói Đây mô hình lô-gic, tổ chức thực tế đối tượng hệ thống không Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Weather station subsystems «subsystem» Inter face «subsystem» Data collecti on CommsControll er WeatherData Instrument Status WeatherStation «subsystem» Instruments Ai r thermometer Ground thermometer Rai nGauge Anemometer Barometer WindV ane Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Các mô hình • Các mô hình mô tả trình tự tương tác xảy đối tượng – Các đối tượng xếp thành hàng ngang đỉnh; – Thời gian biểu diễn theo chiều dọc, mô hình đọc từ xuống dưới; – Các tương tác biểu thị mũi tên có nhãn Các dạng mũi tên khác đại diện cho loại tương tác khác nhau; – Hình chữ nhật mỏng khoảng thời gian sống đối tượng đại diện cho khoảng thời gian mà đối tượng đối tượng giữ vai trò kiểm soát hệ thống Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Biểu đồ thu thập liệu :CommsController :W eatherStation :W eatherData request (report) acknowledge () report () summarise () send (report) reply (report) acknowledge () Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Sơ đồ trạng thái • Minh họa cách đối tượng phản ứng với yêu cầu dịch vụ khác việc chuyển trạng thái kích hoạt yêu cầu – Nếu trạng thái đối tượng Shutdown đáp ứng thông điệp Startup(); – Trong trạng thái waiting, đối tượng đợi thông điệp tiếp theo; – Nếu reportWeather () hệ thống chuyển sang trạng thái tổng hợp (summarising state); – Nếu calibrate () hệ thống chuyển sang trạng thái điều chỉnh (calibrating); – Hệ thống vào trạng thái collecting nhận tín hiệu đồng hồ Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Sơ đồ trạng thái trạm thời tiết Operation calibrate () Calibrating calibration OK startup () test () Waiting Shutdown Testing transmission done shutdown () test complete Transmitting clock collection done repor tWeather () Summarising Collecting Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville weather summary complete Đặc tả giao diện đối tượng • Các giao diện đối tượng phải đặc tả để đối tượng thành phần khác thiết kế song song • Người thiết kế cần tránh thiết kế biểu diễn giao diện (interface representation) mà nên giấu đối tượng • Các đối tượng có vài giao diện, viewpoint dựa phương thức cung cấp • UML dùng biểu đồ lớp để đặc tả giao diện dùng Java Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Giao diện trạm thời tiết interface WeatherStation { public void WeatherStation(); public void startup(); public void startup(Instrument i); public void shutdown(); public void shutdown(Instrument i); public void reportWeather(); public void test(); public void test(Instrument i); public void calibrate(Instrument i); public int getID(); } //WeatherStation Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Tiến hóa thiết kế • Che dấu thông tin bên đối tượng có nghĩa thay đổi đối tượng không ảnh hưởng tới đối tượng khác cách không đoán trước • Giả sử thiết bị đo ô nhiễm bổ sung cho trạm thời tiết Các thiết bị lấy mẫu không khí tính lượng chất ô nhiễm không khí • Số liệu tình trạng ô nhiễm gửi liệu thời tiết Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Các thay đổi cần thiết • Thêm lớp đối tượng AirQuality vào thành phần WeatherStation • Thêm thao tác reportAirQuality vào WeatherStation Sửa phần mềm điều khiển để thu thập số liệu ô nhiễm • Thêm đối tượng đại diện cho thiết bị đo độ ô nhiễm Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Pollution monitoring WeatherStation identifier repor tWeather () repor tAirQuality () cali brate (instruments) test () star tup (instruments) shutdown (i nstruments) Air quali ty NOData smok eData benz eneData col lect () summarise () Pollution moni toring instruments NOmeter Smok eMeter BenzeneM eter Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Tổng kết • OOD cách tiếp cận thiết kế cho thành phần thiết kế có trạng thái riêng thao tác riêng • Các đối tượng nên có constructor thao tác kiểm tra – Cung cấp dịch vụ cho đối tượng khác • Các đối tượng cài đặt song song • Ngôn ngữ UML cung cấp kí pháp khác để định nghĩa mô hình đối tượng khác Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville Tổng kết • Quy trình OOD dùng đến loạt mô hình khác – Trong có mô hình hệ thống tĩnh động • Các giao diện đối tượng nên định nghĩa xác, chẳng hạn cách sử dụng ngôn ngữ lập trình Java • Thiết kế hướng đối tượng có tiềm đơn giản hóa việc tiến hóa hệ thống Trần Minh Châu dịch từ nguyên Software Engineering 8th Ed Ian Sommerville