1. Trang chủ
  2. » Công Nghệ Thông Tin

Phân Tích Hệ Thống Hướng Đối Tượng, Ngôn Ngữ UML - Phạm Thị Xuân Lộc phần 6 pps

6 342 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 266,59 KB

Nội dung

Gói1 +Lớp1 +Lớp2 +Lớp3 “import” +Lớp4 Gói2 -a1 a2 +a3 #a4 III.2.4 Thuộc tính (attribute): Các thuộc tính biểu diễn các dữ liệu được bao gói trong các đối tượng của lớp đang xét. Một thuộc tính có thể được khởi tạo lúc khai báo. Ngữ pháp đầy đủ của thuộc tính như sau: <mức độ hiển thị> [/] <tên thuộc tính>: <kiểu> [‘[’<bản số>] ’]’ [=<trị khởi tạo>] trong dó: <mức độ hiển thị>: dùng các từ khóa public, private, protected hoặc các dấu tương ứng <kiểu>: kiểu dữ liệu cơ sở hoặc tên lớp <bản số>: các chỉ số tối thiểu và tối đa cho một mảng của kiểu vừa nói ở trên <trị khởi tạo>: phải có kiểu tương ứng với kiểu nói trên. III.2.4.1 Thuộc tính của lớp: Thông thường, một thuộc tính sẽ có các trị khác nhau ở các đối tượng khác nhau của lớp đó. Tuy nhiên, tồn tại những thuộc tính có trị duy nhấ t cho tất cả các đối tượng của lớp đó. Các đối tượng truy xuất được thuộc tính đó, nhưng không được sở hữu một bản sao của nó. Đó chính là thuộc tính tĩnh mà trong Java và C++ dùng từ khóa static đứng trước tên của nó. Trong UML, thuộc tính của lớp được gạch dưới. Ví dụ: giá trị PI=3.14 của lớp Math trong Java luôn không đổi đối với bất kỳ đối tượng nào của lớp Math. III.2.4.2 Thuộ c tính do suy diễn (derived attribute): Thuộc tính do suy diễn là thuộc tính có được do sự suy diễn, tính toán từ các thuộc tính khác. Nó được sử dụng như một thuộc tính thực thụ, nhưng được tính toán qua một phương thức. Thuộc tính do suy diễn được đánh dấu bởi dấu “/’ (slash) đứng trước. Ví dụ: /tri_gia: integer; 4 III.2.5 Phương thức (method): Hành vi của một đối tượng được mô hình hóa bằng một tập các phương thức. Người ta phân biệt đặc tả (specification, header) của phương thức với cài đặt (implementation) của nó. Tương ứng với mỗi đặc tả, có thể có nhiều cài đặt, nhưng với mỗi cài đặt chỉ tương ứng với một đặc tả duy nhất. Đặc tả còn được gọi là “operation”, còn cài đặt cụ thể đượ c gọi là “method”. III.3 GIAO DIỆN (INTERFACE): Giao diện cũng giống như lớp, nhưng không có đặc tả cho một cấu trúc bên trong, cũng như các giải thuật thực hiện cho các phương thức. Giao diện có thể mô tả chính xác điều kiện và kết quả việc kích họat nó. Ngược với lớp, giao diện không có thể hiện. Để được sử dụng, nó thường phải được thực hiện bởi một lớp. Một giao diện có th ể được chuyên biệt hóa hoặc tổng quát hóa bởi một giao diện khác. Cách biểu diễn giao diện và mối liên hệ với lớp: III.4 QUAN HỆ GIỮA CÁC LỚP: III.4.1 Liên kết (association): Một liên kết biểu diễn mối liên hệ ngữ nghĩa bền vững giữa 2 lớp. Ký hiệu: Các thành phần đầy đủ của một liên kết gồm có: A B TenLop TenLop TenGiaoDien tên liên kết bản số bản số “interface” TenGiaoDien vai trò vai trò Mũi tên để chỉ ý nghĩa chính xác của tên liên kết từ lớp bên trái sang lớp bên phải. “Vai trò” phía một lớp dùng để chỉ vai trò của lớp đó trong liên kết đối với lớp kia. Vai trò, mũi tên có thể được bỏ qua. 5 Nếu muốn biểu diễn sự thông thương từ một lớp sang lớp khác bị cấm ta dùng dấu tréo ở phía lớp đó trên đường nối. Ví dụ: Trong ví dụ này, sự thông thương chỉ có chiều duy nhất từ lớp “Hình đa giác” sang lớp “Điểm”. III.4.2 Tính bội (multiplicity) : Ở 2 đầu mối liên kết, phải có chỉ số để biểu diễn tính bội của liên kết, chính xác hơn là bản số (cardinality) của mỗi lớp tham gia vào liên kết. Chú ý: bản số của một lớp ở đầu này của liên kết được ký hiệu ở lớp đầu kia của liên kết. Ví dụ: Ngữ nghĩa: 1 môn được dạy bởi ít nhất 1 giáo viên và nhiều nhất 4 giáo viên, trong khi 1 giáo viên chỉ dạy 1 môn duy nhất. III.4.3 Liên kết có ràng buộc (association with constraint): Việc thêm vào ràng buộc cho một hoặc nhiều liên kết mang lại nhiều thông tin hơn vì nó cho phép mô tả chính xác hơn tầm ảnh hưởng và chiều của lien kết. Các ràng buộc dược đặt trong dấu móc “{}” và có thể biểu diên bằng bất kỳ ngôn ngữ nào. Tuy nhiên, ngôn ngữ OCL ( Object Constraint Language) được ưa chuộng hơn. Ví dụ: III.4.4 Lớp-liên kết (association class) : Khi phân tích, ta thấy có những thuộc tính không thể đặt vào được trong lớp thuần túy nào, mà phụ thuộc đồng thời vào nhiều lớp nối nhau qua một liên kết. Vì trong phân tích hệ thống hướng đối tượng, chỉ có lớp mới có thể chứa được thuộc tính nên liên kết này trở thành một lớp, gọi là lớp-liên kết. Ví dụ: các lớp “Co_chuyen_mon”, “Co_ngoai_ngu” và “Xin_tuyen” trong sơ đồ sau: Môn GViên 1 1 4 Môn GViên 1 * dạy 1 * được định nghĩa bởi * 3 * Hình đa giác Điểm #đ ỉnh được định nghĩa bởi #đ ỉnh {ordered} * 3 * Điểm Hình đa giác 6 1 * co_CM 0 * - ma_CM - ten_CM + Chuyen_mon - ma_CM - ten_CM 1 * 0 * co_NN - ma_NN - ten_NN + Ngoai_ngu - ma_NN - ten_NN 1 0 * xin_tuyen 1 0 1 duoc_nhan + stt_VT - dien_giai + Vi_tri + stt_VT - dien_giai + stt - ho - ten - nam_sinh + xin_TD + hien_thi + duoc_nhan - duoc_danh_gia + Nguoi xin viec + stt - ho - ten - nam_sinh + xin_TD + hien_thi + duoc_nhan - duoc_danh_gia - danh_gia + Xin_tuyen - danh_gia - trinh_do + Co_chuyen_mon - trinh_do - trinh_do + Co_ngoai_ngu - trinh_do III.4.5 Liên kết do suy diễn: Liên kết do suy diễn là liên kết được đặt điều kiện hoặc được suy diễn từ ít nhất một liên kết khác. Mặc dù nó tạo ra sự dư thừa, nhưng thực tế lại có ích nếu phải sử dụng nhiều liên kết mới có được kết quả như mong muốn. Ký hiệu: có dấu slash (“/”) trước tên liên kết. Ví dụ 1: liên kết “có thẻ” trong sơ đồ về thẻ ATM dưới đây (dấu “/” được thay bởi từ khóa “derived” do phần mềm không cho phép ) 1 0 * << derived >> co the 0 * 1 co TK - ma KH - ho KH - ten KH - dia chi KH + Khach hang - ma KH - ho KH - ten KH - dia chi KH 0 * 1 cua TK - so TK - ngay tao - so du + Tai khoan - so TK - ngay tao - so du - ma the - ngay tao - so du + The ATM - ma the - ngay tao - so du Ví dụ 2: liên kết “mua” là liên kết suy diễn và cần thiết duy trì khi cần biết thường xuyên khách hàng mua hàng gì bằng mối liên kết trực tiếp thay vì phải qua 2 liên kết “mua món” và “gồm”. 7 0 * 1 * mua 0 * 1 mua mon - ma_KH - hoten_KH + Khach hang - ma_KH - hoten_KH 1 1 * gom - ma_hg + ten_hg + dvt + Hang - ma_hg + ten_hg + dvt + stt + don gia + Mon hang cu the + stt + don gia III.4.6 Liên kết có thẩm định (qualified association): Có đôi khi một lớp này có tác động đến lớp khác liên kết với nó, đòi hỏi liên kết phải có một sự thẩm định (qualification) để tránh mô hình hóa không chính xác. Sự thẩm định này biểu hiện bằng cách cho thêm: - một chỉ số vào liên kết - hoặc một lớp vào lớp ban đầu Ví dụ 1: một đối tựong của lớp Object được tham chiếu bởi một chỉ số duy nhất trong một đối tượng của lớp Vector. 1 Vector Object 1 indice: inte g e r Object Vector * 1 Ví dụ 2: Do ngân hàng có nhiều hoạt động khác không liên quan đến khách hàng trong ngữ cảnh đang xét, và ta muốn giới hạn mối quan hệ giữa khách hàng và ngân hàng chỉ là thông qua các tài khoản: ta thêm vào một lớp “Tài khỏan” trong lớp “Ngân hàng”: 0 2 * Khách hàng #Tài khỏan Ngân hàng III.4.7 Liên kết nhiều chiều: Trong UML, ít khi dùng liên kết nhiều chiều, mà thường giới hạn ở 2 chiều, đôi khi 3 chiều. Lý do là vì để xác định bản số của mỗi lớp khá khó khăn. Thường thì các liên kết nhiều chiều được chuyển sang dùng lớp-liên kết, hoặc nhiều liên kết 2 chiều. Ví dụ: Về thời khóa biểu dạy học, có nhiều cách mô hình hóa: Cách 1: Dùng liên kết nhiều chiều nối với tất cả các lớp liên quan: 8 0 * + Phong 0 * + Mon 0 * + Thoi gian 0 * + Giao vien 0 * + Lop day hoc Cách 2: Khuynh hướng hiện nay là phá liên kết nhiều chiều ra thành các liên kết ít chiều hơn. Trong ví dụ dưới đây, do có tồn tại phụ thuộc hàm: Phòng, Thời gian -> Môn, Giáo viên, Lớp Nên các liên kết 3 chiều thực sự có khóa chỉ gồm khóa của Phòng và khóa của Thời gian kết hợp lại: 0 * 0 * 0 * + Phong 0 * + Mon 0 * 0 * 0 * + Thoi gian 0 * + Giao vien 0 * + Lop day mon day boi day o Phòng Môn Giáo viên Lớp Thời gian Hoặc: 9 . TK - ma KH - ho KH - ten KH - dia chi KH + Khach hang - ma KH - ho KH - ten KH - dia chi KH 0 * 1 cua TK - so TK - ngay tao - so du + Tai khoan - so TK - ngay tao - so du - ma the - ngay tao -. stt_VT - dien_giai + stt - ho - ten - nam_sinh + xin_TD + hien_thi + duoc_nhan - duoc_danh_gia + Nguoi xin viec + stt - ho - ten - nam_sinh + xin_TD + hien_thi + duoc_nhan - duoc_danh_gia - danh_gia +. Hình đa giác 6 1 * co_CM 0 * - ma_CM - ten_CM + Chuyen_mon - ma_CM - ten_CM 1 * 0 * co_NN - ma_NN - ten_NN + Ngoai_ngu - ma_NN - ten_NN 1 0 * xin_tuyen 1 0 1 duoc_nhan + stt_VT - dien_giai +

Ngày đăng: 14/07/2014, 02:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN