Bài giảng Phân tích thiết kế hệ thông - Chương 3: Mô hình hóa các khái niệm sử dụng mô hình domain - Từ Thị Xuân Hiền

Mô hình hóa phạm vi bài toán (domain modeling)

Mục tiêu của mô hình hóa là để hiểu rõ hệ thống làm việc như thế nào

Phân tích yêu cầu là xác định cách mà người dùng sẽ tương tác với hệ thống (hành vi bên ngoài)

Domain model xác định cách mà các yếu tố bên trong của hệ thống tương tác với nhau (hành vi bên trong) để thực hiện các hành vi bên ngoài.

 

pptx 52 trang yennguyen 6960
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích thiết kế hệ thông - Chương 3: Mô hình hóa các khái niệm sử dụng mô hình domain - Từ Thị Xuân Hiền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phân tích thiết kế hệ thông - Chương 3: Mô hình hóa các khái niệm sử dụng mô hình domain - Từ Thị Xuân Hiền

Bài giảng Phân tích thiết kế hệ thông - Chương 3: Mô hình hóa các khái niệm sử dụng mô hình domain - Từ Thị Xuân Hiền
Chương 3 Mô hình hóa các khái niệm sử dụng mô hình domain 
Mô hình hóa phạm vi bài toán (domain modeling) 
Mục tiêu của mô hình hóa là để hiểu rõ hệ thống làm việc như thế nào 
Phân tích y êu cầu là xác định cách mà người dùng sẽ tương tác với hệ thống (hành vi bên ngoài) 
Domain model xác định cách mà các yếu tố bên trong của hệ thống tương tác với nhau (hành vi bên trong ) để thực hiện các hành vi bên ngoài . 
Mô hình hóa phạm vi bài toán (domain modeling) 
Mô hình hóa phạm vi bài toán dựa trên các yếu tố 
Hiểu biết về các h oạt động mà hệ thống phải thực hiện (từ phân tích yêu cầu, ví dụ, use case ) 
Tìm hiểu về phạm vi bài toán (domain ) 
Kiến thức cơ bản về thiết kế phần mềm 
Những kinh nghiệm về thiết kế phần mềm của những dự án trước 
Use Cases và Domain Model 
Trong phân tích use case, hệ thống được xem như một hộp đen “ black box ”, xem xét các hành vi bên ngoài hệ thống 
Trong phân tích domain , hệ thống được xem như một hộp trong suốt “ transparent box ”, xem xét cấu trúc bên trong hệ thống 
Domain model 
Domain model là một đại diện trực quan của các lớp khái niệm (conceptual classes), các đối tượng và mối quan hệ giữa chúng trong phạm vi bài toán. 
Domain model là thành phần quan trọng nhất được tạo ra trong giai đoạn phân tích hướng đối tượng, là cơ sở cho việc thiết kế phần mềm 
Domain model còn được gọi là conceptual models , domain object model hoặc analysis object model . 
Domain model trong UML 
Trong U ML , domain model được biểu diễn bằng một tập hợp các sơ đồ lớp (class diagram) , trong đó chỉ h iển thị: 
Đ ối tượng hoặc các lớp khái niệm 
Các mối quan hệ giữa các lớp khái niệm 
C ác thuộc tính của các lớp khái niệm 
Domain model trong UML 
Ví dụ: domain model của một phần trong hệ thống ATM 
Các bước xây dựng Domain Model 
Tìm các lớp khái niệm trong phạm vi bài toán 
Chuẩn bị từ điển dữ liệu 
Tìm các mối quan hệ giữa các lớp hoặc các đối tượng . 
Xác định lượng số ( Multiplicity ) của loại đối tượng tham gia vào mối quan hệ 
Tìm các thuộc tính của các đối tượng. 
Tổ chức và đơn giản hóa các lớp bằng cách sử dụng tính kế thừa. 
Lớp khái niệm - Conceptual Classes 
Lớp khái niệm là những ý tưởng, sự vật hoặc đối tượng trong phạm vi bài toán. 
Lớp khái niệm có 3 phần: 
Symbol : biểu diễn bằng hình chữ nhật 
Intension : Định nghĩa lớp khái niệm (conceptual class). 
Extension : thể hiện của một lớp. 
Lớp khái niệm - Conceptual Classes 
Một lớp là một tập các đối tượng có cùng các thuộc tính, hành vi /trách nhiệm, mối quan hệ và ngữ nghĩa. 
Xác định các đối tượng được sử dụng để xác định các lớp khái niệm trong phạm vi bài toán. 
Lớp khái niệm có thể là: 
Các đối tượng doanh nghiệp ( Business objects ) 
Đối tượng trong thế giới thực ( Real world objects ) 
Những sự kiện xãy ra ( Events that transpire ) 
Cách xác định lớp khái niệm 
Có 2 cách để xác định các lớp khái niệm : 
Xác định các cụm danh từ 
Sử dụng một danh mục lớp khái niệm . 
Xác định cụm danh từ 
Cụm danh từ có thể được xác định từ các nguồn: 
Mô tả phạm vi bài toán 
Trong đ ặc tả use case, t ìm kiếm các cụm danh từ có liên quan . 
Danh mục các thuật ngữ 
Cụm danh từ có thể là lớp khái niệm cũng có thể là thuộc tính 
Nếu cụm danh từ lưu thông tin trạng thái hoặc nó có nhiều hành vi, thì đó là một lớp 
Nếu chỉ là một số hoặc một chuỗi, thì đó nó có thể là một thuộc tính 
Xác định cụm danh từ 
Ví dụ: mô tả một phần hoạt động rút tiền từ ATM 
ATM kiểm tra số thẻ của khách hàng và mã PIN . 
Nếu đúng , thì khách hàng có thể kiểm tra số dư trong tài khoản , và rút tiền mặt . 
Nếu k iểm tra số dư , thì ATM h iển thị số dư trong tài khoản . 
Nếu rút tiền mặt thì ATM yêu cầu khách hàng nhập số tiền , ATM kiểm tra số tiền rút < số dư trong tài khoản . Nếu thỏa thì ATM xuất tiền mặt và cập nhật lại số dư 
ATM in số dư trong tài khoản của khách hàng trên biên nhận . 
Sử dụng danh mục lớp khái niệm 
Danh mục lớp khái niệm 
Ví dụ 
Đối tượng vật lý hoặc hữu hình 
Khách hàng, máy ATM 
Thông số kỹ thuật, hoặc mô tả sự vật 
Thông số kỹ thuật sản phẩm, Mô tả chuyến bay 
Nơi chốn 
Cửa hàng, sân bay 
Giao dịch 
Giao dịch rút tiền , thanh toán 
Vai trò của con người 
Thủ quỹ, phi công 
Hệ thống máy tính hoặc điện tử 
Hệ thống chức thực thẻ thanh toán, hệ thống kiểm soát không lưu 
Danh mục 
Danh mục sản phẩm, danh mục phòng ban 
Tổ chức 
Bộ phận bán hàng, hãng hàng không 
Xác định lớp khái niệm ứng viên 
Từ việc phân tích các cụm danh từ và danh mục các lớp khái niệm, tạo ra danh sách lớp k hái niệm ứng viên , bằng cách: 
Loại bỏ các cụm danh từ trùng lắp, không liên quan đến vấn đề đang phân tích 
Xem xét việc rút gọn các lớp dựa trên tính kế thừa 
Từ điển dữ liệu 
Chuẩn bị một từ điển dữ liệu cho tất cả các yếu tố trong mô hình bao gồm: 
Mô tả phạm vi của các lớp trong các vấn đề hiện tại, gồm tất cả các giả định hoặc ràng buộc. 
Mô tả các mối quan hệ, các thuộc tính, các hoạt động và các giá trị kiểu liệt kê 
Từ điển dữ liệu 
Tài khoản (Account) 
ATM 
Ngân hàng (Bank) 
Thẻ rút tiền (CashCard) 
Số dư 
Tên ngân hàng 
 Mã PIN 
