OOAD - Mô hình hóa chức năng
Mô hình hóa chức năng cung cấp viễn cảnh quy trình của mô hình phân tích hướng đối tượng và tổng quan về những gì hệ thống phải làm. Nó xác định chức năng của các quy trình nội bộ trong hệ thống với sự hỗ trợ của Sơ đồ luồng dữ liệu (DFDs). Nó mô tả sự dẫn xuất chức năng của các giá trị dữ liệu mà không chỉ ra cách chúng được dẫn xuất khi chúng được tính toán hoặc tại sao chúng cần được tính toán.
Sơ đồ luồng dữ liệu
Mô hình hóa chức năng được biểu diễn thông qua một hệ thống phân cấp các DFD. DFD là một biểu diễn đồ họa của một hệ thống cho thấy các đầu vào của hệ thống, quá trình xử lý các đầu vào, đầu ra của hệ thống cũng như các kho lưu trữ dữ liệu nội bộ. DFD minh họa một loạt các phép biến đổi hoặc tính toán được thực hiện trên các đối tượng hoặc hệ thống, và các điều khiển bên ngoài và các đối tượng ảnh hưởng đến phép biến đổi.
Rumbaugh và cộng sự. đã định nghĩa DFD là, “Sơ đồ luồng dữ liệu là một biểu đồ thể hiện luồng giá trị dữ liệu từ các nguồn của chúng trong các đối tượng thông qua các quá trình biến đổi chúng đến đích trên các đối tượng khác.”
Bốn phần chính của DFD là:
- Processes,
- Luồng dữ liệu,
- Diễn viên và
- Kho dữ liệu.
Các phần khác của DFD là -
- Ràng buộc và
- Kiểm soát lưu lượng.
Các tính năng của DFD
Quy trình
Quy trình là các hoạt động tính toán biến đổi các giá trị dữ liệu. Toàn bộ hệ thống có thể được hình dung như một quy trình cấp cao. Một quá trình có thể được chia thành nhiều thành phần nhỏ hơn. Quy trình cấp thấp nhất có thể là một chức năng đơn giản.
Representation in DFD - Một tiến trình được biểu diễn dưới dạng hình elip với tên được viết bên trong nó và chứa một số giá trị dữ liệu đầu vào và đầu ra cố định.
Example - Hình dưới đây cho thấy một tiến trình Compute_HCF_LCM chấp nhận hai số nguyên làm đầu vào và đầu ra của chúng là HCF (hệ số chung cao nhất) và LCM (bội số chung nhỏ nhất).
Luồng dữ liệu
Luồng dữ liệu thể hiện luồng dữ liệu giữa hai tiến trình. Nó có thể là giữa một tác nhân và một quy trình, hoặc giữa một kho dữ liệu và một quy trình. Luồng dữ liệu biểu thị giá trị của một mục dữ liệu tại một số thời điểm tính toán. Giá trị này không bị thay đổi bởi luồng dữ liệu.
Representation in DFD - Luồng dữ liệu được biểu diễn bằng một cung có hướng hoặc một mũi tên, được gắn nhãn với tên của mục dữ liệu mà nó mang theo.
Trong hình trên, Integer_a và Integer_b đại diện cho các luồng dữ liệu đầu vào cho quá trình, trong khi LCM và HCF là các luồng dữ liệu đầu ra.
Luồng dữ liệu có thể được phân nhánh trong các trường hợp sau:
Giá trị đầu ra được gửi đến một số nơi như thể hiện trong hình sau. Ở đây, các mũi tên đầu ra không được gắn nhãn vì chúng biểu thị cùng một giá trị.
Luồng dữ liệu chứa một giá trị tổng hợp và mỗi thành phần được gửi đến những nơi khác nhau như thể hiện trong hình sau. Ở đây, mỗi thành phần được phân nhánh được gắn nhãn.
Diễn viên
Các tác nhân là các đối tượng hoạt động tương tác với hệ thống bằng cách sản xuất dữ liệu và nhập chúng vào hệ thống, hoặc sử dụng dữ liệu do hệ thống tạo ra. Nói cách khác, các tác nhân đóng vai trò là nguồn và nơi chứa dữ liệu.
Representation in DFD- Một tác nhân được biểu diễn bằng một hình chữ nhật. Các tác nhân được kết nối với các đầu vào và đầu ra và nằm trên ranh giới của DFD.
Example - Hình dưới đây cho thấy các tác nhân, cụ thể là Khách hàng và Sales_Clerk trong hệ thống bán hàng tại quầy.
Kho dữ liệu
Kho dữ liệu là các đối tượng thụ động hoạt động như một kho lưu trữ dữ liệu. Không giống như các diễn viên, họ không thể thực hiện bất kỳ thao tác nào. Chúng được sử dụng để lưu trữ dữ liệu và lấy dữ liệu đã lưu trữ. Chúng đại diện cho cấu trúc dữ liệu, tệp đĩa hoặc bảng trong cơ sở dữ liệu.
Representation in DFD- Một kho dữ liệu được biểu diễn bằng hai đường thẳng song song chứa tên của kho dữ liệu. Mỗi kho dữ liệu được kết nối với ít nhất một quy trình. Mũi tên đầu vào chứa thông tin để sửa đổi nội dung của kho dữ liệu, trong khi mũi tên đầu ra chứa thông tin được truy xuất từ kho dữ liệu. Khi một phần thông tin được truy xuất, mũi tên đầu ra được gắn nhãn. Mũi tên không có nhãn biểu thị việc truy xuất dữ liệu đầy đủ. Mũi tên hai chiều ngụ ý cả truy xuất và cập nhật.
Example- Hình dưới đây cho thấy một kho dữ liệu, Sales_Record, lưu trữ các chi tiết của tất cả các lần bán hàng. Đầu vào cho kho dữ liệu bao gồm các chi tiết về doanh số bán hàng như mặt hàng, số tiền thanh toán, ngày tháng, v.v. Để tìm doanh số bán hàng trung bình, quy trình truy xuất hồ sơ bán hàng và tính giá trị trung bình.
Ràng buộc
Ràng buộc chỉ định các điều kiện hoặc hạn chế cần được thỏa mãn theo thời gian. Chúng cho phép thêm các quy tắc mới hoặc sửa đổi những quy tắc hiện có. Các ràng buộc có thể xuất hiện trong cả ba mô hình phân tích hướng đối tượng.
Trong Mô hình đối tượng, các ràng buộc xác định mối quan hệ giữa các đối tượng. Chúng cũng có thể xác định mối quan hệ giữa các giá trị khác nhau mà một đối tượng có thể nhận vào các thời điểm khác nhau.
Trong Mô hình động, các ràng buộc xác định mối quan hệ giữa các trạng thái và sự kiện của các đối tượng khác nhau.
Trong Mô hình hóa chức năng, các ràng buộc xác định các hạn chế đối với các phép biến đổi và tính toán.
Representation - Một ràng buộc được hiển thị dưới dạng một chuỗi trong dấu ngoặc nhọn.
Example- Hình dưới đây cho thấy một phần của DFD để tính lương của nhân viên của một công ty đã quyết định ưu đãi cho tất cả nhân viên của phòng kinh doanh và tăng lương cho tất cả nhân viên của phòng nhân sự. Có thể thấy rằng ràng buộc {Dept: Sales} gây ra động lực chỉ được tính nếu bộ phận là doanh số bán hàng và ràng buộc {Dept: HR} khiến gia tăng chỉ được tính nếu bộ phận là HR.
Kiểm soát luồng
Một quá trình có thể được liên kết với một giá trị Boolean nhất định và chỉ được đánh giá nếu giá trị là true, mặc dù nó không phải là đầu vào trực tiếp cho quá trình. Các giá trị Boolean này được gọi là các luồng điều khiển.
Representation in DFD - Các luồng điều khiển được biểu diễn bằng một vòng cung chấm chấm từ quá trình tạo ra giá trị Boolean đến quá trình do chúng điều khiển.
Example- Hình dưới đây biểu diễn một DFD cho phép chia số học. Số chia được kiểm tra khác 0. Nếu nó không phải là 0, dòng điều khiển OK có giá trị Đúng và sau đó quá trình Chia sẽ tính Thương số và Phần dư.
Phát triển mô hình DFD của một hệ thống
Để phát triển mô hình DFD của một hệ thống, một hệ thống phân cấp các DFD được xây dựng. DFD cấp cao nhất bao gồm một quá trình duy nhất và các tác nhân tương tác với nó.
Ở mỗi cấp độ thấp hơn kế tiếp, các chi tiết khác dần dần được đưa vào. Một quá trình được phân tách thành các quá trình con, các luồng dữ liệu giữa các quá trình con được xác định, các luồng điều khiển được xác định và các kho lưu trữ dữ liệu được xác định. Trong khi phân rã một quy trình, luồng dữ liệu vào hoặc ra khỏi quy trình phải khớp với luồng dữ liệu ở cấp độ tiếp theo của DFD.
Example- Chúng ta hãy xem xét một hệ thống phần mềm, Phần mềm bán buôn, tự động hóa các giao dịch của một cửa hàng bán buôn. Cửa hàng bán hàng loạt và có lượng khách hàng bao gồm các thương gia và chủ cửa hàng bán lẻ. Mỗi khách hàng được yêu cầu đăng ký với thông tin chi tiết của mình và được cấp một mã khách hàng duy nhất, C_Code. Sau khi bán hàng xong, cửa hàng đăng ký thông tin chi tiết và gửi hàng đi công văn. Mỗi năm, cửa hàng phân phối quà Giáng sinh cho khách hàng, bao gồm một đồng bạc hoặc một đồng vàng tùy thuộc vào tổng doanh số bán hàng và quyết định của chủ sở hữu.
Mô hình chức năng cho Phần mềm Bán buôn được đưa ra dưới đây. Hình dưới đây cho thấy DFD cấp cao nhất. Nó cho thấy phần mềm như một quy trình duy nhất và các tác nhân tương tác với nó.
Các tác nhân trong hệ thống là -
- Customers
- Salesperson
- Proprietor
Trong DFD cấp tiếp theo, như thể hiện trong hình sau, các quá trình chính của hệ thống được xác định, các kho dữ liệu được xác định và sự tương tác của các quá trình với các tác nhân và các kho dữ liệu được thiết lập.
Trong hệ thống, ba quá trình có thể được xác định, đó là -
- Đăng ký khách hàng
- Xử lý bán hàng
- Quà tặng chắc chắn
Các kho dữ liệu sẽ được yêu cầu là -
- Chi tiết khách hàng
- Chi tiết bán hàng
- Chi tiết quà tặng
Hình dưới đây cho thấy các chi tiết của quy trình Đăng ký Khách hàng. Có ba quy trình trong đó, Xác minh chi tiết, Tạo mã C_Code và Cập nhật chi tiết khách hàng. Khi các chi tiết của khách hàng được nhập, chúng sẽ được xác minh. Nếu dữ liệu chính xác, C_Code sẽ được tạo ra và cập nhật thông tin chi tiết về khách hàng trong kho dữ liệu.
Hình sau cho thấy sự mở rộng của quy trình Quà tặng chắc chắn. Nó có hai quy trình trong đó, Tìm tổng doanh số và Quyết định loại đồng xu quà tặng. Quy trình Tìm Tổng doanh số tính toán tổng doanh số hàng năm tương ứng với từng khách hàng và ghi lại dữ liệu. Lấy hồ sơ này và quyết định của chủ sở hữu làm đầu vào, các đồng tiền quà tặng được phân bổ thông qua quy trình Quyết định loại tiền xu quà tặng.
Ưu điểm và nhược điểm của DFD
Ưu điểm | Nhược điểm |
---|---|
DFD mô tả ranh giới của một hệ thống và do đó rất hữu ích trong việc mô tả mối quan hệ giữa các đối tượng bên ngoài và các quá trình bên trong hệ thống. | DFD mất nhiều thời gian để tạo, có thể không khả thi cho các mục đích thực tế. |
Chúng giúp người dùng có kiến thức về hệ thống. | DFD không cung cấp bất kỳ thông tin nào về hành vi phụ thuộc thời gian, tức là, chúng không chỉ định khi nào các phép biến đổi được thực hiện. |
Biểu diễn đồ họa đóng vai trò như một bản thiết kế để lập trình viên phát triển một hệ thống. | Họ không làm sáng tỏ tần suất tính toán hoặc lý do tính toán. |
DFD cung cấp thông tin chi tiết về các quy trình hệ thống. | Việc chuẩn bị các DFD là một quá trình phức tạp cần có chuyên môn đáng kể. Ngoài ra, một người không rành về kỹ thuật cũng khó hiểu. |
Chúng được sử dụng như một phần của tài liệu hệ thống. | Phương pháp chuẩn bị là chủ quan và để lại nhiều phạm vi là không chính xác. |
Mối quan hệ giữa các mô hình đối tượng, động và chức năng
Mô hình Đối tượng, Mô hình Động và Mô hình Chức năng bổ sung cho nhau để có một Phân tích Hướng Đối tượng hoàn chỉnh.
Mô hình hóa đối tượng phát triển cấu trúc tĩnh của hệ thống phần mềm về các đối tượng. Vì vậy, nó cho thấy "những người làm" của một hệ thống.
Mô hình hóa động phát triển hành vi theo thời gian của các đối tượng để phản ứng với các sự kiện bên ngoài. Nó hiển thị trình tự của các hoạt động được thực hiện trên các đối tượng.
Mô hình chức năng cung cấp một cái nhìn tổng quan về những gì hệ thống phải làm.
Mô hình chức năng và mô hình đối tượng
Bốn phần chính của Mô hình chức năng xét về mô hình đối tượng là:
Process - Quy trình bao hàm các phương pháp của các đối tượng cần được thực hiện.
Actors - Các diễn viên là các đối tượng trong mô hình đối tượng.
Data Stores - Đây là các đối tượng trong mô hình đối tượng hoặc thuộc tính của các đối tượng.
Data Flows- Các luồng dữ liệu đến hoặc đi từ các tác nhân đại diện cho các hoạt động trên hoặc bởi các đối tượng. Các luồng dữ liệu đến hoặc từ kho dữ liệu đại diện cho các truy vấn hoặc cập nhật.
Mô hình chức năng và mô hình động
Mô hình động cho biết khi nào các hoạt động được thực hiện, trong khi mô hình chức năng cho biết chúng được thực hiện như thế nào và đối số nào là cần thiết. Vì các tác nhân là các đối tượng hoạt động, mô hình động phải chỉ định khi nào nó hoạt động. Các kho dữ liệu là các đối tượng thụ động và chúng chỉ phản hồi các cập nhật và truy vấn; do đó mô hình động không cần xác định khi nào chúng hoạt động.
Mô hình đối tượng và mô hình động
Mô hình động cho thấy trạng thái của các đối tượng và các hoạt động được thực hiện trên các lần xuất hiện của các sự kiện và các thay đổi tiếp theo của các trạng thái. Trạng thái của đối tượng là kết quả của những thay đổi được hiển thị trong mô hình đối tượng.