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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 UML/NN 1 Chương 6 Nguyên lý thiết kế, Phương pháp xác định lớp UML/NN 2 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  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 UML/NN 3 6.1. Các tiên đề trong Thiết kế  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ế Tinh độc lập của các thành phần không cao Tính độc lập của các thành phần cao UML/NN 4 Coupling (Liên kết) A B C D Coupling mạnh Coupling yếu 2 UML/NN 5 Hai loại coupling  Hai loại coupling: tương tác và kế thừa  Coupling tương tác: chia thành 5 loại  Data coupling  Stamp coupling  Control coupling  Common coupling  Content coupling  Coupling kế thừa UML/NN 6 Data coupling  Liên kết giữa các thành phần là dữ liệu nguyên tố hoặc phức hợp  Ví dụ: Class_A + Operation_A () : Integer Class_B + Operation_B (Integer Para_1) : Integer integer Operation_A() { int x,y; Class_B cB; …. y = cB.Operation_B(x); … } UML/NN 7 Stamp coupling  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  Ví dụ: integer Operation_A() { int x,y; Class_B cB; Class_C c; …. y = cB.Operation_B(c); … } UML/NN 8 Control coupling  Control coupling: một thành phần gởi các yếu tố điều khiển tới một thành phần khác thì hai thành phần này có control coupling. + A() { int x = 1; sub(x, dk) … } + sub(x, dk) { } dk =1 =2 3 UML/NN 9 Common và Content coupling  Common couping: hai thành phần cùng tham chiếu đến một cấu trúc toàn cục (hoặc biến toàn cục) thì có liên hệ gọi là Common coupling.  Content coupling: nếu một thành phần tham khảo trực tiếp đến nội dung scủa một thành phần khác thì được gọi là content coupling. UML/NN 10 Mức độ liên kết Rất thấp Thấp Trung bình Cao Rất cao Data coupling Stamp coupling Control coupling Common coupling Content coupling Xếp hạng phụ thuộc Tên coupling UML/NN 11 Coupling kế thừa  Là coupling giữa lớp tổng quát và lớp chuyên biệt trong cấu trúc phân cấp: Liên 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á UML/NN 12 Tiên đề 2: tiên đề thông tin  Giảm tối đa thông tin các đối tượng thiết kế  Tách thành nhiều đối tượng đơn giản hơn  Tách thành cấu trúc phân cấp kế thừa Đối tượng phức tạp Nhiều đối tượng đơn giản 4 UML/NN 13 Ví dụ LậpHoáĐơn() Hoá Đơn InHoáĐơn() Hoá Đơn Máy In LậpHoáĐơn() InHoáĐơn() UML/NN 14 Nội dung  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  5.4 Xác định thuộc tính và hành vi của lớp UML/NN 15 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ụ 2. Tiếp cận theo cụm danh từ 3. Tiếp cận theo phân loại 4. Tiếp cận theo phân tích hoạt động use case UML/NN 16 1. 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 xem có nhu cầu quản lý thông tin về thực thể này trong hệ thống không?  Nếu có, xác định một lớp trong sơ đồ phân tích 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 5 UML/NN 17 Ví dụ: Hành lý NVL Hàng hoá Hành lý NVL Hàng hoá UML/NN 18 …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 dịch hệ thống thì chuyển thành một lớp trong mô hình phân tích  Nếu thực thể là một dạng thông tin tổng hợp Æ có 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 Hoá đon Hoá đơn Thẻ thư viện Thẻ thư viện UML/NN 19 Ví dụ HO HO Á Á Đ Đ ƠN ƠN Số HĐ:…… Ngày: /…/… Khách hàng: …………………… Địa chỉ:………………………… Người lập:……………………… 2000 3000 … Đơn giá 100 1000 … Số lượng Cái Kg … ĐVT H1 H7 … Tên hàng 00 1 00 4 … Mã số Tổng trị giá: ……… Hoá đơn Khách hàng Hàng Chi tiết HĐ UML/NN 20 Worker Nhân viên bán hàng Nhân viên quản lý Thủ kho Nhân viên Độc giả Đọc giả Nhà CC Nhà CCấp 6 UML/NN 21 Ví dụ: Hóa đơn Khách hàng NgườI quản lý Hồ sơ khách hàng Hoá đơn Thẻ khách hàng thân thiết 0 n 1 1 0 n 0 n 0 n 1 1 Khách hàng Hoá đơn Thẻ KHTT 0 1 1 1 1 n UML/NN 22 2. Tiếp cận theo cụm danh từ  Đề xuất bởi Rebecca Wirfs-Brock, Brian Wilkerson, và Lauren Wiener  Ý tưởng: xác định các lớp thông qua việc đọc trong các văn bản mô tả use case hoặc các mô tả yêu cầu để tìm kiếm và trích lọc các cụm danh từ Class không thích hợp (irrelevant) Class mờ (fuzzy class) Class thích hợp (relevant class) UML/NN 23 Tiếp cận theo cụm danh từ (noun phrase) Mô tả use case, yêu cầu Mô t Mô t ả ả use case, use case, yêu c yêu c ầ ầ u u Xác định các danh từ, cụm danh từ X X á á c đ c đ ị ị nh c nh c á á c danh c danh t t ừ ừ , c , c ụ ụ m danh t m danh t ừ ừ Danh từ, cụm danh từ Danh t Danh t ừ ừ , c , c ụ ụ m m danh t danh t ừ ừ Loại bỏ các danh từ mô tả class giả Lo Lo ạ ạ i b i b ỏ ỏ c c á á c danh c danh t t ừ ừ mô t mô t ả ả class gi class gi ả ả Danh từ, cụm danh từứng viên Danh t Danh t ừ ừ , c , c ụ ụ m m danh t danh t ừ ừ ứ ứ ng viên ng viên Đồng nhất các class trùng nghĩa Đ Đ ồ ồ ng nh ng nh ấ ấ t c t c á á c c class tr class tr ù ù ng ngh ng ngh ĩ ĩ a a Danh sách các class Danh s Danh s á á ch c ch c á á c c class class Loại các danh từ thuộc tính Lo Lo ạ ạ i c i c á á c danh t c danh t ừ ừ thu thu ộ ộ c t c t í í nh nh Loại các class không có mục tiêu Lo Lo ạ ạ i c i c á á c class c class không c không c ó ó m m ụ ụ c tiêu c tiêu UML/NN 24 ATM Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND 7 UML/NN 25 Loại bỏ các lớp không thích hợp Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND UML/NN 26 Đồng nhất các ứng viên trùng lắp Khách hàng, Khách hàng ngân hàng = Khách hàng Tài khoản, Tài khoản khách hàng = Tài khoản PIN, Mã PIN = PIN Tiền, Ngân quỹ = Ngân quỹ Thẻ ATM, Thẻ = Thẻ ATM UML/NN 27 Các lớp còn lại Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND UML/NN 28 Danh từ, cụm danh từ có thể là thuộc tính  Xác định danh từ, cụm danh từ có thể là thuộc tính:  Chỉ được sử dụng như là giá trị  Không có nhiều hơn một đặc trưng riêng, hoặc chỉ mô tả một đặc trưng của đối tượng khác  Ví dụ: hệ thống ATM (tiếp tục phân tích)  Số tiền: Æ một giá trị, không phải một lớp  Số dư tài khoản: Æ thuộc tính của lớp Tài khoản  PIN không hợp lệ: Æ một giá trị, không phải một lớp  Mật khẩu: Æ một thuộc tính (có thể của lớp Khách hàng)  Lịch sử giao dịch: Æ một thuộc tính (có thể của lớp Giao dịch)  PIN: Æ một thuộc tính (có thể của lớp Khách hàng) 8 UML/NN 29 Danh sách danh từ, cụm danh từ còn lại Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND UML/NN 30 Loại bỏ các ứng viên  Loại bỏ các ứng viên không mục tiêu hoặc không thuộc phạm vi hệ thống:  Thông điệp  Hệ thống  Mẫu tin  Ngân quỹ  VND  Tiền mặt  Tiến trình đăng nhập Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND UML/NN 31 ATM: các lớp  Máy ATM: cung cấp một giao diện tới ngân hàng  Thẻ ATM: cung cấp một khách hàng với một khoá tới một tài khoản  Khách hàng: một khách hàng là một cá nhân sử dụng máy ATM, có một tài khoản.  Ngân hàng: các khách hàng phụ thuộc vào ngân hàng. Nó là một nơi tập trung các tài khoản và xử lý các giao dịch tài khoản.  Tài khoản: nó mô hình hoá một tài khoản của khách hàng và cung cấp các dịch vụ về tài khoản cho khách hàng  Giao dịch: mô tả một giao tác của khách hàng khi sử dụng thẻ ATM. Một giao tác được lưu trữ với thời gian, ngày, loại, số tiền, và số dư UML/NN 32 3. Tiếp cận theo phân loại  Tiếp cận theo phân loại: phân loại các lớp của hệ thống dựa trên các mẫu chung.  Lớp khái niệm (concept): Một khái niệm là một quan niệm hoặc sự hiểu biết riêng biệt về thế giới. Lớp khái niệm bao gồm các nguyên lý được dùng để tổ chức hoặc để lưu trữ các hoạt động và các trao đổi về mặt quản lý.  Ví dụ: các lớp khái niệm có thể là: phương pháp, hiệu năng, mô hình, môn học…  Lớp sự kiện (event):  Lớp sự kiện là các điểm thời gian cần được lưu trữ. Các sự việc xảy ra tại một thời điểm, hoặc một bước trong một dãy tuần tự các bước  Ví dụ: đăng ký, hoá đơn, đơn hàng, phiếu nhập,… 9 UML/NN 33 Tiếp cận theo phân loại…  Lớp tổ chức (organisation): tập hợp con người, tài nguyên, phương tiện, hoặc những nhóm xác định chức năng người dùng  Ví dụ: đơn vị, bộ phận, phòng ban, chức danh,…  Lớp con người (people): lớp con người thể hiện các vai trò khác nhau của người dùng trong việc tương tác với hệ thống. Những đối tượng này thường là người dùng hệ thống hoặc những người không sử dụng hệ thống nhưng thông tin về họ đượ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 34 …Tiếp cận theo phân loại  Lớp vị trí (place): Các vị trí vật lý mà hệ thống cần mô tả thông tin về nó.  Ví dụ: toà nhà, kho, văn phòng, chi nhánh, đại lý,…  Lớp sự vật hữu hình và thiết bị: các đối tượng vật lý hoặc các nhóm của đối tượng hữu hình mà có thể cảm nhận trực quan và các thiết bị mà hệ thống tương tác.  Ví dụ: xe hơi, máy bay, … là các sự vật hữu hình; thiết bị cảm ứng nhiệt là một lớp thiết bị. UML/NN 35 Ví dụ: hệ thống ATM  Các lớp khái niệm:  Các lớp sự kiện:  Các lớp tổ chức: TàiKhoản GiaoDịch NgânHàng UML/NN 36 Hệ thống ATM  Các lớp con người:  Các lớp sự vật hữu hình và thiết bị KháchHàng MáyATM ThẻATM 10 UML/NN 37 4. Tiếp cận theo phân tích hoạt động usecase Tác nhân Hệ thống Đối tượng nào của hệ thống sẽ trực tiếp tương tác với tác nhân? :Đối tượng Đối tượng nào tiếp theo được chuyển giao trách nhiệm ? … :Đối tượng 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 UML/NN 38 Ví dụ: hệ thống thư viện Độc giả Thủ thư Yêu cầu mượn sách Kiểm tra thẻ :Hồ sơ độc giả Kiểm tra điều kiện [Không thoả]Từ chối Cập nhật hồ sơ độc giả Sách gởi đọc giả :Sách Cập nhật lại trạng thái sách Từ chối thẻ không hợp lệ Use case Mượn sách UML/NN 39 Ví dụ 1  Phân tích use case “Giải quyết PIN không hợp lệ”. Các hoạt động khách hàng có thể thực hiện với hệ thống:  Đưa vào thẻ ATM  Nhập mã PIN  Rút thẻ ATM UML/NN 40 Ví dụ 3  Phân tích use case “Rút tiền” : KháchHàngNgânHàng : MáyATM : TàiKhoản Đưa vào thẻ ATM Yêu cầu PIN Nhập mã PIN Kiểm tra mã PIN Mã PIN hợp lệ Yêu cầu số tiền Nhập số tiền Xử lý giao tác rút 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 [...]...Nội dung Xác định mối kết hợp association 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 5.4 Xác định thuộc tính và hành vi của lớp UML/NN 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ể thiết lập thành mối kết hợp Mối kết hợp thường tương ứng với một động... 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 đó 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) 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 Công Nhân NV Bán Hàng UML/NN 57 UML/NN … Xác định mối quan hệ … 58 … Xác định mối quan hệ … Chứng từ Đối Tác Đơn... UML/NN 60 15 … Xác định mối quan hệ … … Xác định mối quan hệ … Xác định sự tương quan: Đối Tác (complete, disjoint) Khách Hàng (incomlete, disjoint) (incomplete) Lớp A (incomplete, disjoint) Lớp A1 Lớp A2 Nhà CCấp Khách Hàng Nhân Viên VP (complete, overlapping) (incomplete, overlapping) (incomplete, overlapping) Trưởng Phòng UML/NN 61 Thư Ký NV Bán Hàng UML/NN … Xác định mối quan hệ … 62 … Xác định mối quan... đa thừa kế: Xác định mối kết hợp thành phần (a-partof, aggregration) Phức tạp trong vấn đề kế thừa Không nên sử dụng (phiên bản gốc UML không đưa vào) Giáo Viên Khách Quen Đặc trưng cơ bản Tính bắc cầu: Nếu lớp A là một thành phần của lớp B 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... thành phần của lớp A Nhà Nghiên Cứu Lớp B Lớp A Gviên – Nhà NgCứu Lớp C UML/NN 63 UML/NN 64 16 … 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-partof, aggregration) Vật chứa: một đối tựơng vật lý chứa đựng các thành phần nhưng không được cấu tạo bởi các thành phần Tập hợp: một đối tượng vật lý được hình thành từ các đối tượng vật lý thành phần khác Toà Nhà Xe Ô Tô... Có 0 n 0 * GiaoDịch 1 1 0 * Cầu Thủ 67 UML/NN 68 17 Nội dung Xác định thuộc tính Câu hỏi: 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 5.4 Xác định thuộc tính và hành vi của lớp UML/NN Thông tin gì về đối tượng sẽ được quản lý ? Nguyên tắc: Tên: danh từ; cụm danh từ Đơn giản: chỉ dùng đủ thuộc tính để diễn đạt trạng thái đối tượng ở giai... 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 GiaoDịch 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 riêng (thuộc tính, method, liên kết) của nó trong hệ thống 55 UML/NN 56 14 … 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 (generalization): Nhân viên... UML/NN 51 UML/NN 52 13 Lớp kết hợp (Association class) Hoá Đơn 0 * Lớp kết hợp Sản Phẩm Hoá Đơn 0 * Sản Phẩm 1 * 1 * Chi Tiết Hoá Đơn sốLượng đơnGiá Sinh Viên Chi Tiết Hoá Đơn sốLượng đơnGiá 0 * Khoá Học 1 * Kết Quả điểmTB xếpLoại UML/NN Hoá Đơn 1 1 * 53 Chi Tiết Hoá Đơn sốLượng 0 * đơnGiá Sản Phẩm 1 UML/NN Xác định mối quan hệ 54 … 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... Projector UML/NN … Xác định mối quan hệ … 66 Hệ thống ATM Tập hợp – thành viên: một đối tượng khái niệm chứa các thành phần có thể vật lý hoặc khái niệm NgânHàng 1 1 Thuộc Thuộc 1 * KháchHàng Lớp khái niệm 1 Đội Bóng Phòng Ban 0 1 0 * Bàn Hàng Hoá 0 1 0 1 MáyATM 1 Của 0 * Nhân Viên UML/NN 1 n 1 * 1 * TàiKhoản 1 1 Lớp vật lý Có 0 n 0 * GiaoDịch 1 1 0 * Cầu Thủ 67 UML/NN 68 17 Nội dung Xác định thuộc tính... 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 Hoá đơn 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ó thể là một trường hợp đặc biệt cần được quản lý trong hệ 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 . 1 UML/NN 1 Chương 6 Nguyên lý thiết kế, Phương pháp xác định lớp UML/NN 2 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  6.3 Xác định mối quan hệ giữa các lớp . đề 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  5.4 Xác định thuộc tính và hành vi của lớp UML/NN 15 6.2 Các cách tiếp cận xác định lớp 1. Tiếp. 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  5.4 Xác định thuộc tính và hành vi của lớp UML/NN 42 Xác định mối kết hợp association  Hướng dẫn xác định mối kết hợp: 

Ngày đăng: 25/07/2014, 16:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan