Subproject 5 - System Help and User Documentation

General Informations

Status

Version

Leader

Assignees

Assigned1.1Zablon OchomoActually no one else takes part in this subproject

System Help and User Documentation - Index of contents

Section

Title

0.0Vision
1.0Requirements
1.1Ease of navigation
1.2Guide user on how to obtain more help
1.3Provide content sensitive help
1.4Compact
1.5Easily updatable
1.6Localizable
1.7User's adaptable or auto-explicable
2.0Requirements analysis
2.1Non functional requirements
2.2Authoring Help Information
2.2.1Create HTML topics
2.2.2Create the Helpset File
2.2.3Create a Map File
2.2.4Create a Table of Contents File
2.2.5Create an Index File
2.2.6Creating the Full-Text Search
2.3Adding JavaHelp to InternetCafe
2.4Help Use Cases
2.5Glossary

0.0 Vision

A software application that is well designed, programmed and rich in features for exploiting latest technologies may hide most of its capabilities to its intended users unless it is properly documented. A relevant help mechanism need to be developed alongside the system development that will provide users with an integrated online help and even offline reference documents in form of user guides. For this purpose JavaHelp API; a suit of java classes was developed to help developers to implement online help to their programs and create other help facilities for their applications.

1.0 Requirements

In order for the help system to be valuable to its users, it needs to achieve the following goals:



  • Ease of navigation
  • Guide user on how to obtain more help
  • Provide content sensitive help
  • Compact
  • Easily updatable
  • Localizable
  • User's adaptable or auto-explicable



Though users are not required to initiate their activities through the help system, it should at least offer a way out to start for a user who can't start off completely. Since the project will run in a distributed environment, the help system need also to adopt a distributed model. This leads to a Distributed JavaHelp System (DJHS) that serves a wide range of workstations with different hardware and software platforms. Due to differences in operating environments, the help required by a user on one host may vary significantly from other users. This leads to need for a help system that is aware of the users working hardware and software environment and provide the relevant help.

1.1 Ease of navigation

An easy to navigate help system is necessary for users to access system resources either through navigating through help topics, search tools, or an indexing mechanism.

1.2 Guide user on how to obtain more help

Each help displayed may suggest to users on related topics or how to obtain more help like in trouble-shooting cases. This can be displayed as links.

1.3 Provide content sensitive help

Runtime CSH is important for guiding users on an immediate step to take during application use. This can be invoked through a functional key like F1. The information displayed for user should provide hints on what the user is currently doing.

1.4 Compact

The help menu should be light and fast to load to avoid slowing down the user operations. This can be achieved by a java help system that is easily compressible into jars without losing information.

1.5 Easily updatable

The help system's contents should be easily altered. Adding new information, removing information and modifying information should be done with ease. That makes javahelp the best choice since it has utilities for constructing help databases and indexing information that can be accessed through the API interfaces.

1.6 Localizable

The help system users are anticipated to come from various geographical regions hence different languages. The help system will be translated and packaged into locale sensitive modules to cater for all users.

1.7 User's adaptable or auto-explicable

The help system should provide also a sort of "Tip of the Day" facility in order to show features or suggestions to the end-user on something that is hidden but featured and helpful. This goal should be achieved providing a sort of memorization of what the user already knows of the system and what he doesn't.

2.0 Requirements analysis

This section endeavors to discuss the sub-project?s goals as described above and provide a set of use cases and expected usage scenarios. A glossary of terms and key words will also be made at the end of this section.

2.1 Non functional requirements

2.2 Authoring Help Information

2.2.1 Create HTML topics

At this stage, the help topics will be identified and categorized into comprehensive and concise HTML documents. The help content will be rendered as HTML; just like web pages with interface enhancements such as JavaScript and graphics. The documents will behave like a complete website with proper navigation and linking between related documents.

This stage will require proper studying and understanding of the internet-café?s operation. Each sequence of actions will be recorded into documents that use HTML formats since JavaHelp work well with such documents.

2.2.2 Create the Helpset File

When the internet-café activates the help system, it will start by reading the helpset file. The helpset is a kind of metadata with a set of data that comprise of the help system. The helpset will include the following information:



  1. Map file:

    Used to associate topic IDs with URL or path name of HTML topic files.

  2. View information:

    Describes the navigators being used in the helpset. The standard navigators are: table of contents, index, full text-search. Additional navigators include the glossary and the favorites navigators.

  3. Helpset title:

    The "title" tag defined in the helpset file, and it appears at the top of the main windows and any secondary windows defined in your helpset file.

  4. Home ID:

    The name of the default ID displayed when the help viewer is called without specifying an ID.

  5. Presentation:

    The window in which to display the help topics. The "presentation" tag is used to define the windows used in the helpset.

  6. Sub-helpsets:

    This is an optional section to include sub-helpsets that can be automatically merged into the helpset that contains it.

  7. Implementation:

    This is an optional section to create a registry that provides key data mapping to define the HelpBroker class.

2.2.3 Create a Map File

After reading the helpset file, the Internet-café help system will read the map file listed in the helpset. The map file will be used to associate topic IDs with paths to HTML topics files using URLs. The map file is created with a .jhm extension and is an xml document.

2.2.4 Create a Table of Contents File

The table of contents file will describe the TOC to be displayed in the TOC navigator and the layout of the TOC.

2.2.5 Create an Index File

The index file describes to the index navigator the content and layout of the index.

2.2.6 Creating the Full-Text Search

The full-text search engine uses a natural language search technology that, in addition to retrieving documents, locates specific passages within those documents where answers to queries may be found. It includes a conceptual indexing engine that analyzes the documents to produce an index of their content, and a query engine that uses the index to find relevant passages in the material.

The search database will be created by the JavaHelp utility: jhindexer.

2.3 Adding JavaHelp to InternetCafe

The main system developers will provision for the help system integration to the main internet-café system. The help may be accessed through a help menu item, a button, a key, or a mouse action.

The integration procedure will require:



  1. Creating HelpSet and HelpBroker objects.
  2. Assigning the help to the individual components.
  3. Adding the appropriate help callback for the individual components.

This is quite easy!

2.4 Help Use Cases

The use cases will try to illustrate how the internet-café?s help system will be used.

2.5 Glossary

In this section we will present a short description for each term found in the previous requisites document. This is done to avoid the possibility to misunderstand a term when we are using it in the following sections.

TERM

MEANING

SYNONIMS

Java
Content sensitive help
URL
Tip of the Day
Functional key
Localizable
API
Natural language
HTML
CSH
Jar
Locale

To do