Tìm kiếm các thuộc tính

Một phần của tài liệu Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh (Trang 103 - 106)

4.5 Thuộc tính của lớp

4.5.1 Tìm kiếm các thuộc tính

Với mỗi lớp được tạo ra trong biểu đồ lớp như hình 4-10, chúng ta mong muốn tìm được những thuộc tính sao cho:

Đầy đủ: chứa đựng tất cả các thơng tin về đối tượng của lớp,

Tách biệt hồn tồn: 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: đố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ữ, trao đổi các thơng tin về đối tượng.

Trong mơ hình hố các khái niệm, cĩ thể cĩ những nhầm lẫn giống nhau. Nhiều

khi ta sử dụng những thuộc tính để biểu diễn cho những cái mà đáng lý ra phải sử dụng khái niệm lớp hay các mối quan hệ liên kết để thể hiện chúng.

Sau đây chúng ta xét một số lưu ý nhằm xác định chính xác các thuộc tính cho lớp nhằm đáp ứng các nguyên tắc cơ bản và tránh được những sai sĩt trên.

Đảm bảo các thuộc tính đơn giản

Các thuộc tính trong mơ hình lớp phải là những thuộc tính đơn giản hoặc là những kiểu dữ liệu thuần tuý:

Một cách trực quan, thuộc tính đơn giản nhất là những thuộc tính cĩ giá trị

kiểu dữ liệu nguyên thuỷ: Boolean, Number, String (Text), Time, v.v.

 Một số các kiểu phổ dụng bao gồm: DiaChi (Address), MauSac (Color), HinhHoc (Geometrics), SoDienThoai (PhoneNumber), SoBaoHiem (SocialSecurityNumber), MaSanPham (Universa ProductCode), các kiểu liệt kê (EnumeratedTypes), v.v.

Thơng thường, nên cố tránh những thuộc tính phức tạp và nên thay vào đĩ là những quan hệ liên kết giữa các lớp. Ví dụ: hãy xét lớp NguoiBan, cĩ thể đưa thuộc

tính heThongHienThoi vào để thể hiện là người bán hàng đang sử dụng hệ thống bán hàng nào đĩ. Bởi vì hệ thống HBH là lớp, nên nĩ là kiểu phức tạp. Do vậy, cách làm như thế khơng phải là tốt (hình 4-12 (a)). Để thể hiện được mối quan hệ này, ta cĩ thể sử dụng mối quan hệ kết hợp như hình 4-12 (b).

Hình 4-12 (a) Trường hợp thiết kế lớp khơng tốt

Hình 4-12 (b) Tốt hơn là chuyển thuộc tính phức thành quan hệ kết hợp Qui tắc hướng dẫn đầu tiên là:

NguoiBan ten: String heThongHienThoi: HBH HBH soHieu: Int NguoiBan ten: String 1 Sử-dụng 1 Sử dụng thuộc tính phức hợp

Sử dụng giá trị dữ liệu thuần tuý

Nĩi một cách tổng quát, các thuộc tính phải cĩ giá trị dữ liệu thuần tuý hoặc kiểu Data Type trong UML, trong đĩ việc xác định duy nhất khơng cĩ nhiều ý nghĩa trong ngữ

cảnh của mơ hình hệ thống. Ví dụ, đối với những kiểu dữ liệu nguyên thuỷ thì: + Khơng cần tách biệt các giá trị số giống nhau,

+ Khơng cần tách biệt các thể hiện của SoDienThoai mà chúng cĩ thể cĩ cùng số, + Khơng cần tách biệt hai địa chỉ vì chúng cĩ thể giống nhau, v.v.

Song, đối với các đối tượng thì việc phân biệt chúng (thơng qua định danh) lại cĩ

ý nghĩa và bắt buộc. Ví dụ, hai khách hàng cĩ thể cùng tên “Nguyễn Lam”, nhưng trong hệ thống phải được xác định riêng biệt bằng định danh.

Qui tắc hướng dẫn thứ hai là:

Khơng sử dụng thuộc tính như khố ngoại

Các thuộc tính khơng nên sử dụng để liên kết các khái niệm lại với nhau trong mơ hình khái niệm, mà chỉ được sử dụng để lưu giữ các thơng tin chính các đối tượng của lớp cĩ các thuộc tính đĩ. Trong thiết kế mơ hình CSDL quan hệ thì nguyên lý này bị vi

phạm vì, người ta thường sử dụng thuộc tính là khố ngoại để kết nối hai kiểu thực thể với nhau. Ví dụ: trong hình 4-13 (a), lớp NguoiBan cĩ thuộc tính soHieuHT được xem như là khố ngoại để thể hiện một người bán hàng sử dụng hệ thống bán hàng cĩ số hiệu xác định. Mặc dù thuộc tính này là thuộc tính đơn (khơng vi phạm hướng dẫn 1),

nhưng nĩ là khố ngoại vì thế vẫn khơng tốt và do đĩ, nên thay bằng quan hệ kết hợp như hình 4-13 (b).

Hình 4-13 (a) Trường hợp sử dụng khố ngoại

Hình 4-13 (b) Tốt hơn là chuyển thuộc tính phức thành quan hệ kết hợp Từ đĩ ta cĩ qui tắc hướng dẫn thứ ba.

NguoiBan ten: String soHieuHT: int HBH soHieu: int NguoiBan ten: String 1 Sử-dụng 1 Sử dụng thuộc tính đơn nhưng là dạng khố ngoại

2. Phần tử của kiểu dữ liệu thuần tuý cĩ thể được xác định trong một thuộc tính của một lớp, mặc dù nĩ cũng cĩ thể được sử dụng như một khái niệm (lớp) tách biệt trong mơ hình.

Tìm thuộc tính ở đâu và như thế nào?

 Đọc kỹ các mơ tả bài tốn, nghiên cứu các hồ sơ các chức năng hệ thống, các đặt tả ca sử dụng, các kịch bản để tìm tất cả những thơng tin, dữ liệu cần phải

lưu trữ, xử lý và cập nhật. Các mục này thường là các danh từ, hoặc mệnh đề danh từ đơn, được xem như là đại biểu của các thuộc tính. Ví dụ: khi xem xét

luồng các sự kiện: “Đối với mỗi mặt hàng, người bán nhập vào mã sản phẩm thơng qua máy đọc thẻ và số lượng hàng mà khách hàng chọn mua”. Như vậy, trong lớp MatHang tất nhiên phải cĩ thuộc tính maSanPham, và qua nĩ cĩ thể xác định được tên gọi, chủng loại, giá bán, v.v là những thuộc tính của

MoTaMatHang.

Sử dụng các qui tắc hướng dẫn nêu trên để xác định chính xác các thuộc tính:

đặc tính xác định phạm vi quan sát, tên gọi, kiểu và giá trị khởi đầu (nếu cĩ) của mỗi thuộc tính.

Đọc những giả thiết, sự phân loại hay những qui ước cần áp dụng cho hệ thống hiện thời để khẳng định lại những thuộc tính của từng lớp.

Gán các thuộc tính cho các lớp đối tượng trong biểu đồ lớp.

Một phần của tài liệu Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh (Trang 103 - 106)

Tải bản đầy đủ (PDF)

(111 trang)