Thiết kế hướng đối tượng

44 326 0
Tài liệu đã được kiểm tra trùng lặp
Thiết kế hướng đối tượng

Đ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

Trường Đại Học Bách Khoa Tp Hồ Chí Minh Khoa Công Nghệ Thông Tin Chương THIẾT KẾ HƯỚNG ĐỐI TƯNG ✦ Hành vi đối tượng ✦ Hoàn chỉnh đặc tả lớp - Trang 174 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng NỘI DUNG 7.1 Thiết kế hành vi 7.1.1 Khái niệm mô hình động 7.1.2 Tương tác đối tượng 7.1.3 Sự cộng tác (collaboration) 7.1.4 Miêu tả trình tự 7.1.5 Lược đồ trạng thái (statechart diagram) 7.1.6 Lược đồ hoạt động (activity diagram) 7.2 Hoàn chỉnh đặc tả tónh 7.2.1 Nhận diện thêm số lớp thiết kế 7.2.2 Đặc tả chi tiết thuộc tính 7.2.3 Nhận diện xác tác vụ 7.2.4 Hoàn chỉnh lược đồ lớp - Trang 175 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng GIỚI THIỆU Giai đoạn thiết kế quan tâm đến “HOW”: Thứ tự thông điệp trao đổi, thông số thông điệp Thuật giải tác vụ đáp ứng Cấu trúc liệu cho thuộc tính Framework (console, document/view, 3-tier ) Thiết kế chịu ảnh hưởng từ: Ngôn ngữ lập trình thư viện lập trình (Hỗ trợ Vector, List, Map hay không ? Hỗ trợ template hay không ? ) Kiến trúc hệ thống (COM, CORBA hay EJB)  Thiết lập mô hình động (dynamic modeling) chi tiết hoá mô hình tónh - Trang 176 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng KHÁI NIỆM MÔ HÌNH ĐỘNG Lược đồ lớp mô tả khía cạnh tónh hệ thống Hành vi hệ thống mô tả mô hình động bao gồm Tương tác đối tượng: cộng tác hay trình tự Trạng thái đối tượng/lớp Quá trình hoạt động lớp/đối tượng - Trang 177 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng TƯƠNG TÁC GIỮA CÁC ĐỐI TƯNG Đối tượng tương tác với (interaction) cách gửi/nhận kích thích (stimulus) Actor gửi kích thích đến đối tượng Kích thích khiến tác vụ thực thi, đối tượng tạo hay huỷ đi, gây tín hiệu Thông điệp (message) đặc tả kích thích - Trang 178 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng TƯƠNG TÁC GIỮA CÁC ĐỐI TƯNG (t.t) Các loại thông điệp Đơn giản Đồng Bất đồng Trả gọi hàm - Trang 179 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng SỰ CỘNG TÁC Cộng tác (collaboration) định nghóa tập hợp thành phần tham gia quan hệ chúng Các thành phần tham gia vai trò mà đối tượng/lớp đóng vai tương tác với Các vai trò đối tượng thường có nghóa mục đích Lược đồ cộng tác (collaboration diagram) thiết lập để cụ thể hoá use-case tác vụ - Trang 180 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng SỰ CỘNG TÁC (t.t) Lược đồ cộng tác đồ thị liên kết vai trò Quan hệ liên kết dùng để kết nối vai trò với Có thể tên vai trò cho liên kết Tương tác thể gửi/nhận thông điệp Mỗi thông điệp thể mũi tên (như miêu tả) cộng với phần đặc tả - Trang 181 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng SỰ CỘNG TÁC (t.t) Các thông điệp đánh số theo kiểu phân cấp 3.4.2 xảy sau 3.4.1 hai lồng (nested) 3.4 3.4.3a 3.4.3b xảy đồng thời lồng 3.4 Cú pháp tổng quát thông điệp precedessor guard-condition sequence-expression returnvalue := message-name argument-list Ví dụ: 2/ 1.3.1: p := find(specs) 1.1, 4.2/ 3.2 *[i:=1 6]: invert(x, color) - Trang 182 Khoa Coâng Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng SỰ CỘNG TÁC (t.t) Lược đồ cộng tác thiết lập dạng: Dạng cụ thể: vai trò biểu diễn ký hiệu đối tượng cụ thể, thông điệp trao đổi đường liên kết Dạng đặc tả: mô tả lớp; đường liên kết ánh xạ vào thông điệp Thiết lập lược đồ cộng tác giúp cụ thể hoá (realize) use-case nhận diện thêm số tác vụ đối tượng/lớp phân tích - Trang 183 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ TRẠNG THÁI (t.t) import failed No map run map loaded[ image invalid ] Modeling do/ load map do/ load image do/ model(map, param) import / map := create( file ) image loaded exit command Saved exit command modeling done entry/ render do/ store import / map := create(file) import command[ file valid ] model command viewing command save command Dirty exit command / save entry/ render - Trang 203 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ HOẠT ĐỘNG Lược đồ hoạt động (activity diagram) biến thể lược đồ trạng thái trạng thái thực thi hành động dịch chuyển kích hoạt hành động hoàn tất Được dùng để mô tả thủ tục hay thuậït giải tập trung vào hành động Mỗi hành động ký hiệu hình vẽ sau work - Trang 204 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ HOẠT ĐỘNG (t.t) Quyết định rẽ nhánh: hình thoi có đường vào nhiều nhánh ra, nhánh gán guard-condition Các nhánh nhập lại hình thoi khác Mỗi “đường bơi” (swimlane) đại diện lớp actor - Trang 205 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ HOẠT ĐỘNG (t.t) LoginForm Database Ví dụ: lược đồ Show input for username and password hoạt động cho Verify tác vụ submit [ psswd invalid ] Reject [ psswd valid ] cuûa LoginForm Welcome - Trang 206 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ HOẠT ĐỘNG (t.t) RegisterForm Database Registration Ví dụ: lược submit Read course offerings Look for registration đồ hoạt động cho tác vụ [ reg found ] [ reg not found ] Create registration submit cuûa Fetch registration RegisterForm Show success Update registration Add student - Trang 207 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng NHẬN DIỆN THÊM MỘT SỐ LỚP THIẾT KẾ Mô hình thiết kế phần chịu ảnh hưởng từ ngôn ngữ lập trình, thư viện hỗ trợ, framework, hệ điều hành loại máy tính Một số lớp xuất áp dụng yếu tố Ngôn ngữ lập trình: template, CObject Thư viện hỗ trợ: lớp Date, Time, List, Map, vector, iostream… Framework: Applet, Panel, CDocument, CView, HttpServlet… Hệ điều hành: lớp thao tác file, mở cầu nối network, phần tử giao diện… - Trang 208 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng NHẬN DIỆN THÊM MỘT SỐ LỚP THIẾT KẾ (t.t) Một số lớp khác xuất làm chức duyệt (iterate) lớp khác hay thực tính toán phức tạp Sử dụng trực tiếp lớp thư viện hay ngôn ngữ cung cấp, Tạo lớp cách thừa kế hay tích hợp lớp có sẵn, ví dụ CArray Bổ sung lớp vào lược đồ lớp đồng thời cập nhật mối quan hệ (bao gộp, phụ thuộc) - Trang 209 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng ĐẶC TẢ CHI TIẾT CÁC THUỘC TÍNH Message # subject: String # content: String + GetSubject( ): String + toString( ): String Trong mô hình phân tích cần phải rõ kiểu (hoặc cấu trúc liệu) mức độ truy xuất thuộc tính Có thể chọn lớp cung cấp thư viện lập trình để cụ thể hoá kiểu hay cấu sent trúc liệu CDate bổ sung lớp thư viện quan hệ bao gộp vào lược đồ lớp - Trang 210 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng NHẬN DIỆN CHÍNH XÁC CÁC TÁC VỤ Các lược đồ mô tả hành vi (cộng tác, tuần tự, trạng thái, hành động) giúp nhận diện xác tác vụ lớp Dựa vào thông điệp hay hành động để xác định signature tác vụ Ví dụ: nhận diện số tác vụ lớp Database setReg( reg: Registration ); fetchReg( crsOff: CourseOffering) : Registration; - Trang 211 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng NHẬN DIỆN CHÍNH XÁC CÁC TÁC VỤ (t.t) Ví dụ: nhận diện tác vụ lớp ChildView render( ); store( ); load( ); model( map: FieldMap, param ); Ví dụ: nhận diện tác vụ lớp LoginForm submit( uname: String; psswd: String ); makeWelcome( ); - Trang 212 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng HOÀN CHỈNH LƯC ĐỒ LỚP Cập nhật lớp mới, thuộc tính, tác vụ mối quan hệ UML định nghóa quan hệ phụ thuộc (dependency) lớp package: thay đổi lớp, package kéo theo thay đổi lớp, package Ký hiệu quan hệ phụ thuộc mũi tên đứt nét: lớp, package phía đuôi mũi tên phụ thuộc vào lớp, package phía đầu mũi tên Một số stereotype quy ước trước: , , , , , , - Trang 213 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng HOÀN CHỈNH LƯC ĐỒ LỚP (t.t) Ví dụ: thêm lược đồ lớp cho hệ thống đăng ký môn học LoginForm RegisterForm + submit(uname: String, psswd: String) + makeWelcome( ) + submit(offering: CourseOffering) + beSuccessful( ) Database + fetchReg(crs: CourseOffering): Registration + setReg(reg: Registration) - Trang 214 Khoa Coâng Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng HOÀN CHỈNH LƯC ĐỒ LỚP (t.t) # map FractureIterator + current( ): Fracture* MapIterator Item MapIterator # setBound(b: int) + current( ): Item + operator++() + operator () + Last( ) + First( ) FieldMap MapIterator IsoquantIterator + current( ): Isoquant* - Trang 215 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng HOÀN CHỈNH LƯC ĐỒ LỚP (t.t) Chú ý sử dụng package để tổ chức phần tử liên quan với nhau: lớp đồ địa hình, thông tin sinh viên/giảng viên, cửa sổ giao diện, servlet… Các package thể kiến trúc phần mềm, thông thường chịu ảnh hưởng từ framework (Document/View, 3-tiers ) Mỗi package chứa một vài lược đồ lớp, tham chiếu đến số lớp thuộc package khác - Trang 216 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng TỔNG KẾT Mô hình thiết kế bao trùm khía cạnh tónh động hệ thống phần mềm cần xây dựng UML hỗ trợ số lược đồ giúp mô tả khía cạnh động: cộng tác, tuần tự, trạng thái, hành động Miêu tả xác thuộc tính tác vụ, bổ sung số lớp thiết kế hoàn thiện khía cạnh tónh Thiết lập package tạo thành kiến trúc phần mềm - Trang 217 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng ... thái đối tượng/ lớp Quá trình hoạt động lớp /đối tượng - Trang 177 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng TƯƠNG TÁC GIỮA CÁC ĐỐI TƯNG Đối tượng tương... Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ TRẠNG THÁI (t.t) Trạng thái bắt đầu: đối tượng tạo trạng thái tổng hợp xác định; ký hiệu Trạng thái kết thúc: đối tượng bị huỷ bỏ trạng thái... lớp Trạng thái đối tượng (định nghóa gốc ?) nhiều bị thay đổi suốt chu kỳ sống đối tượng - Trang 193 Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 7: Thiết kế hướng đối tượng LƯC ĐỒ

Ngày đăng: 29/09/2013, 14:20

Tài liệu cùng người dùng

Tài liệu liên quan