Bài giảng Ngôn ngữ mô hình hóa - Chương 3: Sơ đồ lớp - Trương Quốc Định
Tóm tắt Bài giảng Ngôn ngữ mô hình hóa - Chương 3: Sơ đồ lớp - Trương Quốc Định: ...c manager quản lý việc tạo lập và hủy bỏ các đối tượng. Ví dụ, toán tử khởi tạo và hủy.Thao tác xâm nhập (access). Dùng để thâm nhập các thuộc tính có tính chất private hay protected.Thao tác trợ giúp (helper). Thao tác Helper là các thao tác mà chính lớp chứa nó cần đến để hực hiện trách nhiệm, như...y («instantiate») signifies that one or more methods belonging to instances of the source class create instances of the target class. A method belonging to an instance of the HTMLPageHandler class creates an instance of the LoginPage class. 23Các thành phần trong sơ đồ lớp A send dependency («send»)...dụng của quan hệ kết hợp.Sự thẩm định thể hiện bằng cáchThêm chỉ số vào quan hệ,Một lớp khác vào lớp ban đầu31Quan hệ do suy diếnĐược đặt điều kiện hoặc được suy diễn từ liên kết khácDư thừa nhưng cải thiện tốc độ truy xuất dữ liệuKý hiệu: có dấu slash (“/”) trước tên liên kết3233Quan hệ nhiều chiều...
Chương 3 : Sơ đồ lớp (class )GV : TS. Trương Quốc ĐịnhNội dungKhái niệm sơ đồ lớpCác thành phần trong sơ đồ lớp2Khái niệm sơ đồ lớpĐược xem là một trong số các mô hình quan trọng của pp phân tích hướng đối tượngMô tả cấu trúc tĩnh của hệ thốngMô tả thành phần dữ liệu của hệ thống3Các thành phần trong sơ đồ lớpLớpThuộc tínhPhương thứcQuan hệAssociationsGeneralizationDependencyRealizationRàng buộc, chú thích4LớpLà khái niệm cho phép mô tả một tập hợp các đối tượng có cùng các đặc tính: cùng một ngữ nghĩa, có chung các thuộc tính, các phương thức và các quan hệ.Một đối tượng là một thể hiện của lớp.5LớpStereotypeLớp biên (boundary class). Lớp biên là lớp nằm trên biên hệ thống và môi trường. Chúng có thể là biểu mẫu (form), báo cáo (report), giao diện với phần cứng như máy in, máy quét và là giao diện với các hệ thống khác.Lớp thực thể (entity class). Lớp thực thể lưu trữ thông tin mà nó sẽ được ghi vào bộ nhớ ngoài. Thí dụ lớp Mon_hoc là lớp thực thể.Lớp điều khiển (control class). Lớp điều khiển có trách nhiệm điều phối hoạt động của các lớp khác. 6LớpLớp biênGiao diện người dùngTập trung vào thông tin được thể hiện, tương tác như thế nàoKhông tập trung vào các hiệu ứng hình ảnhVí dụ - Form lập hóa đơn bán hàngGiao diện hệ thốngTập trung vào các chuẩn giao tiếpKhông tập trung vào làm thế nào cài đặt các chuẩn giao tiếp đó7LớpLớp điều khiểnĐiều khiển, phối hợp các hoạt động của hệ thốngPhân phối công việc cho các lớpĐiều khiển lớp biên và lớp thực thể 8Lớp Abstract classLà lớp không thể khởi tạo trực tiếp đối tượng từ nó.Lớp trừu tượng được sử dụng với mục tiêu ạo các lớp kế thừa từ nó.Các lớp kế thừa có thể là lớp trừu tượng hoặc không.9LớpInterfaceLà lớp không có thuộc tính và các phương thức là các phương thức ảo.Các phương thức không được cài đặt.Các phương thức sẽ được cài đặt trong các lớp kế thừa.10Các thành phần của LớpTên lớp : Phải có nghĩa, bắt đầu bằng chữ hoaNếu được đóng gói, cần đặc tả các gói bao chứa nó theo thứ tự từ lớn đến nhỏ, phân cách nhau bởi dấu ‘:’ Thuộc tínhĐặc tả bởi tên, kiểu dữ liệu, giá trị khởi tạoTên thuộc tính phải duy nhất trong lớp đóCác kiểu dữ liệu chuẩn của UML 2.0 : String, Integer, Long, BooleanPhương thứcĐặc tả kiểu trả về (nếu có)Đặc tả danh sách các đối số và kiểu tương ứng1112Các thành phần của lớpThuộc tínhPhạm viPublic. Các thuộc tính có tính chất này sẽ có thể truy xuất từ mọi lớp khác. Bất kỳ lớp nào trong hệ thống đều có thể quan sát và sửa đổi giá trị của thuộc tính.Private. Thuộc tính được gán tính chất này thì sẽ không nhìn thấy được từ lớp khác. Protected. Thuộc tính có tính chất này được chính lớp của nó và các lớp phân cấp dưới nó (lớp kế thừa) có thể xâm nhập. Package Implemetation. Thuộc tính được gán tính chất này cho thấy nó là public, nhưng chỉ các lớp trong gói mới xâm nhập được. 13Các thành phần trong sơ đồ lớpLớpThuộc tínhThuộc tính tĩnh (static) : chỉ có một bản sao của thuộc tính dùng chung cho mọi đối tượng của lớpThuộc tính suy diễn (Derived) : giá trị được tính từ 1 hay nhiều thuộc tính khác14Các thành phần của lớpPhương thứcOperation Name (arg1: arg1 data type, arg2: arg2 data type): return type.Các loại phương thức trên lớpThao tác cài đặt (implemetor). Thao tác này cài đặt một vài chức năng tác nghiệp. Chúng được tìm ra từ các biểu đồ tương tác. Biểu đồ tương tác tập trung vào các chức năng tác nghiệp, hầu như mỗi thông điệp trên biểu đồ được ánh xạ thành thao tác cài đặt.Thao tác quản lý (manager). Thao tác manager quản lý việc tạo lập và hủy bỏ các đối tượng. Ví dụ, toán tử khởi tạo và hủy.Thao tác xâm nhập (access). Dùng để thâm nhập các thuộc tính có tính chất private hay protected.Thao tác trợ giúp (helper). Thao tác Helper là các thao tác mà chính lớp chứa nó cần đến để hực hiện trách nhiệm, nhưng các lớp khác không cần biết gì về chúng15Các thành phần trong sơ đồ lớpQuan hệQuan hệ biểu diễn sự kết nối ngữ nghĩa giữa các lớp, nó cho phép một lớp biết về các thuộc tính, thao tác và quan hệ của lớp khác có quan hệ với nó.Các quan hệ được thể hiện trên sơ đồ lớp. Giữa các lớp có bốn kiểu quan hệ chính, đó là: Kết hợp (association), Phụ thuộc (dependencies), Kết tập (aggregation) và Khái quát hóa (generalization).16Quan hệ kết hợpQuan hệ kết hợpLà kết hợp ngữ nghĩa giữa hai lớpCó thể định nghĩa tự thân (các đối tượng của cùng một lớp có kết hợp với nhau).Kết hợp 1 chiều hoặc 2 chiều2 lớp có quan hệ kết hợp với nhau nghĩa là các đối tượng thuộc hai lớp này có thể trao đổi thông điệp với nhau.17// Generated by StarUML(tm) Java Add-In//// @ Project : Untitled// @ File Name : A.java// @ Date : 8/23/2011// @ Author : //public class A { public Integer AttributeA; public B A_Quan_He_B;}// Generated by StarUML(tm) Java Add-In//// @ Project : Untitled// @ File Name : B.java// @ Date : 8/23/2011// @ Author : //public class B { public String AttributeB; public A B_Quan_He_A;}18StaffMemberStudent1..**instructsinstructorAssociation nameRole nameMultiplicityNavigable (uni-directional) associationCoursespre - requisites0..3Reflexive associationRole*19Quan hệ phụ thuộcQuan hệ phụ thuộc mô tả sự thay đổi một lớp nào đó (the supplier) sẽ làm thay đổi lớp còn lại (the client). Quan hệ phụ thuộc thường không có tên.Ví dụ : Trong ứng dụng trang bán hàng trực tuyến, lớp “Giỏ hàng” sẽ phụ thuộc lớp “Sản phẩm” vì lớp “Giỏ hàng” sẽ sử dụng lớp “Sản phẩm” như là một tham số của phương thức thêm hàng vào giỏ.20Phụ thuộc sử dụngLớp “client” yêu cầu phải tồn tại ít nhất một thể hiện của lớp “supplier” để có thể có được sự cài đặt đúng. 21Phụ thuộc gọi, phụ thuộc khởi tạo Phụ thuộc gọi mô tả lớp nguồn sẽ gọi một phương thức của lớp đích.Phụ thuộc khởi tạo mô tả rằng lớp nguồn sẽ khởi tạo các đối tượng thuộc vào lớp đích. 22Các thành phần trong sơ đồ lớp An instantiation dependency («instantiate») signifies that one or more methods belonging to instances of the source class create instances of the target class. A method belonging to an instance of the HTMLPageHandler class creates an instance of the LoginPage class. 23Các thành phần trong sơ đồ lớp A send dependency («send») signifies that instances of the source class send signals to instances of the target class.An abstraction dependency is one in which the client is at one level of abstraction and the supplier is at a different level.A realization dependency («realize») signifies that the supplier serves as the implementation of the client. 24Quan hệ kết tậpKết tập (aggregation) là hình thức mạnh của kết hợp. Quan hệ kết hợp giữa hai lớp có nghĩa là chúng có cùng mức, không lớp nào quan trọng hơn. Kết tập thể hiện mối quan hệ giữa toàn thể và bộ phận (whole-part), trong đó một lớp biểu diễn cái lớn hơn (tổng thể) còn lớp kia biểu diễn cái nhỏ hơn (bộ phận)Các lớp tham gia vào quan hệ kết tập được khởi tạo và hủy không đồng thời25Nhận biết quan hệ kết tậpTrả lời câu hỏi “A có phải là thành phần của B?”Tồn tại phương thức có thể xuất hiện ở cả hai lớp?Có thuộc tính nào đó giá trị của nó có thể lan tỏa sang tát cả các đối tượng của lớp thành phần?26Quan hệ hợp thànhĐây là hình thức mạnh hơn của quan hệ kết tậpCả hai lớp được tạo lập và hủy cùng thời điểm27Quan hệ khái quát hóaKhái quát hóa gộp các thành phần chung của 1 tập các lớp để hình thành 1 lớp tổng quát hơn và nó được gọi là lớp cha.Chuyên biệt hóa cho phép thu thập các đặt trưng cụ thể của tập đối tượng chưa được lớp nào nhận ra. Các đặc tính mới được biểu diễn bởi các lớp mới, nó là các lớp con của lớp đang tồn tại.28Tính bộiTính bội của quan hệ cho biết bao nhiêu hiện thực của lớp có quan hệ với một hiện thực của lớp khác vào một thời điểm. Khái niệm “bao nhiêu” được gọi là tính bội của một “vai trò” của kết hợp.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 quan hệ.29Vai trò của lớpTên vai trò có thể được sử dụng trong các quan hệ kết hợp và tổ hợp thay cho tên quan hệ.Mỗi quan hệ nhị phân có hai vai trò, mỗi vai trò ở đầu cuối trên quan hệ trên sơ đồ. Vai trò mô tả lớp này “nhìn” lớp khác thông qua quan hệ kết hợp như thế nào.30Quan hệ có thẩm địnhĐược sử dụng để hạn chế phạm vi sử dụng của quan hệ kết hợp.Sự thẩm định thể hiện bằng cáchThêm chỉ số vào quan hệ,Một lớp khác vào lớp ban đầu31Quan hệ do suy diếnĐược đặt điều kiện hoặc được suy diễn từ liên kết khácDư thừa nhưng cải thiện tốc độ truy xuất dữ liệuKý hiệu: có dấu slash (“/”) trước tên liên kết3233Quan hệ nhiều chiềuGiống khái niệm của mối kết hợp trong mô hình cổ điểnTrong UML, khuyến khích chuyển sang các quan hệ 2 chiều (hoặc 3 chiều) hoặc sử dụng lớp liên kết34Quan hệ nhiều chiềuChuyển thành lớp35Quan hệ ORQuan hệ ràng buộc giữa 2 hay nhiều kết hợpCho biết các đối tượng của lớp chỉ có thể tham gia vào 1 liên kết tại 1 thời điểmKý hiệu bằng đường gạch nối với đặc tả {or}36Ràng buộc và ghi chúRàng buộc là điều kiện trên thuộc tính, phương thức, quan hệ.Ghi chú là giải thích rõ hơn một vấn đề gì đó (thường kết hợp với lớp)id: long { value > 0 }CustomerOrder*1{ total < $50 }may be canceledConstraintNote37Ví dụXây dựng sơ đồ lớp cho phần mềm quản lý “Thư viện điện tử”38Một ví dụ39Một ví dụ40Mô tả các phương thứcSTTLoại PTTên phương thứcPhương thức lớpTên tham sốKiểu tham sốDiễn giải tham sốKiểu trả vềDiễn giải phương thức1aHienKQCN Hiện kết quả cả năm đang xét2bHienDSKQCNx Hiện tất cả danh sách kết quả cả năm3 HienDSKQCNTheoMax Hiện danh sách kết quả cả năm và sắp xếp theo mã kết quả4 TimKQCNxMaVariable characterMã kết quả cả nămKetQuaCaNamTìm kết quả cả năm có mã kết quả là Ma5 DSKQCNx KetQuaCaNam[ ]Tìm tất cả kết quả cả năm6 DSMaKQCNx Variable character[ ]Tìm tất cả danh sách mã kết quả cả năm7 DSHocSinh HocSinh[ ]Tìm tất cả danh sách học sinh có kết quả cả năm đang xét8 DSHocSinh NSintNăm sinhHocSinh[ ]Tìm tất cả danh sách học sinh có năm sinh là NSPhương thức lớp: Thao tác trên toàn bộ các đối tượng thuộc lớp đó41Ví dụ Xác định các phương thức của lớp42Ví dụ Xác định các phương thức của lớpHiển thị đối tượng đang xétHiển thị tất cả các đối tượng của lớp đang xét (*)Hiển thị tất cả các đối tượng của lớp đang xét, có sắp theo nhóm (*)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 (*)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étThống kê dùng hàm kết tập43UML packageGói được sử dụng cho mục tiêu gom nhóm các lớp.Thường được sử dụng để miêu tả kiến trúc luạn lý của một hệ thống.Commonly used for specifying the logical architecture of the system.Không nhất thiết phải tương ứng với kiến trúc các phân hệ con của một hệ thống.Name4445a.Ab.b.Db.b.Eb.a.Fb.a.Ga.Ca.Bb.ab.babPhân loại các lớp ứng dụng46Lớp trong & lớp ngoàiLớp ngoài là lớp bên ngoài hệ thống và thực hiện tương tác với hệ thống.Lớp biên là lớp thuộc về hệ thống và tương tác với lớp ngoài hệ thống.474849Quy tắc sinh mã50Quy tắc sinh mã51Quy tắc sinh mã 52Quy tắc sinh mã53Quy tắc sinh mã54Quy tắc sinh mã55Quy tắc sinh mã56Quy tắc sinh mã57Trường hợp đặc biệt58Chuyển sơ đồ lớp sang ERDChuyển lớp thành thực thể59Chuyển sơ đồ lớp sang ERD60Chuyển sơ đồ lớp sang ERD61Chuyển sơ đồ lớp sang ERD62Chuyển sơ đồ lớp sang ERD63Ví dụ Phân tíchXây dựng sơ đồ lớp cho phân hệ bán hàng của một siêu thịSiêu thị có bán nhiều sản phẩm hàng hóa, mỗi sản phẩm thuộc một loại hàng khác nhau, mỗi loại hàng có một % VAT tương ứng.Đơn giá bán của sản phẩm được quản lý theo thời điểm, lịch sử về giá sản phẩm cũng cần phải được lưu lại.Khi lập hóa đơn, cần biết mã số của nhân viên lập hóa đơn, mã số khách hàng, ngày lập hóa đơn cùng danh sách các sản phẩm mua tương ứng.64
File đính kèm:
- bai_giang_ngon_ngu_mo_hinh_hoa_chuong_3_so_do_lop_truong_quo.ppt