24
Global 14 Cyberminer WRS Document v1.2 CS/SE 6362 Advanced Software Architectural Design (Spring 2011) Cyberminer WRS Document Submitted to: Dr. Lawrence Chung Associate Professor, Department of Computer Science, The University of Texas at Dallas, Richardson, TX -75080 Team Name: Global 14 Date Version Description Author 1/30/2011 1.0 Initial draft Global 14 4/25/2011 1.1 Updated draft Global 14 4/26/2011 1.2 Formatted document Caitlin Fowler

chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

  • Upload
    lehanh

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

Page 1: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

CS/SE 6362 Advanced Software Architectural Design (Spring 2011)

Cyberminer

WRS DocumentSubmitted to:

Dr. Lawrence ChungAssociate Professor,

Department of Computer Science,The University of Texas at Dallas,

Richardson, TX -75080

Team Name: Global 14

Date Version Description Author

1/30/2011 1.0 Initial draft Global 14

4/25/2011 1.1 Updated draft Global 14

4/26/2011 1.2 Formatted document Caitlin Fowler

Team Website:http :// utdallas . edu /~ sas 071100/ SAD /

Page 2: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Table of Contents1. Introduction.............................................................................................................................................4

1.1 Project Overview...............................................................................................................................4

1.2 Purpose..............................................................................................................................................4

1.3 Scope.................................................................................................................................................4

2. Issues.......................................................................................................................................................4

2.1 Issues with the Functional Requirements..........................................................................................4

2.11 OFR1............................................................................................................................................4

2.12 OFR2............................................................................................................................................5

2.13 OFR3............................................................................................................................................6

2.14 OFR4............................................................................................................................................6

2.15 OFR5............................................................................................................................................7

2.16 OFR6............................................................................................................................................7

2.17 OFR7............................................................................................................................................7

2.18 OFR8............................................................................................................................................8

2.19 OFR9............................................................................................................................................8

2.10 OFR10..........................................................................................................................................9

2.11 OFR11........................................................................................................................................10

2.12 OFR12........................................................................................................................................10

2.13 OFR13........................................................................................................................................11

2.14 OFR14........................................................................................................................................12

2.15 OFR15........................................................................................................................................12

2.16 OFR16........................................................................................................................................12

2.2 Issues with the Non- Functional Requirements...............................................................................13

2.21 ONR1..........................................................................................................................................13

2.22 ONR2..........................................................................................................................................13

2.23 ONR3..........................................................................................................................................13

2.24 ONR4..........................................................................................................................................14

2.25 ONR5..........................................................................................................................................14

2.26 ONR6..........................................................................................................................................14

2.27 ONR7..........................................................................................................................................15

Page 3: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

2.28 ONR8..........................................................................................................................................15

3. Improved Understanding.......................................................................................................................16

Page 4: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

1. Introduction

1.1 Project Overview“As system/software architects of a renowned company, your team is to architect a web search engine,Cyberminer, using the simple KWIC software system which you implemented as part of Project I. For this part of the project, you will use an Object-Oriented architectural style, and build a Java applet (or an equivalent), which should be accessible through your team’s web page.” – Project Summary Document.

1.2 PurposeThe product described within this document is Version 1.0 of the CyberMiner Software System. This system is uses the KWIC system in the back end to implement a search engine.

1.3 ScopeAlthough CyberMiner, will for the most basic parts, behave like conventional search engines (e.g. Google) it’s scope shall differ slightly. The search results will be based either on data that has been previously stored in the application’s database or data that is input by some other users. No real life crawling of live websites shall be implemented for time and complexity reasons.

2. IssuesThe Project Summary Document gives a list of Functional and Non-Functional requirements that CyberMiner is required to meet. The following sections describe the issues that our team found with each class of requirement. Each requirement is restated and is followed by the list of of issues that are considered relevant. For each issue discussed, a list of possible solutions is considered, one of which is finally selected based on some stated rationale.

2.1 Issues with the Functional Requirements