Nhân viên NH 
Khách hàng 
Giao dịch 
Biên lai 
Ngày thực hiện giao dịch 
Loại giao dịch 
Ví dụ: Từ điển dữ liệu trong hệ thống ATM 
Xác định lớp khái niệm ứng viên 
Từ việc phân tích các cụm danh từ và danh mục các lớp khái niệm, tạo ra danh sách lớp k hái niệm ứng viên , bằng cách: 
Loại bỏ các cụm danh từ trùng lắp, không liên quan đến vấn đề đang phân tích 
Xem xét việc rút gọn các lớp dựa trên tính kế thừa 
Xác định lớp khái niệm ứng viên 
Biểu diễn lớp trong UML : có dạng hình chữ nhật có 3 ngăn chứa 3 loại thông tin: 
Tên lớp 
Danh sách các thuộc tính 
Danh sách các hoạt động (hành vi – phương thức) 
Tên lớp 
Thuộc tính 
Hành vi 
Xác định lớp khái niệm ứng viên 
Tài khoản (Account) 
ATM 
Ngân hàng (Bank) 
Thẻ rút tiền (CashCard) 
Nhân viên NH 
Khách hàng 
Giao dịch 
Biên lai 
Ví dụ: các lớp khái niệm ctrong hệ thống ATM 
Xác định lớp khái niệm ứng viên 
Biểu diễn các lớp trong domain model – chỉ có tên lớp 
Tìm mối quan hệ 
Có thể tìm mối quan hệ giữa những đối tượng hoặc khái niệm dựa vào danh mục các loại mối quan hệ sau: 
Danh mục 
Ví dụ 
A là thành phần vật lý của B 
Máy bay – Cánh máy bay 
A là thành phần logic của B 
Môn học – Học kỳ 
A được chứa trong B 
Hành khách - máy bay 
A là thành phần logic chứa trong B 
Sản phẩm – Danh mục sản phẩm 
Chuyến bay – lịch trình chuyến bay 
A là một chi tiết trong giao dịch với B 
Giao dịch – nhật ký giao dich 
Hóa đơn – chi tiết hóa đơn 
Tìm mối quan hệ 
Danh mục 
Ví dụ 
A là thành phần của B 
Ngân hàng – Nhân viên ngân hàng 
Phi công – hãng hàng không 
A sử dụng hoặc quản lý B 
Thủ quỹ- sổ s ách, Phi công - Máy bay 
A giao tiếp với B 
Khách hàng - Thu ngân 
A có liên quan đến giao dịch với B 
Khách hàng - Thanh toán, hành khách- Vé 
A là thuộc sở hữu của B 
Máy tính tiền – Cửa hàng, Máy bay - hãng hàng không 
A là một sự kiện liên quan đến B 
Bán hàng - Khách hàng, Bán hàng - Cửa hàng 
Khởi hành - Chuyến bay 
Tìm mối quan hệ 
Bài tập: Tìm các mối quan hệ trong domain của hệ thống ATM 
Khách hàng - ? 
Nhân viên ngân hàng - ? 
ATM - ? 
Thẻ ATM - ? 
Roles 
Quan hệ giữa hai lớp được ký hiệu trong UML là một đường nối 2 lớp, tại hai đầu của đường nối thường được gán Role. Role bao gồm một trong các tùy chọn sau: 
Lượng số của các đối tượng tham gia (multiplicity ) 
Tên của của quan hệ 
Điều hướng (navigability) 
Xác định lượng số tham gia (Multiplicity) 
Multiplicity : là số đối tượng của một lớp tham gia vào mối quan hệ. 
Với mỗi quan hệ, có 2 thông số multiplicity được tạo ở hai đầu của mối quan hệ. 
Các loại chỉ số tham gia của các đối tượng trong mối quan hệ 
Xác định lượng số tham gia (Multiplicity) 
Ví dụ: trong hệ thống ATM 
Một khách hàng có thể có nhiều thẻ ATM , một thẻ ATM chỉ thuộc 1 khách hàng 
Một thẻ ATM ứng với một tài khoản thuộc một ngân hàng , một ngân hàng có thể có nhiều thẻ rút tiền. 
Một nhân viên NH thuộc một ngân hàng, một ngân hàng có thể có nhiều nhân viên. 
Một ngân hàng có thể có nhiều ATM, một ATM chỉ thuộc 1 ngân hàng 
Xác định lượng số tham gia (Multiplicity) 
Ví dụ: Biểu diễn mối quan hệ và lượng số tham gia của các lớp trong domain model của hệ thống ATM 
Bài tập 
Hệ thống đặt vé máy bay, được mô tả như sau : 
Một chuyến bay ( flight) có thể liên quan đến nhiều chặng dừng ( stopovers) tại sân bay. 
Một điểm dừng có thời gian đến (arrival time) và thời gian khởi hành (departure time ) 
Bài tập 
Hãy xác định multiplicity trong mô domain model sau: 
Tên của mối quan hệ 
Tên của mối quan hệ dựa trên định dạng TypeName-VerbPhrase-TypeName, là một chuỗi có thể đọc được và mang ý nghĩa trong ngữ cảnh của domain model. 
Ví dụ: 
Tên của mối quan hệ 
Loại quan hệ giữa các lớp 
Quan hệ kết hợp – Association: có 2 loại 
Aggregation 
Composition 
Quan hệ khái quát và kế thừa - Generalization 
Quan hệ giữa các lớp 
Quan hệ kết hợp loại Aggregation 
Một lớp là danh mục hoặc chứa các lớp khác 
Còn gọi là quan hệ “Has a” 
Chu trình sống của Lớp được chứa không phụ thuộc vào Lớp chứa . 
Nếu L ớp chứa bị hủy thì các Lớp được chứa vẫn tồn tại 
Ký hiệu trong UML 
Ví dụ: 
Quan hệ giữa các lớp 
Quan hệ kết hợp loại Composition 
Là một quan hệ kết hợp mạnh “ owns a ” 
Một lớp bao gồm một danh mục các lớp khác 
Chu trình sống của Lớp được chứa phụ thuộc vào Lớp chứa . 
Nếu hủy Lớp chứa thì các Lớp được chứa sẽ bị hủy theo . 
Ký hiệu trong UML 
Ví dụ: 
Quan hệ giữa các lớp 
Quan hệ tổng quát và kế thừa - Generalization 
Những đặc điểm chung của các lớp được đặt trong lớp cha gọi là lớp tổng quát, mỗi lớp con chỉ chứa những đặc riêng của nó. Quan hệ giữa lớp cha và lớp con gọi là quan hệ tổng quát 
Ký hiệu trong UML 
Ví dụ: 
Xác định thuộc tính của lớp 
Thuộc tính : 
Mô tả trạng thái của các đối tượng tại một thời điểm 
Là các giá trị dữ liệu thuần túy. 
Thuộc tính phải chứa thông tin của hệ thống đang xây dựng 
Có kiểu dữ liệu nguyên thủy (number, string, ) 
Xác định thuộc tính của lớp 
Phân biệt Lớp (class) và thuộc tính (attribute) 
Nếu một thực thể có thuộc tính mô tả chính nó thì đó là một Lớp 
Nếu một thực thể không có thuộc tính mô tả chính nó thì nó chính là một thuộc tính. 
Biểu diễn thuộc tính trong domain model 
Thuộc tính của lớp được đặt trong ngăn thứ hai của ký hiệu Lớp trong UML 
Tên lớp 
Thuộc tính 
Xác định thuộc tính của lớp 
Thuộc tính thường có các kiểu dữ liệu nguyên thủy: 
Boolean, Date, Number, String (Text), Time 
Ví dụ: Tài khoản , có thông tin mô tả: Số tài khoản, số dư 
 Tài khoản là một Lớp , và Số tài khoản, số dư là thuộc tính 
