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

Tài liệu BÀI 3: LÀM VIỆC VỚI HƯỚNG ĐỐI TƯỢNG pdf

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 (627.92 KB, 6 trang )

BÀI 3:
LÀM VIỆC VỚI HƯỚNG ĐỐI TƯỢNG
Nội dung chính trong bài học:
+ Trực quan hóa một lớp (class)
+ Các thuộc tính (attribute)
+ Các hành vi (operation)
+ Các đáp ứng (responsibility) và ràng buộc (constraint)

Trực quan hóa một lớp (class):
Chúng ta đã biết rằng 1 hình chữ nhật là biểu tượng dùng để biểu diễn 1 class trong UML.
Tên của class, theo qui ước, là một từ với ký tự đầu viết hoa, xuất hiện phía trên của hình
chữ nhật. Nếu tên class có 2 từ trở lên thì kết các từ sát với nhau với chữ hoa đầu từ (ví dụ
WashingMachine trong hình 3.1).
Hình 3.1
Biểu tượng class trong UML

Một cấu trúc UML khác, gọi là gói (package), có thể đóng vai trò trong tên của một class.
Như đã giới thiệu trong các bài trước, một package, được biểu diễn như một tabbed folder,
là cách của UML nhằm tổ chức các thành phần của diagram. Xem biểu tượng package trong
hình 3.2.
Hình 3.2
Ví dụ package UML

Thuật ngữ: Nếu lớp WashingMachine là thành phần của một package có tên là Household
appliances, ta có thể đặt tên cho class là Household appliances::WashingMachine. 2 dấu hai
chấm tách rời tên package bên trái với tên class bên phải. Loại tên class này gọi là một tên
đường dẫn (pathname). Xem hình 3.3
Hình 3.3
Một class với một pathname



Trang 1 – Bài 3
Các thuộc tính (attribute):
Thuật ngữ: Một thuộc tính (attribute) là một đặc tính của một class. Nó mô tả vùng giá trị
mà tính chất trong các object (instance) của class có thể nắm giữ. Một class có thể không có
hoặc có nhiều thuộc tính.Theo qui ước, tên thuộc tính viết liền với chữ thường. Nếu tên
thuộc tính gồm nhiều từ thì các từ kết liền với nhau và mỗi từ bắt đầu bằng chữ hoa. Danh
sách các tên thuộc tính bên dưới tên class, xem hình 3.4.
Hình 3.4
Một class với các thuộc tính



Mỗi object của class có một giá trị cụ thể cho từng thuộc tính. Hình 3.5 biểu diễn một ví dụ.
Chú ý rằng tên object bắt đầu bằng chữ thường, kế tiếp là 1 dấu hai chấm, kế tiếp là tên
class và toàn bộ tên được gạch dưới.
Chú ý: Tên myWasher:WashingMachine là một thể hiện có thên (named instance).
Ngoài ra còn có thể hiện vô danh (anonymous instance) như :WashingMachine.
Hình 3.5
Một object có một giá
trị cụ thể cho mỗi thuộc
tính của class chứa nó.


UML cho phép đưa vào các thông tin bổ sung cho các thuộc tính. Trong biểu tượng class, ta
có thể đặc tả một kiểu dữ liệu cho từng giá trị của thuộc tính. Những kiểu dữ liệu có thể là
string, floating-point number, integer và boolean. Để mô tả kiểu, dùng một dấu : ngăn cách
giữa tên thuộc tính với tên kiểu. Ngoài ra, có thể chỉ ra giá trị mặc định (default value) cho
một thuộc tính. Hình 3.6 chỉ ra các cách đặc tả thuộc tính.
Hình 3.6
Một thuộc tính có thể

cho biết kiểu của nó
cũng như giá trị mặc
định.



Trang 2 – Bài 3
Các hành vi (operation):
Thuật ngữ: Một hành vi (operation) là cái mà một class có thể tự làm được hoặc chúng ta
(hoặc class khác) có thể làm cho class đó. Giống như tên thuộc tính, một tên hành vi cũng
chỉ toàn chữ thường khi nó có 1 từ. Nếu tên hành vi gồm 2 từ trở lên thì mỗi từ bắt đầu bằng
chữ hoa rồi kết liền với nhau. Danh sách các operation nằm bên dưới danh sách các
attribute.
Hình 3.7
Danh sách các hành vi
của class xuất hiện bên
dưới đường ngăn cách
với các thuộc tính của
class.

Thuật ngữ: Ta cũng có thể chỉ ra thông tin bổ sung cho các hành vi. Trong các dấu ngoặc
theo sau tên hành vi, ta có thể biểu diễn các tham số được xử lý bởi hành vi và cùng với đó
là kiểu dữ liệu của chúng. Một loại hành vi là hàm (function), trả về một giá trị sau khi hành
vi kết thúc thực hiện. Đối với một function, ta có thể cho biết giá trị trả về và kiểu của giá trị
đó.

Thuật ngữ: Các thông tin về một operation được gọi là dấu hiệu (signature) của hành vi.
Hình 3.8 cho thấy cách biểu diễn signature.
Hình 3.8
Dấu hiệu (signature)

cho một operation.



Các thuộc tính, hành vi và sự trực quan hóa:
Chúng ta làm việc với các class trong sự tách rời và biểu diễn tất cả các thuộc tính, hành vi
của một class. Trong thực tế, chúng ta sẽ biểu diễn nhiều class cùng lúc. Khi đó, không phải
lúc nào cũng thuận tiện trong việc hiển thị tất cả các thuộc tính và hành vi vì như thế có thể
làm diagram thêm rối. Thay vào đó, ta có thể chỉ hiển thị tên class mà bỏ trống vùng
attribute hoặc operation, như hình 3.9.

