CYBERMINER WEB SEARCH ENGINE

Slides:



Advertisements
Similar presentations
SOFTWARE ARCHITECTURE FOR CYBERMINER GLOBAL 14. Agenda Problem, Process and Solution Phase-wise Discussion o Requirements Analysis o Architecture o Quality.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
 2005 Pearson Education, Inc. All rights reserved Introduction.
Hestia: Aarthi Giridharan Govindarajan Panneerselvam Nirmal Chander Shesha Chandrika Moka Sriram Rajendran Suryanarayanan Ganesh Melarkode Vignesh Swaminathan.
ECE122 L4: Creating Objects February 8, 2007 ECE 122 Engineering Problem Solving with Java Lecture 4 Creating and Using Objects.
1 L41 Collections (1). 2 OBJECTIVES  What collections are.  To use class Arrays for array manipulations.  To use the collections framework (prepackaged.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Architectural styles and Case studies 1 | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS.
Spring 2009CS 225 Introduction to Software Design Chapter 1.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to Classes and Objects Outline Introduction Classes, Objects, Member Functions and Data.
KWIC Project – Part 1 Mini-Project to Evaluate Architectural Patterns(Styles) Carl Chesser Ji Li EECS 761.
Software Development Stephenson College. Classic Life Cycle.
CPSC 410: Software Architectural Style (Part I) By the end of this lecture, you will be able to: list various software architectural styles describe advantages.
1 On the Criteria To Be Used in Decomposing Systems into Modules by D.L.Parnas Dec presented by Yuanhua Qu for spring 2003 CS5391.
Java Programming, 3e Concepts and Techniques Chapter 3 Section 65 – Manipulating Data Using Methods – Java Applet.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Lecture 2 Introductory Case Studies Topics Architectural Styles Key Word In Context (KWIC) Other Cases Studies Evolution of Software Engineering January.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
SE: CHAPTER 7 Writing The Program
Slides prepared by Rose Williams, Binghamton University ICS201 Lecture 13 : Swing I King Fahd University of Petroleum & Minerals College of Computer Science.
Methods in Java. Program Modules in Java  Java programs are written by combining new methods and classes with predefined methods in the Java Application.
Java™ How to Program, 10/e © Copyright by Pearson Education, Inc. All Rights Reserved.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Java Applets: GUI Components, Events, Etc. Ralph Westfall June, 2010.
Model View Controller MVC Web Software Architecture.
HR for XML WebService -- Week 2 System Design Phase Smartest Fish.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
SOFTWARE ARCHITECTURE FOR A KWIC SYSTEM TEAM: GLOBAL 14.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
OCR Software Architecture for Embedded Device Seho Kim', Jaehwa Park Computer Science, Chung-Ang University, Seoul, Korea
“Architecture” The outcome of top-level design, reflecting principal design decisions Can (and should) be modified and updated Analogous to architecture.
Architectural Patterns Support Lecture Patterns Pattern: A representation of a proven solution. Problem Applicable Forces Solution Consequences Benefits.
Comparing Designs By Chris McCall. Comparing Designs A decision-making method for deciding between many designs for a single specification Provides a.
 2005 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Keyword In Context Presented by Team 2 Francisco Soria Zhiyu Zhang Xuheng Xu Irene Peysakhov.
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
KWIC example The KWIC [key word in context] system accepts an ordered set of lines; each line is an ordered set of words, and each word is an ordered set.
Modular Event Handling
Introduction Many Java application use a graphical user interface or GUI (pronounced “gooey”). A GUI is a graphical window or windows that provide interaction.
Lecture 10 Collections Richard Gesick.
Architecture Brief Pepper
Introduction to Classes and Objects
“Form Ever Follows Function” Louis Henri Sullivan
SOFTWARE DESIGN AND ARCHITECTURE
Java Programming: Guided Learning with Early Objects
Chapter 7 Top-Down Development
C Language VIVA Questions with Answers
Introduction to PL/SQL
Stack ADT & Modularity 2 implementations of the Stack abstract data type: Array Linked List Program design: modularity, abstraction and information hiding.
VISUAL BASIC.
Chapter 6 Methods: A Deeper Look
Review of Arrays and Pointers
Object Oriented Programming in java
Software models - Software Architecture Design Patterns
On the Criteria To Be Used in Decomposing Systems into Modules D. L
Data Structures (CS212D) Week # 2: Arrays.
Introduction to Data Structure
Object Oriented Programming in java
CyberMiner Software Architecture Group
Final Project Presentation
PHASE 1 - PRESENTATION Presented By - Karthik Kannambadi Sridhar
CS/SE ADVANCED SOFTWARE ARCHITECTURE AND DESIGN FALL 2015
Arrays.
Presentation transcript:

CYBERMINER WEB SEARCH ENGINE Muaz Jamshed Russell Elliott Joseph Martinez

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

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

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

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

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

Requirements of CYBERMINER Functional Requirements Non-Functional Requirements SOFTWARE ARCHITECTURE

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

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

Functional Requirements Cont. The URL part syntax is URL ::= ’http://’ 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

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

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

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

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

CYBERMINER Design Diagram SOFTWARE ARCHITECTURE

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

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

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

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

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

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

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

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

SOFTWARE ARCHITECTURE Cyberminer System LineStorage CircularShift AlphabeticShift Miner SOFTWARE ARCHITECTURE

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

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

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

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

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

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

SOFTWARE ARCHITECTURE Conclusion SOFTWARE ARCHITECTURE