Software Design Project Phase 2 Team 1 Lisa














- Slides: 14

Software Design Project Phase 2 Team 1: Lisa Anthony Luiza da Silva Erik Hayes Diana Tetelman

Outline of Discussion l Overview l l Data Structure changes l l l Implicit Shift Storage Input Filter (as a VM concept) Style Updates + New Structure Diagrams l l Review predictions from Phase 1 Implicit Invocation Pipe-and-Filter Object Oriented Comparison of changeability Conclusions about our designs, styles in general

Phase 1 Predictions: Extensibility & Contractability l Object-Oriented: easiest to extend/subset l l l Pipe-and-Filter: l l l 2 nd level of “uses” hierarchy are all independent Promotes reuse Contraction easy Extension not so easy Implicit Invocation: l l Not at all easy Difficult to coordinate new threads and redefine pipes

Changes Needed For Implicit Shift Storage l l l Data structure modifications confined to Object. Collection Most changes internal Two additional methods l l l Change in interface Required slight modifications to the Shifter classes in each style Original design flexible enough to allow this modification with little exterior impact Sentence. Collection extends Object. Collection contains KWICRow

Changes Needed For Noise Words Filter l l l Data structure modifications confined to Sentence. Collection Most changes internal One additional method l l l Change in interface External modification only needed to take advantage of filter Layering of data structure provided easy and transparent modification Sentence. Collection extends Object. Collection contains KWICRow

Implicit Invocation KWIC Uses Diagram instantiates Shifter Sorter Output Main Input implements creates manipulates Sentence. Collection extends iterates KWICListener KWICBroadcaster extends Object. Collection receives/ sends contains KWICRow KWICEvent

II Modules Affected by Data Representation Changes instantiates Shifter Sorter Output Main Input implements creates manipulates Sentence. Collection extends iterates KWICListener KWICBroadcaster extends receives Object. Collection contains KWICRow receives/ sends affected by index based storage affected by filter addition KWICEvent

Pipe and Filter KWIC Uses Diagram instantiates Shifter Sorter Output Input manipulates iterates fills Sentence. Collection extends Object. Collection contains KWICRow Main instantiates

PNF Modules Affected by Data Representation Changes instantiates Shifter Sorter Output Input manipulates iterates fills Main Noise sets noise filter instantiates Sentence. Collection extends Object. Collection contains KWICRow affected by index based storage affected by filter addition

Object Oriented KWIC Uses Diagram instantiates Shifter Sorter Output manipulates Sentence. Collection extends Object. Collection contains KWICRow Main Input instantiates

OO Modules Affected by Data Representation Changes instantiates Shifter Sorter Output manipulates Main Input instantiates Sentence. Collection extends Object. Collection contains KWICRow affected by index based storage affected by filter addition

Which was easiest to change? Style Noise Words Filter Implicit Shift Storage Implicit Invocation 4 2 Pipe-and. Filter 3 2 Object Oriented 2 2 Number of modules changed in each style l OO easiest to change: l l l Fewer modules affected by each change Reuse of original Input module for input of noise words to filter Implicit Storage addition affected each the same due to centralized data structure

Analysis of Designs & Styles Style Pluses Minuses Implicit Invocation • None of mid-level modules communicate • Central point of control • Mechanism for adding new events requires new handlers for messages Pipe-and-Filter • Did not have to change any original modules • Object Oriented • Very generic • Least effort involved in changes ? ? True PNF using streams would have been a little different • Would have needed to change Shifter (as in II)

Conclusions l We like OO. Robust. l Reusable. l Changeable. l Maintainable. l Generic and flexible. Specific Phase 2 weren’t seriously considered in our predictions in Phase 1 l l l May have made some changes easier if we had.