PT & TK Hướng đối tượng – Thiết kế kiến trúcCác bước thiết kế Class w Định nghĩa các thuộc tính... PT & TK Hướng đối tượng – Thiết kế kiến trúcNhắc lại: Thế nào là Attribute?. :CourseOff
Trang 1PT & TK Hướng đối tượng – Thiết kế kiến trúc
Các bước thiết kế Class
w Định nghĩa các thuộc tính
Trang 2Định nghĩa Attributes
w Mục đích
§ Formalize definition of attributes
w Những gì cần xem xét:
§ Persistency
§ Visibility
§ Tên gọi, kiểu, và giá trị mặc định
Trang 3PT & TK Hướng đối tượng – Thiết kế kiến trúc
Nhắc lại: Thế nào là Attribute?
:CourseOffering
number = 101 startTime = 900 endTime = 1100
:CourseOffering
number = 104 startTime = 1300 endTime = 1500
CourseOffering
number startTime endTime
Class
Attribute
Object Attribute Value
Trang 4Cách tìm ra các Attribute?
w Khảo sát mô tả của các method
w Khảo sát các trạng thái
w Bất kỳ thông tin nào mà class cần duy trì
Trang 5PT & TK Hướng đối tượng – Thiết kế kiến trúc
Biểu diễn Attribute
w Mô tả name, type, và giá trị mặc định
§ attributeName : Type = Default
w Tuân thủ qui ước đặt tên của NNLT và dự án
w Type phải là KDL cơ sở trong NNLT cài đặt
§ Các KDL định sẵn, người dùng đ/n
w Mô tả tình khả kiến
§ Public: ‘+’
§ Private: ‘-’
§ Protected: ‘#’
Trang 6Các Derived Attribute
w Thế nào là derived attribute?
§ Một attribute mà giá trị co thể tính từ giá trị của các attribute khác
w Khi nào dùng chúng?
§ Khi không đủ thời gian để tính lại giá trị mỗi khi cần thiết
§ Dung hòa giữa thời gian thực hiện và bộ nhớ sử dụng
Trang 7PT & TK Hướng đối tượng – Thiết kế kiến trúc
Ví dụ: Define Attributes
Student.
- name : string
- address : string
<<class>> - nextAvailID : int
- studentID : int
- dateofBirth : Date
(from University Artifacts)
<<entity>>
RegistrationController
(from Registration)
<<control>>
Schedule
- semester : Semester
(from University Artifacts)
<<entity>>
CourseOffering
- number : String = "100"
- startTime : Time
- endTime : Time
- days : string /- numStudents : int = 0
(from University Artifacts)
<<entity>>
ICourseCatalogSystem
(from External System Interfaces)
<<Interface>>
0 1
0 1
+registrant
0 *
1
0 1
0 1 +currentSchedule
0 *
0 *
+primaryCourses 0 4
+alternateCourses
0 2
Trang 8(còn tiếp)
Bài tập: Define Attributes (optional)
w Hãy cho biết:
§ Các architectural layers, các package và phụ thuộc của chúng
§ Các Design class của một use case cụ thể
Trang 9PT & TK Hướng đối tượng – Thiết kế kiến trúc
(còn tiếp)
Bài tập: Define Attributes (tt.)
w Với các design class hãy xác định:
§ Các Attribute và mô tả đầy đủ của nó
§ Tầm vực và tính khả kiến của Attribute
§ Mọi mối quan hệ và class bổ sung để hỗ trợ cho việc định nghĩa các attribute và attribute
signatures
Trang 10Bài tập: Define Attributes (cont.)
w Xây dựng lược đồ:
§ VOPC class diagram, chứa tất cả các attribute và mối quan hệ