National University of Singapore

 

Department of Information Systems and Computer Science

 

 

IC4262: Software Architecture and Design

 

  

KWIC Design and Implementation:

Project Report

 

Group :

Good Luck

Students :

Qi Xinzhi

Wang Hao

Zhang Yi

Zhao Xiangpeng

Date :

October 1, 1997

 

 

 

1. Introduction

As described by Parnas, "The KWIC index system accepts an order set of lines; each line is an ordered set of words, and each word is an ordered set of characters. Any line may be ‘circularly shifted’ by repeatedly removing the first word and appending it at the end of the line. The KWIC index system outputs a listing of all circular shifts of all lines in alphabetical order."[1]

 

KWIC, which can be implemented as a small system, is widely used as a teaching device in software engineering. Meanwhile, practical instances of it are widely used by computer scientists, like the "permuted" index for the Unix Man pages.

 

In this project, the following four different architectural solutions to KWIC are emphasized.

    1. Main program/subroutine style
    2. Object-oriented style
    3. Implicit invocation style
    4. Pipes and filters style

 

Our main objectives are:

 

In next chapter, we outline the initial project plan and actual project schedule. In chapter 3, we analyze possible variations and future changes in KWIC system. In chapter 4, we present our uniform software description conventions. Then we describe each version of the KWIC system in chapter 5. We conclude this report by evaluating four versions of KWIC system and describing our findings in chapter 6.

 

Download the whole report in word 7.0 format.