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

Chương 6: Nguyên lý thiết kế, Phương pháp xác định lớp

Chia sẻ: No Comment | Ngày: | Loại File: PDF | Số trang:22

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

Stamp coupling: liên kết giữa hai thành phần là một phần của cấu trúc hoặc toàn bộ cấu trúc

Chủ đề:
Lưu

Nội dung Text: Chương 6: Nguyên lý thiết kế, Phương pháp xác định lớp

  1. Nội dung 6.1 Các tiên đề trong thiết kế 6.2 Hướng tiếp cận trong xác định lớp Chương 6 6.3 Xác định mối quan hệ giữa các lớp 6.4 Xác định thuộc tính và hành vi của lớp Nguyên lý thiết kế, Phương pháp xác định lớp UML/NN 1 UML/NN 2 6.1. Các tiên đề trong Thiết kế Coupling (Liên kết) Tiên đề 1: tiên đề độc lập Duy trì tính độc lập của các thành phần thiết kế A D B Coupling mạnh Coupling yếu C Tính độc lập của các thành Tinh độc lập của các thành phần cao phần không cao UML/NN 3 UML/NN 4 1
  2. Hai loại coupling Data coupling Liên kết giữa các thành phần là dữ liệu Hai loại coupling: tương tác và kế thừa nguyên tố hoặc phức hợp Coupling tương tác: chia thành 5 loại Ví dụ: Data coupling Stamp coupling Control coupling Class_A Class_B Common coupling + Operation_A () : Integer + Operation_B (Integer Para_1) : Integer Content coupling Coupling kế thừa integer …. Operation_A() y = cB.Operation_B(x); { … int x,y; } Class_B cB; UML/NN 5 UML/NN 6 Stamp coupling Control coupling Stamp coupling: liên kết giữa hai thành Control coupling: một thành phần gởi phần là một phần của cấu trúc hoặc toàn các yếu tố điều khiển tới một thành phần bộ cấu trúc khác thì hai thành phần này có control Ví dụ: coupling. integer Operation_A() { int x,y; + sub(x, dk) + A() Class_B cB; Class_C c; { { =2 =1 …. dk int x = 1; y = cB.Operation_B(c); sub(x, dk) … … } } } UML/NN 7 UML/NN 8 2
  3. Mức độ liên kết Common và Content coupling Common couping: hai thành phần cùng Xếp hạng phụ thuộc tham chiếu đến một cấu trúc toàn cục Tên coupling (hoặc biến toàn cục) thì có liên hệ gọi là Data coupling Rất thấp Common coupling. Stamp coupling Thấp Control coupling Trung bình Content coupling: nếu một thành phần Common coupling Cao tham khảo trực tiếp đến nội dung scủa Content coupling Rất cao một thành phần khác thì được gọi là content coupling. UML/NN 9 UML/NN 10 Coupling kế thừa Tiên đề 2: tiên đề thông tin Giảm tối đa thông tin các đối tượng thiết kế Là coupling giữa lớp tổng quát và lớp Tách thành nhiều đối tượng đơn giản hơn chuyên biệt trong cấu trúc phân cấp: Liên Tách thành cấu trúc phân cấp kế thừa kết giữa lớp tổng quát và lớp chuyên biệt càng chặt càng tốt: -> không kế thừa những thuộc tính không liên quan hoặc không cần thiết Nếu một lớp chuyên biệt “chồng” lên hầu hết các method hoặc không sử dụng nó từ lớp tổng quát coupling kế thừa yếu thay đổi tiếp cận tổng quát hoá và chuyên biệt hoá Đối tượng phức tạp Nhiều đối tượng đơn giản UML/NN 11 UML/NN 12 3
  4. Nội dung Ví dụ 5.1 Các tiên đề trong thiết kế 5.2 Hướng tiếp cận trong xác định lớp 5.3 Xác định mối quan hệ giữa các lớp Hoá Đơn Hoá Đơn 5.4 Xác định thuộc tính và hành vi của lớp LậpHoáĐơn() LậpHoáĐơn() InHoáĐơn() Máy In InHoáĐơn() UML/NN 13 UML/NN 14 6.2 Các cách tiếp cận xác định lớp 1. Tiếp cận theo thực thể nghiệp vụ Tiếp cậ n theo thực thể nghiệp vụ Đối với các thực thể sự vật: kiểm chứng 1. xem có nhu cầu quản lý thông tin về thực Tiếp cậ n theo cụm danh từ 2. thể này trong hệ thống không? Tiếp cậ n theo phân loại 3. Nếu có, xác định một lớp trong sơ đồ phân tích Tiếp cậ n theo phân tích hoạt động use case 4. biểu diễn cho thực thể này Xác định tên lớp: tên của sự vật Thuộc tính: bổ sung các thuộc tính mô tả đầy đủ thông tin mà hệ thống có nhu cầu quản lý về đối tượng UML/NN 15 UML/NN 16 4
  5. Ví dụ: …Tiếp cận theo thực thể nghiệp vụ Đối với thực thể thông tin: Nếu thực thể mô tả thông tin về một hoạt động giao Hành lý dịch hệ thống thì chuyển thành một lớp trong mô hình phân tích Hành lý Nếu thực thể là một dạng thông tin tổng hợp có NVL thể tách thành nhiều lớp mới hoặc bổ sung thông tin cho các lớp đang tồn tại NVL Hàng hoá Hoá đơn Hoá đon Thẻ thư viện Hàng hoá Thẻ thư viện UML/NN 17 UML/NN 18 Ví dụ Worker Hoá đơn HOÁ ĐƠN HOÁ Số HĐ:…… Ngày:../…/… Khách hàng: …………………….. Địa chỉ:………………………….. Khách hàng Người lập:……………………….. Mã Tên ĐVT Số Đơn Nhân viên bán hàng Nhân viên quản lý Thủ kho số hàng lượng giá Độc giả Nhà CC Chi tiết HĐ 00 H1 Cái 100 2000 1 H7 Kg 1000 3000 00 … … … … 4 Hàng Nhân viên Đọc giả Nhà CCấp Tổng trị giá: ……… … UML/NN 19 UML/NN 20 5
  6. Ví dụ: Hóa đơn 2. Tiếp cận theo cụm danh từ Đề xuất bởi Rebecca Wirfs-Brock, Brian Wilkerson, và Lauren Wiener 0..n 1 1 NgườI quản lý Khách hàng Ý tưởng: xác định các lớp thông qua việc đọc 1 1 trong các văn bản mô tả use case hoặc 0..n 0..n 0..n các mô tả yêu cầu để tìm kiếm và trích lọc các cụm danh từ Hoá đơn Hồ sơ khách hàng Thẻ khách hàng thân thiết Khách hàng Thẻ KHTT 0..1 1 Class thích hợp Class mờ Class không (relevant class) (fuzzy class) thích hợp 1 (irrelevant) 1..n Hoá đơn UML/NN 21 UML/NN 22 ATM Tiếp cận theo cụm danh từ (noun phrase) Tài khoản Bao thư Số dư tài khoản Bốn ký số Số tiền Ngân quỹ Tiến trình đăng nhập Tiền Danh ttừ,, cụm Xác địịnh các danh Xác đ nh cá danh Danh ừ cụm các danh ttừ ttừ,, cụm danh ttừ danh ừ Thẻ ATM PIN ừ cụm danh ừ Mô ttả use case, Mô ả use case, Máy ATM PIN không hợp lệ yêu cầu yêu cầu Ngân hàng Thông điệp Khách hàng ngân hàng Mật khẩu Danh ttừ,, cụm Danh ừ cụm Danh Đồng nhấtt các Đồng nhấ cá Loạii bỏ các danh các Loạ bỏ các danh Thẻ Mã PIN danh ttừ ứng viên danh ừ ứng viên class trùng nghĩĩa class trù ttừ mô ttả class giả trùng ngh a ừ mô ả class giả Tiền mặt Mẫu tin Khách hàng Bước Tài khoản khách hàng Hệ thống Danh sách các Danh sá cá Danh sách các Loạii các danh ttừ Loạ cá danh ừ Loạii các class Loạ cá class các các class VND Giao dịch class thuộc tính í không có mục tiêu không có mục tiêu thuộc ttính có Lịch sử giao dịch UML/NN 23 UML/NN 24 6
  7. Đồng nhất các ứng viên trùng lắp Loại bỏ các lớp không thích hợp Bao thư Tài khoản Bốn ký số Số dư tài khoản Số tiền Ngân quỹ Tiến trình đăng nhập Tiền Khách hàng, Khách hàng ngân hàng = Khách hàng Thẻ ATM PIN Tài khoản, Tài khoản khách hàng = Tài khoản Máy ATM PIN không hợp lệ PIN, Mã PIN = PIN Ngân hàng Thông điệp Tiền, Ngân quỹ = Ngân quỹ Thẻ ATM, Thẻ = Thẻ ATM Khách hàng ngân hàng Mật khẩu Thẻ Mã PIN Tiền mặt Mẫu tin Bước Khách hàng Tài khoản khách hàng Hệ thống VND Giao dịch Lịch sử giao dịch UML/NN 25 UML/NN 26 Danh từ, cụm danh từ có thể là thuộc tính Các lớp còn lại Tài khoản Bao thư Xác định danh từ, cụm danh từ có thể là thuộc tính: Số dư tài khoản Bốn ký số Chỉ được sử dụng như là giá trị Số tiền Ngân quỹ Không có nhiều hơn một đặc trưng riêng, hoặc chỉ Tiến trình đăng nhập Tiền mô tả một đặc trưng của đối tượng khác Thẻ ATM PIN Ví dụ: hệ thống ATM (tiếp tục phân tích) Máy ATM PIN không hợp lệ Số tiền: một giá trị, không phải một lớp Ngân hàng Thông điệp Số dư tài khoản: thuộc tính của lớp Tài khoản Khách hàng ngân hàng Mật khẩu PIN không hợp lệ: một giá trị, không phải một lớp Thẻ Mã PIN Mật khẩu: một thuộc tính (có thể của lớp Khách hàng) Tiền mặt Mẫu tin Lịch sử giao dịch: một thuộc tính (có thể của lớp Giao Khách hàng Bước dịch) Tài khoản khách hàng Hệ thống PIN: một thuộc tính (có thể của lớp Khách hàng) VND Giao dịch Lịch sử giao dịch UML/NN 27 UML/NN 28 7
  8. Loại bỏ các ứng viên Danh sách danh từ, cụm danh từ còn lại Tài khoản Bao thư Loại bỏ các ứng viên không mục tiêu hoặc không Số dư tài khoản Bốn ký số thuộc phạm vi hệ thống: Số tiền Ngân quỹ Thông điệp Tài khoản Bao thư Tiến trình đăng nhập Tiền Hệ thống Số dư tài khoản Bốn ký số Thẻ ATM PIN Số tiền Ngân quỹ Mẫu tin Tiến trình đăng nhập Tiền Máy ATM PIN không hợp lệ Ngân quỹ Thẻ ATM PIN Ngân hàng Thông điệp VND Máy ATM PIN không hợp lệ Khách hàng ngân Mật khẩu Tiền mặt Ngân hàng Thông điệp hàng Mã PIN Khách hàng ngân Mật khẩu Tiến trình đăng nhập hàng Thẻ Mã PIN Mẫu tin Thẻ Mẫu tin Tiền mặt Bước Tiền mặt Bước Khách hàng Hệ thống Khách hàng Hệ thống Tài khoản khách Giao dịch Tài khoản khách Giao dịch hàng hàng Lịch sử giao dịch Lịch sử giao dịch VND VND UML/NN 29 UML/NN 30 ATM: các lớp 3. Tiếp cận theo phân loại Máy ATM: cung cấp một giao diện tới ngân hàng Tiếp cận theo phân loại: phân loại các lớp của Thẻ ATM: cung cấp một khách hàng với một khoá hệ thống dựa trên các mẫu chung. tới một tài khoản Lớp khái niệm (concept): Một khái niệm là một Khách hàng: một khách hàng là một cá nhân sử quan niệm hoặc sự hiểu biết riêng biệt về thế giới. dụng máy ATM, có một tài khoản. Lớp khái niệm bao gồm các nguyên lý được dùng để Ngân hàng: các khách hàng phụ thuộc vào ngân tổ chức hoặc để lưu trữ các hoạt động và các trao hàng. Nó là một nơi tập trung các tài khoản và xử lý đổi về mặt quản lý. các giao dịch tài khoản. Ví dụ: các lớp khái niệm có thể là: phương pháp, hiệu năng, Tài khoản: nó mô hình hoá một tài khoản của mô hình, môn học… khách hàng và cung cấp các dịch vụ về tài khoản Lớp sự kiện (event): cho khách hàng Lớp sự kiện là các điểm thời gian cần được lưu trữ. Các sự Giao dịch: mô tả một giao tác của khách hàng khi việc xảy ra tại một thời điểm, hoặc một bước trong một dãy sử dụng thẻ ATM. Một giao tác được lưu trữ với thời tuần tự các bước gian, ngày, loại, số tiền, và số dư Ví dụ: đăng ký, hoá đơn, đơn hàng, phiếu nhập,… UML/NN 31 UML/NN 32 8
  9. Tiếp cận theo phân loại… …Tiếp cận theo phân loại Lớp tổ chức (organisation): tập hợp con người, Lớp vị trí (place): Các vị trí vật lý mà hệ thống cần tài nguyên, phương tiện, hoặc những nhóm xác định mô tả thông tin về nó. chức năng người dùng Ví dụ: toà nhà, kho, văn phòng, chi nhánh, đại lý,… Ví dụ: đơn vị, bộ phận, phòng ban, chức danh,… Lớp sự vật hữu hình và thiết bị: các đối tượng Lớp con người (people): lớp con người thể hiện vật lý hoặc các nhóm của đối tượng hữu hình mà có các vai trò khác nhau của người dùng trong việc thể cảm nhận trực quan và các thiết bị mà hệ thống tương tác với hệ thống. Những đối tượng này tương tác. thường là người dùng hệ thống hoặc những người Ví dụ: xe hơi, máy bay, … là các sự vật hữu hình; thiết bị không sử dụng hệ thống nhưng thông tin về họ cảm ứng nhiệt là một lớp thiết bị. được lưu trữ bởi hệ thống Ví dụ: Sinh viên, khách hàng, giáo viên, nhân viên,… UML/NN 33 UML/NN 34 Ví dụ: hệ thống ATM Hệ thống ATM Các lớp con người: Các lớp khái niệm: TàiKhoản KháchHàng Các lớp sự vật hữu hình và thiết bị Các lớp sự kiện: GiaoDịch ThẻATM MáyATM NgânHàng Các lớp tổ chức: UML/NN 35 UML/NN 36 9
  10. Ví dụ: hệ thống thư viện 4. Tiếp cận theo phân tích hoạt động usecase Đối tượng nào tiếp theo :Đối tượng :Đối tượng được chuyển giao trách nhiệm ? :Hồ sơ độc giả :Sách Thủ thư Độc giả … Tác nhân Yêu cầu mượn sách Kiểm tra thẻ Từ chối thẻ không hợp lệ Kiểm tra điều kiện Đối tượng nào của hệ [Không thoả]Từ chối thống sẽ trực tiếp tương Hệ thống Cập nhật hồ sơ độc giả tác với tác nhân? Sách gởi đọc giả Cập nhật lại trạng thái sách Kết thúc mô tả kịch bản của use case cho phép xác định tất cả các lớp liên tham gia Use case Mượn sách UML/NN 37 UML/NN 38 Ví dụ 1 Ví dụ 3 : KháchHàngNgânHàng : MáyATM : TàiKhoản Phân tích use case “Giải quyết PIN không hợp Phân tích use Đưa vào thẻ ATM Yêu cầu PIN lệ”. Các hoạt động khách hàng có thể thực hiện case “Rút tiền” với hệ thống: Nhập mã PIN Kiểm tra mã PIN Mã PIN hợp lệ Đưa vào thẻ ATM Yêu cầu số tiền Nhập số tiền Nhập mã PIN Xử lý giao tác rút Rút thẻ ATM Giao tác thành công Phân phối tiền mặt Yêu cầu lấy thẻ Lấy thẻ Yêu cầu tiếp tục Kết thúc In hoá đơn UML/NN 39 UML/NN 40 10
  11. Nội dung Xác định mối kết hợp association 5.1 Các tiên đề trong thiết kế Hướng dẫn xác định mối kết hợp: Một sự phụ thuộc giữa hai hay nhiều lớp có thể 5.2 Hướng tiếp cận trong xác định lớp thiết lập thành mối kết hợp. Mối kết hợp thường 5.3 Xác định mối quan hệ giữa các lớp tương ứng với một động từ hoặc cụm giới từ như 5.4 Xác định thuộc tính và hành vi của lớp là thành phần của, làm việc cho, chứa trong, … Một tham chiếu từ một lớp đến một lớp khác là một mối kết hợp. UML/NN 41 UML/NN 42 Các mối kết hợp… …Các mối kết hợp… Mối kết hợp vị trí (location): liên kết Mối kết hợp sở hữu: của, có, thuộc,… tới, thành phần của, làm việc tại, …. Ví dụ: Làm việc tại Chi Nhánh Là thành phần của Nhân Viên Cầu Thủ Đội Bóng Chứa trong Phòng Toà Nhà Phòng Học Học tại Buổi Học UML/NN 43 UML/NN 44 11
  12. …Các mối kết hợp… …Các mối kết hợp… Mối kết hợp truyền thông, liên lạc Mối kết hợp phản thân: là mối quan hệ (communication): đặt tới, trao đổi với, gởi được thiết lập giữa một đối tượng của một cho, tiếp nhận từ,… lớp với một đối tượng khác cũng thuộc lớp đó. Đặt tới Nhân Viên Thành Phần Đơn Hàng Nhà CCấp Chứa trong Quản lý G ởi t ới Bản Yêu Cầu Phòng Ban UML/NN 45 UML/NN 46 Ví dụ: hệ thống ATM Loại bỏ các mối kết hợp không cần thiết Mối kết hợp đa phân: là mối kết hợp giữa ba lớp trở lên, mối kết hợp này phức tạp trong cách thể hiện Nếu có thể, phát biểu Mối kết hợp sở hữu NgânHàng lại nó dùng mối kết hợp nhị phân Thuộc về Thuộc KháchHàng MáyATM 1 Củ a 1..n 0..n Có TàiKhoản GiaoDịch 1 UML/NN 47 UML/NN 48 12
  13. Xác định bản số cho mối kết hợp: (min, max) …Loại bỏ các mối kết hợp không cần thiết Mối kết hợp trực tiếp dư thừa: là các mối 1; 0..1; 1..*; kết hợp được định nghĩa trong ngữ nghĩa 0..*; của những mối kết hợp khác (còn gọi là mối a..* (a là hằng) kết hợp suy diễn hoặc bắc cầu) G ởi t ới Bản Yêu Cầu Phòng Ban 1 Phiếu đặt hàng 1 0..* 0..* Liên quan Đặt tới 1 0..1 Bản số Nhà cung cấp Từ Phiếu giao hàng 1 0..* UML/NN 49 UML/NN 50 Ví dụ Hệ thống ATM NgânHàng 1 1 Thuộc về Thuộc Là thành phần của 1..* Đội Bóng Cầu Thủ 1..* 1..* KháchHàng MáyATM 1 1 1 Chứa trong Phòng Toà Nhà Của 2..* 1..n 1..* 0..n Có 1..* TàiKhoản 0..* GiaoDịch Đặt tới 11 Đơn Hàng Nhà CCấp 1 0..* UML/NN 51 UML/NN 52 13
  14. Lớp kết hợp (Association class) Lớp kết hợp 0..* 0..* Hoá Đơn Sản Phẩm Hoá Đơn Sản Phẩm 1..* 1..* Chi Tiết Hoá Đơn Chi Tiết Hoá Đơn sốLượng sốLượng đơnGiá đơnGiá 0..* Sinh Viên Khoá Học 1..* Chi Tiết Hoá Đơn 1 sốLượng Kết Quả Sản Phẩm 0..* Hoá Đơn đơnGiá điểmTB 1..* 1 xếpLoại UML/NN 53 UML/NN 54 Xác định mối quan hệ … Xác định mối quan hệ … Nâng cấp mối kết hợp: Xác định mối kết hợp tổng quát – chuyên biệt Hoá đơn (generalization): Thể hiện quan hệ kế thừa giữa GiaoDịch các lớp và một cấu trúc phân cấp xác định những dòng kế thừa này Tiếp cận top-down: GiaoDịchRút GiaoDịchGởi Hoá đơn giao hàng Từ một lớp chúng ta tìm kiếm cụm danh từ chứa tên lớp và tính từ (hoặc danh từ). Đánh giá xem cụm danh từ này có Ghi chú: chỉ cần đưa vào các lớp chuyên biệt mà chúng ta xác định được các đặc trưng thể là một trường hợp đặc biệt cần được quản lý trong hệ riêng (thuộc tính, method, liên kết) của nó trong hệ thống. thống không Tìm kiếm xem có những đặc trưng riêng của lớp Xây dựng mối kết hợp chuyên biệt từ lớp này đến lớp ban đầu UML/NN 55 UML/NN 56 14
  15. … Xác định mối quan hệ … … Xác định mối quan hệ … Nâng cấp mối kết hợp: Xác định mối kết hợp tổng quát – chuyên biệt Nhân viên (generalization): Tiếp cận bottom-up: Tìm kiếm trong các lớp để xác định xem có các thuộc tính và phương thức giống nhau. Sau đó Nhân Viên VP Công Nhân chúng ta có thể gom nhóm và đưa các thuộc tính và phương thức chung này lên một lớp tổng quát (trừu tượng) Trưởng Phòng Thư Ký NV Bán Hàng Tạo mối kết hợp tổng quát hoá từ các lớp này đến lớp tổng quát mới xác định UML/NN 57 UML/NN 58 … Xác định mối quan hệ … … Xác định mối quan hệ … Chứng từ Đối Tác Đơn đặt hàng Hoá đơn Nhà CCấp Khách Hàng Hàng hoá UML/NN 59 UML/NN 60 15
  16. … Xác định mối quan hệ … … Xác định mối quan hệ … Xác định sự tương quan: Đối Tác Khách Hàng (complete, disjoint) (incomlete, disjoint) (incomplete) Lớp A Nhà CCấp Khách Hàng Khách Quen (incomplete, disjoint) Nhân Viên VP (complete, overlapping) Lớp A1 Lớp A2 (incomplete, overlapping) (incomplete, overlapping) Trưởng Phòng Thư Ký NV Bán Hàng UML/NN 61 UML/NN 62 … Xác định mối quan hệ … … Xác định mối quan hệ … Vấn đề đa thừa kế: Xác định mối kết hợp thành phần (a-part- of, aggregration) Phức tạp trong vấn đề kế thừa Đặc trưng cơ bản Không nên sử dụng (phiên bản gốc UML Tính bắc cầu: Nếu lớp A là một thành phần của lớp B không đưa vào) và lớp B là thành phần của lớp C lớp A là thành phần của lớp C Tính đối xứng: nếu lớp A là thành phần của lớp B thì lớp B không phải là thành phần của lớp A Nhà Nghiên Cứu Giáo Viên Lớp B Lớp A Gviên – Nhà NgCứu Lớp C UML/NN 63 UML/NN 64 16
  17. … Xác định mối quan hệ … … Xác định mối quan hệ … Xác định mối kết hợp thành phần (a-part- Vật chứa: một đối tựơng vật lý chứa of, aggregration) đựng các thành phần nhưng không được Tập hợp: một đối tượng vật lý được hình cấu tạo bởi các thành phần thành từ các đối tượng vật lý thành phần khác Xe Ô Tô Toà Nhà Đơn Hàng Phòng Học Container 1 1 1 1 1 0..1 0..1 1 0..1 1 1 4..8 1..* 1..* 0..1 0..* 0..* Thùng Xe Bánh Xe Động Cơ 1..* Phòng Dòng HĐ Bàn Ghế Projector Hàng Hoá UML/NN 65 UML/NN 66 … Xác định mối quan hệ … Hệ thống ATM Tập hợp – thành viên: một đối tượng 1 khái niệm chứa các thành phần có thể vật NgânHàng 1 Thuộc lý hoặc khái niệm Thuộc 1..* KháchHàng MáyATM Lớp khái niệm 1 1 Đội Bóng Phòng Ban Của 1..n 1..* 1 1 0..n Có 1..* TàiKhoản 0..* GiaoDịch 11 Lớp vật lý 0..* 0..* Cầu Thủ Nhân Viên UML/NN 67 UML/NN 68 17
  18. Nội dung Xác định thuộc tính Câu hỏi: 5.1 Các tiên đề trong thiết kế Thông tin gì về đối tượng sẽ được quản lý ? 5.2 Hướng tiếp cận trong xác định lớp Nguyên tắc: 5.3 Xác định mối quan hệ giữa các lớp Tên: danh từ; cụm danh từ 5.4 Xác định thuộc tính và hành vi của Đơn giản: chỉ dùng đủ thuộc tính để diễn đạt lớ p trạng thái đối tượng ở giai đoạn phân tích (thuộc tính sẽ được bổ sung chi tiết hơn ở các giai đoạn tiếp theo) Không quá quan tâm về việc phải khám phá hết thuộc tính UML/NN 69 UML/NN 70 ATM: Thuộc tính Ví dụ: Hệ thống ATM Lớp Khách Hàng: Phân tích lần lượt tất cả NgânHàng các use case có liên quan đến lớp Khách KháchHàng Hàng như là: “Đăng nhập”, “Xử lý PIN không MáyATM tênKháchHàng họKháchHàng địaChỉ hợp lệ”. Các thuộc tính của lớp khách hàng mãPIN trạngThái sốThẻ sốTiềnHiệnTại như sau: 1 của GiaoDịch 1 giaoDịchID TàiKhoản ngàyGiaoDịch có sốTàiKhoản KháchHàng thờiGianGiaoDịch loạiTàiKhoản 0..n loạiGiaoDịch 1 sốDư tênKháchHàng sốTiền sốDư họKháchHàng mãPIN sốThẻ GiaoDịchRút GiaoDịchGởi UML/NN 71 UML/NN 72 18
  19. Xác định method Xác định method qua phân tích use case Câu hỏi: Phân tích các dòng message trong sơ đồ tuần tự để xem có thể chuyển một hoạt Các đối tượng chịu trách nhiệm xử lý gì về thông tin của nó để cung cấp dịch vụ cho hệ thống? động thành một method không? Nguyên tắc: Nếu có, đặt tên cho method ứng với hoạt Tên: động từ + bổ ngữ động đó Chỉ quan tâm đến các method có phạm vi toàn cục (public), các method có phạm vi cục bộ sẽ được phát hiện trong giai đoạn thiết kế cài đặt (vd: constructor, ….) Các method chịu trách nhiệm về các thao tác lên các thuộc tính của đối tượng: truy vấn, cập nhật, đọc và ghi UML/NN 73 UML/NN 74 Ví dụ… …Ví dụ : TàiKhoản : KháchHàng : MáyATM : KháchHàng : MáyATM : TàiKhoản lớp TàiKhoản Lớp TàiKhoản Yêu cầu số tiền Yêu cầu số tiền Rút Tiền Rút Tiền Nhập số tiền Nhập số tiền Gửi Tiền Gửi Tiền Xử lý giao tác gửi Xử lý giao tác rút Giao tác thành công Giao tác thành công Xem thông Xem thông Tin Tài Phân phối tiền mặt Tin Tài Khoản Khoản Yêu cầu lấy thẻ Yêu cầu lấy thẻ Lấy thẻ Lấy thẻ Yêu cầu tiếp tục Yêu cầu tiếp tục Kết thúc Kết thúc In hoá đơn In hoá đơn TàiKhoản TàiKhoản sốTàiKhoản sốTàiKhoản loạiTàiKhoản loạiTàiKhoản sốDư sốDư rútTiền() rútTiền() gửiTiền() xemTàiKhoản() Use case Rút Tiền Use case Rút Tiền UML/NN 75 UML/NN 76 19
  20. ATM: method Tinh chế thuộc tính NgânHàng Kiểu thuộc tính MáyATM KháchHàng Thuộc tính đơn trị địaChỉ tênKháchHàng có trạngThái họKháchHàng sốTiềnHiệnTại mãPIN Thuộc tính đa trị: có thể dùng các cấu trúc, list, sốThẻ khởiĐộngMáy() đóngMáy() array, bag để khai báo cài đặt. kiểmTraMậtKhẩu() 1 Ví dụ: thuộc tính sốĐiệnThoại của lớp NhânViên có của 1 thể là đa trị GiaoDịch TàiKhoản giaoDịchID sốTàiKhoản địaChỉ[3]: String ngàyGiaoDịch loạiTàiKhoản thờiGianGiaoDịch sốDư loạiGiaoDịch địaChỉ[1..3]: String 1 0..n sốTiền rútTiền() sốDư gởiTiền() xemTàiKhoản() Ghi chú: các method được phát hiện trong giai đoạn này thường đại diện xử lý cho một use case GiaoDịchRút GiaoDịchGởi UML/NN 77 UML/NN 78 Hiển thị thuộc tính ATM : thuộc tính lớp : = NgânHàng KháchHàng #tênKháchHàng:String MáyATM + : toàn cục #họKháchHàng:String #địaChỉ:String #mãPIN::String #trạngThái:String #sốThẻ:String #sốTiềnHiệnTại:float #tàiKhoản:TàiKhoản # : bảo vệ Các thuộc tính 1 - : cụ c bộ cài đặt liên kết của 1 GiaoDịch TàiKhoản #giaoDịchID:String #sốTàiKhoản:String #ngàyGiaoDịch:Date có #loạiTàiKhoản:String #thờiGianGiaoDịch:Time #sốDư:float #loạiGiaoDịch:String #giaoTác:GiaoDịch 1 0..n #sốTiền:float #kháchHàng:KháchHàng #sốDư:float GiaoDịchRút GiaoDịchGởi Ghi chú: phạm vi mặc định của các thuộc tính là cục bộ UML/NN 79 UML/NN 80 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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