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 7
lượt xem 10
download
Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo mô hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những người sử dụng nó
Bình luận(0) Đăng nhập để gửi bình luận!
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 7
- Phòng Thời gian Môn Giáo viên Lớp Cách 3: Chuyển nút ở liên kết nhiều chiều thành lớp mới + Phong - ma phong - nha hoc + Thoi gian - ngay 1..* - gio bat dau + Lop - gio ket thuc - ma lop 0..* 1 - so nhom 1 - si so 0..* + Phien 1 - stt 1 1..* 1 + Mon - ma mon 1..* - ten mon + GV - so DVHT - ma GV - ho GV - ten GV Cách 4: Khi lớp, giáo viên và môn không quan trọng lớp trong ngữ cảnh đang xét thì chuyển chúng chúng từ lớp thành thuộc tính trong lớp liên kết: + Thoi gian + Phong - ngay - ma phong 0..* 0..* - gio bat dau - nha hoc - gio ket thuc + Phien - stt - ten mon - ho GV - ten GV - ma lop III.4.8 Quan hệ kết tập (aggregation relation) : Một kết tập là một trường hợp đặc biệt của liên kết không đối xứng biểu diễn một mối quan hệ « chứa đựng » về cấu trúc hoặc hành vi của một phần tử trong một tập hợp. Không như liên kết, quan hệ kết tập có tính truyền. 10
- Quan hệ kết tập cũng cho phép việc ủy thác về tác tử : một tác tử có thể được thực hiện trên một lớp kết tập, thực tế được thực hiện trên các lớp thành phần của nó. Chu kỳ sống của lớp kết tập là độc lập với các lớp thành phần của nó. Mặt khác, một thể hiện của lớp thành phần có thể xuất hiện trong nhiều thể hiện của lớp kết tập. Ký hiệu : có hình thoi rỗng trên liên kết về phía lớp biểu diễn tập hợp chứa đựng. 1 * * 1..* Thư viện Kho sách Kệ sách III.4.9 Quan hệ cấu thành (composition) : Quan hệ cấu thành còn được gọi là quan hệ kết tập phức hợp, là một quan hệ kết tập đặc biệt. Nó mô tả một sự chứa đựng về cấu trúc giữa các thể hiện. Lớp chứa sẽ chịu trách nhiệm tạo ra, sao chép và xóa các lớp thành phần của nó. Mặt khác, việc sao chép hoặc xóa đi lớp chứa sẽ kéo theo sao chép hoặc xóa các lớp thành phần của nó. Một thể hiện của lớp thành phần chỉ thuộc về duy nhất một thể hiện của lớp chứa nó. Ký hiệu: hình thoi đặc trên liên kết ở phía lớp chứa. Ví dụ: 1 Bàn Mặt bàn 0..1 3..4 0..1 Chân bàn Mặt kính phủ III.4.10 Quan hệ phụ thuộc (dependancy): Khái niệm tương tự như trong phân tích cổ điển. Ký hiệu : đường gạch đứt nét có mũi tên từ lớp chịu phụ thuộc. Ví dụ : + Chuyen bay + Hang HK cua III.4.11 Quan hệ thừa kế : Khái niệm tương tự như trong phân tích cổ điển, cũng có thừa kế đơn và thừa kế bội. Ký hiệu : đường gạch có mũi tên rỗng hướng về lớp cha. Ví dụ : 11
- + Nhan vien + Mon hoc + NV hanh chinh + Giao vien 1..* 1..* - nhiem vu day III.5 RÀNG BUỘC : Các ràng buộc có thể biểu diễn bằng ngôn ngữ tự nhiên, một ngôn ngữ lập trình, biểu thức toán học … hoặc ngôn ngữ OCL đi kèm theo UML. Cụ thể có các dạng ràng buộc sau được biểu diễn bằng OCL: - Các qui tắc thừa kế: {complete}, {incomplete}, {overlaps}, {distinct} … - Hạn chế tầm vực của một liên kết: {subset}, {xor} … - Cách thức phát triển các đối tượng: {frozen}, {addOnly} … - Tổ chức các đối tượng:{ordered}, {frozen}, … III.6 XÂY DỰNG MỘT SƠ ĐỒ LỚP : III.6.1 Các quan điểm mô hình hóa : - Top-down : Phân giải dần từ tổng quát xuống chi tiết - Bottom-up : Sau khi có sơ đồ chi tiết ở tất cả các khóa cạnh, mới nhóm lại dần thành các phân hệ riêng, dựa trên mối tương quan chặt chẽ giữa các lớp. III.6.2 Các bước xây dựng : III.6.2.1 Tìm các lớp của lĩnh vực chức năng : - Tìm các đối tượng và lớp trong thế giới thực o Lớp trong thế giới thực o Lớp con trong thế giới thực - Chuyển đổi từ các đối tượng trong thế giới thực sang đối tượng dữ liệu o Lớp trong thế giới dữ liệu o Quản trị sự phức tạp o Ánh xạ cho các lớp - Chọn lựa giữa lớp và thuộc tính - Lớp dữ liệu bổ sung - Tìm các cấu trúc kết tập và lớp con III.6 2.2 Tìm các mối liên kết giữa các lớp : III.6.2.3 Tìm các thuộc tính của mỗi lớp : III.6.2.4 Tổ chức lại và đơn giản hóa sơ đồ : Bằng cách sử dụng sự tổng quát hóa. 12
- III.6.2.5 Thử các đường truy xuất đến các lớp : Ví dụ: Quản lý hàng tồn + NV + maNV Variable character(4) + Thu kho Variable character(20) + ho NV Variable character(7) + ten NV + dia chi Variable character(128) - nam sinh Integer(2) 1 + ngay bat dau Date(8) 1 > giu 1..* + Kho + ma kho + ten kho + dia chi kho + so DT lap + ds hang chua () : Hang + Hang + ds hang cua phieu (AV) : Hang + ma hang 1 + ten hang + DS phieu nhap + DS so thu tu phieu 1..* ghi phieu lien quan 1..* 0..* 1..* 1..* + Ghi phieu + Phieu N_X + Ghi hoa don + so luong + so phieu ghiso luong + HD + don gia + ngay lap + don gia + loai phieu + ds hang 0..* 0..* + NV ke toan cho 1..* + Hoa don 1 0..* + so hoa don tao boi + ngay lap hoa don - so seri + la HD ban + tri gia HD III.6 2.6 Tinh lọc hóa sơ đồ: Khi so khớp lại với người sử dụng, hoặc với sơ đồ hoạt vụ, ta có thể : - Bớt đi liên kết giữa các lớp, nếu đó là liên kết suy diễn, hoặc không tương ứng với nhu cầu trong thế giới thực, ... - Chuyển lớp sang thuộc tính nếu nó không đóng vai trò thực sự quan trọng trong thế giới thực, hoặc không cần có dạng bảng mã. v.v… - Ngược lại, cũng có thể thêm liên kết. - Chuyển một thuộc tính sang thành một lớp, chẳng hạn khi muốn đưa vào bảng mã tương ứng để hỗ trợ nhập liệu, hạn chế dữ liệu sai. III.6.2.7 Thiết lập các phương thức cho mỗi lớp : Các phương thức sẽ được bổ sung đầy đủ và chính xác sau khi so khớp với các sơ đồ khác như sơ đồ họat vụ, sơ đồ tuần tự hoặc sơ đồ cộng tác, sơ đồ hoạt động… Ngược lại, sơ đồ hoạt vụ cũng sẽ được bổ sung sau khi lập các phương thức. 13
- Phương thức được thiết lập có thể bao gồm các phương thức lớp hoặc không. Ví dụ : có sơ đồ lớp như dưới đây và ta muốn thêm phương thức cho lớp « Lớp » + Lop + Mon - ma lop - ma mon - ten lop 0..* 0..* - co thuc hanh - si so - ban + Hoc - so tiet 0..* hoc o 1 + Thiet bi + Phong 1..* - ma TB 1..* trang bi - ten TB - tri gia Có các loại phương thức sau (phương thức lớp được ký hiệu là « * »): a. Hiển thị đối tượng đang xét: Ví dụ : hienLop() ; b. Hiển thị tất cả các đối tượng của lớp đang xét (*): Ví dụ : hienDsLop() ; c. Hiển thị tất cả các đối tượng của lớp đang xét, có sắp theo nhóm (*): Ví dụ : hienDsLopTheoSiso(); hienDsLopTheoBan(); hienDsLopTheoMon() ; hienDsLopTheoThietbi() ; d. Tìm kiếm đối tượng tương ứng khóa đối tượng (hoặc OID) của chính lớp đang xét (*) : Ví dụ : dsLop (ma_lop : string) : Lop ; e. Tìm kiếm tất cả các đối tượng hoặc tất cả các khóa đối tượng (hoặc OID) của chính lớp đang xét (*) : o Không tham sô o Có tham số, dựa trên khóa của Class_1 : chỉ trả về tối đa 1 đối tượng o Có tham số, dựa trên các thuộc tính của Class_1 Lưu ý : Khi tham số tương ứng với khóa của lớp, kết quả trả về chỉ 1 đối tượng. Ngược lại, trả về một mảng nhiều đối tượng, hoặc mảng nhiều khóa đối tượng. 14
- Ví dụ : Ta có các phương thức sau : dsLop() : Lop[ ] ; dsLop (ma_lop : string) : Lop ; dsLop (b : char) : Lop ; // tìm theo ban A, B, C, … dsLop(si_so : integer) : Lop[ ] ; dsLop(si_so_min, si_so_max : integer) : Lop[ ] ; dsMaLop() : string[ ] ; dsMaLop (b : char) : string; // tìm theo ban của lớp dsMaLop(si_so : integer) : string[ ] ; dsMaLop(si_so_min, si_so_max : integer) : string[ ] ; f. Tìm kiếm các đối tượng/ OID của ít nhất một lớp khác C có liên kết với đối tượng đang xét c1 của Class_1: - Khởi đầu từ tìm kiếm qua 1 liên kết : o Không tham số o Có tham số, dựa trên các thuộc tính của C o Có tham số, dựa trên các thuộc tính của lớp liên kết (nếu có) Lưu ý : Kết quả trở về của phương thức sẽ là mảng (array) hay chỉ là một đối tượng hoặc một dữ liệu có kiểu dữ liệu sơ cấp, tùy thuộc vào bản số của Class_1 tham gia vào liên kết. Ví dụ : dsMon() : Mon[] ; dsMon(co_TH : boolean) : Mon[] ; dsMon(so_tiet : integer) : Mon[] ; dsMon(so_tiet_min, so_tiet_max : integer) : Mon[] ; dsMon(co_TH : boolean, so_tiet : integer) : Mon[] ; dsMon(co_TH : boolean, so_tiet_min, so_tiet_max : integer) : Mon[] ; phong(): Phong; dsMaMon() : string[] ; dsMon(co_TH : boolean) : string[] ; dsMaMon(so_tiet : integer) : string[] ; dsMaMon(so_tiet_min, so_tiet_max : integer) : string[] ; dsMaMon(co_TH : boolean, so_tiet : integer) : string[] ; dsMaMon(co_TH : boolean, so_tiet_min, so_tiet_max : integer) : string[] ; maPhong(): string; - Sau đó, có thể mở rộng tìm kiếm các đối tượng có liên kết với đối tượng đang xét qua n>1 liên kết. Ví dụ : dsThietbi(): Thietbi[]; // danh sách thiết bị trong phòng của lớp học đang xét dsThietbi(tri_gia: longint): Thietbi[]; dsThietbi(tri_gia_min, tri_gia_max: longint): Thietbi[]; g. Thống kê dùng hàm kết tập: Dùng các hàm kết tập (sum, count, max, min, avg) để tính ra kết quả. 15
CÓ THỂ BẠN MUỐN DOWNLOAD
-
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 1
6 p | 163 | 25
-
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
6 p | 116 | 19
-
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 2
6 p | 70 | 12
-
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 4
6 p | 79 | 10
-
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 3
6 p | 100 | 8
-
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 9
6 p | 85 | 8
-
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 5
6 p | 83 | 7
-
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 8
6 p | 62 | 7
-
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 10
6 p | 66 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn