Application Framework Laboratory

Contents:

This page may be outdated since it is not being maintained anymore.

Motivation

We observe that there exist three kinds of application building tools today: general-purpose, domain-specific, and component-oriented tools.

General-purpose application building tools support the creation of domain frameworks and the GUI applications that operate on those frameworks. Usually, the palette of user interface components that comes with the user interface builder only contains general-purpose user interface components that interact with the application framework in a general way. Building applications targeted to the domain at hand requires writing a lot of of application logic. What we need is the ability to build our own user interface components that encapsulate all the necessary component logic, so that writing application logic is minimised. But general-purpose user interface builders are generally closed systems, the set of available user interface components cannot be extended.

Domain-specific application building tools support the creation of applications for a specific problem domain. They offer all the entities with which a domain expert is familiar, so that applications are built on the domain level instead of the user interface level. This is the strength as well as the weakness of domain-specific application building tools. Usually these tools are so domain-specific that it is almost impossible to deviate from the domain and application frameworks imposed by the application builder.

Component-oriented application building tools allow fast application development by linking predefined user interface components, but they do not rely on a domain framework and the set of user interface components can only be extended from outside the component-oriented environment.

ApplFLab's aim is to bring these three styles of application building closer together. It enables the user to create his own user interface components that can be reused like any other standard user interface component. In general, self-made user interface components are domain-specific. They contain all the necessary component logic. They only have to be linked with the domain model. This leads to a component-oriented application building style.

Very important is that the domain framework designer, the application designer and the component designer work in the same medium.


Ongoing Work

Work on ApplFLab is constantly ongoing, since features are added only when needed or requested. During its lifespan, ApplFLab has been updated regularly. Major updates occur approximately once every six months.

Currently, we are upgrading ApplFLab's capabilities to the requirements of a few last year students, and to our needs to build tools that support reuse contracts. One student uses ApplFLab to generate layouts of web pages, another is experimenting with components to build browsers. At this time we are specialising ApplFLab to build an OMT class diagram drawing tool.

Many of the enhancements from this work find their way back into the core of ApplFLab. Future versions thus benefit from the experiments performed today.

One of the major obstacles that prevent users to use ApplFLab is the lack of good documentation. Writing a manual is one of the top items on our to-do list.


Achievements

The applicability of ApplFLab can only be validated by a number of experiments. The first experiments were toy applications in nature. They were only performed to prove the power of the system. Other experiments were performed to determine the system's bounderies and to detect its limitations.


Artifacts

Implementation

The current implementation is an extension of VisualWorks\Smalltalk. The closed VisualWorks user interface builder was turned into an open implementation with reflective facilities, essentially by extending the user interface builder framework and adding the metatools, i.e. the component editor and an improved properties editor.

This implementation supports:

Guided Tour of ApplFLab

Warning: this guided tour contains lots of pictures.

Try ApplFLab Yourself!

ApplFLab version 1.1 is available and its free! VisualWorks 2.5 is required. You can fetch the ApplFLab files from our download directory.

Conferences, Workshops, etc.

Presentations

Demonstrations

Tutorials


Projects

The work on ApplFLab is now part of a research project called (in Dutch) "Software engineering Methodologieen en Generische Werktuigen voor Domeinspecifieke Objectgerichte Frameworks", or "Software Engineering Methodologies and Generic Tools for Domain-specific Object-oriented Frameworks", a cooperation of OOPartners and the Programming Technology Lab, sponsored by the IWT (Vlaams Instituut voor Bevordering van het Wetenschappelijk Technologisch Onderzoek in de Industrie).