Xác định thuộc tính của lớp 
Lưu ý : 
Không sử dụng thuộc tính để duy trì mối quan hệ giữa các lớp 
Không có thuộc tính khóa ngoại trong domain model 
Các lỗi khi xác định lớp khái niệm 
Lỗi thường gặp khi tạo domain model là sự nhầm lẫn giữa lớp khái niệm và thuộc tính. 
Ví dụ : domain model của hệ thống đặt vé máy bay. Đ iểm đến ( destination ) là một thuộc tính của chuyến bay ( Flight ), hay là một lớp khái niệm Sân bay ( Airport ) riêng biệt? 
Các lỗi khi xác định lớp khái niệm 
Nguyên tắc: 
Nếu một sự vật trong thế giới thực không được xem như một số hoặc text, và có nhiều thông tin mô tả thì đó là lớp khái niệm . Ngược lại, thì đó là thuộc tính 
Ví dụ: Điểm đến ( destination ) không là thuộc tính mà là một lớp khái niệm Sân bay (Airport) riêng biệt 
Bài tập 
Từ mô tả hệ thống máy rút tiền tự động ATM, hãy vẽ sơ đồ lớp ở mức phân tích, gồm: 
Các lớp khái niệm 
Thuộc tính của lớp 
Mối quan hệ giữa các lớp 
Xác định lượng số tham gia của các đối tượng vào mối quan hệ giữa các lớp 
 Các quy tắc hoạt động trong sơ đồ use case (OPERATION CONTRACTS ) 
