Department of Electrical and Computer Engineering


The Software Concordance Editor

The editing system in the Software Concordance environment is an integration of structured document editors for XML, HTML, and plain text documents, a syntax-recognizing Java program editor, an SVG graphic and animation editor, and a UML editor. The appearances of documents are controlled via a style sheet.

The SC environment is designed as a pluggable architecture to support the integration of editors for different types of software artifacts. The SC environment is compatible with XML-based document editing environments since it supports the integration of editors for new document types whose internal representation is XML-compatible. For example, the Thorn UML editor and DrawSWF SVG editor were easily integrated into the SC editor because their document representations are XML-based. Integration requires only that a new editor follows a simple plug-in protocol. The most important requirement for this protocol is that the new editor's document representation must be compatible with the structured document representation. In fact, most XML-based document representations are compatible. The SC environment uses a Document Object Model (DOM) parser to import XML-based documents, converts the DOM trees into the SC document representation, and then version controls them. Developers can import and export SC internal documents (stored in our persistence representation) including program source code, UML diagrams, SVG images, animations, and graphics from and to XML format. This feature is obviously important since it helps users work with tools outside the SC environment.

A user edits XML, HTML and Java programs in the same manner. A user interacts with the system using a menu bar, a tool bar, and contextual pop up menus. When a user selects a document from the project structure window, an appropriate editor is invoked for the document. To display a document, a default style sheet is selected by the system for the document unless it has one. The presentation of the document is built based on the document tree and the style information. The user can choose to open a document with any appropriate style sheet. To edit a document, the user moves the mouse and selects any structural unit of the document that needs to be edited. Then, via the commands in the pop up menu, the user can choose to edit the content of that structural unit presented in the selected portion of the presentation, or to edit the documentation associated with that unit. The SC editor invokes the node editor, which is a simple ASCII text editor. The editor unparses the node and displays the resulting textual representation of the node to be edited. The user edits the text and returns to the document window. Depending on the type of the document that is being edited, the editor invokes either an XML, HTML parser or a Java parser to incrementally parse the modified text, and then creates new nodes and attaches them the document tree. If there exists any errors in the modified text, error messages are displayed and the user can fix them.

The SC editing environment also allows a user to edit image or graphic documentation, and then to associate them with any structural unit in a Java program. The user invokes an image and graphic editor. When the user finishes with his images, the SC editor adds the resulting images into the document window. To associate audio documentation with a
structural unit, the user invokes an audio selection dialog to choose an audio file. Image, audio, and graphic documentation file names are contained in special attributes of document nodes. In addition, the user can create, edit a hyperlink, and attach it to any structural unit in a Java program using steps similar to the ones needed to edit the documentation. The user can enter a URL or choose a file from a selection dialog.

Users can define HTML hyperlinks at any structural units in a software document. Hyperlinks can be inserted within a program, an XML document, a UML diagram, or a SVG graphic. Users are able to navigate among software documents easily.

Users can select different style sheets to display a software document in different ways. An example of multiple presentations of the same program is here.

This set of SC editors will also provide the editing environments for our SCM research in Molhado.