Categories
Software Architecture

Một Số Nghiên Cứu Điển Hình 1: KWIC

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

KWIC: Giải pháp dữ liệu được chia sẻ.

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

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

KWIC: Giải pháp ADT.

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

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

KWIC: Giải pháp dựa trên sự kiện.

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

KWIC: Giải pháp luồng dữ liệu.

Ố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 dataADTEvent-basedPipe and filter
Changes in the processing algorithm++
Changes in the data representation+
Enhancement to system function+++
Performance++
Reuse++

Leave a Reply

Your email address will not be published. Required fields are marked *