Phân tích thiết kế hệ thống thông tin 7
Chia sẻ bởi Đinh Văn Đông |
Ngày 29/04/2019 |
85
Chia sẻ tài liệu: Phân tích thiết kế hệ thống thông tin 7 thuộc Bài giảng khác
Nội dung tài liệu:
PHÂN TÍCH & THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
GV. ThS Phạm Nguyễn Cương
Chương 7 – Phân tích đối tượng hệ thống
Sơ đồ lớp
Các cách tiếp cận xác định lớp
Xác định mối quan hệ giữa các lớp
Xác định thuộc tính và hành vi của lớp
Sơ đồ lớp
Đối tượng (object)
Lớp (class)
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Tiếp cận theo cụm danh từ
Tiếp cận theo phân loại
Tiếp cận theo phân tích hoạt động use case
Các cách tiếp cận xác định lớp
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
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Ví dụ:
Hành lý
NVL
Hàng hoá
Các cách tiếp cận xác định lớp
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
Ví dụ:
Hoá đon
Thẻ thư viện
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Đối với thực thể thông tin:
Ví dụ:
HOÁ ĐƠN
Số HĐ:…… Ngày:../…/…
Khách hàng: ……………………..
Địa chỉ:…………………………..
Người lập:………………………..
Tổng trị giá: ………
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Đối với thực thể thừa tác viên và các thực thể tổ chức khác
Nhân viên bán hàng
Nhân viên quản lý
Thủ kho
Độc giả
Nhà CC
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Ví dụ:
0..1
1
1
1..n
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Đề 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 giả tạo (irrelevant)
Class mờ (fuzzy class)
Class hiển nhiên
(relevant class)
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Ví dụ: xác định các class của hệ thống ATM – Các cụm danh từ tìm được
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Loại bỏ các lớp giả (irrelevant):
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Đồ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
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Đồng nhất các ứng viên trùng lắp
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
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)
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Danh sách danh từ, cụm danh từ còn lại
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
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
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Kết quả các lớp được xác định:
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ư
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Kết quả các lớp được xác định:
MáyATM
TàiKhoản
ThẻATM
KháchHàng
NgânHàng
GiaoDịch
Các cách tiếp cận xác định lớp
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,…
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,…
Các cách tiếp cận xác định lớp
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,…
Các cách tiếp cận xác định lớp
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ị.
Các cách tiếp cận xác định lớp
Tiếp cận theo phân loại:
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
Các cách tiếp cận xác định lớp
Tiếp cận theo phân loại:
Ví dụ: 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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case:
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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case: Ví dụ
Độ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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case:
Ví dụ: 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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case:
Ví dụ: phân tích use case “Giải quyết PIN không hợp lệ”.
Các cách tiếp cận xác định lớp
Ví dụ: phân tích use case “Rút tiền”.
Chương 7 – Phân tích đối tượng hệ thống
Sơ đồ lớp
Các cách tiếp cận xác định lớp
Xác định mối quan hệ giữa các lớp
Xác định thuộc tính và hành vi của lớp
Xác định mối quan hệ
Xác định mối kết hợp association:
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 từ hoặc cụm giới từ như 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.
Xác định mối quan hệ
Xác định mối kết hợp association:
Các mẫu xác định mối kết hợp:
Mối kết hợp vị trí (location): liên kết tới, thành phần của, làm việc tại, ….
Ví dụ:
Làm việc tại
Học tại
Xác định mối quan hệ
Xác định mối kết hợp association:
Các mẫu xác định mối kết hợp:
Mối kết hợp sở hữu: của, có, thuộc,…
Ví dụ:
Là thành phần của
Chứa trong
Xác định mối quan hệ
Xác định mối kết hợp association:
Các mẫu xác định mối kết hợp:
Mối kết hợp truyền thông, liên lạc (communication): đặt tới, trao đổi với, gởi cho, tiếp nhận từ,…
Đặt tới
Gởi tới
Xác định mối quan hệ
Xác định mối kết hợp association:
Mối kết hợp phản thân: là mối quan hệ được thiết lập giữa một đối tượng của một lớp với một đối tượng khác cũng thuộc lớp đó.
Quản lý
Chứa trong
Xác định mối quan hệ
Xác định mối kết hợp association:
Ví dụ: hệ thống ATM
Mối kết hợp sở hữu
Thuộc
Xác định mối quan hệ
Xác định mối kết hợp association:
Loại bỏ các mối kết hợp không cần thiết:
Mối kết hợp cài đặt: là mối kết hợp mô tả sự liên quan giữa các lớp trong giai đoạn thiết kế cài đặt hệ thống bên trong môi trường phát triển hoặc ngôn ngữ lập trình cụ thể và không phải là môi liên kết giữa các đối tượng mô tả nghiệp vụ
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 lại nó dùng mối kết hợp nhị phân
Xác định mối quan hệ
Xác định mối kết hợp association:
Loại bỏ các mối kết hợp không cần thiết – Ví dụ:
Xác định mối quan hệ
Xác định mối kết hợp association:
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 kết hợp được định nghĩa trong ngữ nghĩa của những mối kết hợp khác (còn gọi là mối kết hợp suy diễn hoặc bắc cầu)
Đặt tới
Liên quan
Từ
0..*
1
0..*
1
0..1
1
Xác định mối quan hệ
Xác định mối kết hợp association:
Xác định bản số cho mối kết hợp: (min, max)
1; 0..1;
1..*;
0..*;
a..* : a là hằng
Gởi tới
0..*
1
Bản số
Xác định mối quan hệ
Xác định mối kết hợp association:
Xác định bản số cho mối kết hợp: (min, max)
Ví dụ:
Là thành phần của
Chứa trong
2..*
1
1..*
1..*
Đặt tới
1
0..*
Xác định mối quan hệ
Xác định mối kết hợp association:
Xác định bản số cho mối kết hợp: (min, max)
Ví dụ: hệ thống ATM
Thuộc
Thuộc
0..*
1
1..*
1
1
1..*
1
1..*
Xác định mối kết hợp
Xác định lớp kết hợp (Association class)
0..*
1..*
0..*
1..*
Xác định mối kết hợp
Xác định lớp kết hợp (Association class)
0..*
1..*
1
1..*
0..*
1
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): Thể hiện quan hệ kế thừa giữa 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:
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 này đến lớp ban đầu
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):
Tiếp cận top-down – ví dụ:
GiaoDịch
GiaoDịchRút
GiaoDịchGởi
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.
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):
Tiếp cận top-down – ví dụ: phức tạp
Nhân viên
Thư Ký
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):
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
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):
Tiếp cận bottom-up – ví dụ:
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
Tiếp cận bottom-up – ví dụ:
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
Xác định sự tương quan:
(complete, disjoint)
(incomplete, disjoint)
(complete, overlapping)
(incomplete, overlapping)
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
Xác định sự tương quan: - ví dụ
(incomlete, disjoint)
Thư Ký
(incomplete, overlapping)
(incomplete)
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
Vấn đề đa thừa kế:
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)
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 thành phần (a-part-of, aggregration)
Đặ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
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 thành phần (a-part-of, aggregration)
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
1
1..*
1
1
1
1
4..8
1
1
1..*
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 thành phần (a-part-of, 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
1
1..*
0..1
0..1
0..1
0..1
0..*
0..*
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 thành phần (a-part-of, aggregration)
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
1
0..*
1
0..*
Lớp vật lý
Lớp khái niệm
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 thành phần
Ví dụ: hệ thống ATM
Thuộc
Thuộc
0..*
1
1..*
1
1
1..*
1
1..*
Chương 7 – Phân tích đối tượng hệ thống
Sơ đồ lớp
Các cách tiếp cận xác định lớp
Xác định mối quan hệ giữa các lớp
Xác định thuộc tính và hành vi của lớp
Xác định thuộc tính
Câu hỏi:
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 đ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
Không quan tâm đến các thuộc tính mô tả cài đặt của đối tượng
Xác định 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ả các use case có liên quan đến lớp Khách Hàng như là: “Đăng nhập”, “Xử lý PIN không hợp lệ”. Các thuộc tính của lớp khách hàng như sau:
Xác định thuộc tính
Ví dụ: hệ thống ATM
Xác định method
Câu hỏi:
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?
Nguyên tắc:
Tên: động từ + bổ 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
Xác định method
Xác định method qua phân tích hoạt động use case:
Phân tích các dòng message trong sơ đồ tuần tự để xem có thể chuyển một hoạt động thành một method không?
Nếu có, đặt tên cho method ứng với hoạt động đó
Xác định method
Xác định method qua phân tích hoạt động use case:
Ví dụ: lớp TàiKhoản
Rút Tiền
Gửi Tiền
Xem thông Tin Tài Khoản
: KháchHàng
: MáyATM
: TàiKhoản
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
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
Use case Rút Tiền
Xác định method
Xác định method qua phân tích hoạt động use case:
Ví dụ: lớp TàiKhoản
Rút Tiền
Gửi Tiền
Xem thông Tin Tài Khoản
: KháchHàng
: MáyATM
: TàiKhoản
Yêu cầu số tiền
Nhập số tiền
Xử lý giao tác gửi
Giao tác thành công
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
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
Use case Rút Tiền
gửiTiền()
xemTàiKhoản()
Xác định method
Ví dụ: hệ thống ATM
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
Bài tập
Xây dựng sơ đồ lớp cho các bài toán:
Quản lý thuê văn phòng cao ốc
Quản lý hợp động công ty SGM
Diễn đàn trao đổi học tập khoa CNTT
GV. ThS Phạm Nguyễn Cương
Chương 7 – Phân tích đối tượng hệ thống
Sơ đồ lớp
Các cách tiếp cận xác định lớp
Xác định mối quan hệ giữa các lớp
Xác định thuộc tính và hành vi của lớp
Sơ đồ lớp
Đối tượng (object)
Lớp (class)
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Tiếp cận theo cụm danh từ
Tiếp cận theo phân loại
Tiếp cận theo phân tích hoạt động use case
Các cách tiếp cận xác định lớp
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
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Ví dụ:
Hành lý
NVL
Hàng hoá
Các cách tiếp cận xác định lớp
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
Ví dụ:
Hoá đon
Thẻ thư viện
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Đối với thực thể thông tin:
Ví dụ:
HOÁ ĐƠN
Số HĐ:…… Ngày:../…/…
Khách hàng: ……………………..
Địa chỉ:…………………………..
Người lập:………………………..
Tổng trị giá: ………
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Đối với thực thể thừa tác viên và các thực thể tổ chức khác
Nhân viên bán hàng
Nhân viên quản lý
Thủ kho
Độc giả
Nhà CC
Các cách tiếp cận xác định lớp
Tiếp cận theo thực thể nghiệp vụ
Ví dụ:
0..1
1
1
1..n
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Đề 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 giả tạo (irrelevant)
Class mờ (fuzzy class)
Class hiển nhiên
(relevant class)
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Ví dụ: xác định các class của hệ thống ATM – Các cụm danh từ tìm được
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Loại bỏ các lớp giả (irrelevant):
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Đồ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
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Đồng nhất các ứng viên trùng lắp
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
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)
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Danh sách danh từ, cụm danh từ còn lại
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
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
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Kết quả các lớp được xác định:
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ư
Các cách tiếp cận xác định lớp
Tiếp cận theo cụm danh từ (noun –phrase)
Kết quả các lớp được xác định:
MáyATM
TàiKhoản
ThẻATM
KháchHàng
NgânHàng
GiaoDịch
Các cách tiếp cận xác định lớp
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,…
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,…
Các cách tiếp cận xác định lớp
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,…
Các cách tiếp cận xác định lớp
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ị.
Các cách tiếp cận xác định lớp
Tiếp cận theo phân loại:
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
Các cách tiếp cận xác định lớp
Tiếp cận theo phân loại:
Ví dụ: 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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case:
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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case: Ví dụ
Độ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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case:
Ví dụ: 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
Các cách tiếp cận xác định lớp
Thiếp cận theo phân tích hoạt động use case:
Ví dụ: phân tích use case “Giải quyết PIN không hợp lệ”.
Các cách tiếp cận xác định lớp
Ví dụ: phân tích use case “Rút tiền”.
Chương 7 – Phân tích đối tượng hệ thống
Sơ đồ lớp
Các cách tiếp cận xác định lớp
Xác định mối quan hệ giữa các lớp
Xác định thuộc tính và hành vi của lớp
Xác định mối quan hệ
Xác định mối kết hợp association:
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 từ hoặc cụm giới từ như 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.
Xác định mối quan hệ
Xác định mối kết hợp association:
Các mẫu xác định mối kết hợp:
Mối kết hợp vị trí (location): liên kết tới, thành phần của, làm việc tại, ….
Ví dụ:
Làm việc tại
Học tại
Xác định mối quan hệ
Xác định mối kết hợp association:
Các mẫu xác định mối kết hợp:
Mối kết hợp sở hữu: của, có, thuộc,…
Ví dụ:
Là thành phần của
Chứa trong
Xác định mối quan hệ
Xác định mối kết hợp association:
Các mẫu xác định mối kết hợp:
Mối kết hợp truyền thông, liên lạc (communication): đặt tới, trao đổi với, gởi cho, tiếp nhận từ,…
Đặt tới
Gởi tới
Xác định mối quan hệ
Xác định mối kết hợp association:
Mối kết hợp phản thân: là mối quan hệ được thiết lập giữa một đối tượng của một lớp với một đối tượng khác cũng thuộc lớp đó.
Quản lý
Chứa trong
Xác định mối quan hệ
Xác định mối kết hợp association:
Ví dụ: hệ thống ATM
Mối kết hợp sở hữu
Thuộc
Xác định mối quan hệ
Xác định mối kết hợp association:
Loại bỏ các mối kết hợp không cần thiết:
Mối kết hợp cài đặt: là mối kết hợp mô tả sự liên quan giữa các lớp trong giai đoạn thiết kế cài đặt hệ thống bên trong môi trường phát triển hoặc ngôn ngữ lập trình cụ thể và không phải là môi liên kết giữa các đối tượng mô tả nghiệp vụ
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 lại nó dùng mối kết hợp nhị phân
Xác định mối quan hệ
Xác định mối kết hợp association:
Loại bỏ các mối kết hợp không cần thiết – Ví dụ:
Xác định mối quan hệ
Xác định mối kết hợp association:
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 kết hợp được định nghĩa trong ngữ nghĩa của những mối kết hợp khác (còn gọi là mối kết hợp suy diễn hoặc bắc cầu)
Đặt tới
Liên quan
Từ
0..*
1
0..*
1
0..1
1
Xác định mối quan hệ
Xác định mối kết hợp association:
Xác định bản số cho mối kết hợp: (min, max)
1; 0..1;
1..*;
0..*;
a..* : a là hằng
Gởi tới
0..*
1
Bản số
Xác định mối quan hệ
Xác định mối kết hợp association:
Xác định bản số cho mối kết hợp: (min, max)
Ví dụ:
Là thành phần của
Chứa trong
2..*
1
1..*
1..*
Đặt tới
1
0..*
Xác định mối quan hệ
Xác định mối kết hợp association:
Xác định bản số cho mối kết hợp: (min, max)
Ví dụ: hệ thống ATM
Thuộc
Thuộc
0..*
1
1..*
1
1
1..*
1
1..*
Xác định mối kết hợp
Xác định lớp kết hợp (Association class)
0..*
1..*
0..*
1..*
Xác định mối kết hợp
Xác định lớp kết hợp (Association class)
0..*
1..*
1
1..*
0..*
1
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): Thể hiện quan hệ kế thừa giữa 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:
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 này đến lớp ban đầu
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):
Tiếp cận top-down – ví dụ:
GiaoDịch
GiaoDịchRút
GiaoDịchGởi
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.
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):
Tiếp cận top-down – ví dụ: phức tạp
Nhân viên
Thư Ký
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):
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
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):
Tiếp cận bottom-up – ví dụ:
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
Tiếp cận bottom-up – ví dụ:
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
Xác định sự tương quan:
(complete, disjoint)
(incomplete, disjoint)
(complete, overlapping)
(incomplete, overlapping)
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
Xác định sự tương quan: - ví dụ
(incomlete, disjoint)
Thư Ký
(incomplete, overlapping)
(incomplete)
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
Vấn đề đa thừa kế:
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)
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 thành phần (a-part-of, aggregration)
Đặ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
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 thành phần (a-part-of, aggregration)
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
1
1..*
1
1
1
1
4..8
1
1
1..*
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 thành phần (a-part-of, 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
1
1..*
0..1
0..1
0..1
0..1
0..*
0..*
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 thành phần (a-part-of, aggregration)
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
1
0..*
1
0..*
Lớp vật lý
Lớp khái niệm
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 thành phần
Ví dụ: hệ thống ATM
Thuộc
Thuộc
0..*
1
1..*
1
1
1..*
1
1..*
Chương 7 – Phân tích đối tượng hệ thống
Sơ đồ lớp
Các cách tiếp cận xác định lớp
Xác định mối quan hệ giữa các lớp
Xác định thuộc tính và hành vi của lớp
Xác định thuộc tính
Câu hỏi:
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 đ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
Không quan tâm đến các thuộc tính mô tả cài đặt của đối tượng
Xác định 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ả các use case có liên quan đến lớp Khách Hàng như là: “Đăng nhập”, “Xử lý PIN không hợp lệ”. Các thuộc tính của lớp khách hàng như sau:
Xác định thuộc tính
Ví dụ: hệ thống ATM
Xác định method
Câu hỏi:
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?
Nguyên tắc:
Tên: động từ + bổ 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
Xác định method
Xác định method qua phân tích hoạt động use case:
Phân tích các dòng message trong sơ đồ tuần tự để xem có thể chuyển một hoạt động thành một method không?
Nếu có, đặt tên cho method ứng với hoạt động đó
Xác định method
Xác định method qua phân tích hoạt động use case:
Ví dụ: lớp TàiKhoản
Rút Tiền
Gửi Tiền
Xem thông Tin Tài Khoản
: KháchHàng
: MáyATM
: TàiKhoản
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
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
Use case Rút Tiền
Xác định method
Xác định method qua phân tích hoạt động use case:
Ví dụ: lớp TàiKhoản
Rút Tiền
Gửi Tiền
Xem thông Tin Tài Khoản
: KháchHàng
: MáyATM
: TàiKhoản
Yêu cầu số tiền
Nhập số tiền
Xử lý giao tác gửi
Giao tác thành công
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
TàiKhoản
sốTàiKhoản
loạiTàiKhoản
sốDư
rútTiền()
Use case Rút Tiền
gửiTiền()
xemTàiKhoản()
Xác định method
Ví dụ: hệ thống ATM
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
Bài tập
Xây dựng sơ đồ lớp cho các bài toán:
Quản lý thuê văn phòng cao ốc
Quản lý hợp động công ty SGM
Diễn đàn trao đổi học tập khoa CNTT
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Đinh Văn Đông
Dung lượng: |
Lượt tài: 4
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)