Chapter 9 Integrated Office Systems 1 O.M. Nierstrasz D.C. Tsichritzis Introduction New techniques are sorely needed to aid in the development and maintenance of large ap- plication systems. The problem with traditional approaches to software engineering is well in evidence in the field of office information systems: it is costly and difficult to extend existing applications, and to get unrelated applications to “talk” to each other. The object- oriented approach is already being tentatively applied in the modeling of “office objects” and in the presentation of these entities to users as such in “desktop” interfaces to office software. In order to fully exploit the approach to achieve integrated office systems, we need to use object-oriented programming languages, object-oriented run-time support, and object-oriented software engineering environments. We can view the fundamental idea behind the object-oriented approach as that of encap- sulation: object-oriented languages and systems exploit encapsulation in various ways in an attempt to enhance productivity through, for example, reusability mechanisms such as class inheritance. (See [Nierstrasz 1988] in this book for an elaboration of this view.) The importance of object-oriented techniques for software engineering has long been established: encapsulation has been successfully used by programmers ever since macros and subroutines were invented. Encapsulation is important not only for the purpose of decomposing large software problems into manageable pieces, but can also be exploited to achieve software maintainability, reusability, and even “rapid prototyping”, as object-oriented systems like Smalltalk [Goldberg and Robson 1983] have demonstrated. Commitments to existing software, languages and operating systems have prevented appli- cation developers from taking full advantage of object-oriented techniques until now. The possibilities are especially in evidence in the domain of office information systems, since there is often a close and natural correspondence between the entities these systems manipulate and the real-world “objects” they refer to. Office information systems are a paradigm of a new kind of application. For a long time the applications supported by computer systems were well-defined and reasonably well- structured. In such environments it was realistic to expect that we could define the “problem” inherent in the application, then do the requirements analysis and follow on with implemen- tation. In office information systems the “problem” often cannot be readily defined. Office 1 In Object-Oriented Concepts, Databases and Applications, ed. Kim and Lochovsky, ACM Press and Addison Wesley, 1989, pp. 199-215.