2.11 OFR1Cyberminer shall accept a list of keywords and return a list of URLs whose descriptions contain any of the given keywords.

Issue 1: It is not clear where will input be accepted from.

Option 1: Input will be accepted from the keyboard (via an input text field) only.

Option 2: Input will be accepted from input files only.

Option 3: Input will be accepted from both the keyboard and input files.

Page 5: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Choice/Rationale: Option 1 will be implemented, as search engines are typically driven by a user’s keyboard input.

Issue 2: It is not clear what languages will be supported.

Option 1: Only English will be supported.

Option 2: Languages other than English which read from left to right and which contain space as a delimiter between words will be supported.

Option 3: All languages will be supported

Choice/Rationale: Option 1 will be implemented, this increases the speed with which our team will be able to deliver the product. If necessary, support for other languages can be implemented later.

2.12 OFR2Cyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs and the corresponding descriptions.

Issue 1: The mode of interaction between the two systems needs to be determined.

Option 1: Cyberminer will access the database provided by KWIC.

Option 2: Cyberminer will implement the complete functionality of the KWIC system as a subset of Cyberminer’s functionality.

Option 3: Cyberminer will take input from the user and send this behind the scenes to the KWIC system. The KWIC system will use this to search it’s database and return the search results back to Cyberminer which will then display them to the user.

Choice/Rationale: The team decided on Option 3 based on information given to us regarding the required implementation of the KWIC system.

Issue 2: How does the KWIC system efficiently maintain a database of URL’s?

This questions seems to have multple parts. First of all is the database persistent or transient and how will cyberminer access the database? By persistent I mean either an SQL (or equivalent) database or a file will retain the information outside of the KWIC system and allow access to the database even if the KWIC system is not running. The transient approach could be that the KWIC system would hold only those descriptor URL pairs in memory while the process was running. Cyberminer could then access the information through IPC (or equivalent).

Option 1: A persistent SQL Database will be appended to by the KWIC system. Cyberminer will perform searches on that database. The word efficiently refers to the efficient accessibility and control of the data within the database. Under this definition an SQL database makes the most sense.

Page 6: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Option 2: A transient database held in KWIC accessed through Cyberminer by IPC. The word efficiently refers to the scale of effort it takes to implement. Considering the use of the system it makes since that a persistent database is overkill for something where simple IPC could implement much more easily.

Choice/Rationale: The team selected Option 2 to satisfice the need for ‘efficiency’, and to aid in ease of implementation.

Issue 3: What exactly does the word “efficiently” mean?

Option 1: The word efficiently refers to the efficient accessibility and control of the data within the database

Option 2: Efficiently refers to the space taken up by the database to store the data.

Option 3: Rather than search the database of URL and descriptions every time there is a search, we might maintain an index of all the URLs in the database. In this case, the KWIC system will only need to look through this index in a linear manner while searching for terms.

Choice/Rationale: Option 3 was selected on the grounds that a linear search will be straightforward and deliver results quickly.

2.13 OFR3The KWIC system shall accept an ordered set of lines, where each line consists of two parts:

• The URL part, whose syntax is:

URL ::= ‘http://’ identifier ‘.’ Identifier ‘.’ [‘edu’ | ‘com’ | ‘org’ | ‘net’]

identifier ::= {letter | digit}+

letter ::= [ ‘a’ | ‘b’ | … | ‘y’ | ‘z’ | ‘A’ | ‘B’ | … | ‘Y’ | ‘Z’]

digit ::= [‘1’ | ‘2’ | … | ’9’ | ‘0’]

• The descriptor part, whose syntax is:

identifier {‘ ‘ identifier}*

2.14 OFR4The descriptor part of any line shall be “circularly shifted” by repeatedly removing the first word and appending it at the end of the line.

Page 7: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

2.15 OFR5The KWIC index system shall output a listing of all circular shifts of the descriptor parts of all lines in ascending alphabetical order, together with their corresponding URLs.

2.16 OFR6No line in the output list shall start with any noise word such as “a”, “the”, and “of”.

