intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Dwefershrdth Vrthrtj | Ngày: | Loại File: PDF | Số trang:6

113
lượt xem
18
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ngôn ngữ mô hình hóa thống nhất (tiếng Anh: Unified Modeling Language, viết tắt thành UML) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng.

Chủ đề:
Lưu

Nội dung Text: 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

  1. Gói1 Gói2 +Lớp1 +Lớp2 “import” +Lớp4 -a1 a2 +a3 #a4 +Lớp3 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: [/] : [‘[’] ’]’ [=] trong dó: : dùng các từ khóa public, private, protected hoặc các dấu tương ứng : kiểu dữ liệu cơ sở hoặc tên lớp : 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 : 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
  2. 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: “interface” TenGiaoDien TenLop TenGiaoDien TenLop 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: A B Các thành phần đầy đủ của một liên kết gồm có: bản số tên liên kết bản số 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
  3. 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ụ: dạy 1..* 1..* GViên Môn được định nghĩa bởi * 3..* Hình đa giác Điểm Trong ví dụ này, sự thông thương chỉ có chiều duy nhấtỉnừ lớp “Hình đa giác” #đ t h 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ụ: 1 1..4 Môn GViên 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ụ: được định nghĩa bởi * 3..* Hình đa giác Điểm #đỉnh {ordered} 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: 6
  4. + Chuyen_mon + Ngoai_ngu - ma_CM - ma_NN - ten_CM - ten_NN 1..* co_CM 1..* co_NN + Nguoi xin viec 0..* 0..* + stt + Co_chuyen_mon - ho - trinh_do - ten + Co_ngoai_ngu - nam_sinh - trinh_do + xin_TD + hien_thi 1 + duoc_nhan - duoc_danh_gia duoc_nhan 1 xin_tuyen 0..1 + Xin_tuyen - danh_gia + Vi_tri + stt_VT 0..* - dien_giai 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 ) + Khach hang - ma KH - ho KH - ten KH - dia chi KH 1 > 1 co the 0..* + The ATM - ma the - ngay tao co TK - so du 0..* cua TK 0..* 1 + Tai khoan - so TK - 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
  5. + Khach hang - ma_KH - hoten_KH 0..* mua 1 + Hang - ma_hg 1..* + ten_hg + dvt mua mon 1 0..* 1..* gom + 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 1 Vector Object indice: integer 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 * Ngân hàng Khách hàng #Tài khỏan 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
  6. + Phong 0..* + Thoi gian 0..* + Mon 0..* day hoc 0..* 0..* + Lop + Giao vien 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: + Giao vien 0..* 0..* + Thoi gian 0..* + Phong day boi 0..* 0..* 0..* 0..* day mon day o 0..* 0..* + Mon + Lop Phòng Thời gian Môn Giáo viên Lớp Hoặc: 9
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2