Xem mẫu
8/24/2011
Mục đích
Bộ môn Công nghệ Phần mềm Viện CNTT & TT
Trường Đại học Bách Khoa Hà Nội
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 12. Biểu đồ lớp
Mô tả khung nhìn tĩnh của hệ thống và cách đưa nó vào trong một mô hình.
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 chúng vào 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) 2. Liên kết (Association)
3. Kết tập (Aggregation)
4. Tổng quát hóa (Generalization)
1. Biểu đồ lớp (Class diagram) 2. Liên kết (Association)
3. Kết tập (Aggregation)
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 ()
# protecteOperation ()
9
Class1
- classifierScopeAttr - instanceScopeAttr
+ classifierScopeOp () + instanceScopeOp ()
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)
Khung nhìn tĩnh của hệ thống
Ví dụ Biểu đồ lớp
Có cách nào tốt hơn để tổ chức biểu đồ lớp?
CloseRegistrationForm
+ open()
+ close registration()
Student
+ get tuition()
+ add schedule() + get schedule()
+ delete schedule()
+ has pre-requisites()
Schedule - semester
+ commit()
+ select alternate() + remove offering() + level()
+ cancel() + get cost() + delete() + submit()
+ save()
+ any conflicts?()
+ create with offerings()
+ update with new selections()
CloseRegistrationController
+ is registration open?() + close registration()
Professor - name
- employeeID : UniqueId - hireDate
- status
- discipline - maxLoad
+ submitFinalGrade()
+ acceptCourseOffering() + setMaxLoad()
+ takeSabbatical() + teachClass()
13
LoginForm
RegisterForCoursesForm
Schedule CloseRegistrationForm
Professor Student
CourseCatalogSystem
RegistrationController
CloseRegistrationController
Course CourseOffering
BillingSystem
14
Gói (package) Ví dụ: Registration Package
Registration
University
Artifacts
CloseRegistrationForm
RegisterForCoursesForm
CloseRegistrationController
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ệ
Professor instructor
0..1
CourseOffering
0..* 19
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
Multiple, Disjoint Ranges 2, 4..6
20
Ví dụ về bội số quan hệ Nội dung
RegisterForCoursesForm 1
0..1
...
- tailieumienphi.vn
nguon tai.lieu . vn