Issue 1: We need to determine a basis for defining what might constitute a noise word (“the”, for example, might be an acronym for “The Higher Education” to some user and is not necessarily always a noise word when considered within the context of a search engine)

Option 1: The set of words considered ‘noise’ will be [a, an, the, A, An, The, AN, THe, THE, of, Of, OF]. Thus, we assume that these keywords will never be terms that the user is interested in searching for.

Option 2: The set of words considered ‘noise’ will be [a, an, the, of, is, at, to, for, and].

Choice/Rationale: The team selected Option 2. These are fairly common words that it is unlikely users will be interested in.

2.17 OFR7The KWIC system shall allow for two modes of operation: i) for building an initial KWIC indices; and ii) for growing the indices with later additions.

Issue 1: Where are the shifted URL’s sent to or stored?

Option 1: Onscreen.

Option 2: The database as the key to be mapped URL.

Option 3: Session or ViewState variable

Choice/Rationale: The team selected Options 1 and 2, to provide visibility to the user and to store the relevant information in the database.

Issue 2: How do we build the indices?

Option 1: A file entry (or database query) inputs an original list. Each additional entry will be added from the keyboard. The clear button from phase 1 will still be utilized to clear the database.

Option 2: Only keyboard entry, again using a clear button.

Option 3: Sticking more to the letter of the requirements the UI will have one button for appending to the dataset and one button for adding an entry to a cleared data set.

Page 8: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Choice/Rationale: The team selected Option 1, as it allows for the greatest input flexibility when creating the database.

Issue 3: Where will the additions to the indices come from?

Option 1: The KWIC system will generate new indices from the new additions to its database.

Choice/Rationale: Option 1 will be selected by default. There is no other reasonable way to do this.

Issue 4: How do we input the additions to the indices into the KWIC system?

Option 1: Cyberminer will include an admin interface, which can only be signed into by an administrator of the software, for adding new URLs (along with their descriptions) into the KWIC system which shall, in turn, generate the indices, add them to the existing indices and store both the indices and new URL.

Option 2: Works similarly as Option 1, except that the indices are generated by Cyberminer itself and the KWIC system only has to store the new indices and the new URLs

Choice/Rationale: Option 1 will be implemented, as it is the more robust of the options and allows for greater control over they system.

2.18 OFR8Cyberminer shall allow for Case sensitive search: The system shall store the input as given and retrieve the input also as such.

Issue 1: This FR creates a constraint on the users of the application which might not always be necessary or practical and may also degrade the usability of the system for certain class of users.

Option 1: Case sensitive search will be only way to use the system.

Option 2: Case sensitive searching will not be implemented.

Option 3: Case sensitive searching will be implemented, but will be selectable by the user as an option via a checkbox.

Choice/Rationale: Option 3 will be implemented, as it gives the user more customizability without presenting an insurmountable implementation challenge.

2.19 OFR9Cyberminer shall allow for Hyperlink enforcement When the user clicks on the URL, which has been retrieved as the result of a query, the system shall take the user to the corresponding web site.

Page 9: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Issue 1: Will the website corresponding to the URL be displayed within the same window as Cyberminer (either in a new frame or replacing the Cyberminer view) or the website will be opened in another window?

Option 1: A new window will be opened.

Option 2: The current window will navigate to the selected link.

Option 3: The website will be opened on the same page but in a different frame below the search menu.

Choice/Rationale: Option 2 will be utilized, primarily for ease of implementation. This allows for swifter completion of the system.

2.10 OFR10Cyberminer shall allow for Specifying OR/AND/NOT Search: A keyword-based search is usually an OR search, i.e., a search on any of the keywords given. The system shall allow the user to specify the mode of search, using “OR”, “AND” or “NOT”;

Issue 1: We need to establish operator precedence among the operators.

Option 1: Allow the user to force operator precedence with the use of parentheses such that the innermost parenthesis has the highest precedence

Option 2: Use the most commonly used logical operator precedence rules as described in http://en.wikipedia.org/wiki/Logical_connective

