1. Technical Field
This invention relates to the use of sequence diagram for object modeling. More specifically, the invention relates to enhancing the use of such diagrams with viewing tools and techniques.
2. Description of the Prior Art
Unified Modeling Language (UML) is a general purpose modeling language that includes a standard graphical notation used to create an abstract model of a system. UML is used to model software, business processes, and systems engineering, as well as represent organization structures. A sequence diagram is an interaction diagram written in UML. It is a diagram that emphasizes the flow of control and data among the things in the system being modeled. The sequence diagram shows different processes or objects that live simultaneously and messages exchanged between processes and/or object in the order in which they occur. A typical sequence diagram has two axes, a horizontal axis and vertical axis. All objects in the diagram are lined up along one axis, and relative time is represented on the other axis. Accordingly, the sequence diagram shows the interaction between objects over a period of time.
Sequence diagrams may be used to document an organization's current affairs, as well as to communicate requirements for a future system implementation. The sequence diagram defines event sequences that result in some desired outcome. The focus of the sequence diagram is primarily on the order in which messages occur and secondarily on the content of the messages. In one embodiment, the sequence diagram will communicate what messages are sent between a system's processes or objects as well as the order in which they occur. The diagram conveys this information along the horizontal and vertical axis. The vertical axis shows the time sequences of messages and calls as they occur, and the horizontal axis shows the process of object instances where the messages are sent. In one embodiment, the vertical axis shows the time sequences from top to bottom, and the horizontal axis shows the occurrence of process or object instances from left to right. A lifeline in the sequence diagram represents either roles or object instances that participate in the sequence being modeled. When drawing a sequence diagram, lifeline notation elements are placed across the top of the diagram. In one embodiment, a lifeline is drawn as a box with a dashed line descending from the center of the bottom edge with the name of the lifeline placed inside the box. Not all lifelines represent named objects. In one embodiment, a lifeline can be used to represent an anonymous or unnamed instance. As noted above, messages are sent between processes or objects in the sequence diagram. In one embodiment, the first message of a sequence diagram starts at the top and subsequent messages are added to the diagram slightly lower than the previous message. The message is shown as a horizontal line with an arrow at one end. A message name identifying the message is commonly placed above the arrowed line. The message that is being sent to the receiving process or object represents an operation/method that the receiving object's class implements. In one embodiment, the diagram may include return messages represented as a dotted horizontal line with an arrowhead pointing to the originating lifeline. The use of return message depends on the level of detail and/or abstraction being modeled.
The flow of a sequence diagram can be complex due to the amount of information that may be present in the diagram. It is therefore desirable to focus attention on a select portion of the diagram. One prior art solution for focusing on a select portion of the diagram is to insert a secondary viewer at a select portion of the diagram. The secondary viewer, such as Microsoft PowerPoint, enables a user of the system to focus on a particular idea within a select portion of the diagram. However, the secondary viewer removes the focus of the audience from the diagram to a secondary medium and thereby distracts the user away from the subject sequence diagram. Accordingly, there is a need for a drill-down solution that enables a presenter to focus on a selected portion of the sequence diagram while allowing the user to maintain the focus of the audience on the entire sequence diagram.
This invention comprises a method and system for navigating a sequence diagram for enhanced display and viewing thereof.
In one aspect of the invention, a method is provided for navigating data. Steps of a process are represented in a sequence diagram having a plurality of objects with at least one interaction between two objects. An area of the navigated diagram is selected for review. The area of the diagram is in the form of either an individual interaction identified in the diagram, or a range of two or more interactions identified in the diagram. A visualization technique to the selected area is toggled to enhance presentation of the elements represented in the selected area of the sequence diagram. The visualization technique supports focusing of attention of a view of the sequence diagram on the selected area of the sequence diagram while maintaining a view of the non-selected area(s) of the diagram.
In another aspect of the invention, a computer system is provided with a processor in communication with storage media, and a visual display. A sequence diagram is stored in computer readable format in the storage media and is viewed on the visual display. The diagram represents steps of a process. The diagram illustrates at least two objects and at least one interaction between the objects. A selection manager is provided to support selection of an area of the diagram for review. The selected area is either an individual interaction identified in the diagram or a range of two or more interactions identified in the diagram. A visualization manager is provided to toggle employment of a visualization technique for a selected area of the diagram to enhance presentation of elements represented in the selected area. The visualization technique supports focus of attention on the selected area of the sequence diagram, and at the same time maintains a view of the non-selected area(s) of the diagram.
In yet another aspect of the invention, an article of manufacture is provided with a computer readable medium having computer-readable instructions stored thereon executable by a processor. The computer-readable instructions include instructions to navigate data represented in a sequence diagram. The sequence diagram has a plurality of objects and at least one interaction between two objects. In addition, instructions are provided to select an area of the navigated diagram for review and to employ a visualization technique. The area to be investigated is either an individual interaction identified in the diagram, or a range of two or more interactions identified in the diagram. The instructions for employing a visualization technique to the selected area enhance presentation of the elements represented in the selected area of the sequence diagram. The visualization technique supports focus of attention on a view of said sequence diagram on the selected area, and at the same time maintains a view of the non-selected area(s) of the diagram.
Other features and advantages of this invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.
Sequence diagrams are tools used to convey complex scheduling between multiple objects and the communication of messages there between. To facilitate presentation and viewing of the diagram, visualization techniques may be embedded into one or more messages in the tool. The visualization techniques enable a presenter of the diagram to maintain the focus of attention of the audience on the diagram as a whole, while supporting a detailed presentation pertaining to one or more messages in the diagram.
In one embodiment, a developer of the diagram may be presented with a menu of available actions to embed with selected interaction(s). For example, a wizard may be provided to allow the user to assign details to the element in the diagram selected for assignment of detail(s). In one embodiment, the wizard might define when the assigned details will be displayed, such as, when the sequence diagram element gains focus for the first time, every time the sequence diagram element gains focus, and/or only show the details of the event if the sequence diagram element has focus. Additionally, in one embodiment, the menu may enable the developer to attach a video clip, a graph, etc. In one embodiment, an editing tool facilitates the process of entering the action(s) and associated instructions. Following step (212) or a negative response to the determination at step (208), the variable N is incremented (214). Thereafter, it is determined whether the variable N is greater than NTotal (216). A negative response in step (216) causes the process to return to step (208) to determine whether or not to assign details to the message N under consideration. A positive response in step (216) ends the process of embedding actions in the messages of the sequence diagram (218). Following creation of the sequence diagram actions and associated display instructions may be embedded and attached, respectively, to individual messages of the diagram. Once the sequence diagram is created and actions are embedded with one or more messages, the diagram may be used and or presented to an audience.
In one embodiment, the selected visualization technique is a color filter. This technique enables different colors and shades of color to be applied to different portions of the diagram. For example, a first color enhancement may be applied to one or more selected interaction(s) and a second color enhancement may be applied to one or more non-selected interaction(s). In one embodiment, a previously viewed area of the diagram may be presented in a third color enhancement, wherein the third color enhancement is different from or the same as the first or second color enhancements. For example, the application of color enhancements may enable interactions of the diagram previously viewed and interactions of the diagram not yet viewed to appear to be faded out in comparison to the selected interaction(s). More specifically, display of information in a selected area may be in a detailed view, and display of information related to a non-selected area may be faded or otherwise constricted. In one embodiment, the faded color of the previously viewed interactions may be a different faded color than the interactions waiting to be viewed. Similarly, in one embodiment, the color enhancements may be shades of gray.
In one embodiment, the visualization technique embedded within the sequence diagram is a detailed view for one or more selected interaction(s). Examples of detailed views include, but are not limited to, bullet points, graphics, streaming media, static pictures, animations, movies, slide, multi-media, sounds, events, etc. A presenter may select one or more of the detailed views to be embedded with one or more selected interactions. In one embodiment, the select interaction(s) may include more than one detailed view option and at such time as the diagram is presented a pointer tool may be employed to select one of the detailed view options from the list available.
In one embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. The invention can take the form of a computer software product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
Embodiments within the scope of the present invention also include articles of manufacture comprising program storage means having encoded therein program code. Such program storage means can be any available media which can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such program storage means can include RAM, ROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired program code means and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included in the scope of the program storage means.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM), read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include compact disk B read only (CD-ROM), compact disk B read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
In one embodiment, a selection manager and a visualization manager are provided in software or hardware. With respect to the software implementation, the managers may include, but are not limited to, firmware, resident software, microcode, etc. The software implementation can take the form of a computer program product accessible from a computer-useable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-useable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
As shown, network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, wireless and Ethernet adapters are just a few of the currently available types of network adapters.
A sequence diagram may include one or more visualization techniques and features to be embedded within messages of the diagram. The messages enable the presenter to explain the featured message(s) in detail while enabling the audience viewing the diagram to maintain their focus on the diagram. A diagram developer or a presenter of the diagram embeds visualization techniques and attaches the embedded techniques to one or more messages in the diagram.
It will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. In particular, it has been explained in detail that the developer of the sequence diagram can embed visualization techniques to facilitate presentation of the diagram to an audience. Prior to presentation, the person presenting the diagram can select to turn off the detailed events placed into the program. This feature enables a global command to affect presentation of the diagram. Similarly, a global command may be provided to exhibit all of the embedded visualization techniques upon presentation. In one embodiment, a user interface is provided as a communication tool between the developer and the presenter. The user interface facilitates embedding visualization techniques in association with one or more messages. Similarly, the user interface or an equivalent input device may be used to dictate the frequency in which the embedded visualization techniques will be viewed by an audience. For example, the frequency of display may include when the selected message(s) in sequence diagram gain focus for the first time, every time the selected message(s) gains focus, and manual activation of the selected message(s). Accordingly, the scope of protection of this invention is limited only by the following claims and their equivalents.