Các quy tắc (Contracts) 
Sơ đồ Use case mô tả đầy đủ các hành vi của hệ thống, nhưng không mô tả chi tiết. 
Domain model : mô tả trực quan các lớp khái niệm hoặc các đối tượng trong phạm vi của vấn đề đan gquan tâm. 
Các quy tắc ( contracts) mô tả chi tiết hành vi của hệ thống về những thay đổi trạng thái của các đối tượng trong Domain Model sau khi hoạt động của hệ thống được thực hiện . 
Các quy tắc hoạt động giúp xác định hành vi của hệ thống 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
44 
Các quy tắc (Contracts) 
Các quy tắc dùng định nghĩa các hoạt động của hệ thống 
Các hoạt động mà trong đó, hệ thống được xem như một hộp đen , xử lý các sự kiện tương tác với hệ thống thông qua giao diện chung . 
Ví dụ: quy tắc của hoạt động rút tiền qua ATM 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
45 
Các phần trong quy tắc 
Hoạt động (Operation): tên của hoạt động và các tham số 
Tham chiếu (References): các use case mả hoạt động này có thể xãy ra 
Tiền điều kiện (Preconditions): 
Trạng thái của hệ thống hoặc các đối tượng trong domain model trước khi hoạt động được thực hiện 
Hậu điều kiện (Postconditions): 
Trạng thái của các đối tượng trong Domain Model sau khi hoạt động được thực thi thành công. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
46 
Các phần trong quy tắc 
Lưu ý: 
Các hậu điều kiện mô tả những thay đổi trạng thái của các đối tượng trong Model Domain. 
Sự thay đổi trạng thái của Domain Model bao gồm : 
C ác phần tử được tạo ra 
C ác mối quan hệ được hình thành hoặc phá hủy 
C ác thuộc tính thay đổi. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
47 
Các phần trong quy tắc 
Ví dụ: quy tắc của hoạt động rút tiền từ ATM 
Hoạt động : rút tiền, tham số: Số PIN, số tiền cần rút 
Tham chiếu : use case rút tiền bằng thẻ ATM 
Tiền điều kiện : Nhập số PIN thành công, tài khoản có đủ tiền, ATM phải có tiền. 
Hậu điều kiện của hoạt động rút tiền: 
Số tiền trong tài khoản giảm một số = số tiền rút, (trạng thái của tài khoải bị thay đổi) 
Một biên lai giao dịch được tạo ra (thực thể mới), liên quan đến Tài khoản và ATM. (domain model thay đổi) 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
48 
Cập nhật domain model từ các quy tắc 
Trong quá trình tạo các quy tắc hoạt động của hệ thống, sẽ khám phá các lớp khái niệm, thuộc tính, hoặc các mối quan hệ mới trong domain model. 
Hậu điều kiện trong các quy tắc thường hỗ trợ việc phân tích, chi tiết và chính xác. 
Từ các mô tả chi tiết trong các quy tắc, việc cập nhật domain model được lặp nhiều lần trong suốt giai đoạn phân tích. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
49 
Sử dụng quy tắc 
Nếu Use case model chứa đầy đủ tất cả các yêu cầu chức năng chi tiết để cung cấp cho việc thiết kế hệ thống thì không cần các quy tắc. 
Quy tắc được dùng trong những tình huống mà các trạng thái của các yêu cầu thay đổi chi tiết và phức tạp khó nắm bắt trong use case. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
50 
Sử dụng quy tắc 
Ví dụ : trong hệ thống đặt vé của h ãng hàng không , hoạt động đặt vé addNewReservat i on có độ phức tạp cao liên quan đến tất cả các đối tượng trong domain model: 
Thay đổi trạng thái của domain model 
Tạo thêm đối tượng trong domain model 
Trong trường hợp này cần phải viết các quy tắc để mô tả chi tiết hoạt động đặt vé để xác định các đối tượng liên quan. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
51 
Các quy tắc và các hoạt động  (Contracts, Operations) 
Các quy tắc (Contract) 
Tiền điều kiện và hậu điều kiện trong quy tắc dùng để xác định hoạt động của các đối tượng. 
H oạt động (Operation): 
Những yêu cầu hoặc truy vấn mà một đối tượng có thể được gọi để thực hiện 

File đính kèm:

  • pptxbai_giang_phan_tich_thiet_ke_he_thong_chuong_3_mo_hinh_hoa_c.pptx