Choice/Rationale: Both Option 1 and Option 2 will be chosen; this gives the user more control over how searches will be performed.

Issue 2: Are OR/AND/NOT sufficient for most practical uses or we need to augment the list based on some practical scenario?

Option 1: The only missing feasible logical operator that is missing from the list is XOR so we add it

Option 2: We leave the list as-is since it caters for most search needs of most users

Choice/Rationale: Option 2 will be implemented, as it satisfies the needs of most users, without needlessly complicating implementation.

Issue 3: How will these options be presented to the user?

Option 1: The user will type the operands into the search box.

Option 2: The user will select a check box indicating the type of search to be used.

Page 10: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Option 3: Provide a link to a third page called “Advanced Search” where these options can be used with some presets.

Choice/Rationale: Option 3 will be implemented. A separate search page will be less confusing for the user.

Issue 4: Will the user be allowed to switch between these operators after search results have been displayed or she will have to do another search and select a new operator?

Option 1: The user will be allowed to switch by selecting a different option.

Option 2: The user will have to start another search.

Choice/Rationale: Option 2 will be implemented. This ensures that the user has reviewed their input before searching.

2.11 OFR11Cyberminer shall allow for multiple search engines to run concurrently.

Issue 1: The meaning of “concurrently” is ambiguous and we need to define what it might mean in this context.

Option 1: Cyberminer will be multithreaded.

Option 2: The implementation of Cyberminer will be such that multiple systems can access the database simultaneously. (Cyberminer is a client program that can be run by multiple systems to access a central database)

Choice/Rationale: Option 2 will be implemented. Multiple search engines running concurrently has been decided to mean that multiple systems can access Cyberminer at the same time.

2.12 OFR12Cyberminer shall allow for the deletion of out-of-date URLs and corresponding descriptions from the database.

Issue 1: How do we know that URL is out of date?

Option 1: We use a preset amount time that the URL can live in the KWIC database at the end of which a URL will be considered out of date.

Option 2: A URL will be considered out-of-date if, at the time of Hyperlink enforcement, the destination website cannot be found

Option 3: Periodically, and at the expiration of a preset time after the URL was originally stored, the KWIC system will “probe” the Internet to see if the corresponding website is still active and, if not, it is considered out of date

Page 11: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Choice/Rationale: Option 1 will be implemented, as the requirements seem to be looking for a time-to-live for URL’s.

Issue 2: At what point do we do the deletion from the database?

Option 1: When the system is restarted.

Option 2: As soon as the URL time-to-live expires.

Option 3: After the URL time-to-live expires, we check to see that the website is still online. If it is not, we delete it. If it is, we reset the time-to-live to the next interval.

Choice/Rationale: Option 1 will be implemented. This allows for some lenience when a URL will be deleted, so users will not be confused.

Issue 3: At what point do we update the date of the URL?

Option 1: We never update the date of the URL

Option 2: We update the date of the URL when one is clicked to be opened.

Option 3: We update the date after being returned by a search.

Choice/Rationale: Option 1 will be implemented. This ensures that out of date links are removed properly. It also ensures that no URL has an arbitrarily long time-to-live.

2.13 OFR13Cyberminer shall allow for listing of the query result in ascending alphabetical order.

Issue 1: Alphabetical order of URL or alphabetical order of URL description?

Option 1: Alphabetical order based on URL.

Option 2: Alphabetical order based on URL description.

Option 3: Both, by clicking either of the header

Choice/Rationale: Option 1 will be implemented, as is most closely follows the requirement.

Issue 2: This requirement equates alphabetical order with the relevance of the search results. This is not always so in practice and we need to decide how to meet this requirement in a way that is practical in the search engine domain.

Option 1: We assume that alphabetical order is synonymous with relevance

Page 12: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Option 2: We assume that relevance of the search results with respect to the input search terms is not important for this application

Option 3: We assume that, relevance matters but it will be out of scope for this project for time and complexity-of-implementation reasons. Hence, relevance will be considered

for future implementations.

