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.
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
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:
- bai_giang_phan_tich_thiet_ke_he_thong_chuong_3_mo_hinh_hoa_c.pptx