
Bài giảng Lập trình hướng đối tượng - Bài 12: Biểu đồ lớp
lượt xem 7
download

Bài giảng "Lập trình hướng đối tượng - Bài 12: Biểu đồ lớp" cung cấp ccas kiến thức giúp sinh viên có thể mô tả khung nhìn tĩnh của hệ thống và cánh đưa nó vào trong mô hình; mô hình hóa mối liên kết và kết tập chỉ ra các mô hình chính và biểu đồ lớp; mô hình tổng quát hóa trên một biểu đồ lớp,... Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng - Bài 12: Biểu đồ lớp
- 8/24/2011 Mục đích Bộ môn Công nghệ Phần mềm Mô tả khung nhìn tĩnh của hệ thống và cách Viện CNTT & TT đưa nó vào trong một mô hình. Trường Đại học Bách Khoa Hà Nội Minh họa cách đọc và hiểu một biểu đồ lớp. Mô hình hóa mối liên kết (association) và kết tập (aggregation) và chỉ ra cách mô hình LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG chúng vào biểu đồ lớp. Bài 12. Biểu đồ lớp Mô hình tổng quát hóa (generalization) trên một biểu đồ lớp. 2 Nội dung Nội dung 1. Biểu đồ lớp (Class diagram) 1. Biểu đồ lớp (Class diagram) 2. Liên kết (Association) 2. Liên kết (Association) 3. Kết tập (Aggregation) 3. Kết tập (Aggregation) 4. Tổng quát hóa (Generalization) 4. Tổng quát hóa (Generalization) 3 4 1.1. Lớp (Class) Biểu diễn thuộc tính attributeName : Type = Default Class_Name attribute1 attribute2 attribute3 method1() method2() method3() 5 6 1
- 8/24/2011 Mô tả phương thức Phạm vi truy cập (Visibility) operationName([direction] parameter:class,...):returnType private public protected 7 8 Phạm vi truy cập được biểu diễn như thế nào? Phạm vi (Scope) Class1 - privateAttribute + publicAttribute # protectedAttribute - privateOperation () + publicOPeration () Class1 # protecteOperation () - classifierScopeAttr - instanceScopeAttr + classifierScopeOp () + instanceScopeOp () 9 10 Ví dụ: Scope 1.2. Biểu đồ lớp là gì? Biểu đồ lớp chỉ ra sự tồn tại của các lớp 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 11 12 2
- 8/24/2011 Biểu đồ lớp (Class Diagram – CD) Ví dụ Biểu đồ lớp Khung nhìn tĩnh của hệ thống Có cách nào tốt hơn để tổ chức biểu đồ lớp? CloseRegistrationForm Schedule CloseRegistrationController - semester LoginForm RegistrationController + open() + is registration open?() + close registration() + commit() + close registration() RegisterForCoursesForm + select alternate() + remove offering() + level() Professor + cancel() - name Schedule Student + get cost() - employeeID : UniqueId CloseRegistrationForm CloseRegistrationController + delete() - hireDate + submit() - status + get tuition() + save() - discipline + add schedule() Professor + any conflicts?() - maxLoad + get schedule() Student + create with offerings() + delete schedule() Course CourseOffering + update with new selections() + submitFinalGrade() + has pre-requisites() + acceptCourseOffering() + setMaxLoad() CourseCatalogSystem + takeSabbatical() + teachClass() BillingSystem 13 14 Gói (package) Ví dụ: Registration Package Registration CloseRegistrationForm CloseRegistrationController University Artifacts RegisterForCoursesForm RegistrationController 15 16 Nội dung Liên kết (association) là gì? 1. Biểu đồ lớp (Class diagram) Mối liên hệ ngữ nghĩa giữa hai hay nhiều lớp 2. Liên kết (Association) 3. Kết tập (Aggregation) 4. Tổng quát hóa (Generalization) Student Schedule Course 17 18 3
- 8/24/2011 Bội số quan hệ (Multiplicity) Biểu diễn bội số quan hệ Unspecified Exactly One 1 Zero or More 0..* Zero or More * One or More 1..* Zero or One (optional value) 0..1 Specified Range 2..4 instructor Professor CourseOffering 0..1 0..* Multiple, Disjoint Ranges 2, 4..6 19 20 Ví dụ về bội số quan hệ Nội dung 1. Biểu đồ lớp (Class diagram) RegisterForCoursesForm 1 RegistrationController 2. Liên kết (Association) 1 0..1 3. Kết tập (Aggregation) 4. Tổng quát hóa (Generalization) 0..1 1 0..* Student Schedule CourseOffering 0..* 0..4 21 22 Kết tập (aggregation) là gì? Ví dụ về kết tập Là một dạng đặc biệt của liên kết mô hình hóa mối quan hệ toàn thể-bộ phận (whole- part) RegisterForCoursesForm 1 RegistrationController 1 0..1 0..1 1 0..* Student Schedule CourseOffering Whole 1 Part 0..* 0..4 0..1 23 24 4
- 8/24/2011 Cấu thành (Composition) là gì? Association, Aggregation and Composition Mối quan hệ giữa các lớp (relationship) Whole Part Whole Part Composition 25 26 Ví dụ – Association Ví dụ – Aggregration vs. Composition public class StudentRegistrar { public StudentRegistrar (){ (new RecordManager()).initialize(); } } 27 28 Nội dung Tổng quát hóa (Generalization) 1. Biểu đồ lớp (Class diagram) Là mối liên hệ “là một loại” (“is a kind of”) 2. Liên kết (Association) 3. Kết tập (Aggregation) 4. Tổng quát hóa (Generalization) 29 30 5
- 8/24/2011 Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class) Ví dụ về Đơn kế thừa Ancestor Account - balance Superclass - name Discriminator Animal Abstract class - number (parent) + communicate () Abstract operation + withdraw() + createStatement() Generalization Communication There are no direct instances of Animal Relationship Lion Tiger Subclasses (children) Savings Checking + communicate () + communicate () All objects are either lions or tigers 31 32 Descendents Ví dụ về Đa kế thừa Đa hình (Polymorphism) là gì? FlyingThing Animal Multiple Inheritance Airplane Helicopter Bird Wolf Horse Manufacturer B Manufacturer A Manufacturer C OO Principle: Encapsulation Remote Control 33 34 Tổng quát hóa: Thực thi đa hình Animal + communicate () Lion Tiger + communicate () + communicate () Without Polymorphism With Polymorphism if animal = “Lion” then Animal communicate Lion communicate else if animal = “Tiger” then Tiger communicate end 35 6

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p |
144 |
19
-
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 p |
176 |
15
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p |
181 |
12
-
Bài giảng Lập trình hướng đối tượng - Chương 3: Kế thừa
18 p |
143 |
10
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p |
146 |
9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p |
86 |
8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p |
125 |
8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p |
108 |
8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan về OOP
0 p |
150 |
7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p |
202 |
7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p |
111 |
7
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p |
70 |
6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p |
103 |
5
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - GV. Hà Văn Sang
29 p |
93 |
5
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p |
18 |
4
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p |
110 |
4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p |
21 |
3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p |
15 |
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
