Tự học lập trình assembly - Chương 3: Sơ đồ lớp (class)
Xâ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 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1165 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tự học lập trình assembly - Chương 3: Sơ đồ lớp (class), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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ớp*Khá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ống*Các thành phần trong sơ đồ lớpLớpThuộc tínhPhương thứcQuan hệAssociationsGeneralizationDependencyRealizationRàng buộc, chú thích*Lớ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.*Lớ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. *Lớ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 đó*Lớ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ể *Lớ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.*Lớ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.*Cá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 ứng**Cá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. *Cá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ác*Cá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úng*Cá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).*Quan 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.*// 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;}*StaffMemberStudent1..**instructsinstructorAssociation nameRole nameMultiplicityNavigable (uni-directional) associationCoursespre - requisites0..3Reflexive associationRole**Quan 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ỏ.*Phụ 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. *Phụ 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. *Cá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. *Cá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. *Quan 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ời*Nhậ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?*Quan 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ểm*Quan 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.*Tí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ệ.*Vai 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.*Quan 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 đầu*Quan 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ết**Quan 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ết*Quan hệ nhiều chiềuChuyển thành lớp*Quan 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}*Rà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 canceledConstraintNote*Ví dụXây dựng sơ đồ lớp cho phần mềm quản lý “Thư viện điện tử”*Một ví dụ*Một ví dụ*Mô 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 đó*Ví dụ Xác định các phương thức của lớp*Ví 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ập*UML 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.Name**a.Ab.b.Db.b.Eb.a.Fb.a.Ga.Ca.Bb.ab.babPhân loại các lớp ứng dụng*Lớ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.***Quy tắc sinh mã*Quy tắc sinh mã*Quy tắc sinh mã *Quy tắc sinh mã*Quy tắc sinh mã*Quy tắc sinh mã*Quy tắc sinh mã*Quy tắc sinh mã*Trường hợp đặc biệt*Chuyển sơ đồ lớp sang ERDChuyển lớp thành thực thể*Chuyển sơ đồ lớp sang ERD*Chuyển sơ đồ lớp sang ERD*Chuyển sơ đồ lớp sang ERD*Chuyển sơ đồ lớp sang ERD*Ví 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.*
Các file đính kèm theo tài liệu này:
- uml_chuong3_4096.ppt