Tải bản đầy đủ (.pdf) (35 trang)

LTHDT- Bài 12. Biểu đồ lớp Slide BK ha noi ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (890.87 KB, 35 trang )

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
ViỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Bài 12. Biểu đồ lớp
Mc đch
• 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
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
1.1. Lp (Class)
• S dng hnh ch nht gm 3 thnh phn
▫ Tên lp
▫ Cc thuộc tnh
▫ Cc phương thc
Class_Name
attribute1
attribute2
attribute3
method1()


method2()
method3()
4
Biu din thuc tnh
• Ch ra tên, kiu và giá trị mặc định nu có
▫ attributeName : Type = Default
• Tuân theo quy ưc đặt tên ca ngôn ngữ cài đặt và ca dự
án.
• Kiu (type) nên là kiu dữ liu cơ bn trong ngôn ngữ
thực thi
▫ Kiu dữ liu có sẵn, kiu dữ liu người dùng định
nghĩa, hoặc lp tự định nghĩa.
5
Mô t phương thc
• Tên phương thc:
▫ Mô t kt qu
▫ Sử dụng góc nhìn ca đi tượng khách (client – đi
tưng gi)
▫ Nhất quán giữa các lp
• Chữ ký ca phương thc:
operationName([direction] parameter:class, ):returnType
▫ Direction: in (mặc định), out hoặc inout
6
public
protected
private
Phạm vi truy cp (Visibility)
• Phạm vi truy cp được sử dụng đ thực hin kh
năng đóng gói
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
- 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
- studentID
10
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 v mi
quan h gia chng trong bn thiết kế logic ca
một h thng

Ch ra cu trc tnh ca mô hnh như lp, cu trc bên
trong ca chng v mi quan h vi cc lp khc.
▫ Ch ra tt c hoc một phn cu trc lp ca một h
thng.

Không đưa ra cc thông tin tạm thi.

Khung nhn tnh ca một h thng ch yếu h
tr cc yêu cu chc năng ca h thng
.
11
Biu đ lp (Class Diagram – CD)
• Khung nhn tnh ca h thng
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()
Professor
- name
- employeeID : UniqueId
- hireDate
- status
- discipline
- maxLoad
+ submitFinalGrade()
+ acceptCourseOffering()
+ setMaxLoad()

+ takeSabbatical()
+ teachClass()
CloseRegistrationController
+ is registration open?()
+ close registration()
12
V d Biu đ lp
• C cch no tt hơn đ t chc biu đ lp?
CloseRegistrationForm
LoginForm
Professor
BillingSystem
CloseRegistrationController
RegisterForCoursesForm
Course
CourseCatalogSystem
Student
RegistrationController
CourseOffering
Schedule
14
Gi (package)
• Một cơ chế chung để t chc cc phn t thnh
nhm.
• Một phn t trong mô hnh c thể cha cc
phn t khc.
University
Artifacts
15
V d: Registration Package

Registration
CloseRegistrationForm
CloseRegistrationController
RegisterForCoursesForm RegistrationController
16
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)
17
Liên kt (association) l g?
• Mi liên h ngữ ngha giữa hai hay nhiu lp ch ra
sự liên kt giữa cc th hin ca chng
• Mi quan h v mặt cấu trc ch ra cc đi tượng ca
lp ny c kt ni vi cc đi tượng ca lp khc.
18
CourseStudent Schedule
Bi s quan h (Multiplicity)
• Bi s quan h l s lượng th hin ca mt lp liên
quan ti MT th hin ca lp khc.
• Vi mỗi liên kt, c hai bi s quan h cho hai đu
ca liên kt.
▫ Vi mỗi đi tượng ca Professor, c nhiu Course
Offerings c th được dạy.
▫ Vi mỗi đi tượng ca Course Offering, c th c 1
hoặc 0 Professor ging dạy.
19
Professor CourseOffering
0 1 0 *0 1 0 *

instructor
Biu din bi s quan h
2 4
0 1
1 *
0 *
1
*
2, 4 6
Unspecified
Exactly One
Zero or More
Zero or More
Zero or One (optional value)
One or More
Specified Range
Multiple, Disjoint Ranges
20
V d v bi s quan h
RegisterForCoursesForm
CourseOfferingSchedule
0 4
0 *
Student
0 *
1
RegistrationController
1
1
1

1
0 1
0 1
0 1
21
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)
22
Kt tp (aggregation) l g?
• 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) giữa đi tượng
ton th v cc b phn ca n.
▫ Kt tp l mi quan h “l mt phn” (“is a part-of”).
• Bi s quan h được biu din ging như cc liên kt
khc
23
Part
Whole
0 1
1
V d v kt tp
RegisterForCoursesForm
CourseOfferingSchedule
0 4
0 *
Student
0 *

1
RegistrationController
1
1
1
1
0 1
0 1
0 1
24
Cu thnh (Composition) là gì?
• Mt dạng ca kết tp vi quyn sở hữu mạnh và
các vòng đời trùng khp gia hai l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
Composition
Part
PartWhole
25
Association, Aggregation and
Composition
• Mi quan h giữa cc lp
(relationship)
▫ Liên kt (Association)
 Sử dụng (use-a)
▫ Kt tp (Aggregation)
 Strong association
 has-a/is-a-part

▫ Hợp thnh (Composition)
 Strong aggregation
 Share life-time
26

×