Presentation is loading. Please wait.

Presentation is loading. Please wait.

CYBERMINER WEB SEARCH ENGINE

Similar presentations


Presentation on theme: "CYBERMINER WEB SEARCH ENGINE"— Presentation transcript:

1 CYBERMINER WEB SEARCH ENGINE
Muaz Jamshed Russell Elliott Joseph Martinez

2 SOFTWARE ARCHITECTURE
Outline Introduction Requirement Specification CYBERMINER Architecture Specification Java Applet Specification SOFTWARE ARCHITECTURE

3 SOFTWARE ARCHITECTURE
Introduction What is CYBERMINER Requirements of CYBERMINER Functional Requirements Non-Functional Requirements SOFTWARE ARCHITECTURE

4 SOFTWARE ARCHITECTURE
What is CYBERMINER A Web Search Engine Search the websites for the users KWIC system will be integrated with CYBERMINER web search engine to perform the search on the keywords enter by the user SOFTWARE ARCHITECTURE

5 SOFTWARE ARCHITECTURE
KWIC System The KWIC Software System is an index system accepts an ordered set of lines Any line shall be “circularly shifted” by repeatedly removing the first word and appending it to the end of the line SOFTWARE ARCHITECTURE

6 SOFTWARE ARCHITECTURE
Outline Introduction Requirement Specification CYBERMINER Architecture Specification Java Applet Specification SOFTWARE ARCHITECTURE

7 Requirements of CYBERMINER
Functional Requirements Non-Functional Requirements SOFTWARE ARCHITECTURE

8 Functional Requirements
CYBERMINER shall accept a list of keywords CYBERMINER shall return a list of URLs whose descriptions contain any of the given keywords CYBERMINER shall use another software system, KWIC index system, to maintain a database of URLs and descriptions SOFTWARE ARCHITECTURE

9 Functional Requirements Cont.
KWIC shall accept an order set of lines Each line consist of two parts URL part Descriptor part SOFTWARE ARCHITECTURE

10 Functional Requirements Cont.
The URL part syntax is URL ::= ’ identifier ‘.’ identifier ‘.’ identifier ‘.’ [‘edu’ | ‘com’ | ‘org’ | ‘net’] identifier ::= {letter|digit}+ letter ::= [‘a’ | ‘b’ | ‘c’| ….|’Y’| ‘Z’] digit ::= [ ‘1’ | ‘2’| ‘3’| ‘4’ |….|’9’| ‘0’] The descriptor part, whose syntax is: identifier {“ “ identifier}*. SOFTWARE ARCHITECTURE

11 Functional Requirements Cont.
The descriptor part of any line will be “circularly shifted” by repeatedly removing the first word and appending it at the end of the line. The KWIC index system will output a list of all circular shifts of the descriptor parts of all the lines in alphabetically ascending order, together with their corresponding URLs SOFTWARE ARCHITECTURE

12 Non-Functional Requirements
CYBERMINER system shall be Easily understandable Portable Reusable Enhanceable User-friendly Adaptable SOFTWARE ARCHITECTURE

13 SOFTWARE ARCHITECTURE
Outline Introduction Requirement Specification CYBERMINER Architecture Specification Java Applet Specification SOFTWARE ARCHITECTURE

14 CYBERMINER System Architecture
The CYBERMINER system is an extension of the KWIC System The KWIC System uses the abstract data type architecture Therefore the CYBERMINER system also uses the abstract data type architecture SOFTWARE ARCHITECTURE

15 CYBERMINER Design Diagram
SOFTWARE ARCHITECTURE

16 CYBERMINER System Architecture
Style: Abstract Data Type (ADT) Components: Objects and Data Constraints: Different components access data with each other by invoking the interface provided with each module. SOFTWARE ARCHITECTURE

17 SOFTWARE ARCHITECTURE
Miner Module Miner Module void setKeywords(String keywords) Divides the search string into a list of words and stores this list in an array String getSummary() Compares the words in the array created by the setKeywords operation to the original lines Returns any matching lines and their associated URLs. SOFTWARE ARCHITECTURE

18 Advantages of ADT Architecture
Every module is independent Modifiability Algorithms and data representation can be changed in one module without affecting other modules Enhanceability Enhancements can be added to a module without affecting other modules SOFTWARE ARCHITECTURE

19 Disadvantages of ADT Architecture
Space Requirements: since every module needs a copy of the data it works with Response Time: each module reconstructs the whole architecture for itself to operate SOFTWARE ARCHITECTURE

