Navigation+of+Software

=Navigation of Software =

Definition/Description:

**Navigation** refers to the manner in which learners move through a program and getting where they want to go, which includes orientation- their sense of knowing where they are in the program (Alessi & Trollip, 2001, p. 424). It allows the user to know where they are, how to get back to where they came from, and how to find the information they want in a program.

In complex programs navigation aids should be provided such as:
 * ** Maps **
 * Can convey subject matter structure, are visually appealing, may contain multiple levels of detail, and may be designed with little or no text. Helps organize and present information to the user.
 * ** Searching Options **
 * Allows the user to find information and what they are looking for quickly.
 * ** Menus **
 * Provides an overview of contents and organization of the program. Provides the user with a familiar place to return to after completing a section and allows them to go to a place wherever they choose.
 * ** Page indicators **
 * Allows the user to know where they are at in the program and how much more there is to come.
 * ** Time indicators **
 * Allows the user to know how much time they should expect to devote to the program.


 * ** Table of Contents **
 * Describes the larger structure of a database in some logical fashion.

**Important navigation features:**

 * ** Consistency **
 * Programs should have consistent navigation methods to make sure that users don't get confused when navigating through different parts of the program.
 * ** Restarting **
 * If the user should accidentally press a key that ends the program, if the computer should fails, or a program execution error occurs the user should have the option of restarting at or near the point at which termination occurred.
 * ** Passive Bookmarking **
 * Allows the user to voluntarily terminate the program and return to it later right where they left off.
 * ** Active Bookmarking **
 * Allows the user to place bookmarks throughout the program and return to any of them whenever they want.

= Summary of Literature: =


 * Diaz (2005) discusses in his article that the development process of hypermedia and web systems pose very specific problems that do not appear in other software applications, such as the need for mechanisms to model sophisticated navigational structures, interactive behaviors, interfaces with external applications, security constraints and multimedia compositions. The article discusses that even though experience, modeling skills and abstractions can be borrowed from existing software design methods, such as object-oriented modeling, hypermedia developers need specific mechanisms to analyze and design using entities that belong to the hypermedia domain (such as nodes, links, anchors and space and time-based relationships). In this article, Diaz presents the Ariadne Development Method (ADM), a software engineering method that proposes a systematic, flexible, integrative and platform-independent process to specify and evaluate hypermedia and web applications. He talks about how one of the most important tasks in hypermedia modeling is the design of this browsing structure made up of nodes and referential links. He concludes that to avoid disorientation problems, hypermedia systems and applications incorporate some navigation tools, including methods such as visual maps, active indexes, guided tours, marks, footprints and backtracking mechanisms.


 * In an article written by Rossi (1999), it discusses the importance of building hypermedia applications that combines the use of an object-oriented method with a system of design patterns for navigational and interface design. He talks about how the combination of hypermedia navigational styles with the need to accommodate application functionality difficulties of designing hypermedia applications with the synchronization of different media, poses problems for the designer. The article explains an approach that combines the use of an object-oriented method with a system of design patterns for navigational and interface design. The navigational design that is included in this object-oriented method includes, nodes, links, anchors, and access structures. Rossi explains that if a program interconnects only the most important and meaningful parts of the information base, making links reflect existing relationships among objects; it can obtain a well-structured and comprehensible navigational structure.


 * An article written by Hoover (1999) discusses how the transformation of software requirements into a software design and how the process is human-intensive and does not guarantee that design objectives such as reusability, evolvability, and reliable performance are going to be satisfied. Hoover explains how the costly process of designing, building, and modifying high assurance systems motivates the need for precise methods and tools to generate designs whose corresponding implementations are reusable, evolvable, and reliable. Overall the article demonstrates an analytical approach for dividing basic elements of a software solution into reusable and evolvable software components.

=** Resources: **=


 * Alessi, S, & Trollip, Sarah. (2001). //Multimedia for learning methods and development//. Needham Heights, Mass: A Pearson Education Company.


 * Diaz, P., Montero, S. , & Aedo, I. (2005). Modelling hypermedia and web applications: The ariadne development method. //Information Systems//, //30//(8), 649-673.


 * Hoover, C., & Khosla, P. (1999). Analytical partition of software components for evolvable and reliable mems design tools. //International Journal of Software Engineering & Knowledge Engineering//, //9//(2), 153-171.


 * Rossi, G., Schwabe, D. , & Lyardet, F. (1999). Designing hypermedia applications with objects and patterns. //International Journal of Software Engineering & Knowledge Engineering//, //9//(6), 745-766.


 * []


 * []


 * []