Trang 3 – Bài 3
Hình 3.9
Trong thực tế, ta không
phải luôn luôn biểu
diễn tất cả các thuộc
tính và hành vi của một
class.
Thuật ngữ: Đôi lúc cần biểu diễn một vài (không phải tất cả) attribute và operation. Để làm
điều này, ta hiển thị những gì cần thiết rồi theo sau danh sách là dấu ba chấm. Điều này
được gọi là sự tĩnh lược (ellipsis) và việc bỏ qua một vài attribute hoặc operation được gọi
là tĩnh lược một class. Hình 3.10 cho thấy cách sử dụng một tĩnh lược.
Hình 3.10
Một tĩnh lược cho thấy
các operation không
phải là tập đầy đủ.



Nếu danh sách các attribute và operation quá dài, ta có thể dùng một stereotype để tổ chức

cho danh sách cô đọng hơn. Một stereotype là cách của UML cho phép ta mở rộng nó: cho
phép ta tạo các thành phần mới riêng biệt cho vấn đề cụ thể đang cần giải quyết. Như đã đề
cập trong các bài trước, ta biểu diễn stereotype như một tên gọi trong cặp ngoặc nhọn gọi là
guillemet. Đối với một danh sách thuộc tính, ta có thể dùng một stereotype như tiêu đề cho
một tập thuộc tính con.
Hình 3.11
Sử dụng một stereotype
để tổ chức một danh
sách các attribute và
operation.



Chú ý: Stereotype là một cấu trúc mềm dẻo. Ta co 1thể dùng nó theo nhiều cách khác nhau.
Ví dụ, có thể dùng nó phía trên tên của một class trong biểu tượng class để chỉ ra vai trò mà
class đó đang nắm giữ.

Trang 4 – Bài 3
Các đáp ứng (responsibility) và ràng buộc (constraint):
Thuật ngữ: Biểu tượng class còn cho phép đặc tả một loại thông tin khác về một class. Bên
dưới danh sách operation, ta có thể trình bày các đáp ứng (responsibility) của class.
Responsibility là một mô tả cho cái mà class phải làm – có nghĩa là các attribute và
operation nào của class sẽ thực hiện. Ví dụ, một washing machine có responsibility là lấy áo
quần dơ vào và xuất ra áo quần sạch.
Trong biểu tượng class, ta trình bày các responsibility bên dưới danh sách các operation
(xem hình 3.12).
Hình 3.12
Trong một biểu tượng
class, viết các
responsibility của class

trong một vùng dưới
danh sách các
operation.



Thuật ngữ: Để thêm một ràng buộc (constraint), dùng dấu ngoặc móc bao lấy nội dung
ràng buộc. Nội dung ràng buộc trong ngoặc đặc tả các luật mà class phải tuân thủ. Ví dụ,
trong lớp WashingMachine, ta muốn đặc tả rằng sức chứa của một máy giặt chỉ có thể là 16,
18 hoặc 24 pound (có nghĩa ràng buộc trên thuộc tính capacity của lớp WashingMachine), ta
viết {capacity=16 or 18 or 24 lb) gần với biểu tượng lớp WashingMachine.
Hình 3.13
Luật trong ngoặc móc
ràng buộc thuộc tính
capacity với 1 trong 3
giá trị có thể.


Ghi chú (note):
Ngoài attribute, operation, responsibility và constraint, ta còn có thể thêm thông tin vào một
class dưới dạng ghi chú (note) đính kèm class.
Ta thường thêm một note cho một attribute hay operation. Hình 3.14 biểu diễn một note cho
biết cách thức sinh số serial number cho các object trong lớp WashingMachine.

Trang 5 – Bài 3
Hình 3.14
Ghi chú đính kèm cung
cấp thêm thông tin về
class.



Tóm lược
Hình chữ nhật là biểu tương UML để mô tả một class. Name, attribute, operation và
responsibility của class được chia vào các vùng trong hình chữ nhật.Ta có thể dùng
stereotype để tổ chức danh sách các attribute và operation. Ta có thể tĩnh lược một class
bằng cách biểu diễn tập con của các attribute và operation. Điều này làm cho 1 class
diagram ít phức tạp.
Ta có thể biểu diễn kiểu dữ liệu và giá trị khởi động cho attribute. Ngoài ra còn có thể biểu
diễn những giá trị được xử lý bởi một operation cũng như kiểu dữ liệu của chúng. Đối với
một operation, những thông tin bổ sung này được gọi là dấu hiệu (signature).
Nhằm giảm sự nhập nhằng trong một định nghĩa class, ta có thể thêm các ràng buộc. UML
cho phép mô tả thêm về một class bằng cách đính kèm các chú thích (note) vào hình chữ
nhật biểu diễn cho class.

Câu hỏi:
1. Cách trình bày một class bằng UML?
2. Các thông tin có thể biểu trên một biểu tượng class?
3. Ràng buộc là gì?
4. Tại sao cần đính kèm ghi chú vào một biểu tượng class?
5. Khi nào chúng ta cần biểu diễn một signature cho một opeartion?

Bài tập:
1. Mô tả ngắn cho môn hockey:

Trang 6 – Bài 3

×