KWIC
- Trong bài báo của mình (1972) David Parnas đã đề xuất vấn đề sau
- Hệ thống chỉ mục KWIC (Từ khóa trong ngữ cảnh) chấp nhận một tập hợp các dòng có thứ tự; mỗi dòng là một tập hợp từ có thứ tự và mỗi từ là một tập ký tự có thứ tự. Bất kỳ dòng nào cũng có thể được “dịch chuyển theo hình tròn” bằng cách liên tục loại bỏ từ đầu tiên và nối nó vào cuối dòng. Hệ thống chỉ mục KWIC đưa ra danh sách tất cả các dịch chuyển tròn của tất cả các dòng theo thứ tự bảng chữ cái.
- (Về Tiêu chí được sử dụng trong Phân tích Hệ thống thành Mô-đun /On the Criteria to be Used in Decomposing Systems into Modules – thảo luận về các quyết định thiết kế quan trọng ảnh hưởng đến cách chúng ta mô-đun hóa hệ thống phần mềm của mình)
Các giải pháp kiến trúc cho KWIC
- Chương trình chính và các chương trình con, với dữ liệu được chia sẻ
- Các kiểu dữ liệu trừu tượng
- Hệ thống dựa trên sự kiện
- Pipe-and-filter
Các vấn đề về thiết kế KWIC
- Thay đổi trong thuật toán xử lý
- Dịch chuyển dòng trên mỗi dòng sau khi nó được đọc, trên tất cả các dòng sau khi chúng được đọc hoặc theo yêu cầu
- Thay đổi trong biểu diễn dữ liệu
- Cải tiến chức năng hệ thống
- Hiệu suất
- Tái sử dụng
Chương trình chính / Chương trình con với dữ liệu được chia sẻ
- Vấn đề được phân tách theo 4 chức năng cơ bản
- Nhập, chuyển, sắp xếp thứ tự bảng chữ cái, đầu ra
- Các thành phần được điều phối bởi chương trình chính tuần tự thông qua chúng
- Dữ liệu trong bộ nhớ dùng chung
- Giao tiếp: giao thức đọc-ghi không bị giới hạn
- Bộ điều phối đảm bảo tuần tự truy cập vào dữ liệu
Dữ liệu được chia sẻ, ưu và nhược điểm
- Ưu điểm
- Dữ liệu có thể được trình bày hiệu quả
- Trực quan hấp dẫn
- Nhược điểm
- Khả năng sửa đổi
- Thay đổi định dạng dữ liệu ảnh hưởng đến tất cả các thành phần
- Thay đổi thuật toán xử lý tổng thể
- Cải tiến chức năng hệ thống
- Việc sử dụng lại không dễ thực hiện
- Khả năng sửa đổi
Các kiểu dữ liệu trừu tượng (ADT)
- Bộ năm mô-đun tương tự, có giao diện
- Dữ liệu không được chia sẻ bởi các thành phần tính toán
- Được truy cập thông qua giao diện
ADT, ưu và nhược điểm
- Ưu điểm
- Phân rã logic thành các mô-đun xử lý tương tự như dữ liệu được chia sẻ
- Có thể thay đổi thuật toán / dữ liệu trong các mô-đun riêng lẻ mà không ảnh hưởng đến những mô-đun khác
- Tái sử dụng tốt hơn (mô-đun có ít giả định hơn về các mô-đun khác)
- Nhược điểm
- Nâng cao chức năng
- Sửa đổi các mô-đun hiện có -> không tốt cho tính đơn giản, toàn vẹn
- Thêm mô-đun mới -> hình phạt về hiệu suất
- Nâng cao chức năng
Dựa trên sự kiện
- Dữ liệu được chia sẻ làm cơ chế tích hợp
- Nhiều giao diện dữ liệu trừu tượng hơn
- Dữ liệu được truy cập dưới dạng danh sách / tập hợp
- Các phép tính được gọi ngầm khi dữ liệu được sửa đổi
- Thêm dòng -> sự kiện gửi đến mô-đun chuyển đổi
- Dịch chuyển vòng tròn được tạo ra trong một kho dữ liệu dùng chung khác – > sự kiện sang sắp xếp thứ tự bảng chữ cái, được gọi
Dựa trên sự kiện, ưu và nhược điểm
- Ưu điểm
- Dễ dàng cải tiến chức năng
- Có thể thay đổi dữ liệu
- Tái sử dụng
- Nhược điểm
- Khó kiểm soát thứ tự xử lý của các mô-đun được gọi ngầm
- Biểu diễn dữ liệu sử dụng nhiều không gian hơn
Đường ống và bộ lọc
- Bốn bộ lọc
- Đầu vào, dịch chuyển, sắp xếp thứ tự bảng chữ cái, đầu ra
- Xử lý dữ liệu và gửi dữ liệu đến bộ lọc tiếp theo
- Điều khiển phân tán
- Chia sẻ dữ liệu
- Chỉ truyền dữ liệu trên đường ống
Ống và bộ lọc, ưu và nhược điểm
- Ưu điểm
- Duy trì luồng xử lý trực quan
- Hỗ trợ tái sử dụng
- Dễ dàng thêm các chức năng mới
- Có thể sửa đổi được
- Nhược điểm
- Không thể sửa đổi thiết kế để có được hệ thống tương tác
- Dữ liệu được sao chép giữa các bộ lọc -> không gian sử dụng không hiệu quả
Comparison
Shared data | ADT | Event-based | Pipe and filter | |
Changes in the processing algorithm | – | – | + | + |
Changes in the data representation | – | + | – | – |
Enhancement to system function | + | – | + | + |
Performance | + | + | – | – |
Reuse | – | + | – | + |