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 7 potx

6 315 1

Đ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 285,87 KB

Nội dung

Phòng Môn Giáo viên Lớp Thời gian Cách 3: Chuyển nút ở liên kết nhiều chiều thành lớp mới 1 * 1 - ma phong - nha hoc + Phong - ma phong - nha hoc 0 * 1 - ma lop - so nhom - si so + Lop - ma lop - so nhom - si so 1 1 * - ma mon - ten mon - so DVHT + Mon - ma mon - ten mon - so DVHT 1 1 * - ma GV - ho GV - ten GV + GV - ma GV - ho GV - ten GV 1 0 * - ngay - gio bat dau - gio ket thuc + Thoi gian - ngay - gio bat dau - gio ket thuc - stt + Phien - stt 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: 0 * 0 * - ma phong - nha hoc + Phong - ma phong - nha hoc - ngay - gio bat dau - gio ket thuc + Thoi gian - ngay - gio bat dau - gio ket thuc - stt - ten mon - ho GV - ten GV - ma lop + 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. 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ụ: Thư viện Kho sách 1 * * Bàn Mặt bàn Chân bàn 3 4 1 0 1 Mặt kính phủ 1 * Kệ sách 0 1 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ụ : cua + Chuyen bay + Hang HK 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 - nhiem vu + NV hanh chinh - nhiem vu 1 * 1 * day + Giao vien + Mon hoc 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 1 * 1 * ghi phieu 1 * 0 * ghi HD + ma hang + ten hang + DS phieu nhap + DS so thu tu phie u + Hang + ma hang + ten hang + DS phieu nhap + DS so thu tu phie u 1 * 1 << derived >> giu 0 * 1 lien quan + ma kho + ten kho + dia chi kho + so DT + ds hang chua () : Hang + ds hang cua phieu (AV) : Han g + Kho + ma kho + ten kho + dia chi kho + so DT + ds hang chua () : Hang + ds hang cua phieu (AV) : Han g 1 1 * lap + Thu kho 0 * 1 tao boi 0 * 1 * cho + so hoa don + ngay lap hoa don - so seri + la HD ban + tri gia HD + Hoa don + so hoa don + ngay lap hoa don - so seri + la HD ban + tri gia HD + so phieu + ngay lap + loai phieu + ds hang + Phieu N_X + so phieu + ngay lap + loai phieu + ds hang + NV ke toan + maNV Variable character(4) + ho NV Variable character(20) + ten NV Variable character(7) + dia chi Variable character(128 ) - nam sinh Integer(2) + ngay bat dau Date(8) + NV + maNV Variable character(4) + ho NV Variable character(20) + ten NV Variable character(7) + dia chi Variable character(128 ) - nam sinh Integer(2) + ngay bat dau Date(8) + so luong + don gia + Ghi phieu + so luong + don gia + so luong + don gia + Ghi hoa don + so luong + don gia 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 » 0 * 0 * 0 * 1 hoc o - ma lop - ten lop - si so - ban + Lop - ma lop - ten lop - si so - ban - ma mon - co thuc hanh + Mon - ma mon - co thuc hanh - so tiet + Hoc - so tiet 1 * 1 * trang bi + Phong - ma TB - ten TB - tri gia + Thiet bi - ma TB - 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 . * - ma phong - nha hoc + Phong - ma phong - nha hoc - ngay - gio bat dau - gio ket thuc + Thoi gian - ngay - gio bat dau - gio ket thuc - stt - ten mon - ho GV - ten GV - ma lop + Phien - stt -. 1 * 1 - ma phong - nha hoc + Phong - ma phong - nha hoc 0 * 1 - ma lop - so nhom - si so + Lop - ma lop - so nhom - si so 1 1 * - ma mon - ten mon - so DVHT + Mon - ma mon - ten mon - so DVHT 1 1. * 1 hoc o - ma lop - ten lop - si so - ban + Lop - ma lop - ten lop - si so - ban - ma mon - co thuc hanh + Mon - ma mon - co thuc hanh - so tiet + Hoc - so tiet 1 * 1 * trang bi + Phong - ma TB - ten

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

w