Choice/Rationale: The team selected Option 1 based on the fact that relevance is never mentioned in the design document as an important search criterion.

2.14 OFR14Cyberminer shall allow for Setting the number of results to show per page.

Issue 1: How will this option be presented to the user?

Option 1: This setting will be presented as a drop-down box.

Option 2: This setting will implement a text input field where the user may input the number of results to show per page.

Choice/Rationale: Option 2 was selected following a vote from the team. This is primarily an aesthetic choice, and has little to do with the core functionality of the system.

2.15 OFR15Cyberminer shall allow for navigation between pages of the results.

Issue 1: Is there a cap on the number of total results

Option 1: yes, as this will lend itself to response time.

Option 2: no, as the first page can be acquired only and the other page results can

be acquired when needed.

2.16 OFR16Cyberminer shall also possibly allow for Auto-fill.

Issue 1: Do we auto-fill results or do we auto-fill search terms?

Option 1: as the user types in a search term, Cyberminer will generate a list of “suggestions” to search for, based on previous searches.

Option 2: as the user types in a search term, Cyberminer will generate a list of “suggestions” to search for, based on the current indices in the KWIC database

Option 3: as the user types in a search term, Cyberminer will generate a list of search results based on the current indices in the KWIC database

Page 13: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Choice/Rationale: The team selected Options 1-3 here, and they will be implemented as time permits.

2.2 Issues with the Non- Functional Requirements

2.21 ONR1Cyberminer shall be easily understandable.

Operationalization Options:

Option 1: Model the homepage of Cyberminer as well as the results page after the current Google.com homepage.

Option 2: Each GUI element will be clearly labeled with its intended functionality. e.g. “Search”, “Advanced Search Options”, “Need Help?”

Option 3: Comments and design practices of the code implementation will be easy to understand in order to make.

Choice/Rationale: The team voted to implement Options 1-3 here, in order to make the program as understandable as possible.

2.22 ONR2Cyberminer shall be portable.

Operationalization Options:

Option 1: Cyberminer shall be accessible over the Internet.

Option 2: Cyberminer shall be able to run on the Mac OS, Windows OS and Linux Fedora 12 OS

Choice/Rationale: Options 1-2 will both be implemented, as accessibility via the Internet and platform cross compatibility are both important functions for a search engine.

2.23 ONR3Cyberminer shall be enhanceable.

Operationalization Options:

Option 1: The KWIC database will be able to add more URLs to its database as the system grows

Option 2: The program has plug-in support. (i.e., separate language plug-ins).

Page 14: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Choice/Rationale: Option 1 was selected by a team vote. Plug-in support does not support the core functionality of the search engine.

2.24 ONR4Cyberminer shall be reusable with good performance.

Operationalization Options:

Option 1: Cyberminer will be designed using an OO architecture, which makes it easier to re-use code.

Option 2: Cyberminer will implement a searching algorithm that returns a relevant results within 3 seconds, subject to the conditions in ONR6, Option 1 possible.

Choice/Rationale: Option 1-2 will be chosen. The OO architecture is required specifically by the client, and provides reusability.

2.25 ONR5Cyberminer shall be user-friendly.

Operationalization Options:

Option 1: The user manual shall state clearly what each element on the screen does.

Option 2: Brief descriptions of what the input controls do shall be shown using tooltips that are visible when the mouse pointer hovers on objects.

Option 3: A help button shall be available at the top of the screen to provide directions to users if they are confused about anything while using the system.

Option 4: When errors occur in the system, the error page displayed to the user shall show that only that it is a system fault and not anything of the user’s doing.

Choice/Rationale: All four Options shall be implemented, in order to give the user the best experience possible.

2.26 ONR6Cyberminer shall be responsive.

Operationalization Options:

Option 1: If the Cyberminer and the KWIC system are hosted on a server with a 2 Ghz dual core processor running on a 320GB hard disk space having a network (Internet) connection at 100 KB/s and the user accesses the software on a machine with same configuration, then search results will always be returned within 3 seconds of hitting the “Search” button.

