Bài giảng Nhập môn công nghệ phần mềm: Chương 7 - Nguyễn Thanh Bình

77 59 0
Bài giảng Nhập môn công nghệ phần mềm: Chương 7 - Nguyễn Thanh Bình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Nhập môn công nghệ phần mềm - Chương 7: Thiết kế hướng đối tượng - Sử dụng UML cung cấp cho người học các kiến thức: Khái niệm cơ bản hướng đối tượng, biểu đồ ca sử dụng, thiết kế cấu trúc tĩnh, thiết kế cấu trúc động, sinh mã.

Thiết kế hướng ñối tượng - Sử dụng UML (7) Nguyễn Thanh Bình Khoa Cơng nghệ Thơng tin Trường ðại học Bách khoa ðại học ðà Nẵng Nội dung Khái niệm hướng ñối tượng Biểu ñồ ca sử dụng Thiết kế cấu trúc tĩnh Thiết kế cấu trúc ñộng Sinh mã CuuDuongThanCong.com https://fb.com/tailieudientucntt Hướng chức Dựa vào chức hệ thống Hệ thống tập hợp chức Chia nhỏ chức làm mịn dần Hệ thống gồm hệ thống Làm chủ ñộ phức tạp Các chức trao ñổi với truyền tham số liệu (chẳng hạn biến toàn cục) dùng chung Hướng chức Phân cấp chức Hệ thống Chức Chức 1.1 Chức 1.2 Chức Chức 2.1 Chức 2.2 CuuDuongThanCong.com https://fb.com/tailieudientucntt Hướng chức Ưu điểm Phân tích chức hệ thống ðưa lại kết mong ñợi Nhược ñiểm Chức cấu trúc Thay ñổi chức khó khăn thay đổi cấu trúc Tính mở hệ thống thấp Khó tái sử dụng Chi phí sửa chữa lỗi lớn Hướng ñối tượng Lấy ñối tượng làm trung tâm Hệ thống = tập hợp ñối tượng + quan hệ ñối tượng Các ñối tượng trao đổi thơng điệp (message) Khơng sử dụng biến tồn cục ðóng gói Thừa kế CuuDuongThanCong.com https://fb.com/tailieudientucntt Hướng đối tượng Phân biệt Lập trình cấu trúc • Thuật toán + cấu trúc liệu = chương trình Lập trình HðT • Σđối tượng = chương trình • đối tượng = thuật tốn + cấu trúc liệu Hướng đối tượng Ưu điểm Gần gũi với giới thực Tái sử dụng dễ dàng ðóng gói, che dấu thơng tin làm cho hệ thống tin cậy Thừa kế làm giảm chi phí, hệ thống có tính mở cao Xây dựng hệ thống lớn phức tạp CuuDuongThanCong.com https://fb.com/tailieudientucntt ðối tượng ðối tượng (object) khái niệm cho phép mô tả vật/thực thể giới thực Các ñối tượng trì quan hệ chúng Nguyễn Văn A đối tượng ðối tượng Các tính chất ñối tượng ðối tượng = trạng thái + hành vi + định danh • Trạng thái đặc tính đối tượng thời điểm • Hành vi thể chức đối tượng • ðịnh danh thể tồn ñối tượng 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt ðối tượng : trạng thái Trạng thái = tập hợp thuộc tính Mỗi thuộc tính mơ tả đặc tính Tại thời ñiểm cụ thể, thuộc tính mang giá trị miền xác định Ví dụ • Một xe máy: màu xanh, 110 cm3, dream, 12000km, ñứng yên, … 11 ðối tượng : hành vi Hành vi = tập hợp phương thức Phương thức: thao tác thực nó, thực có u cầu từ mơi trường (thơng điệp từ ñối tượng khác) Hành vi phụ thuộc vào trạng thái Ví dụ: • xe máy có hành vi: khởi ñộng, chạy, … 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao tiếp ñối tượng Các ñối tượng giao tiếp với Gửi thơng điệp (message) cho Thơng điệp ðối tượng A ðối tượng B Các loại thơng điệp • • • • • hàm dựng (constructor) hàm hủy (destructor) hàm chọn lựa (get) hàm sửa ñổi (set) hàm chức khác 13 ðối tượng Giữa ñối tượng có mối liên kết (link) với Ví dụ Nguyễn Văn A Học ðại học ðà Nẵng 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lớp Lớp khái niệm dùng để mơ tả tập hợp đối tượng có cấu trúc, hành vi có mối quan hệ với ñối tượng khác Lớp = thuộc tính + phương thức 15 Lớp Lớp bước trừu tượng hóa Tìm kiếm điểm giống nhau, bỏ qua ñiểm khác ñối tượng Person Name Age changeAge Trừu tượng hóa làm giảm độ phức tạp 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lớp Quan hệ lớp: kết hợp Một kết hợp tập hợp mối liên kết ñối tượng Sinh viên học ðại học 17 Lớp & ðối tượng ðối tượng thể (instance) lớp Giá trị thể thuộc tính Liên kết thể kết hợp Lớp ðối tượng Thuộc tính Giá trị Kết hợp Liên kết 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các tính chất HðT Tính đóng gói (encapsulation) liệu + xữ lý liệu = đối tượng thuộc tính + phương thức = lớp Ưu ñiểm Hạn chế ảnh hưởng có thay đổi cập nhật Ngăn cản truy cập thơng tin từ bên ngồi Che dấu thơng tin 19 Các tính chất HðT Tính thừa kế (inheritance) Một lớp ñược xây dựng từ nhiều lớp khác việc chia thuộc tính phương thức Lớp thừa kế thuộc tính phương thức từ lớp cha Tổng qt hóa/chun biệt hóa • Tổng qt hóa (generalization): đặt tính chất chung lớp khác vào lớp cha • Chuyên biệt hóa (specialization): tạo lớp có tính chất riêng từ lớp cha 20 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Biểu đồ Một thơng điệp đặc tả trao ñổi ñối tượng Các loại thông ñiệp Gọi (call) Trả (return) Gửi (send) Tạo (create) Hủy (destroy) 125 Biểu đồ Thơng điệp gọi gọi phương thức/thao tác ñối tượng ðối tượng gọi phải đợi thơng điệp thực kết thúc thực cơng việc khác (thơng điệp đồng bộ) Một đối tượng gửi thơng điệp cho Kí hiệu object A object B object message() Gửi thơng điệp gọi Gửi cho 126 63 CuuDuongThanCong.com https://fb.com/tailieudientucntt Biểu đồ Thơng điệp trả trả giá trị cho đối tượng gọi Kí hiệu Object A Object B message() value Thơng điệp trả 127 Biểu đồ Thơng điệp gửi gửi tín hiệu đến đối tượng Khác với thơng điệp gọi, đối tương gửi thơng điệp gửi khơng chờ đợi, mà tiếp tục thực cơng việc khác (thơng điệp khơng đồng bộ) Kí hiệu object A object B message() Thơng điệp gửi 128 64 CuuDuongThanCong.com https://fb.com/tailieudientucntt Biểu ñồ Thông ñiệp tạo gọi phương thức tạo đối tượng Thơng điệp hủy gọi phương thức hủy đối tượng Kí hiệu Thơng điệp tạo object A object B Thơng điệp hủy 129 Biểu đồ Ví dụ :A msg1 msg2 msg3 :B public class A { private B objB; public void msg1() { objB = new B(); objB.msg2(); objB.msg3(); } } public class B { … public void msg2() { … } public void msg3() { … } } 130 65 CuuDuongThanCong.com https://fb.com/tailieudientucntt Biểu đồ Một thơng điệp ñược gửi lặp nhiều lần Gửi lặp thông ñiệp 10 lần Kí hiệu object B object A *[1 10]message() for(i = 1; i OneOrder − quantity: Integer * + subtotal() : double AirPlane public class OneOrder { public double subtotal() { } private int quantity; private AirPlane airPlane; − price : float } + getPrice() : float 147 Sinh mã Mã lớp ListOfOrders orderListe OneOrder * ListOfOrders − datePlaced − clientID − quantity: Integer public class ListOfOrder { public double total() { } private Date datePlaced; private int clientID; private Vector orderList; + subtotal() : double } + total() : double 148 74 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sinh mã Biểu ñồ cộng tác thực phương thức total() : total() : *[for each] subtotal() :ListOfOrders :OneOrder : getPrice() :AirPlane 149 Sinh mã Mã phương thức total() : total() : *[for each] subtotal() :ListOfOrders :OneOrder : getPrice() public double total() { :AirPlane } 150 75 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sinh mã Mã phương thức total() : total() : *[for each] subtotal() :ListOfOrders :OneOrder public double total() { double sum = 0; for (int i=0; i

Ngày đăng: 11/01/2020, 19:16