Bài giảng Phân tích thiết kế hướng đối tượng - Chương 4: Phân tích và thiết kế hệ thống ở trạng thái tĩnh - Lê Thị Minh Nguyên

• Quá trình trên cần được lặp lại • Ta cần phân tích và bổ sung thêm các lớp ngoài các danh từ đã được nêu trực tiếp trong bảng mô tả mà ta thấy cần thiết • Quá trình bổ sung này thường được thực hiện song song với giai đoạn phân tích động (Dynamic Analysis)

pdf14 trang | Chia sẻ: huongthu9 | Lượt xem: 420 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Phân tích thiết kế hướng đối tượng - Chương 4: Phân tích và thiết kế hệ thống ở trạng thái tĩnh - Lê Thị Minh Nguyên, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
8/30/2017 1 Chương 4. Phân tích và thiết kế hệ thống ở trạng thái tĩnh GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn Phân tích thiết kế hướng đối tượng 1 Nội dung 1. Giới thiệu 2. Lớp, đối tượng 3. Cách tiếp cận xác định lớp 4. Lớp và đối tượng trong UML 5. Mối kết hợp (quan hệ) 6. Phân tích tĩnh Phân tích thiết kế hướng đối tượng 2 1. Giới thiệu • Trong quá trình mô hình hóa yêu cầu (chương 3), chúng ta tập trung vào “what” và bỏ qua “how” • Vấn đề còn tồn tại ở các bước xác định yêu cầu đã thực hiện vẫn chưa cho ta thấy một bức tranh hoàn chỉnh về phần mềm mà ta cần xây dựng. • Với từng Use case chúng ta phân tích thiết kế ở trạng thái tĩnh và động Phân tích thiết kế hướng đối tượng 3 2. Đối tượng (Object) • Một đối tượng là một khái niệm, một sự trừu tượng hay là một sự vật (thing) có ranh giới rõ ràng và có ý nghĩa cho một ứng dụng. • Một đối tượng có • Trạng thái (State) • Hành vi (Behavior) • Định danh (Identity) Phân tích thiết kế hướng đối tượng 4 8/30/2017 2 2. Lớp (Class) • Một lớp là một lời miêu tả của một nhóm các đối tượng có chung thuộc tính, chung phương thức (ứng xử), chung các mối quan hệ với các đối tượng khác và chung ngữ nghĩa (semantic). • Lớp là một khuôn mẫu để tạo ra đối tượng • Ký hiệu: Phân tích thiết kế hướng đối tượng 5 3. Cách tiếp cận xác định lớp 3.1. Tiếp cận theo cụm danh từ 3.2. Tiếp cận theo phân loại 3.1. Tiếp cận theo cụm danh từ • Ý 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ừ • Các cụm danh từ được xem như là ứng viên của lớp • Phân thành 3 loại • Class giả tạo sẽ được bỏ đi 3.1. Tiếp cận theo cụm danh từ 8/30/2017 3 3.1. Tiếp cận theo cụm danh từ • Xác định các class trong hệ thống ATM, các cụm danh từ tìm được 3.1. Tiếp cận theo cụm danh từ • Loại bỏ lớp giả 3.1. Tiếp cận theo cụm danh từ • Đồng nhất các ứng viên trùng lắp 3.1. Tiếp cận theo cụm danh từ • Xác định danh từ, cụm danh từ có thể là thuộc tính: • Chỉ sử dụng như giá trị • Không có nhiều hơn một đặc trưng riêng, hoặc chỉ một đặc trưng của đối tượng khác 8/30/2017 4 3.1. Tiếp cận theo cụm danh từ • Loại bỏ các ứng viên không mục tiêu hoặc không thuộc phạm vi của 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 3.1. Tiếp cận theo cụm danh từ • 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 khóa 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ý giao dịch tài khoản • Tài khoản: mô hình hóa 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ả giao tác của khách hàng khi sử dụng ATM. Lưu giữ thời gian, ngày, loại, số tiền, và số dư. 3.2. 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ụ: phương pháp, hiệu băng, mô hình • Lớp sự kiện (event): • Lớp sự kiện là các thời đ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ý, hóa đơn, đơn hàng , phiếu nhập 3.2. 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 vai trò khác nhau của người dùng trong việc tương tác với hệ thống. • Ví dụ: sinh viên, khách hàng, giáo viên, nhân viên. • Vị trí (place): các vị trí vật lý mà hệ thống mô tả thông tin về nó • Ví dụ: tòa nhà, kho, văn phòng, chi nhánh, đại lý • Lớp sự vật hữu hình và thiết bị: lớp các đối tượng 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. 8/30/2017 5 3.2. 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: 3.2. 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ị 4. Lớp và đối tượng trong UML • UML thể hiện lớp bằng hình chữ nhật có 3 phần. • Phần thứ nhất chứa tên lớp. • Phần thứ hai là thuộc tính và các dữ liệu thành phần • Phần thứ ba là các phương thức hay hàm thành phần của lớp. Phân tích thiết kế hướng đối tượng 19 Visibility Public Protected Private Name Attribute Operation Lớp và đối tượng trong UML Phân tích thiết kế hướng đối tượng 20 8/30/2017 6 Các nhóm lớp • Ba nhóm lớp cơ sở sử dụng trong pha phân tích là • Boundary: lớp biên (giao diện) • Dành cho lớp nằm trên biên hệ thống với thế giới còn lại • Chúng có thể là form, report, giao diện với phần cứng như máy in, scanner... • Khảo sát biểu đồ UC để tìm kiếm lớp biên Phân tích thiết kế hướng đối tượng 21 Các nhóm lớp • Ba nhóm lớp cơ sở sử dụng trong pha phân tích là • Boundary • Entity: lớp thực thể • Lớp thực thể là lớp lưu trữ thông tin sẽ ghi vào bộ nhớ ngoài • Tìm chúng trong luồng sự kiện và biểu đồ tương tác • Thông thường phải tạo ra bảng CSDL cho lớp loại này • Mỗi thuộc tính của lớp thực thể sẽ là trường trong bảng CSDL • Control: 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 • Thông thường mỗi UC có một lớp điều khiển • Nó không thực hiện chức năng nghiệp vụ nào • Các lớp điều khiển khác: điều khiển sự kiện liên quan đến an ninh và liên quan đến giao dịch CSDL Phân tích thiết kế hướng đối tượng 22 5. Mối kết hợp (Association) • Mối kết hợp (Association): là quan hệ ngữ nghĩa được thiết lập giữa hai hay nhiều lớp, biểu diễn bởi những thành phần sau: • Tên quan hệ • Vai trò quan hệ Tên vai trò Bản số Phân tích thiết kế hướng đối tượng 23 Biểu diễn Ý nghĩa Unspecified 1 chính xác 1 0..* 0 hoặc nhiều * 0 hoặc nhiều 1..* 1 hoặc nhiều 0..1 0 hoặc 1 2..4 Specified Range 2, 4..6 Multiple, Disjoint Ranges Mối kết hợp (Association) Phân tích thiết kế hướng đối tượng 24 8/30/2017 7 Mối kết hợp (Association) Phân tích thiết kế hướng đối tượng 25 Lớp kết hợp • Lớp kế hợp (Association Classes): khi một mối kết hợp có các đặc trưng (thuộc tính, hoạt động, và các mối kết hợp), chúng ta tạo một lớp để chứa các thuộc tính đó và kết nối với mối kết hợp, lớp này được gọi là lớp kết hợp Phân tích thiết kế hướng đối tượng 26 Mối kết hợp thành phần • Aggregation là kết hợp giữa tổng thể và bộ phận (Whole Parts) • Trong quan hệ này, một lớp biểu diễn cái lớn hơn còn lớp kia biểu diễn cái nhỏ hơn • Biểu diễn quan hệ has-a • Một đối tượng của lớp tổng thể có nhiều đối tượng của lớp thành phần • Có 2 loại quan hệ thành phần: • Tụ hợp • Gộp Phân tích thiết kế hướng đối tượng 27 Mối kết hợp thành phần • Tụ hợp • Tổng thể và bộ phận có thể hủy bỏ vào thời điểm khác nhau • Tên khác: quan hệ tụ hợp bởi tham chiếu (by reference) Phân tích thiết kế hướng đối tượng 28 8/30/2017 8 Mối kết hợp thành phần • Gộp: là dạng đặc biệt (mạnh hơn) của quan hệ tụ hợp • Tổng thể và thành phần được hình thành hay hủy bỏ vào cùng thời điểm • Tên khác: quan hệ tụ hợp bởi giá trị (by value) Phân tích thiết kế hướng đối tượng 29 Mối kết hợp tổng quát hóa (Generalization) • Mối kết hợp tổng quát hóa (Generalization): là mối kết hợp được thiết lập giữa một lớp tổng quát hơn đến một lớp chuyên biệt. Quan hệ này dùng để phân loại một tập hợp đối tượng thành những loại xác định hơn mà hệ thống cần làm rõ ngữ nghĩa Phân tích thiết kế hướng đối tượng 30 Kết hợp đa kế thừa • Không khuyến khích vì phức tạp Phân tích thiết kế hướng đối tượng 31 Kết hợp OR Phân tích thiết kế hướng đối tượng 32 8/30/2017 9 Xác định mối kết hợp Phân tích thiết kế hướng đối tượng 33 ??? 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 ở các giai đoạn tiếp theo) • Không quá quan tâm về việc phải khám phá hết các thuộc tính Phân tích thiết kế hướng đối tượng 34 Xác định thuộc tính Phân tích thiết kế hướng đối tượng 35 Xác định phương thức • 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ổ từ • Chỉ quan tâm tới các phương có phạm vi toàn cục (public), các phương thức có phạm vi cục bộ (private) sẽ được phát hiện trong giai đoạn thiết kế cài đặt • Các phương thức 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 ghi. Phân tích thiết kế hướng đối tượng 36 8/30/2017 10 Xác định phương thức • Xác định phương thức qua hoạt động use case • Phân tích các dòng thông điệp 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 phương thức ứng với hoạt động đó Phân tích thiết kế hướng đối tượng 37 Xác định phương thức Phân tích thiết kế hướng đối tượng 38 6. Phân tích tĩnh 1. Xác định các lớp 2. Xác định quan hệ giữa các lớp 3. Xây dựng biểu đồ lớp 4. Xác định thuộc tính lớp 5. Cập nhật bảng thuật ngữ và các yêu cầu phi chức năng (Tùy chọn) Phân tích thiết kế hướng đối tượng 39 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 40 Bước 1: Xác định các lớp: • Không phải là công việc dễ dàng • Quá trình lặp đi lặp lại • Danh sách lớp sẽ thay đổi theo thời gian • Thông thường ban đầu người ta sẽ xây dựng các lớp ứng viên (candidate class) • Các lớp này là các danh từ được trích ra từ các use case scenarios 8/30/2017 11 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 41 Bước 1: Xác định các lớp: Các danh từ là lớp ứng viên  Tác nhân (Actor): sinh viên, giảng viên, thành viên, ...  Đối tượng cụ thể trong mô tả hệ thống: tín chỉ, môn học, ...  Biên (Boundary): giao diện interface (như giao diện nhập thông tin môn học)  Một số kiểu dữ liệu thông dụng 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 42 Bước 1: Xác định các lớp – VD: “FastData, Inc. employees may order office supplies via the Internal Web and receive a receipt confirming the order. The order must include the user name, user password, account number, and the list of supplies. A receipt must be generated containing an order number, ship date, and total cost. If the order is valid, it must be entered into an order database. If the order is invalid, an error message must be generated.” 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 43 Bước 1: Xác định các lớp – VD: “FastData, Inc. employees may order office supplies via the Internal Web and receive a receipt confirming the order. The order must include the user name, user password, account number, and the list of supplies. A receipt must be generated containing an order number, ship date, and total cost. If the order is valid, it must be entered into an order database. If the order is invalid, an error message must be generated.” 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 44 Bước 1: Xác định các lớp: Loại bỏ bớt các thành phần trong lớp ứng viên  Các danh từ nằm ngoài miền ứng dụng  Các danh từ trừu tượng (sẽ thành các thuộc tính cho các lớp)  Các danh từ bị trùng lắp 8/30/2017 12 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 45 Bước 1: Xác định các lớp: Các thành phần nằm trong lớp ứng viên  employee  item  receipt  order  order database  error message 1. Xác định các lớp Phân tích thiết kế hướng đối tượng 46 Bước 1: Xác định các lớp: 2. Xác định quan hệ giữa các lớp Phân tích thiết kế hướng đối tượng 47 Bước 2: Xác định quan hệ giữa các lớp  Quan hệ: Association, Aggregation, Composition  Quan hệ: Generalization, Realization  Quan hệ: Dependency 2. Xác định quan hệ giữa các lớp Phân tích thiết kế hướng đối tượng 48 8/30/2017 13 3. Xây dựng biểu đồ lớp Phân tích thiết kế hướng đối tượng 49 4. Xác định thuộc tính lớp Phân tích thiết kế hướng đối tượng 50 Một số kinh nghiệm khi thiết kế: Phân tích thiết kế hướng đối tượng 51 • Tên lớp, tên diagram cần rõ ràng, có ý nghĩa • Các thành phần và quan hệ cần xác định trước • Ứng với từng class: trong giai đoạn phân tích chỉ cần xác định các thuộc tính quan trọng nhất • Sử dụng “Comment” mỗi khi cần Một số kinh nghiệm khi thiết kế: Phân tích thiết kế hướng đối tượng 52 • Quá trình trên cần được lặp lại • Ta cần phân tích và bổ sung thêm các lớp ngoài các danh từ đã được nêu trực tiếp trong bảng mô tả mà ta thấy cần thiết • Quá trình bổ sung này thường được thực hiện song song với giai đoạn phân tích động (Dynamic Analysis) 8/30/2017 14 Phân tích thiết kế hướng đối tượng 53

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_phan_tich_thiet_ke_huong_doi_tuong_chuong_4_phan_t.pdf