PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
70
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác đònh các Persistent Class
w Đònh nghóa các Operation
w Đònh nghóa Class Visibility
w Đònh nghóa các Method
w Đònh nghóa các trạng thái
w Đònh nghóa các thuộc tính
w Đònh nghóa các phụ thuộc
w Đònh nghóa các mỗi kết hợp
w Đònh nghóa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
71
Đònh nghóa Associations
w Mục đích
§ Tinh chỉnh các association còn lại
w Những gì cần xem xét :
§ Cân nhắc giữa Association và Aggregation
§ Cân nhắc giữa Aggregation và Composition
§ Cân nhắc giữa Attribute và Association
§ Chiều của quan hệ (Navigability)
§ Thiết kế Association class
§ Thiết kế bản số (Multiplicity design)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
72
Whole
Part
Whole
Aggregation
Part
Nhắc lại: Composition là gì ?
w Là một dạng của aggregation với tính sở hữu
cao và trùng khớp về chu kỳ sống
§ “Bộ phận” không thể tồn tại lâu hơn “toàn thể”
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
73
w Shared Aggregation
w Non-shared Aggregation
1
Whole Part
1..* 0..*
Bản số > 1
Whole Part
1
0..*
Bản số = 1
Theo đònh nghóa, composition là non-shared aggregation
Whole Part
0..*
Bản số = 1
Composition
Aggregation: Shared hay không shared
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
74
aggregation
composition
Class1
Class1
Class2
Class2
Aggregation hay Composition?
w Xem xét
§ Chu kỳ sống của Class1 và Class2
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
75
Ví dụ: Composition
Student
Schedule
1 0..*
RegisterForCoursesForm
1 1
RegistrationController
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
76
Cân nhắc giữa Attributes và Composition
w Dùng composition khi
§ Các thuộc tính cần được nhận dạng độc lập
§ Nhiều class có chung các thuộc tính
§ Các thuộc tính có cấu trúc phức tạp và bản thân
chúng cũng có thuộc tính riêng
§ Các thuộc tính có hành vi riêng (phức tạp)
§ Các thuộc tính có quan hệ riêng
w Các trường hợp còn lại dùng attributes
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
77
Ví dụ: Attributes/Composition
Composition of
separate class
Attributes
0..*
11
Student
- name
- address
<<classifier scope>> - nextAvailID : int
- StudentID : int
- dateofBirth : Date
+ addSchedule()
+ getSchedule()
+ delete schedule()
+ hasPrerequisites()
# passed()
<<entity>>
Schedule
+ submit()
+ // save()
# any conflicts?()
+ // create with offerings()
+ new()
+ passed()
<<entity>>
- Semester