Bài 8. Thiết kế lớp
lượt xem 13
download
Tạo ra các tên thao tác thích hợp: Mô tả kết quả, Sử dụng góc nhìn của đối tượng khách (gọi), Nhất quán giữa các lớp. Xác định chữ ký của thao tác operationName([direction]parameter : class,..) : returnType Direction: in (mặc định), out hoặc inout
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài 8. Thiết kế lớp
- Bé m«n C«ng ng hÖ phÇn mÒm KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI OBJECTORIENTED ANALYSIS AND DESIGN WITH UML 2.0 Bài 8. Thiết kế lớp 1
- Mô hình thiết kế 2
- Nội dung 1. ́ ̣ ́ ́ Xac đinh cac thao tac (Operation) 2. Xac đinh phương thức (Method) ́ ̣ 3. Xác định các liên kết (Association) 4. ́ ̣ ́ ̣ ́ Xac đinh cac thuôc tinh (Attribute) 5. Xac đinh phụ thuôc (Dependency) ́ ̣ ̣ 6. Xác định tổng quát hóa (Generalization) 3
- ́ ̣ ́ ́ 1. Xac đinh cac thao tac Ánh xạ các thông điệp trong biểu đồ tương tác thành các thao tác của các lớp : ClassA : ClassB ClassB 1 : performResponsibility (): result + performResponsibility(): result 4
- Tên và mô tả thao tac ́ Tạo ra các tên thao tác thích hợp Mô tả kết quả Sử dụng góc nhìn của đối tượng khách (gọi) Nhất quán giữa các lớp Xác định chữ ký của thao tác operationName([direction]parameter : class,..) : returnType Direction: in (mặc định), out hoặc inout Đưa ra mô tả ngắn gọn, bao gồm ý nghĩa của tất cả các tham số 5
- Hướng dân thiêt kế chữ ký thao tac ̃ ́ ́ Khi thiết kế chữ ký của thao tác, cần xem xét liệu tham số có: Được truyền theo tham trị hay tham biến Có bị thay đổi bởi thao tác hay không Có tùy chọn không Thiết lập các giá trị mặc định Các khoảng tham số không hợp lệ Càng ít tham số, càng tốt Truyền các đối tượng thay vì hàng loạt các dữ liệu. 6
- Phạm vi truy cập của thao tác (Operation Visibility) Phạm vi truy cập được sử dụng để thực hiện khả năng đóng gói Có thể là public, protected, hoặc private Private operations Public Protected operations operations 7
- Phạm vi truy cập được biểu diễn như thế nào? Các ký hiệu sau được sử dụng: + Public access # Protected access - Private access Class1 - privateAttribute + publicAttribute # protectedAttribute - privateOperation () + publicOPeration () # protecteOperation () 8
- Phạm vi (Scope) Xác định số lượng thể hiện của thuộc tính/thao tác: Instance: Một thể hiện cho mỗi thể hiện của mỗi lớp Classifier: Một thể hiện cho tất cả các thể hiện của lớp Phạm vi Classifier được ký hiệu bằng cách gạch dưới tên thuộc tính/thao tác. Class1 - classifierScopeAttr - instanceScopeAttr + classifierScopeOp () + instanceScopeOp () 9
- Ví dụ: Scope Student - name - address - studentID - nextAvailID : int + addSchedule ([in] theSchedule : Schedule, [in] forSemester : Semester) + getSchedule ([in] forSemester : Semester) : Schedule + hasPrerequisites ([in] forCourseOffering : CourseOffering) : boolean # passed ([in] theCourseOffering : CourseOffering) : boolean + getNextAvailID () : int 10
- Ví dụ: Xác định thao tác RegistrationController 0..* ICourseCatalogSystem 1 + submitSchedule() + getCourseOfferings() + saveSchedule() + initialize() + getCourseOfferings() : CourseOfferingList + getCurrentSchedule ( [in] forStudent : Student, [in] forSemester : Semester) : Schedule + deleteCurrentSchedule() + new ( [in] forStudentID : String) + getStudent ( [in] anID : int) : Student 0..1 + registrant 0..1 Student + getTuition() : double + addSchedule ( [in] aSchedule : Schedule) + getSchedule ( [in] forSemester : Semester) : Schedule + deleteSchedule ( [in] forSemester : Semester) + hasPrerequisites ( [in] forCourseOffering : CourseOffering) : boolean # hasPassed ( [in] aCourseOffering : CourseOffering) : boolean + getNextAvailID() : int + getStudentID() : int + getName() : String + getAddress() : String 11
- 12
- Nội dung 1. ́ ̣ ́ ́ Xac đinh cac thao tac (Operation) 2. Xac đinh phương thức (Method) ́ ̣ 3. Xác định các liên kết (Association) 4. ́ ̣ ́ ̣ ́ Xac đinh cac thuôc tinh (Attribute) 5. Xac đinh phụ thuôc (Dependency) ́ ̣ ̣ 6. Xác định tổng quát hóa (Generalization) 13
- 2. Xac đinh phương thức ́ ̣ Phương thức (method) là gi? ̀ Mô tả sự thực thi cua thao tac (operation) ̉ ́ ̣ ́ Muc đich Xac đinh cac vấn đề riêng cho viêc thực thi thao tac ́ ̣ ́ ̣ ́ Cac vân đề cân xem xet: ́ ́ ̀ ́ ́ ̣ ́ Cac thuât toan đăc biêt ̣ ̣ Cac đôi tượng hoăc cac thao tac khac cân sử dung ́ ́ ̣ ́ ́ ́ ̀ ̣ Cac thuôc tinh và cac tham số sẽ được thực thi và sử ́ ̣ ́ ́ ̣ dung Cac môi quan hệ sẽ được thực thi và sử dung ́ ́ ̣ 14
- Nội dung 1. ́ ̣ ́ ́ Xac đinh cac thao tac (Operation) 2. Xac đinh phương thức (Method) ́ ̣ 3. Xác định các liên kết (Association) 4. ́ ̣ ́ ̣ ́ Xac đinh cac thuôc tinh (Attribute) 5. Xac đinh phụ thuôc (Dependency) ́ ̣ ̣ 6. Xác định tổng quát hóa (Generalization) 15
- 3. Xác định các liên kết Mục đích Tinh chỉnh các kết hợp còn lại Các vấn đề cần xem xét: Association vs. Aggregation Aggregation vs. Composition Attribute vs. Association Navigability Multiplicity design 16
- Composition là gì? Một dạng của aggregation với quyền sở hữu mạnh và các vòng đời trùng khớp. Whole sở hữu Part, tạo và hủy Part. Part bị bỏ đi khi Whole bị bỏ, Part không thể tồn t ại nếu Whole không tồn tại. Whole Part Whole Part Composition 17
- Aggregation: Shared vs. Non-shared Shared Aggregation Multiplicity > 1 Whole 1..* 0..* Part Non-shared Aggregation Multiplicity = 1 Multiplicity = 1 Whole 1 0..* Part Whole 1 0..* Part Composition By definition, composition is non-shared aggregation. 18
- Aggregation hay Composition? Xem xét vòng đời của Class1 và Class2 Class1 Class2 Aggregation Class1 Class2 Composition 19
- Ví dụ: Composition CourseInfo 1 Schedule 0..* CourseRegistrationForm 1 CourseRegistrationController 1 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tạo giao diện với Flash 5 phần 1
10 p | 375 | 154
-
Tạo một gallery bằng flash
7 p | 203 | 63
-
Macromedia Flash - Tạo khung text có thanh cuốn trong Flash 8.0
6 p | 285 | 58
-
Bài tập thực hành Lập trình trên môi trường Windows (Lập trình Windows Form với C#): Lab 8 - ĐH Công nghệ Tp.HCM
17 p | 310 | 52
-
Giáo trình tin học 12 - Tiết 8 Giới thiệu Microsoft Access (tiết 1/ 1 tiết)
16 p | 270 | 29
-
Phân tích thiết kế hướng đối tượng: Bài 8. Biểu đồ kiến trúc vật lý và phát sinh mã trình - ThS. Lê Văn Hùng
20 p | 153 | 23
-
Bài giảng Phân tích thiết kế hệ thống thông tin: Bài 8 - TS. Trần Mạnh Tuấn
43 p | 32 | 6
-
Bài giảng Chương 8: Thiết kế lớp và phương thức
51 p | 43 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 8 - Phạm Thị Bích Vân
16 p | 59 | 3
-
Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 8: Thiết kế lớp phương thức
18 p | 20 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn