Developing and maintaining large complex software systems is a difficult task. Generally many programmers work together on different pieces of the software and then integrate these pieces to build the system. In large software development projects where the applications, tools, code, and data are distributed across the network, programmers typically loose track of where the application code lies. Productivity will certainly increase when access to individual parts of the software components becomes easier and faster.
Figure 11: Programming Environment for object oriented programming: Class and subclass declarations organized in multiple windows
Most of the software development environments in use today are file-based. In these environments, programmers organize code as separate windows for each file. Programmers typically need to reference different parts of the code, such as data declarations, procedure declarations, bodies, and invocations, as well as related documentation like execution charts, and reports. It is beneficial to provide programmers with environments that enable them to group information and manage multiple windows easily on the desktop.
Object oriented technology is widely used in industry to overcome problems of large complex software development. Below we will describe possible benefits of an object oriented software development environment using elastic windows principles.
Figure 11 displays a view of a large project as seen by a programmer. On the left, top-level object classes are displayed as icons, where programmers can pick any of them to see their declarations, related documentation, or subclasses derived from them. The top middle window displays a class declaration, whereas the bottom middle window displays the subclasses derived from a base class. Icons representing these subclasses can further be selected to view declarations grouped in a single window as shown in the rightmost window.
As shown in Figure 12 documentation regarding a class can be viewed easily while updating the declarations for that class. To use more of the screen estate, windows or groups of windows can be packed as in Figure 12. Managing multiple windows at a time saves time when organizing windows to meet new screen space requirements of the current task.
Providing programmers capabilities to organize information and easy access to related information increases manageability of a complex system. This example also demonstrates the use of multi-window operations to reduce the burden of window management and the use of the Pack/Unpack operations to meet changing screen space needs.
Figure 12: Window organization quickly changed to view documentation regarding a component of the system.