3
3. The author of the paper discussed an example of system decomposition and proposed two modularizations approaches. Comment on the two schemas, and discuss their strength, limits, and completeness Parnas given an example "A KWIC Index production system" for system decomposition, it accepts an ordered set of lines and each line is an ordered set of words; 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 and system outputs a listing of all circular shifts of all lines in alphabetical order. He also proposes two modularization examples that generates KWIC indices, modularization 1 is based on the sequence of steps to perform and modularization 2 is based on the "principle of information hiding". Comparison of Modularizations 1 and 2 are categorized into General, Changeability, Independent Development and Comprehensibility. In General they both share the same data structures, algorithms, runnable representation. Differences are in the way they are divided into work assignments and interfaces between modules. Systems are substantially different even if identical in the runnable representation, runnable representation is used only for running, where other representations are used for changing, documenting, understanding, etc. In changeability the design decisions that may change are input format, all lines are stored in a memory, pack characters 4 to a word, make an index for circular shifts rather than store them, alphabetize once, rather than either search for each item as needed and partially alphabetize, partially search. In modularization1: 1.Input 2.Circular shift 3.Alphabetizing 4.Output 5.Master Control and in Modularization 2: 1.Line storage 2.Input 3.Circular Shift 4.Alphabetizing 5.Output 6.Master Control. X shows that needed in those modules corresponding to each kind of change.

software deisgn methodologies

Embed Size (px)

DESCRIPTION

material for SDM

Citation preview

3. The author of the paper discussed an example of system decomposition and proposed two modularizations approaches. Comment on the two schemas, and discuss their strength, limits, and completeness

Parnas given an example "A KWIC Index production system" for system decomposition, it accepts an ordered set of lines and each line is an ordered set of words; 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 and system outputs a listing of all circular shifts of all lines in alphabetical order. He also proposes two modularization examples that generates KWIC indices, modularization 1 is based on the sequence of steps to perform and modularization 2 is based on the "principle of information hiding".Comparison of Modularizations 1 and 2 are categorized into General, Changeability, Independent Development and Comprehensibility. In General they both share the same data structures, algorithms, runnable representation. Differences are in the way they are divided into work assignments and interfaces between modules. Systems are substantially different even if identical in the runnable representation, runnable representation is used only for running, where other representations are used for changing, documenting, understanding, etc.In changeability the design decisions that may change are input format, all lines are stored in a memory, pack characters 4 to a word, make an index for circular shifts rather than store them, alphabetize once, rather than either search for each item as needed and partially alphabetize, partially search. In modularization1: 1.Input 2.Circular shift 3.Alphabetizing 4.Output 5.Master Control and in Modularization 2: 1.Line storage 2.Input 3.Circular Shift 4.Alphabetizing 5.Output 6.Master Control. X shows that needed in those modules corresponding to each kind of change.ChangeModularization 1Modularization 2

12345123456

1XX

2XXXXXX

3XXXXXX

4XXXX

5XXX

In independent Development, Modularization 1 interfaces between modules are fairly complex and in Modularization 2 interfaces are relatively simple. Therefore independent development modules should begin much earlier.In Comprehensibility, Modularization 1 system will only be comprehensible as a whole and Modularization 2 is more comprehensible, better than Modularization 1.The criteria of decomposition, in modularization1 each major step in the processing was a module and in modularization 2 Information hiding, where each module is characterized by its knowledge of design decisions which it hides from all others and its interface or definition reveal as little as possible about its inter working.Some benefits of good modular design are, in independent development, since each module is independent they can be developed independently at the same time shortened development time. Product flexibility and Reusability modules can be easily modified without affecting the rest of them. More over modules can be easily replaced to add, enhance or change product capabilities. Comprehensibility is easier for programmers to fully understand the design of the entire product by individually studying the modules.Parnas partitioning approach to design of flexible computer systems and this approach does not obsolete other modularity criteria. It is desirable to have small, manageable modules and various design principle should be used in conjunction with Parnas partitioning for best results.

4. Investigate recent researchers and practitioners findings in the area of systems decomposition