The construction and programming of interactive graphical user interfaces is hard work with conventional programming tools. Investigations have shown that as much as 80% of the programming code could be related to the interactive parts in modern applications with a graphical interface.
Another difficult task is the development of distributed applications. There are several frameworks and packages around for development of distributed interactive applications, but none is fully satisfactory, and more research and development is needed.
Interest in applications that provide Computer Supported Co-operative Work (CSCW) is rapidly growing, particularly during the recent years with increasing interest in Internet solutions. CSCW applications are usually interactive and, in one way or another, distributed. It is a challenge to provide mechanisms and tools that allow rapid and easy development of interactive and distributed applications. Another challenge is the development of various means for sharing information. Different applications require different types of sharing and a particular application may require several sharing mechanisms. Two major challenges for an application are the ability to allow users to view data in different ways and the possibility of tailoring the interface to meet the different needs of different users. Therefore, further development of frameworks, tools, and modern interface-builders is required. In particular, we need better means for experimenting with and prototyping new ideas for CSCW applications.
In this thesis, I define a framework of high-level mechanisms for the interactive distribution and sharing of information, founded on the object-oriented paradigm. The mechanisms are demonstrated as extensions to the existing class library of a Smalltalk environment. I describe how I have integrated the framework into the Interface Building tools of the environment, and in this way obtained a system that allows rapid development and easy experimentation with many techniques.
Another aim of this thesis is to develop and demonstrate ways to describe essential structures, solutions, and intentions using powerful explanatory techniques. This means that the way the descriptions are made has a value in itself. One particular reason for exploring such techniques is that traditional techniques are either too weak, too imprecise, or too formal to be of real practical value. However, traditional techniques are very useful for defining overall structures, collaborations between components, algorithms, and more intricate functionality. But they are not usually suitable for communicating the essence and intentions of the software. I believe that it will become more important to communicate the structures of software solutions, as applications become more complex. Further, the software market is becoming ever more competitive, and a short time to market is necessary to provide competitive advantage. Design patterns a new field of research and development, has recently emerged. With design patterns one can make clear descriptions of soft-ware application and therefore contribute to shorten the time taken for applications to reach the market. In this thesis I use design patterns as the main ingredient when describing a particular software structure or solution.
Stockholm: Stockholm University, 2001. , 228 p.
object-oriented programming, computer supported co-operative work, design patterns, interface building, interactive graphical user interfaces, distributed computing, rapid prototyping, programming frameworks, shared inter-faces