Choice/Rationale: Option 1 shall be implemented by default.

Page 15: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

2.27 ONR7Cyberminer shall be adaptable.

Operationalization Options:

Option 1: Cyberminer shall be able to run in other non-Internet environments e.g. intranets, single PCs

Option 2: In cases of spelling errors, Cyberminer shall give spelling suggestions to the user.

Choice/Rationale: Option 1 shall be implemented, as a program that is runnable across multiple types of network infrastructure is more adaptable than one that is not.

2.28 ONR8Cyberminer shall run with recent versions of popular web browsers.

Issue 1: How do we determine the popularity of web browsers?

Option 1: Follow the month-by-month popularity rankings of the W3 Consortium found at http :// www . w 3 schools . com / browsers / browsers _ stats . asp

Option 2: Wikipedia has a month-by-month rankings taken by 5 different ranking organisations, global rankings since 2008 from StatCounter as well as median figures from all the ranking bodies for the last two calendar months. We can use this as a more objective basis. This can be seen at:

http :// en . wikipedia . org / wiki / Usage _ share _ of _ web _ browsers

Option 3: A poll by http :// www . webdevelopersnotes . com / articles / popular - web - browsers . php seems to suggest that the numbers cited in Options 1 and 2 do not necessarily reflexive of users’ preferences. Hence, we may want to take more subjective data such as which is more popular within a class of users, such as those found on that site (with a poll of 14000 users)

Choice/Rationale: The team voted to select Option 2, on the basis that it is the most objective determination of popularity of web browsers.

Issue 2: How many of such browsers do we want to test with?

Option 1: Top 2 by the 80-20 principle i.e. the top two seem to have 80% of all users in the world by any of the rankings in Issue 1 above

Option 2: Top 5 to cover as many users and as many “top” browser platforms as possible

Choice/Rationale: The team voted to implement Option 2, which will cover the largest user base that is reasonably feasible.

Page 16: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Issue 3: We need to set a cutoff date for what “recent” might mean.

Option 1: Use statistics from the last two months only as this reflects state of the art

Option 2: Use statistics from the last 2 years as this might better reflect the browsers that have a greater chance of surviving in the future, based on their long time past

popularity.

Choice/Rationale: Option 2 was selected, as statistics are a good basis for determining the likelihood that a browser will remain popular.

Issue 4: Do we consider beta versions as part of the versions to test with?

Option 1: We will consider beta versions.

Option 2: We will not consider beta versions.

Choice/Rationale: Option 2 was selected, as testing with beta versions of Internet browsers will result in unreliable compatibility.

3. Improved UnderstandingCyberminer shall accept a list of keywords and return a list of URLs whose descriptions contain

any of the given keywords. Input will be accepted from the keyboard (via an input text field) only. Only English will be supported.

Cyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs and the corresponding descriptions. Cyberminer will take input from the user and send this behind the scenes to the KWIC system. The KWIC system will use this to search its database and return the search results back to Cyberminer which will then display them to the user.

A transient database held in KWIC will be accessed through Cyberminer by IPC. The word efficiently refers to the scale of effort it takes to implement. Considering the use of the system it makes since that a persistent database is overkill for something where simple IPC could implement much more easily.

The KWIC system shall accept an ordered set of lines, where each line consists of two parts:

• The URL part, whose syntax is:

Page 17: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

URL ::= ‘http://’ identifier ‘.’ Identifier ‘.’ [‘edu’ | ‘com’ | ‘org’ | ‘net’]

identifier ::= {letter | digit}+

letter ::= [ ‘a’ | ‘b’ | … | ‘y’ | ‘z’ | ‘A’ | ‘B’ | … | ‘Y’ | ‘Z’]

digit ::= [‘1’ | ‘2’ | … | ’9’ | ‘0’]

• The descriptor part, whose syntax is:

identifier {‘ ‘ identifier}*

The descriptor part of any line shall be “circularly shifted” by repeatedly removing the first word and appending it at the end of the line.

