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

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 92 - 95)

- 17

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

Vớimỗilớpđược tạoratrongbiểuđồlớp nhưhình4-6,chúngtamongmuốntìm đượcnhữngthuộctínhsaocho:

Đầy đủ (Complete):chứađựngtấtcảcácthôngtinvềđốitượngcủalớp,

-77-

Tách biệt hoàn toàn (full factored):mỗithuộctínhthểhiệnđượcmộtđặctính

khácnhaucủađốitượ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ộctínhcóthểđượcsuydẫntừnhữngthuộctínhkhá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ớpphảiđượcxácđịnhtrêncơ sởcácyêucầuthựchiệncôngviệchoặccầnđể tổchức,lưutrữcácthôngtinvềđốitượng.

Trongmôhìnhhoácáckháiniệm có thể có những nhầm lẫn giống nhau là nhiều

khi ta sử dụ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 nó.

Sau đây chúng ta xétmột số lưu ý nhằm xác định chính xác các thuộc tính cho lớpnhằmđápứngcácnguyên tắccơbảnvàtránhđượcnhữngsaisóttrên.

Đảmbảo cácthuộctínhđơngiả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ý (pure data type):

 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ỷ (primitive data type): Boolean, Number, String

(Text), Time, v.v.

 Một sốcáckiểuphổdụngbaogồ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 quanhệ 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ánhàng đang sửdụng hệ thốngbán hàng nàođó.Bởi vìhệthốngHBH làlớp, nênnó làkiểu phức tạp. Do vậy, cách làm như thếkhôngphảilàtốt (hình4-12 (a)). Đểthểhiệnđượcmốiquanhệnày, tacóthể sửdụngmốiquanhệkếthợpnhưhình4-12(b).

NguoiBan Sử dụng thuộc tính phức hợp ten: String

heThongHienThoi: HBH

Hình4-12 (a)Trườnghợpthiếtkế lớpkhôngtốt

-78 -

NguoiBan ten: String

1 Sử-dụng 1 HBH soHieu: Int

Hình4-12(b)Tốthơnlàchuyểnthuộctínhphứcthànhquanhệkếthợp Quitắchướngdẫnđầutiênlà:

1. Liên kết các khái niệm với nhau bằng quan hệ kết hợp, không

bằng các thuộc tính phức hợp.

Sửdụnggiátrịdữliệuthuầntuý

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 duynhất không có nhiềuý nghĩa

trong ngữ cảnhcủamô hìnhhệ thống. Ví dụ:đối vớinhữngkiểu dữliệu nguyên thuỷ thì:

+ Khôngcầntáchbiệtcácgiátrịsốgiốngnhau,

+ Khôngcầntáchbiệtcácthểhiệncủa SoDienThoaimàchúngcóthểcócùngsố, + Khôngcầntáchbiệthaiđịachỉvìchúngcóthểgiốngnhau,v.v.

Song,đốivớicácđốitượngthìviệcphânbiệtchúng(thôngquađịnhdanh)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

tronghệthốngphảiđượcxácđịnhriêngbiệtbằngđịnhdanh(Identity). Quitắchướngdẫnthứhailà:

2. Phần tử của kiểu dữ liệu thuần tuý có thể được biểu diễn 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.

Khôngsửdụngthuộctínhnhưkhoá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 đó.TrongthiếtkếmôhìnhCSDLquanhệthìnguyênlýnàybịvi

phạm vì, ngườita thường sử dụng thuộc tính là khoá ngoại (Foreign Key)để 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à khoá ngoại để thể hiện một ngườibán hàng sửdụng hệ

thống bán hàngcó số hiệu xác định. Mặcdùthuộc tínhnàylà thuộc tínhđơn (không viphạmhướng dẫn1),nhưngnólàkhoángoạivìthếvẫn khôngtốtvàdođó,nênthay bằngquanhệkếthợpnhưhình4-13(b). NguoiBan ten: String soHieuHT:79 - Sử dụng thuộc tính đơn nhưng là dạng khoá ngoại

Hình4-13(a)Trườnghợpsửdụngkhoángoại

NguoiBan ten: String

1 Sử-dụng 1 HBH soHieu: Int

Hình4-13(b)Tốthơnlàchuyểnthuộctínhphứcthànhquanhệkếthợp Từđótacóquitắchướngdẫnthứba.

3. Nên kết nối các khái niệm với nhau bằng các quan hệ kết hợp, không sử dụng thuộc tính.

Tìmthuộctínhở đâuvànhưthếnào?

 Đọckỹcácmô tảbàitoán, nghiêncứucáchồsơcácchứcnănghệ thống, các đặttảcasửdụng,cáckịchbả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ácmụcnàythườ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ụ:khixemxét

luồng cácsự kiện:“Đốivớimỗimặt hàng,ngườibán nhậpvào mã s ản phẩm thôngquamáyđọcthẻvàsốlượnghàngmàkháchhàngchọnmua”.Nhưvậy,

trong lớpMatHang 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ẫnnêutrênđểxácđịnhchínhxáccácthuộctính:

đặctính xácđịnh phạmvi quansát, tên gọi, kiểu vàgiá trịkhởiđầu (nếu có) củamỗithuộctí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địnhlạinhữngthuộctính củatừnglớp.

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

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 92 - 95)

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

(195 trang)
w