Carolyn Watters and Michael Bieber
HTF5 was a one-day workshop concerning construction and application of hypertext functionality in conjunction with software development. The focus group was software engineers.
Most existing and future information systems need to know about hypertext, whether in order to execute on the Internet or Intranet, to operate in a distributed environment, or to allow its users point-and-click navigation. We are, therefore, required to augment with hypertext functionality the myriad of today's personal, scientific, and business systems, which were not designed with hypertext in mind. For users to benefit from hypertext functionality, it must be incorporated into information systems that are in everyday use. Designers and developers must accomplish this with minimal effort as well as unobtrusively -- applications should still be able to perform their regular, originally intended functionality. The focus is not on building standalone hypertext systems; rather to incorporate hypertext capabilities into other types of systems.
Incorporating hypertext functionality results in new ways to view a system's knowledge and processes conceptually, to navigate among items of interest and development steps, to enhance system knowledge with comments and relationships, and to target information displays to individual users and their tasks. Hypertext functionality therefore poses new challenges to software engineers who must be able to integrate hypertext and hypermedia functionality (including navigation, backtracking, annotation, guided tours, and more) with existing software behavior, without disrupting operation or compromising system modularity, maintainability, evolvability, and so on.
The main theme for this workshop is engineering hypertext functionality, i.e., various aspects of constructing hypertext capabilities. Topics of interest included the following:
The format of the workshop was a morning of presentations and discussions in the morning followed by breakout work sessions to prepare three scenarios and presentation with discussion on the scenarios in the afternoon.
The topics of the presentations can be roughly categorized as follows: designing systems with HTF, applying HTF to CASE tools, and applying HTF to the SE process.
Designing systems with HTF
Ramiro Gonzalez Maciel
Ramiro described an OOmodel enhanced with HTF using Smalltalk. This model has three levels: visual, hypermedia, and domain objects. He distinguishes between natural systems, built with HTF in the original design, and hybrid systems, using wrappers to provide HTF in an indirect manner. The intent is to move the implementation of the model onto the web so that concurrent users can be supported and where the HT elements, i.e. nodes and links, would be treated as first class objects. He identified the following as HT issues: multiusers, integration of histories, and linking.
Using the OO model for developing HT systems on the web makes it apparent: that mappings of high level design to resource level and web entities, in general, are too coarse for many applications. A web application is defined as a set of components each of which has an identity, properties, and behaviors. Given such a set of components links based on component referencing are possible, such as, aggregation and specialization, and reference or code sharing. User profiling of behavior within the w eb is a potential source of useful information to feedback into the HT system.
Proposes the notion of Web Engineering as a design methodology for designing HT applications both as stand alone systems and for deployment on the Web. Three steps apply to this process:
Reviewed the progress of the workshop series and presented the basic set of HTF:
Applying HTF to the SE process
The Process Model has 3 phases of the development process and affords 5 views. Each process represents a unit of work and is associated with agents, resources, artifacts, and outputs. The 3 phases (exploration, development, and xx) each entail its own set of tasks. The Process Model provides 5 views: functional view, informational view, methodological view, behavioral view, and organizational view. A set of concurrent domains are also available, reuse knowledge, representation, customization, and enactment.
HT can be used to provide navigational paths between the phases of the development process and between the views of processes within domains.
D. Janaki Ram
Used HT to implement a model of change propagation within software. The artifacts were represented as URA (Unified Representation of Artifacts) as the basis of metadata for the system. Links were weighted on the basis of both closeness of the connection and the seriousness of the change. Two metrics for link activation were given: cdegree and focus.
HT can be used to design a composite view of the design process were design issues include: document structure, transaction analysis, navigation, and application components. The use of HTF provides a way to integrate a number of models graphically and navigationally. He proposes that OO design can be extended to include both document structure and navigation.
Using HTF in Programming Environment
HTF can be used to support the programmer by helping both in the comprehension and manipulation of code. HTF can be used to relate information from three aspects:
Scenarios are used to "think through" proposals and in doing so illustrate both the usefulness and potential problems of proposals. In this section we examine three scenarios generated during the workshop: two incorporating HT into the SE design process and one to include HTF within the programming CASE tool.
Scenario 1 - HT in the Design Process (Luis, Jakarta, and Martin)
SE needs to recognize the areas of interest in common and significant differences in designing systems for deployment on the web and those for use off the web. SE needs to recognize the differences between classical process model and a HT process model. The following issues are relevant:
Scenario 2 HT in the Design Process (Ramiro and Carolyn)
HT issues can be raised for inclusion in the new system at these stages of the SE development process.
Analysis of Task - In addition to traditional Use Case analysis of the tasks and actors we suggest that the following functional requirements be considered: use of trails and guided tours, overviews, and annotation capabilities.
Design of Data - In addition to the traditional OO data analysis and definition of domain classes that an Hypertext data analysis be done to define a domain of classes to support typed nodes and links, use case relationships, n:m link relationships, context information, and user information.
User Interface Design- In addition to the design of user interface to support the specified task requirements the user interface should provide browsing and navigation features to support unexpected and exploratory usage of the system.
Problems and Issues Exposed in Scenario
1. capturing and allowing for the evolutionary and iterative nature of the design process
2. allowing for unexpected usage
3. capturing information about actual usage of the system to provide feedback and possible support for discovered tasks
4. how to manage the overview information: where to keep it, can it be derived
5. managing information about the user and his or her pattern of usage
Scenario 3 HT and Case Tools ( Michael, Jun, and Tom)
HTF can be incorporated into CASE tools to support programming by the integration of the feasibility documents, requirements documents, and program code.
Issues of concern in providing this support includes:
1. traceability of code back to documentation
2. generation of code documentation and links to other documentation
3. debugging tool to analyze links
4. how to facilitate code to design link generation (simple)
6. generation of links between views (use case, object models, diagrams, etc)
7. link management throughout change
8. generation of links from design patterns
It was clear that HTF is a real issue for software engineering, both to improve the process of designing and developing software and to improve the software designed. We suggest that a further meeting within the software engineering milieu to further develop the scenarios would be very fruitful.