The KWIC index system shall output a listing of all circular shifts of the descriptor parts of all lines in ascending alphabetical order, together with their corresponding URLs.

No line in the output list shall start with any noise word such as “a”, “the”, and “of”. The set of words considered ‘noise’ will be [a, an, the, of, is, at, to, for, and].

The KWIC system shall allow for two modes of operation: i) for building an initial KWIC indices; and ii) for growing the indices with later additions. The shifted URL’s will be stored onscreen, as well as in the database as they key to the mapped URL. A file entry or database query will build the initial list, while additional queries will be added from the keyboard.

Cyberminer shall allow for Case sensitive search: The system shall store the input as given and retrieve the input also as such. Case sensitive searching will be implemented, but will be selectable by the user as an option via a checkbox.

Cyberminer shall allow for Specifying OR/AND/NOT Search: A keyword-based search is usually an OR search, i.e., a search on any of the keywords given. The system shall allow the user to specify the mode of search, using “OR”, “AND” or “NOT”. The system will allow the user to force operator precedence with the use of parentheses such that the innermost parentheses have the highest precedence. The user will select advanced options via an Advanced Search page, accessible from the main page.

Cyberminer shall allow for multiple search engines to run concurrently. The implementation of Cyberminer will be such that multiple systems can access the database simultaneously. (Cyberminer is a client program that can be run by multiple systems to access a central database).

Cyberminer shall allow for the deletion of out-of-date URLs and corresponding descriptions from the database. We use a preset amount time that the URL can live in the KWIC database at the end of which a URL will be considered out of date. This time will be a static variable.

Page 18: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2

Cyberminer shall allow for listing of the query result in ascending alphabetical order. This order will be based on the URL. We assume that alphabetical order is synonymous with relevance.

Cyberminer shall allow for Setting the number of results to show per page. This setting will implement a text input field where the user may input the number of results to show per page. Cyberminer shall allow for navigation between pages of the results.

Cyberminer shall be easily understandable. We will model the homepage of Cyberminer as well as the results page after the current Google.com homepage. Each GUI element will be clearly labeled with its intended functionality, e.g. “Search”, “Advanced Search Options”, “Need Help?”. Comments and design practices of the code implementation will be easy to understand in order to make the system more understandable.

Cyberminer shall be portable. Cyberminer shall be accessible over the Internet. Cyberminer shall be able to run on the Mac OS, Windows OS and Linux Fedora 12 OS.

Cyberminer shall be enhanceable. The KWIC database will be able to add more URLs to it’s database as the system grows.

Cyberminer shall be reusable with good performance. Cyberminer will be designed using an OO architecture, which makes it easier to re-use code. Cyberminer will implement the fastest time-complexity searching algorithm possible.

Cyberminer shall be user-friendly. The user manual shall state clearly what each element on the screen does.Brief descriptions of what the input controls do shall be shown using tooltips that are visible when the mouse pointer hovers on objects. A help button shall be available at the top of the screen to provide directions to users if they are confused about anything while using the system.When errors occur in the system, the error page displayed to the user shall show that only that it is a system fault and not anything of the user’s doing.

Cyberminer shall be responsive. If the Cyberminer and the KWIC system are hosted on a server with a 2 Ghz dual core processor running on a 320GB hard disk space having a network (Internet) connection at 100 KB/s and the user accesses the software on a machine with same configuration, then search results will always be returned within 3 seconds of hitting the “Search” button.

Cyberminer shall be adaptable. Cyberminer shall be able to run in other non-Internet environments e.g. intranets, single PCs.

Cyberminer shall run with recent versions of popular web browsers.Wikipedia has a month-by-month rankings taken by 5 different ranking organisations, global rankings since 2008 from StatCounter as well as median figures from all the ranking bodies for the last two calendar months. We can use this as a more objective basis.

Page 19: chung/SA/Presentations/Spring-2011/…  · Web viewCyberminer shall use another software system, the KWIC system, as a component, in order to efficiently maintain a database of URLs

Global 14 Cyberminer WRS Document v1.2