20 Alternatives to the CYBERMINER Software System
Data Share Architecture Advantages: Space requirements are minimal Disadvantages: Modifiability and Reusability are poor SOFTWARE ARCHITECTURE

21 Alternatives to the CYBERMINER Software System
Implicit Invocation Architecture Advantages: Algorithms are easily modified and do not affect other modules Disadvantages: Response time due to triggering and larger space requirements SOFTWARE ARCHITECTURE

22 Alternatives to the CYBERMINER Software System
Pipe and Filter Architecture Advantages: Process and data representation independence between modules Disadvantages: Inefficient use of space and difficult to enhance features or support an interactive system SOFTWARE ARCHITECTURE

23 SOFTWARE ARCHITECTURE
Outline Introduction Requirement Specification CYBERMINER Architecture Specification Java Applet Specification SOFTWARE ARCHITECTURE

24 SOFTWARE ARCHITECTURE
Cyberminer System LineStorage CircularShift AlphabeticShift Miner SOFTWARE ARCHITECTURE

25 SOFTWARE ARCHITECTURE
Cyberminer UML Declare GUI objects Declare KWIC system LineStorage CircularShift AlphabeticShift Declare Miner Search class init() method from the applet class is used to initialize the variables and the system actionPerformed() uses the actionListeners from within init() to perform the individual tasks of submitting URL/Descriptors, clearing the inputArea, and searching for the given keywords Cyberminer - inputArea: TextArea - outputArea: TextArea - submitButton: Button - clearButton: Button - s: String: - keywords: String - searchLabel: Label - inputField: TextField - searchButton: Button - summaryArea: TextArea - ls: LineStorage - cs: CircularShift - as: AlphabeticShift - m: Miner - output: ArrayList - aslines: ArrayList + init(): void + actionPerformed(ae: ActionEvent): void SOFTWARE ARCHITECTURE

26 SOFTWARE ARCHITECTURE
LineStorage UML Declare Arraylist to hold lines and descriptions Declare StringTokenizers for lines and words getLines() returns the ArrayList of lines setWords() uses stWords to separate the l-th line getWords() returns the list of descriptions getWordCount() returns number of words in the line LineStorage - lineCount: int - wordCount: int - lines: ArrayList - descriptions: ArrayList - temp: String - stLines: StringTokenizer - stWords: StringTokenizer + getLines(): ArrayList + setWords(l: int): void + getWords(): ArrayList + getWordCount(l: int): int SOFTWARE ARCHITECTURE

27 SOFTWARE ARCHITECTURE
CircularShift UML Declare ArrayList of lines, words, tempWords, shiftedWords, csLines Declare StringTokenizer for words getCircularShifts() returns the ArrayList of circularly shifted lines getCSWords() returns the ArrayList of words for each circularly shifted lines getWordCount() returns the number of words for each circularly shifted lines CircularShift - lines: ArrayList - words: ArrayList - tempWords: ArrayList - shiftedWords: ArrayList - csLines: ArrayList - wordCount: int - stWords: StringTokenizer - temp: String - URL: String + getCircularShifts(): ArrayList + getCSWords(l: int): ArrayList + getWordCount(l: int): int SOFTWARE ARCHITECTURE

28 SOFTWARE ARCHITECTURE
AlphabeticShift UML Declare ArrayList of lines, csLines, asLines setAlphabeticShifts() uses the Collections.sort() to sort the circularshifted lines getAlphabeticShifts() returns the circularly shifted lines in alphabetical order AlphabeticShift - lines: ArrayList - csLines: ArrayList - asLines: ArrayList + setAlphabeticShifts(al: ArrayList): ArrayList + getAlphabeticShifts(): ArrayList SOFTWARE ARCHITECTURE

29 SOFTWARE ARCHITECTURE
Miner Declare ArrayList of indices, wordsToFind, originalLines, URL Declare StringTokenizer for words and lines setKeywords() uses stWords to separate the passed in keywords String getSummary() returns the originalLines associated with the keywords Miner - keywords: String - indices: ArrayList - wordsToFind: ArrayList - originalLines: ArrayList - stWords: StringTokenizer - stLines: StringTokenizer - summary: String - URL: ArrayList - keyword: String + setKeywords(k: String): void + getSummary(): String SOFTWARE ARCHITECTURE

30 SOFTWARE ARCHITECTURE
Screen Shot inputArea submitButton clearButton outputArea inputField searchButton summaryArea SOFTWARE ARCHITECTURE

31 SOFTWARE ARCHITECTURE
Conclusion SOFTWARE ARCHITECTURE


Download ppt "CYBERMINER WEB SEARCH ENGINE"

Similar presentations


Ads by Google