D) CÁC CÁCH BIỂU DIỄN CỦA MÔ HÌNH PHÂN TÍCH
b. Phân chia module
Sau khi tổ chức hệ thống thành các hệ thống con, giai đoạn tiếp theo của thiết kế kiến trúc
là phân rã các hệthống con thành các module. Có 2 chiến lược cơ bản có thể sử dụng khi phân chia một hệ thống con thành các modules:
- Phân chia hướng đối tượng (Object-oriented decomposition): phân tích hệ thống thành một tập hợp các đối tượng trao đổi thông tin, liên kết với nhau.
- Đường ống hướng chức năng (Function-oriented pipelining): phân tích hệ thống thành các module chức năng theo cơ chế mỗi module nhận dữ liệu đầu vào để xử lý và đưa kết quả ra.
Mô hình hướng đối tượng
Trong mô hình hướng đối tượng, mô hình kiến trúc phân tích hệ thống thành một tập các đối tượng kết hợp với nhau từng đôi một thông qua giao diện được định nghĩa rõ ràng. Các đối tượng gọi các dịch vụ được cung cấp bởi các đối tượng khác.
Sự phân chia hướng đối tượng liên quan đến việc xác định các lớp đối tượng, thuộc tính và các phương thức của nó. Khi được thực hiện, các đối tượng được tạo ra từ các lớp này và một vài mô hình điều khiển được sử dụng để phối hợp các phương thức của đối tượng.
Hình vẽ 6.14 là một ví dụ về mô hình kiến trúc hướng đối tượng của hệ thống xử lý đơn hàng. Hệ thống này có thể tự động chuyển các đơn hàng đến khách hàng, nhận tiền trả và sinh ra
các hóa đơn đã thanh toán, đồng thời có thể ghi nhớ các đơn hàng chưa được thanh toán. Ở đây tác giả đã sử dụng lược đồ UML để biểu diễn quan hệ giữa các lớp. Mỗi lớp có tên, thuộc tính và các phương thức. Lớp Đơn hàng có các phương thức khác nhau để thực hiện các chức năng của hệ thống. Lớp này sẽ tạo ra các phương thức để xử lý các lớp Hóa đơn, Khách hàng và Thanh
toán.
Hình 6.14. Mô hình hướng đối tượng của hệ thống xử lý hóa đơn
Ưu điểm của cách tiếp cận này là các đối tượng được kết nối với nhau một cách lỏng lẻo, vì thế khi một đối tượng thay đổi sẽ không ảnh hưởng nhiều đến các đối tượng khác. Các đối tượng thông thường là các thực thể của hệ thống, vì thế, người ta có thể hiểu chúng một cách nhanh chóng. Bởi các thực thể này được sử dụng trong những hệ thống khác nhau, nên có khả năng tái sử dụng. Các ngôn ngữ lập trình hướng đối tượng ngày các phong phú để hỗ trợ cách tiếp cận này. Khách hàng Mã_khách# Tên_khách Địa_chỉ Kỳ_tín_dụng Thanh toán Mã_đơn# Ngày Tổng_Tiền Mã_khách# Đơn hàng Mã_đơn# Ngày Tổng_Tiền Mã_khách# Xuất ra () Gửi_giấy_nhắc() Hạn_thanh_toán() Gửi hóa đơn()
Hóa đơn Mã_đơn# Ngày Tổng_tiền Mã_khách#
Tuy nhiên, cách tiếp cận hướng đối tượng cũng có những điểm bất lợi. Để sử dụng các dịch vụ, các đối tượng phải tham chiếu một cách rõ ràng đến tên và giao diện của các đối tượng khác. Nếu một giao diện thay đổi, đòi hỏi cả hệ thống phải thay đổi theo, sự thay đổi này còn ảnh hưởng đến cả người sử dụng. Khi các đối tượng có thể liên kết với nhau để thể hiện các thực thể trong thế giới thực, các thực thể phức tạp đôi khi khó trìu tượng hóa thành các đối tượng.
Mô hình luồng dữ liệu (đường ống hướng chức năng)
Trong mô hình đường ống hướng chức năng hay luồng dữ liệu, các bộ biến đổi chức năng xử lý dữ liệu đầu vào và các thủ tục đầu ra. Các luồng dữ liệu chuyển từ nơi này sang nơi khác và được biến đổi liên tục. Mỗi bước trong tiến trình được thực hiện như một bước biến đổi. Luồng dữ liệu vào đi qua bộ biến đổi này sẽ được chuyển thành dữ liệu đầu ra. Sự biến đổi này có thể được thực hiện tuần tự hoặc song song. Dữ liệu có thể được xử lý từng bước hoặc thành từng đợt.
Một ví dụ về kiểu hệ thống ứng dụng kiến trúc này được chỉ ra trong hình 6.15. Một tổ chức phát hành hóa đơn cho khách hàng. Một tuần một lần, việc thanh toán phải được thực hiện hợp lý với các hóa đơn. Với những hóa đơn đã được thanh toán, phải đưa ra giấy biên nhận, với những hóa đơn chưa được thanh toán trong thời gian trả cho phép, thì phải có một lệnh nhắc nhở.
Hình 6.15. Mô hình đường ống chức năng của hệ thống xử lý hóa đơn
Đây mới chỉ là một phần trong hệ thống xử lý hóa đơn: các biến đổi luân phiên có thể được sử dụng để sinh ra các hóa đơn. Mô hình đối tượng trìu tượng hơn vì nó không có những thông tin về các hoạt động tuần tự. Mô hình luồng dữ liệu có các ưu điểm sau:
- Có thể sử dụng lại các bộ biến đổi (transformation).
- Trực quan khi nhiều người nghĩ công việc của họ là xử lý dữ liệu đầu vào để thu được kết quả ở đầu ra.
- Cải tiến hệ thống bằng việc bổ xung thêm những bộ biến đổi mới sẽ không phức tạp.
- Đơn giản đối với những hệ thống song song cũng như tuần tự. Đơn hàng Xác định các thanh toán Thanh toán Lập hóa đơn Tìm đơn hàng
quá hạn Gửi giấy nhắc Đọc vào các
đơn hàng
Giấy nhắc Hóa đơn
6.3. THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
6.3.1. Một số đặc điểm cơ bản của thiết kế hướng đối tượng