Developing and Evolving Java Applications using Coordination Contracts10/17 10:30 - 11:15 | Convention Center Room 18
10/16 10:30 - 11:15 | Convention Center Room 18
Coordination contracts are a modeling primitive to facilitate the evolution of software systems. Coordination contracts encourage the separation of computation from coordination aspects. They encapsulate the way components interact, and capture the business rules or other volatile rules that govern the application. System evolution consists of adding and removing contracts (i.e., changing the rules) between components. The interactions specified by the contract are superposed on the functionality provided by the components, without the programmer having to modify them and without components being aware of contracts. New contracts may be added anytime (even runtime). This demonstration presents our Coordination Development Environment (CDE), written in Java, that supports the development of Java applications with coordination contracts. It allows to write contracts, and to register Java classes (components) for coordination. The tool is then used to generate the Java code for adapting those components and forimplementing the contract semantics based on a micro-architecture. The CDE also includes an animation tool, in which the runtime behavior of contracts and theirparticipants can be observed using sequence diagrams, thus allowing testing of the deployed application.
Authors: Jo“o Gouveia, Oblog Software SA, Georgios Koutsoukos, Oblog Software, SA Michel Wermelinger, Universidade, Nova de Lisboa JosÈ Luiz Fiadeiro, Universidade de Lisboa, LuÌs Andrade, ATX Software SA
Information Integration and Visualization (IIV) with Java and XML10/17 10:30 - 11:15 | Convention Center Room 19
10/16 10:30 - 11:15 | Convention Center Room 19
Information systems are typically tailored to specific domains, such as management, financial, geographic, project management, inventory control, military planning, etc. This makes it difficult for a single application to view related information from disparate sources. For example, information from different applications can only be viewed with that application. IIV solves the problem of viewing related information from disparate sources. It stitches together islands of information at the level of the desktop, with no userprogramming required. An extensive repertoire of visualizations and data manipulation tools is available. IVBQ is a client-server application written in Java. This demonstration will show the integration and visualization of related information from multiple sources - XML, live network connections, relational databases, files, and GIS sources.
Authors: Kurt Derr, Idaho National Engineering and Environmental Laboratory, Kenneth Rohde, Idaho National Engineering and Environmental Laboratory
Round-trip Objects in Smalltalk10/17 10:30 - 11:15 | Convention Center Room 20
10/16 10:30 - 11:15 | Convention Center Room 20
The demonstrated system was developed by American Nuclear Insurers to deploy an emergency claims system in response to emergency situations at commercial nuclearpower plants. A single host is responsible for claim validation and persistence. Remote nodes can be individual users or host computers. The system communicates by sending Smalltalk objects over TCP/IP in a host/remote mode, mixed mode (some remote hosts and some remote users) or in a multi-tier configuration. Smalltalkís support for creating and manipulating object based transactions and the availability of a socket framework was a key reason for selecting VisualAge. Also important was the high degree of support forobject reuse and the ease of testing during development. The demo includes a discussion of the transaction processing, the underlying communication framework (built on top of TotallyObjectís - Socket Set), the reasons forbuilding the system in Smalltalk, the testing methods and the test results.
Authors: Daniel Antion, American Nuclear Insurers
Asset Locator - an Enterprise Development Resource Management System10/17 10:30 - 11:15 | Convention Center Room 21
10/16 10:30 - 11:15 | Convention Center Room 21
Enterprise Development Resource Management (EDRM) is a new paradigm for the management of development resources (e.g. code, documentation, design documents, test suites) in the enterprise. EDRM leverages the valuable information that exists in development resources and systems to provide developers with search, reuse, collaboration and impact analysis capabilities. Asset Locator - a low cost/maintenance scalable solution is a first step towards achieving EDRM. Asset Locator uses a set of autonomous crawlers to crawl into the enterprise repositories/systems and discover new development resources. A set of domain specific analyzers (e.g., Java, C++, HTML, etc.) analyze the discovered resources and then populate a central repository. This repository serves as the base for global analysis (e.g. impact analysis) as well as the rest of the EDRM capabilities that Asset Locator provides. This demonstration will show how to exploit the textual information and semantic features that reside in OO resources (e.g. inheritance relationship in Java) to support automatic categorization of OO resources into predefined domain taxonomies, semantic navigation of the enterprise repository and improved component/code reuse via a semantic search server.
Authors: Avi Yaeli, IBM Haifa Research Staff MemberGabi Zodik, Manager, Programming Languages and EnvironmentsDept. IBM Haifa Research Lab, Iftach Ragoler, IBM Haifa Research Staff Member, Alex Akilov IBM Haifa Research Staff Member
CANCELED ComposeJ: Aspect-Oriented Programming with Composition Filters and Java10/17 11:15 - 12:00 | Convention Center Room 18
10/16 11:15 - 12:00 | Convention Center Room 18
Authors: Lodewijk Bergmans, University of Twente, The Netherlands, Mehmet Aksit, University of Twente, The Netherlands, Richard van de Stadt, University of Twente, The Netherlands, Hans Wichman, TRIMM bv, The Netherlands, Patricio Salinas, University of Twente, The Netherlands, Luigi Savarese, University of Twente, The Netherlands
AspectJ: the Language and Support Tools10/17 11:15 - 12:00 | Convention Center Room 19
10/16 11:15 - 12:00 | Convention Center Room 19
Aspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms forcapturing the structure of crosscutting concerns. When implemented in a non-aspect-oriented fashion, the code for these concerns typically becomes spread out across entire programs. AspectJ controls such code-tangling and makes the underlying concerns more apparent, making programs easier to develop and maintain. AspectJ is a seamless aspect-oriented extension to Javaô. It can be used to cleanly modularize the crosscutting structure of concerns such as exception handling, multi-object protocols, synchronization, performance optimizations, and resource sharing. This demonstration illustrates what the AspectJ language can do and it shows the tools that support developing programs with this language. AspectJ is freely available at http://www.aspectj.org
Authors: Erik Hilsdale, Xerox PARC, Gregor Kiczales, University of British Columbia
Comparing Two Approaches for Mapping Objects to Relational Databases10/17 11:15 - 12:00 | Convention Center Room 20
10/16 11:15 - 12:00 | Convention Center Room 20
Nebras Persistence Service is a product that can be used to add persistency to object-oriented systems. It provides a tool that automatically adds the needed persistency methods and attributes to persistent classes in Rational Rose models. A run-time service facilitates the persistency between the Application Layer and Storage Layer. The persistency is achieved by mapping attributes to relational database tables. Different strategies can be followed with this mapping. The demonstration will show the two mapping approaches and they will be compared fortheir benefits and drawbacks in different circumstances.
Authors: Arash Farzin, Nebras Informatics Co, Navid Khosravi, Nebras Informatics Co., Mohammad Bakuii Katrimi, Nebras Informatics Co., Sasan Dashtinezhad, Nebras Informatics Co.
GME: A Reflective Environment for Domain-Specific Modeling10/17 11:15 - 12:00 | Convention Center Room 21
10/16 11:15 - 12:00 | Convention Center Room 21
The Generic Modeling Environment (GME 2000) is a metaprogrammable graphical editorsupporting the design, analysis and synthesis of complex, software-intensive systems in diverse engineering fields. GME 2000 has a component based architecture using MS COM technology and is implemented in C++. The Core component exposes the domain-specific language specifications, provides access to the models and publishes its modification events. All the other components (GUI, browser, OCL constraint manager, software generators, etc.) are built around the Core. Model persistence is supported via standard database technology and XML import/export functionality. The demonstration will focus on an example domain, an integrated simulation framework for embedded systems. The UML and OCL based metamodels specifying the domain-specific visual modeling language will be shown. From these metamodels, the domain-specific environment is generated automatically. An example application will be demonstrated; an Automatic Target Recognition system, including its complex models and the automatically generated Matlab simulation and C implementation.
Authors: Akos Ledeczi, Institute for Software Integrated Systems, Vanderbilt University
NetBeans Metrics Module10/17 13:30 - 14:15 | Convention Center Room 18
10/16 13:30 - 14:15 | Convention Center Room 18
Software metrics are often used by project managers to help understand a projectís design, complexity, and robustness. Unfortunately, much of this information is fed back to the projectís engineers when it is too late in a release cycle to be of much use. This demonstration shows a NetBeans (Forte for Java) module that adds software metrics properties to NetBeansí Explorer. This allows metrics to be easily monitored while classes are designed and developed. Sun Labs is investigating whether this early feedback will improve Java applications and reduce their development and maintenance costs.
Authors: Thomas Ball, SunLabs, Sun Microsystems, Inc.
Tengger Support of Design-through-Code [UML through Java] forFeature-Oriented Separation of Concerns10/17 13:30 - 14:15 | Convention Center Room 19
10/16 13:30 - 14:15 | Convention Center Room 19
Tools for composition-based software building, whether based on Aspect-Oriented Programming or more general approaches to Advanced Separation of Concerns, are generally focused on the weaving or composition of code in OO languages. Tengger is a tool that supports the expression of the design as separated concerns, generating Java code from sets of UML class diagrams. Each concern is expressed by its own UML class diagrams and by Java implementations of the UML-declared methods. The UML design is at a high-level, not specifically tailored to Javaís language constructs. Tengger composes the UML designs and produces Java code implementing the result. Hyper/J composes the generated Java code with the developerís code to produce a complete application. This demonstration will present the concepts behind feature-based design and development as supported by Tengger. A small application is carried through the design using Rational Rose, the code-generation using Tengger, and the code composition with Hyper/J. The focus will be on the design-through-code process, on the Java coding style used in the developer-written code, and on the ways in which Tengger and Hyper/J fit into the process to yield the final application.
Authors: William Harrison, IBM T.J. Watson Research, Charles Barton, IBM T.J. Watson Research, Mukund Raghavachari, IBM T.J. Watson Research
Explicit Programming: Improving the Design Vocabulary of your Program10/17 13:30 - 14:15 | Convention Center Room 20
10/16 13:30 - 14:15 | Convention Center Room 20
Object-oriented systems are frequently built around conventions and design patterns that can only be indirectly captured in source code. Explicit programming provides a solution to extend the vocabulary of existing, general purpose languages, allowing developers to encode design decisions in a concrete, encapsulated, and reusable way. ELIDE supports explicit programming in Java and allows developers to introduce new, parameterized modifiers into the Java language, at the class, field, method, and block levels. Each of these modifiers triggers a series of transformations on the program source code. The transformations for a modifier are defined by the developer in a Java class, which operates on a simple representation of the original source code. The demonstration will show how to use the tool to greatly simplify the usage of existing frameworks such as JUnit and standards such as JavaBeans, by introducing test-specific and bean-specific modifiers.; ELIDE will be used to refactor repetitive code and design structures into custom transformations through lightweight, iterative application of the tool.
Authors: Avi Bryant, University of British Columbia, Andrew Catton, University of British Columbia, Kris De Volder, University of British Columbia, Gail Murphy, University of British Columbia
Demonstration of a UML-Based Architecture Description Language10/17 13:30 - 14:15 | Convention Center Room 21
10/16 13:30 - 14:15 | Convention Center Room 21
The notations and tools in widespread use for the purpose of designing and documenting enterprise IT architecture focus primarily on application architecture. As a result they do not adequately provide for the technical management of an enterprise comprised of many systems. An Architecture Description Language (ADL) provides a mechanism formodeling enterprises from a logical level, through system function, integration, hosting, and networking. The goal is to provide an integrated set of models that take the viewerfrom a business process down to the specific devices on which the software resides that addresses the business concern. This ADL notation is separated into Views and Layers. These Views and Layers represent various abstractions of both the business and the technical domains. This demonstration will show ADL and how to extend two of the popular UML-based modeling tools and create a CASE environment that supports enterprise architecture design.
Authors: David Boyle, ALLTEL Communications Inc., Sandeep Gupta, ALLTEL Information Services, Floyd Berus, ALLTEL Information Services, Charles Letner, ALLTEL Information Services
Integrating Refactoring Support into a Java IDE10/17 14:15 - 15:00 | Convention Center Room 18
10/16 14:15 - 15:00 | Convention Center Room 18
Most existing refactoring tools are add-ons to existing Java development environments. The Eclipse Java tooling is a new open source development environment that comes with integrated refactoring support for Java. Refactoring support is built on top of an infrastructure that was designed with a focus on refactoring. A database containing structural information about Java projects provides means for efficient searching and reference updates. Refactoring is seamlessly integrated into the UI and available from all views. And last, the environment is open for developers to extend the set of available refactorings. The demonstration shows various refactorings and their integration into the Eclipse Java Tooling. An in-depth overview of the technical aspects of the refactoring tool is given by presenting the implementation of a particular refactoring.
Authors: Dirk Baeumer, Object Technology International, Erich Gamma, Object Technology International, Adam Kiezun, Object Technology International
Web Testing Using an Object-Relational Database System10/17 14:15 - 15:00 | Convention Center Room 19
10/16 14:15 - 15:00 | Convention Center Room 19
The demonstration illustrates how the XDB object-relational database system implements a web student testing server. An example web site is http://bcook.cs.gasou.edu/eclass. A unique aspect of the testing server is its extensibility and the test format, which is executable. As a result, question parameters and answers are computed on-the-fly. The Answer-Vector (AV) database object supports the flexible grading of tests, which might have a wide variety of question types. The AV encodes each questionís format (multiple choice, numeric answer, etc.) and a possible list of answers in format in which answers are graded by performing a case-insensitive comparison to a list containing the correct answer and some common misspellings of the correct answer. The demonstration will include the dynamic generation of computed tests as well as a review of different question and answer specifications. The goal is to foster a discussion of the applicability of computer-based testing to a problem domain that ranges from true/false questions to essays.
Authors: Robert Cook, Yamacraw Professor, Dept. Math and CS, Georgia Southern University
Traversing the SemiPositionableStream: Millions of Objects in a Scrolling List10/17 14:15 - 15:00 | Convention Center Room 20
10/16 14:15 - 15:00 | Convention Center Room 20
A scrolling list is generally impractical for displaying more than a few hundred items, particularly if the items are in a multi-user database. While databases typically provide an interface to access sorted records as a stream (e.g., with a cursor), they generally do not provide: (1) the information needed to display the scroll bar (or thumb) that identifies the relative position in the list; (2) an interface to jump to a relative position in the list; or (3) an interface to move backwards. This demonstration will discuss SemiPositionableStream, an extension to Brokatís GemStone/S Object Server that identifies an approximate position in a list, allows approximate positioning, and moves both forward and backward. By filling the visible portion of the scrolling list and adjusting the scroll bar to reflect the position of those items in the underlying list, the scrolling list can appear to present any number of items. The database techniques described will be applicable to non-user-interface situations and to other database implementations as well.
Authors: James Foster, Systems Architect, Banner Health System
An OO Client Server System for Concept Mapping and Lexical Navigation10/17 14:15 - 15:00 | Convention Center Room 21
10/16 14:15 - 15:00 | Convention Center Room 21
The purpose of the system is the discovery of related concepts that might never have been obvious from reading any single group of articles. The system can be used for query refinement and focus of overly general queries. The system works as follows. A servermanages a search engine and index, document text mining and a database which holds document metadata, including linguistic relations between discovered multiword terms. A client program displays ìconcept maps,î or lexical relations between terms using a graphical layout system. This program is based on JSP and Java and communicates to the server with SOAP over HTTP. The system will be demonstrated on a set of prescription drug data, showing what can be learned by mining these documents.
Authors: James Cooper, IBM T J Watson Research Center
ArchJava: Connecting Software Architecture to Implementation10/17 15:30 - 16:15 | Convention Center Room 18
10/16 15:30 - 16:15 | Convention Center Room 18
ArchJava is a small extension of Java that integrates software architecture smoothly into Java code. Software architecture describes the structure of a system, and is useful fordesign, program understanding, and formal analysis. However, existing systemsí implementations are developed separately from their architecture and therefore may not conform to that architecture, causing confusion, violating architectural properties, and inhibiting software evolution. ArchJava is unique in that it keeps code and architecture coherent without restricting common programming idioms. This demonstration will show how to apply ArchJava to create both static and dynamically changing software architectures. It will demonstrate the downloadable ArchJava compilerand tools, and explain how ArchJavaís type system keeps implementation code and architecture coherent. ArchJava will be applied to two moderate-size (12-15,000 line) applications. The demo will include a brief comparison to related technologies and will actively search feedback from the audience.
Authors: Jonathan Aldrich, University of Washington, Craig Chambers, University of Washington, David Notkin, University of Washington
New! Hyper/Jô: Multi-Dimensional Separation of Concerns for Javaô10/17 15:30 - 16:15 | Convention Center Room 19
10/16 15:30 - 16:15 | Convention Center Room 19
Hyper/J(TM) supports a new approach to constructing, integrating and evolving software, called Multi-Dimensional Separation of Concerns. Developers can decompose and organize code according to multiple, arbitrary criteria (concerns) simultaneously--even after it has been implemented--and synthesize or integrate the pieces into larger-scale component. (This demo replaced CommonRules)
Authors: Peri Tarr, IBM T.J. Watson Research Center, Harold Ossher, IBM T.J. Watson Research Center, Stanley M. Sutton, Jr., IBM T.J. Watson Research Center
Personal Information Agent10/17 15:30 - 16:15 | Convention Center Room 21
10/16 15:30 - 16:15 | Convention Center Room 21
Information overflow is one of the greatest challenges for information focused professions today. Personal Information Agent (PI-Agent) is an adaptive agent-based information filtering system which automatically scans news-sources for presumably important messages. Different types of information sources are possible (e.g. web-pages, e-mail, newsgroups). PI-Agent works for one user and has ideas about what is important for its user. The user past evaluations are used for learning. The PI-Agent prototype is implemented in Java. Persistency of agents knowledge base is assured by a relational database system (PostgreSQL). For communication with the user a web-based userinterface is implemented using an Apache webserver and Java-Servlets. The audience will experience how the agent works in cooperation with its user. Furthermore the system architecture, the functionality and the implementation details are presented.
Authors: Dominik Kuropka, University of Muenster (Germany)