L p tr ut ng (Abstract Classes)
Xác định các thuộc tính sao cho:
Đầy đủ (Complete): chứa đựng tất cả các thông tin về đối tượng của
lớp,
Tách biệt hoàn toàn (full factored): mỗi thuộc tính thể hiện được một
đặc tính khác nhau của đối tượng,
Độc lập với nhau (mutually independent): đối với mỗi đối tượng, các giá trị của các thuộc tính là độc lập với đối tượng khác, tốt nhất là loại bỏ những thuộc tính có thể được suy dẫn từ những thuộc tính khác.
Liên quan đến các yêu cầu và các ca sử dụng: các thuộc tính được đưa
vào lớp phải được xác định trên cơ sở các yêu cầu thực hiện công việc hoặc cần để tổ chức, lưu trữ các thông tin về đối tượng.
48
3.2.2. Các thao tác (Operations)
Các thao tác là các quá trình mà một lớp phải biết để thực hiện.
Ở mức đặc tả, các thao tác tương ứng với các phương thức công khai (public methods) trong một lớp.
Theo quan điểm cài đặt, các thao tác thường sử dụng như là phương thức riêng hay được bảo vệ (private and protected methods).
Cú pháp trong UML, thao tác có dạng:
visibility name(parameter-list) : return-type-expression {property string}
49
Có 6 miền tên gọi khác nhau:
• Tên gói (package names), · Tên kiểu (type names), · Tên trường (field names),
· Tên phương thức, hàm (method names),
· Tên biến cụ bộ (local variable names, including parameters), and · Tên nhãn (labels)
+ Tên gọi được sử dụng trong chương trình để mô tả ngữ nghĩa cái mà tên gọi đề cập đến. Ví dụ, trong biểu thức x.f= 3, ta biết rằng f phải là trường dữ liệu chứ không phải là gói, phương thức, nhãn bởi vì ta truy cập đến thành phần x.
+ Biết rằng x phải là tên kiểu đối tượng, hoặc hoặc trường, hoặc biến cục bộ liên quan đến tham chiếu đối tượng.
50
Tên gọi các thành phần của chương trình tương đối linh hoạt, có thể giống nhau, nhưng mang ngữ nghĩa khác nhau, ví dụ
package Reuse; class Reuse {
Reuse Reuse(Reuse Reuse) { Reuse:
for (;;) {
if (Reuse.Reuse(Reuse) == Reuse) break Reuse; } return Reuse;
} } }
51
visibility name(parameter-list) : return-type-expression {property string}