The GUI Artist Pre Project Report

The ambition is to develop a GUI designer for Java.

The program is to be open source and 100% cross platform compliant, something that currently does not exist. Furthermore, it will be small, fast and easy to use with "hidden" power features, such as keyboard shortcuts for all operations.

The project is initially a 10 ECTS credits project at the Computer Science faculty of Østfold College, under supervision of professor Børre Stenseth. However, we hope that the project will be of interest to the open source community and that they will contribute with ideas and constructive criticism.

Currently, there are several big software vendors that deliver IDEs ( Integrated Development Environment ) that have a GUI designer ( such as Borland JBuilder and Sun Forte ). However, these programs are big, slow and are properitary software. Furthermore, they force the user to use their set of tools ( e.g. editor and debugger ) in order to develop Java programs.

We will therefore develop a program that only does the GUI design, is open source, and gives freedom in terms of choice of tools to be used. The code generated by The GUI Artist ( The Gart ) will be easy understandable and complient with code conventions used by the Gart project. The program will also feature reverse engineering of code previously generated by The Gart.

Project participants

Project group members

Håkon A. Jensen
hakon.a.jensen@hiof.no

Torstein Krause Johansen
torstein.k.johansen@hiof.no

Harald Tolleshaug
harald.tolleshaug@hiof.no

Project manager

Professor Børre Stenseth
borre.stenseth@hiof.no

Pre Project Phase

Hardware

Server hardware for setting up CVS ( Concurrent Versions System ) and websever. The CVS server is a great way of keeping version control of files when several people develop on the same project. It will also easen the work of retracing our steps when questions arise regarding the program progression. With a CVS server, it will also be easier to work with the project, wherever the participants may be.

An own webserver is also a great way of promoting the project that we hope and believe will be received with interest by the Java community.

The server will also function as a storage for our local copies of the CVS repository, easining the load on our own home accounts on the regular school servers.

Software

Due to the open source nature of our project, we chose to only use cross platform programming languages, open standards and open operating systems when developing the program.

Java will be our primary programming language during this project. CGI and maybe some program modules handling text parsing will implemented in Python. We will also use various Unix scripts for analysing various debug information.

Please note that although we develop and run our servers on Linux, the finished product will run on multiple platforms, alt least Windows, Linux and Mac.

Webpages Design and maintenance. Signed up at sourceforge and got full web hosting with CGI privileges and shell access. Our pages can now be viewed at gart.sourceforge.net.

Make project project schedule

Agree on programming conventions

When several people are working on the same project, it is an advantage if everybody writes code in the same manner. After a short discussion on how to write Java code, we agreed on a 'programming standard'.

Find resources

The project will be heavily based on Java and thus, it will be necessary to research what is available, especially in terms of the graphic libraries ( such as java.awt, javax.swing ). Furthermore, it will be important to find out what is already available in the GUI design genre, what is good and what can be improved, in order to make our product a unique contribution to the Java community.

Milestones

Research

Find resources on the net and consult fellow students and supervisor. There is alot happening on the GUI front of Java. Also, we need to spend some time to find out how to optimalise our code in order to make it run faster than standard Java applications, which are too slow. Byte compiling Java source, is in particular interesting and requires further investigation.

System analysis and design

Discussions on how the system is to both look and function, the so called "look and feel" of the program. It is important to do a thorough job here in order to get a mutual, clear view of the program objectives and how these are to be implemented.

Making sketches of the actual program GUI will also be important in order to make the software as easy to use as possible.

Several discussions need to be made in order to find out how the program is to parse different meta information, such as program configuration and flags in the Java code.

Implementation

Naturally, this will be a giant milestone. A natural start will be to make the GUI first in order the whole thing actually will look like, and it will thereby be easier to figure out how the program will function.

After getting the user interface to work, we will be working on the code generation from the layed out GUI components. When this works ( hopefully ), we will look at how to do this the other way, that is to generate a graphically representation of code previously generated by The Gart.

Testing

Testing is an essential an also a very important part of developing software, often overlooked by developers. We have already gotten voluntairy beta testers at the University of Trondheim, NTNU, and will also be needing the help from fellow students at our own faculty, at Østfold College in order to make our program as good as possible.

Documentation

Our intention is that the program shall be so user friendly that no documentation is needed. However, we will have help available both as a big document and as a functions within the program.

Project Finish

We hope to have the program finished by the time we reach the middle of December 2001. However, it is perfectly alright for others to participate in the project with ideas or corrections or to develop it to suit others' needs, as long as the report their changes to the code back to use ( all of this in accordance with the GPL licence ).

Project Responsibilities

Since we are only two group members, we must both work on all the different components of the project. However, this may be subject to change. But how we will solve this, is yet to be decided.

How It Will Work

When starting the program, the user will be promptet for what kind of application he/she wants to develop, either Java Frame, Java Console, or Java Applet. These three choice can again be chosen with or with the Swing graphical components.

The user will then be sent to the main design view, where he or she can add, remove, resize, move and change visual properties of different graphics components.

Code can then be generated with the click of a button and the the result viewed from within The Gart. It will also be possible to go the other way. I.e. to view GUI from code previously generated The Gart, so called reverse engineering.

There are also some things that may be implemented in the program, such as invoking standard editor for actually viewing and modifying the code, viewing online documentation in web browser and printing ( this will be platform dependent ).

Valid XHTML 1.0! Valid CSS!