PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 51 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ácthuộctí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 52 Đò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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 53 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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 54 Cá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ì PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 55 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: ‘#’ PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 56 Cá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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 57 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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 58 (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ể PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 59 (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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 60 Bà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ệ . Đò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. kiến trúc Dương Anh Đức 51 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