Software Development: Past, Present and Future ...

4 downloads 197621 Views 129KB Size Report
Jul 3, 1992 - (Adobe's Postscript language, 1982; Hewlett-Packard Laserjet, 1984; Apple LaserWriter ... PageMaker Mac. ...... 91 Microsoft releases DOS 5.0.
Paper presented at the NIDI/IUSSP Expert Meeting on Demographic Software and Micro-computing, Strategies for the Future, The Hague, 29 June - 3 July 1992.

Software Development: Past, Present and Future Trends and Tools Historical development of computer technology, present situation and expectations from users and software developers. Options, advantages and limitations, guidelines on software engineering and a review of the state-of-the-art. Patrick Gerland *

Chronology Early computer systems came complete with software that was specially designed to operate on a specific system. Most software consisted of programs to control the operation of the computer and its peripherals. Users designed their own programs to meet specific needs, and companies hired programmers to write programs in-house. A decade ago, almost all demographers, statisticians, policy-makers, planners, administrators and researchers performed computations and analyses manually or with a calculator. Lately, and specially for the 1990 round of population censuses, most of these people have gained access to microcomputers and are now able to use spreadsheets and demographic software programs to process data and generate results. Many institutions have developed statistical and MIS databases mainly for internal use. Some more advanced countries now have powerful, on-line information systems. The power and ease of use of microcomputers, compared to mainframes, have altered human attitude such that users without any programming or other computer skills now are able to manage and perform tasks better, faster and with much ease. Technological tools have opened new possibilities to test assumptions, compare estimations, evaluate scenarios for development planning, etc. For many the introduction and use of microcomputer technology represents a dramatic shift of control and responsibility over technical resources from the traditional central computing service to individuals and organizations who were previously end users of more centralized services. Such changes have had considerable impact in work activity. Word processing, spreadsheets, demographic and statistical software programs became standard tools. It was not long ago that census data processing was delayed for many months awaiting preparation of computer programs for editing and tabulating the data. While these huge data processing tasks remain formidable, preparing computer programs is no longer the main issue; now the problems are with management, organisation of work and training. Similarly, analysis of census and survey results need not be attempted with hand calculators or relegated to institutions that can afford mainframe computers with FORTRAN programming staff; microcomputer software for demographic analysis is available as soon as input data requirements are satisfied. Analytic *

Computer Software and Support for Population Activities Project. United Nations Department of Economic and Social Development. The views expressed in this paper are those of the author and do not nessarily reflect those of the United Nations. Mention of firm names or products does not imply the endorsement of the United Nations.

Software Development: Past, Present and Future Trends and Tools

capabilities are extended by recent advances in graphics and mapping software that use newly available hardware as effectively as the commercial software.

Technological Trend The 1980s will be known for the explosive growth of computer industry with the extraordinary technological developments from the United States, Japan and other Far Eastern countries. The development of the IBM personal computer in 1981 revolutionized computer technology. The major development, however, was the tremendous increase and proliferation of packaged software ranging from very sophisticated applications to computer games that were produced almost entirely for personal computers. The speed with which hardware developments are occurring is accompanied by a more modest significant improvement in software productivity. Users have benefited from the rapid growth and lower production costs of powerful computers and a competitive market. Now many more are able to acquire and apply computers to a wider range of applications. In 1978 the development of the first electronic spreadsheet for PCs called VisiCalc by Daniel Bricklin greatly enhanced the popularity of Apple Computer Inc.'s Apple II and accelerated desktop demand. It also paved the way for the next spreadsheet programs, Multiplan (1982) and Lotus 1-23, created by Mitch Kapor and Jonathan Sachs (1983). Produced by Lotus Development Corp., Lotus 1-2-3 expanded Bricklin's basic software to include data management and graphics facilities. The overwhelming success of the spreadsheet made it a popular tool. As personal computers became widely used and people realized its productivity, more applications were developed such as word processors (WordStar, 1979; WordPerfect, 1980; Word, 1983). These two pivotal applications greatly expanded the PC user base, further enlarged in the late 1980s with the spread of local database applications (dBASE II, 1980; dBASE III, 1984), integrated software packages (Symphony: 1983, Framework: 1984, Jazz for Mac: 1985; Works: 1987), desktop publishing (Adobe's Postscript language, 1982; Hewlett-Packard Laserjet, 1984; Apple LaserWriter, 1985; PageMaker Mac.: 1985, on PC: 1987; Ventura ), graphical user interfaces (Macinstosh Finder and GEM: 1984; Windows: 1985; NewWave: 1988; Presentation Manager: 1989) and new generation of spreadsheets (Excel for Mac: 1985, for PC: 1988; Wingz for Mac: 1989) and wordprocessors integrating desktop publishing capabilities under Windows 3.0 (Word for Windows, AmiPro, WordPerfect for Windows), local area networks and electronic mail (Ethernet, Novell's NetWare, etc.). Through all these years, the engine that generated PC power had been the MS-DOS. Michael J. Miller (Ten Years of Prediction, PC Magazine. Nov. 12, 1991. p. 80) expects that "in the next ten years we'll see a real broadening of the PC platform. After all, we've gone from one vendor to hundreds of vendors; from single standalone machines to multiple PCs networked together; from running one application at a time, to task switching, if not true multitasking; from displaying only alphanumeric information, to adding fonts and graphics, and soon sound and video into graphical user interfaces offering WYSIWYG (What You See Is What You Get) capabilities; from a single desktop computer to options ranging from hand-held to notebook to laptop to desktop to server. Yet even as the platform broadens, its basic level of compatibility remains." Over the next few years, he expects "the major tension to be between innovation and compatibility. Making computers more power and much easier to use will continue to be a goal, but it seems unlikely that

2

Software Development: Past, Present and Future Trends and Tools

many of today's computer users are willing to give up compatibility in order to take full advantage of these technologies." In contrast, customers' practical desires for continuity and compatibility tend to inhibit progress, and motivate increased interest in standardization, whether de facto, such as the Postscript notation for formatted text, or de jure, such as OSI (Open Systems Interconnection, ISO standard for worldwide communications) networking protocols. New and innovative application programs that cannot work on standard hardware or exchange data with relevant existing popular systems are much less likely to be successful than those that can. New hardware architectures typically also have to provide a degree of backward compatibility. For example, they might have the ability to support conventional programming languages and a standard operating system, or to connect to networks or devices over standard interfaces. Such characteristics, though aiding the initial exploitation of the new architectures, can at least partly compromise their potential advantages. In 1980 with the success of Apple, Tandy, and Commodore IBM began to take serious interest in microcomputers and adopted the Apple's strategy: software development by independent publishers, and open architecture. In 1981 IBM released the first IBM personal computer; Apple then was the leader of a small customer market (few hundred thousand users). In 1984 Apple succeeded to keep a share of the market with its Macintosh, but most business-oriented applications and companies adopted IBM line. Over the last decade, over 60 million IBM-PC compatibles and over 5 million Macintosh have been sold world-wide1 : today microcomputers continue to be popular. In 1987 IBM introduced a new line of microcomputers, the PS/2, with more power than the PC/XT/AT and set up new hardware standards (VGA, 8514, MCA, etc.). However, in order to keep the customers, the hardware had to remain compatible with all the existing software and applications running on the PC platform. When IBM first released OS/2 in 1988, new the operating system for the high end PS/2 models, the impact was very limited as it did not provide full compatibility with the old DOS software. On the other hand, Windows 3.0 (1990) was a large success mainly because it supported DOS and forced IBM to revise (OS/2 and Presentation Manager to be DOS and Windows compatible, OS/2 version 2: 1992). UNIX in general and the Next Computer (1988, Steve Jobs, cofounder of Apple Inc. and Macintosh's father) despite technological breakthrough and exceptional cost/benefit Unix-compatible workstations, are experiencing similar resistance to penetrate the PC users market. It is difficult to predict how the computing world will change, what new and revolutionary application programs (like the spreadsheet) will be conceived. However, it is reasonable to consider that the PC/DOS inertia will remain for some more years, and probably a smooth evolution toward more advanced operating systems, taking advantage of the more powerful hardware available upon the condition sine-quanon to still provide a relative compatibility with DOS applications. IBM-OS/2 version 2, the forthcoming Windows/NT from Microsoft, and the IBM/Apple joint-venture to develop a new hardware and operating system (Pink system) are alternatives toward this direction.

1

PC Magazine. Vol. 10, No. 19, Nov. 12, 1991, p. 79 and Macworld, Vol. 9, No. 1, Jan 1992, p. 31

3

Software Development: Past, Present and Future Trends and Tools

Software Development The three essentials of computer technology are: hardware -- the physical machinery that stores and processes information; software -- the programs and procedures that orchestrate and control the operation of hardware; and people who know what the hardware and software can do and who accordingly design and implement applications that exert appropriate commands and controls over hardware and software to achieve desired results. Hardware is increasingly faster and cheaper, software for population purposes also is increasingly better and cheaper, and people able to use software are more numerous every day. However, advances in hardware come much faster than in software, and the major limitations on effective application of computers remain software development and training in the use of software -- both people-intensive activities. Computer hardware is produced on assembly lines making identical multi-purpose products. Computer software is developed by specially talented people who, like those who design the computer hardware, are very few in number. Computer hardware and software application are entirely dependent on people who must know a lot about the purpose of using the computer equipment, and enough about the hardware and software to use it correctly within the boundaries of its capabilities and requirements. Computer manufacturers strive to produce hardware that enables software producers to compose software that will be wanted by many users. Software developers strive to compose software that both appeals to an existing market and exploits new hardware capabilities via various innovations to enable better computer applications by even more users. As a result, an enormous body of evermore impressive hardware and software attracts a vast number of intended users who, in developed countries, often can afford the dollar cost of the new hardware and software much more readily than they can find the time to learn to use it effectively. The limiting factor on software development is availability of specially talented and experienced technical staff. Such staff naturally tend to be employed on development and maintenance of commercial software that appeals to a wide audience, with the result that software needed for supporting some of the various demographic and population activities may be readily available because they are similar or identical to common commercial applications. There are many firstclass, reasonably priced software for computer applications such as word processing, financial spreadsheets and common statistical analysis, for example. On the other hand, software wanted for specialized and less popular purposes such as large-scale data entry, census-size summary tabulation, demographic analysis and population projection tends to be less commonly available except from research or academic institutions that have needed to develop such software for their own use. For example, excellent word processing or spreadsheet software is available for about $200 per copy from major commercial sources, but population projection or fertility estimation software are most readily available from organisations engaged in demographic research at prices close to actual cost of producing copies. In other cases, where commercial demand is narrow, the software may be available but from commercial sources at relatively high prices. Commercial data entry software cost about $500 per copy plus charges for each computer using the edit/entry programs developed with the software, making commercial data entry software very expensive for census or large-scale survey data entry. Some international organizations and a few national institutions assist developing

4

Software Development: Past, Present and Future Trends and Tools

countries by providing free or very low cost software for data processing, but the software tends to leave much to be desired regarding ease of learning and ease of use because the software development skills that can be devoted to such products cannot match those invested in software like commercial spreadsheets or word processors. Despite their limitations on time and resources available, many individuals and organisations have succeeded in providing software of sufficient quality and in sufficient quantity to begin to overcome one of the major problems faced by developing country institutions wanting to use computers in their population activities: computer programming delays and difficulties. The main idea for hardware and software must be to make computers easier to use for storing, finding, viewing, analyzing and presenting information. New software developments must offer easy and transparent access to this new world of information and resources to facilitate productive use of computer technology. However, software remains difficult to develop, and developers face a never-ending increase in user expectations and demands. Thus, an application that seemed enormously powerful just a few years ago appears crude and primitive today. The software developer's task has been greatly complicated by the advent of GUIs and windowing applications as standard components of virtually all desktop computer systems supporting more and more advanced video and memory limits, the extension of LAN environments and a larger access to more advanced peripheral equipment (mouse, digitizer, dot-matrix, ink-jet, plotter, laser printer with or without color and/or postscript capabilities, etc.). Paul Saffo (looking at VisiCalc 10 years later. Personal Computing, Nov. 1989) notes "Rising product complexity also has an impact on the software development process. Ten years ago, great software was written by individuals or intensively small teams. VisiCalc was a two-man effort, conceived of by Dan Bricklin, but largely written by his partner, Bob Frankston. In contrast, Lotus would have to rent an auditorium to hold the crowd - more than 150 professionals - responsible for Lotus 1-2-3 Release 3. The sheer size of the two applications parallels this jump: The first version of VisiCalc was about 20,000 lines of code long. Lotus 1-2-3 Release 3 is closer to 200,000 lines." "Still, there is less to this shift than meets the eye. Scratch the surface of any large development team and you are likely to find a few design virtuosos surrounded by a host of supporting players. We have become more skilled in dividing development into discrete tasks such as design, coding, and manual-writing, but great software remains the hand-crafted product of individuals. Fylstra notes that this is particularly evident at Microsoft, which assigns projects to small bands of engineers and then gets lots of other people involved at particular stages in the development effort. Even companies like IBM, which throw armies of programmers at problems and speak routinely of "man-millennia" efforts, still rely on small groups to get the important work done." And the problem is exacerbated by the continued dominance of old and complicated operating systems such as Unix (23 years old) and DOS (11 years old). Meanwhile, software developers are looking for new development tools to simplify the task of software development. Programming languages and development tools for microcomputers have developed more sophisticated features and functions, resulting in enhanced program design: programming languages have progressed from assemblers and crude BASIC implementations to interactive and integrated C and Pascal environments during the 1980s and more changes are expected in the 1990s. Trends that have helped improve languages are the advent of "medium-level" C language

5

Software Development: Past, Present and Future Trends and Tools

and the introduction of integrated editors and debuggers that make programming easier, the growing number of people taking up programming, the emergence of more powerful 80286 and 80386 microprocessors, and the emergence of sophisticated operating systems. Programmers can now debug in software instead of using hardware debuggers. Borland International's Turbo Pascal was the first truly structured microcomputer programming environment; Microsoft pioneered source-level debuggers with its CodeView. Old languages such as FORTRAN and COBOL gained new life with the latest microcomputer implementation offered by Microsoft. Analysts expect a tremendous increase in the use of object-oriented programming in the 1990s. Language technology is advancing on three major fronts: traditional programming languages will become integrated with macro languages found in applications; traditional languages will evolve toward an ideal language; and integrated development environments will enhance software development. Macro languages are expected to improve as traditional programming languages improve. In the long range this technological evolution justifies possible adaptation of the software to support new hardware and software configurations, other operating environments like MS-Windows for DOS, Presentation Manager for OS/2, X-Windows for UNIX. In the meantime, software developers must provide inexpensive solutions to enable software to run on most computers available worldwide. Software development should seriously consider all these elements.

Environments and User-Interfaces The microcomputer revolution has brought some new concepts such as user-friendly and ease of use, interactive computing and user interface. Here are some definitions: User-friendly refers to anything that makes it easier for novices to use a computer. Menu-driven programs, for example, are considered more user-friendly than command-driven systems. On-line help systems and graphical user interfaces that use windows, icons, and pop-up menus are becoming increasingly popular for their ease of learn and ease of use. Computers and mainframes used to have very limited interactive environment, meaning a series of jobs where processed at one time without any human intervention (batch-processing applications). Microcomputers and workstations have introduced a new dimension to personal computing: the interactivity. Users now can enter data or commands and get immediate feedback. Most popular PC programs, for example word processors and spreadsheet applications, are interactive. However, batch processing remains useful for repeating operations that require the computer or a peripheral device for an extended period of time. The user interface (or "front end") is one of the most important parts of any program because it determines how easily a user can make the program do what he wants. It is how the user interacts with the computer system and how the system displays the result. A powerful program with a poorly designed user interface has little value. User interface consists of the graphical design, the commands, prompts, and other devices that enable a user to interact with the program. Three basic types of user interface (which are not necessary mutually exclusive) are: • A command-driven interface is one that allows the user to enter commands. The users must memorize commands and enter them exactly as required by the operating system or the

6

Software Development: Past, Present and Future Trends and Tools

application. The command-line interface, typified by the MS-DOS A> or C> prompt, responds to commands type by the user. • The menu-based interface (also called menu-driven interface), used by many application programs such as Lotus 1-2-3, is one that displays all available commands (or keywords) on the screen and users select the commands from various menus that can be activated by typing a letter, pressing a direction key, or pointing a mouse. • The graphical interface, characteristic of the Apple Macintosh, and of windowing programs, presents the user with a visual representation of some metaphor such as a desktop and allows the user to control not only menu choices, but also the size, layout, and the contents of one or more on-screen "windows" or working areas using a pointing device. The most straightforward user interface is the command-line prompt. The user types what he wants and the computer does it. The problem is that it requires remembering what to type and the parameters needed. With the GUIs, typing is minimized toward more direct interactive manipulation; the problem is that there are many entities to deal with: tools, windows, menus, toolbar, button controls, icons, scroll bars, etc. On-line help systems are another characteristic of user-friendly programs offering several built-in features to provide context-sensitive help to users. For example: • Screen Design - Titles, labels, descriptions and dialog boxes about the application and the prompts. • Status Line Help - Information required by screen prompts is described on the status line (see for example PC-Edit and Xtable). • Default Responses Shown with the Prompt - The system automatically gives the default value at the prompt "Press Enter key to accept the value or type the desired response". • Error Messages (or Alert box) - A small box or window that appears on the display screen to give you information on correct options or to warn you of potential consequences when the information selected or entered is incorrect or inappropriate to the context. • Pull Down Help Windows - Pull-down help windows are accessible at any location. Many commercial programs come with the instruction manual, or a portion of the manual, integrated into the program. If the user encounters a problem or forgets a command while running the program, he can access the documentation by pressing a designated Help key (Usually function key F1 on IBM-PCs and compatible) and the program provides different Help messages or documentation for the specified feature. Many software packages do not provide such context-sensitive help and offer only a menu of Help topics where the user makes a selection. However, more and more software (particularly in GUI environment such as Windows) support context-sensitive help with possibility to navigate across the documentation through hypertext cross-references on major keywords (see below). The help can be hierarchical and offers different levels of explanation: global, contextual with short summary and options, and another level with more details providing methodological documentation or reference materials (see for example PDPM/PC). User interfaces and features were of course limited in the early years but further team work to enhance the software, optimize the software ergonomy and the user environment have contributed to what most users see today. "Bill Gates and Apple co-founder Steve Jobs shared a common vision for computers that were more user-friendly and more practical in improving people's daily lives.

7

Software Development: Past, Present and Future Trends and Tools

The key, they believed, was the graphical user interface. PCs running MS-DOS at that time had a text interface, meaning that they communicated with the user by means of letters, numbers, and punctuation marks. The Apple Macintosh's graphical user interface, in contrast, displayed pictures on the screen. All data were drawn dot by dot on the screen. The basic philosophy behind this interface was the assumption that it is much easier to learn from pictures than from words." (D. Ichbiah and S. Knepper. The Making of Microsoft, 1991. p. 143). The first graphical user interface was designed by Xerox Corporation's Palo Alto Research Center in the 1970's (Star workstation), but it was not until the 1980s and the emergence of the Apple Macintosh (1984) that graphical user interface became popular. It took six years for IBM-PC to move to a graphical user interface (Windows 3.0: 1990) after Apple introduced one. A reason for its slow appearance was the considerable CPU power required and a high-quality monitor that were, until recently, prohibitively expensive.

GUIs and Operating Systems In addition to visual components (graphics mode, WYSIWYG, desktop, windows, pointer, icons, menus, mouse), graphical user interfaces also make it easier to use different programs and to move data from one application to another since interface uniformity and consistency are insured between applications. A true graphical user interface, called a GUI, includes standard formats for representing text and graphics. Because the formats are well defined, different programs that run under a common GUI can share data. This makes it possible, for example, to copy a graph generated by a spreadsheet program into a document generated by a word processor. The key point in the use of a GUI is to learn how to pull down menus, how to click and double-click and drag. Once a user is familiar with these preliminary steps, he can pick up almost any program that follow the conventions almost without reading manuals (only useful for advanced features, detailed examples, technical and methodological information), since on-line help provides most useful information on a contextual basis. Many DOS programs include some features of GUIs such as menus, but are not graphics based. Such interfaces are sometimes called Character-based User Interfaces (CUIs) to distinguish from true GUIs. IBM introduced in 1987, CUA (Common User Access) specifications based on SAA standards (System Application Architecture) for user interfaces, which included the graphics-based Presentation Manager of OS/2 and the character-oriented interfaces of 3270 terminals. CUA is intended to provide a consistent look and feel across platforms and between applications. Philippe Kahn, Borland International's founder, explained once: "Impatience is a rare virtue... Usability is the key. With software, we figure that we have about five minutes. If the user can't operate the program without a manual in this amount he gets frustrated." (Newbytes, 12 Aug. 1991). The user interface sets the ratio between layers of complexity and functionality: the trade-off in add-in functionality increases complexity. The most important user interface problem now is how to increase the number of functions users can do while simultaneously minimizing or decreasing the training time. The number of features is increasing nearly exponentially for almost every software, from word processors to spreadsheets and database management. The only way to limit this drawback effect is to design software with several user access level to simplify software use according to the user background and expertise (for example: novice, standard, advanced, developer). Features and menu options are more or less simplified to offer the essential features,

8

Software Development: Past, Present and Future Trends and Tools

and the more advanced options for some specific tasks are made available only when needed based on the learning process and software familiarity acquired by the user. (see for example Central Point: PC Tools three multi-user access levels). The most popular graphical user interface available today is related to the operating system and the hardware platform running them: In the Macintosh, the graphical interface is built-in: the Finder is part of the operating system that manages the desktop. It keeps track of icons, controls the Clipboard (reserved memory used to hold data that has been copied from one application in order to be inserted into another) and Scrapbook (a disk file that holds frequently-used text and graphics objects, such as a company letterhead) and allows files to be copied. Finder manages one application at a time. Multifinder manages multiple applications on screen. In the UNIX world2 , many different variants exist according to the hardware manufacturers and the system developers. • X Window: Windowing environment for graphics workstations that was developed at MIT with participation from Digital and IBM. It is designed to allow graphics generated in one computer system to be displayed on another workstation in the network. X Window is designed to run under any operating system and is supported by all major workstation vendors. • Open Look: X Window-based graphical user interface for UNIX developed by Sun and defined and distributed by AT&T. It conforms to POSIX, ANSI C and X/Open's XPG3 standards. • OSF/Motif: (Open Software Foundation3 /Motif) Graphical user interface from OSF that

provides a Presentation Manager look and feel for applications running on any system with X Window version 11. It conforms to POSIX, ANSI C and X/Open's XPG3 standards. • NeXTstep: Graphical user interface and object-oriented development environment from NeXT, Inc., Redwood City, CA. It allows for the creation of graphics-based, windows applications under UNIX using Objective C. IBM has licensed NeXTstep for its UNIXbased (AIX) workstations. For the IBM-PC platform the standard GUI is Microsoft Windows. "The IBM-PC had imposed a standard hardware architecture and a standard operating system on the PC industry, but standards did not extend to PC applications. The most popular software programs for the PC were completely different from one another. Adept WordStar or WordPerfect users, for example, could not benefit at all from their word processor expertise when they tried to use dBASE or Lotus 1-2-3. Each of these

2

Unix is a multiuser, multitasking operating system from AT&T that runs on a wide variety of computer systems from micro to mainframe. UNIX is written in C (also developed at AT&T), which is a language designed for system-level programming. It is C's inherent transportability that allows UNIX to run on so many different computers. UNIX is made up of the kernel, the heart of the operating system, the file system, a hierarchical directory method for organizing files on the disk and the shell, the user interface which provides the way the user commands the system. Normal UNIX commands are very cryptic but they can be replaced with shells that are easier to use, including graphical user interfaces (GUIs), such as X Window, Open Look, OSF/Motif, NeXTstep.

3

OSF: (Open Software Foundation) Non-profit research and development organization dedicated to develop and deliver an open operating environment based on standards. Formed in 1988, by such geant as IBM, DEC, Santa Cruz Operation and HewlettPackard to counter the alliance between AT&T and Sun. It solicits technologies from the industry at large and invites member participation to set technical direction for its development efforts. Address: 11 Cambridge Center, Cambridge, MA 02142

9

Software Development: Past, Present and Future Trends and Tools

programs' methods for cutting and pasting text or printing a file was unique. Nor did standards exist for how applications communicated with printers. An Epson dot-matrix printer, an Apple LaserWriter, and a Hewlett-Packard LaserJet all required different intermediary programs (called drivers) that enabled them to receive data from an application. The same was true, though to a lesser degree, of monitors and video cards." "To address this inconvenience, Gates envisioned placing a layer (the Interface Manager, later called Windows) between MS-DOS and applications to record the system's particular type of printer and monitor. Applications would then rely on the Interface Manager for this information, (ensuring greater device independence and software portability on different compatible hardware), and this new layer would "protect" users from having to work directly with DOS, which was too complicated for the average user. The second function of the Interface Manager (Windows) would be to place a graphical user interface on top of MS-DOS and bring uniformity to all applications that run under it." (D. Ichbiah and S. Knepper. The Making of Microsoft, 1991. p. 174-175). OS/2's4 Presentation Manager (OS/2 PM), which is also part of IBM's SAA, provides a Windows environment and graphical user interface that is built into OS/2. It supports multitasking DOS and Windows applications. Data can be shared between DOS, Windows and PM applications using the clipboard and between Windows and PM applications using the DDE protocol. An in-depth comparison of the advantages and limitations of each operating system and GUI can easily be found in the multiple articles published in various computer magazines (see References).

Microsoft Windows Microsoft Windows is the most popular graphical user interface for DOS (5 ). Application support for Windows was initially sparse; this has increased in recent years. The release of Windows 3 represents the best implementation of a graphical environment for PC users available anywhere (6 ). To encourage earlier application support, Microsoft licensed (prior to version 3.0) a free of charge runtime version of Windows to developers; they in turn made the program available to end users. The runtime version allowed use of the application although it did not give the benefits that the full Windows environment provided. In 1992, the complete version of Windows 3.1 including the accessories folder (Write, Paintbrush, etc.) can be purchased for less than $100. Develop and/or adapt software to Microsoft Windows for increasing portability among computer platforms (OS/2 Presentation Manager and UNIX / GUI), standardize the appearance of applications, ensure consistency and usability of the application design interface are important options to take advantage of the built-in features of Windows GUI such as:

4

OS/2 : Single user, multitasking PC operating system for 286s and up, initialy jointly developed by Microsoft and IBM, now only by IBM. It is more advanced than DOS and is designed to run multiple programs concurrently; however, it requires a fast CPU and, four to height megabytes of RAM for maximum efficiency. It can address all available memory (16MB of RAM and 1GB of virtual memory) and isn't restricted to DOS's 640 Kb limit. Although new commands have been added, many OS/2 commands are the same as in DOS. IBM's Extended Edition is an OS/2 version that provides built-in communications and database management.

5

Microsoft Windows is not the only GUI for DOS. Others such as GEM (Graphics Environment Manager) from Digital Research was popularized by Ventura Publisher, Ensemble from GeoWorks

6

In June 1992, Microsoft was reporting to have sold 10 millions of copies of Windows. BYTE. Vol. 17, No. 6., June 1992, p.155

10

Software Development: Past, Present and Future Trends and Tools ●

● ● ●



● ● ●

● ● ●



Powerful, productive and cooperative hardware-independent graphical user interface that takes full-advantage of today's PCs while remaining with existing DOS applications Support for all Windows printers (more than 300 printers) Use all Windows Video Graphics Cards, including super-VGA, 8514, and 24-bit color cards Support all Windows pointing devices, including mice, trackballs, pens; and input devices such as scanners and digitizing tablets Take advantage of scalable font managers like TrueType or Adobe Type Manager (ATM) to display on screen and print high-quality typefaces of any size or style using PostScript outline font technology on even inexpensive printers, postscript or not. Roman and nonroman fonts (such as Arabic, Chinese, Hindi-Urdu, Bengali, Farsi, Thaï, Japanese, Cyrillic, Hebrew, etc.) are already available or can be more easily supported on various output devices (screen, dot matrix, laser postscript, plotter, etc.) and in any Windows applications. Multiple, resizable and movable windows Multi-applications and multi-tasking Advanced memory management and full support for extended, expanded and virtual memory (mass storage and swapping) Support major networks (3Com, Banyan, MS-LAN manager, Novell) and workstations. Support Windows' multimedia extensions including CD-ROM, etc. Most importantly, such applications because they will be true, native Windows programs will be able to work efficiently with other Windows programs like Word for Windows, Excel, PageMaker or Ventura, etc. These applications will allow exchange information with other Windows programs through the Windows clipboard, dynamic data exchange (DDE), and interactive object linking (OLE).

Software for Population Activities What can demographers expect from these recent trends in hardware and software applications, and the availability of development tools to an increasing number of people? A new generation of applications and software with better user-interface, enhanced features and facilities previously available only in the best commercial software, is starting to appear (see for example: PEOPLE, REDATAM Plus, POPMAP). With the availability of new development tools, part-time software developers like demographers and those involved in population activities can develop customized programs or applications more easily than in the past, giving them more time to focus on the substantive issues, technical and methodological details, algorithms, etc. Gerhard Heilig is interested (7 ) to see a software toolbox for demographers similar to Mathematica for the scientists (8 ). Past initiatives to organize, unify and integrate existing programs and packages

7

Gerhard K. Heilig. Strategies for the Development of PC-Based Demographic Information Instruction Systems. Paper presented at the 1992 Annual Meeting of the Population Association of America, April 30-May 2, 1992. Denvers, CO., 3 p.

11

Software Development: Past, Present and Future Trends and Tools

(see for example: IMPS - Integrated Microcomputer Processing System and PopSyn - A Synthesizer of Demographic Software) had not yet produced anything comparable to Mathematica. Mathematica was developed for a specialized but "large" commercial market. Like BMDP, SPSS, SAS, StatGraphics, SyStat, and other statistical packages, the software development required considerable length of time, human and material investment (9 ). Compilations and evaluations of available demographic software programs by various institutions and individuals in the past decade have produced useful results in acquainting potential users with available tools and in promoting awareness among software developers (10 ). United Nations agencies and regional commissions, through regional workshops on microcomputer use and technology in population (11 ), also have published useful recommendations and substantive materials on these issues. Past and present situations relative to demographic software can be summarized in the following categories: • Program. In general terms, it is a collection of instructions that tells the computer what to do. All demographic procedures implemented as stand-alone programs, most without userinterface to enter and manipulate the information, or display outputs can be classified in the program category. • Software Package. Single of collection of programs organized to perform a particular type of work or to solve a specific task and written to be used by a large number of people on various sets of data. Package usually refers to an off-the-shelf program with interactive, easy to learn and use interface. Application often refers to the running program and the files and databases that are being worked on. Many existing demographic programs and software lack the flexibility to allow the user to exercise some control over its scope and mode of utilization. The ease of use and the self-learning capabilities determine the dissemination and application by novices. Appropriate user interfaces, help systems, tutorials, training materials and documentations should always be included in the software development. National language supports also is important to reach a wider user

8

Mathematica is a general system for numerical, symbolic and graphical computation which features a built-in programming language. It is used an interactive calculation tool and a as a programming language by engineers, analysts, students, and scientists. Software developed by Wolfram Research, Inc. and versions available for DOS (standard version: $600, math coprocessor support: $900) and Windows ($1000).

9

Frans Willekens. The IUSSP Software Project. Paper presented at the 1992 Annual Meeting of the Population Association of America, April 30-May 2, 1992. Denvers, CO., 40 p. (see "Computer programming to software design: a basic philosophy", pp. 17-19).

10 National Research Council, 1988. Microcomputer Software for Population and Development Planning. Proceedings of a workshop Feb. 10-13, 1987. National Academy Press. Washington, D.C. 1988. 34 p. Strong, Michael A. 1987. Software for Demographic Research. Population Index, Vol. 53 No. 2 (1987, summer), pp. 183-199. 11 ESCAP, 1988. Statistical Software Packages for Processing Censuses and Surveys. A brief guide to present avaibility and expected future developments. United Nations, NY 1988. 38 p. (ST/ESCAP/682). ILO, 1989. Report of the Informal Inter-Agency Expert Group Meeting on Development and Utilisation of Microcomputer-based Software for Population and Development Planning. Geneva, 26-29 September 1988. 26 p. (ISBN 92-2-106902-8). United Nations, 1991. Trends in Computer Sotware for the Integration of Population and Development Factors. Population Division, DIESA. Paper presented at the United Nations Workshop on Computer Software for Integrating Population Variables into Development Planning. New yrok, 19-21 Nov. 1991. 26 p.

12

Software Development: Past, Present and Future Trends and Tools

community. Data exchange between applications is another key issue providing greater open architecture and integration with commercial software. Many software packages and programs are being improved and developed in a continuous process, particularly with regard to expanded capabilities and options. Making applications more appealing and easier to use often require adding complex structures and functions: windows, menus, buttons, scroll bars, icons, colors, graphics, and so forth. What might be five lines of programming code as a text-based program becomes easily hundred lines as a window program.

Options for Demographic Application Development Since most demographers, planners and decision-makers are not professional programmers what are the possibilities in 1992 of developing customized programs or a software package accessible to the largest number of potential users? As more people get involved in applications development, programming tools now offer a large range of options for beginners and professionals. Traditional compilers are used with third-party development tools, toolkits, libraries and graphical user interface-based development systems saving months of work and allowing more advanced user-interfaces. There are even tools for developing in an all window system. Demographers have four major alternatives: application development based on a commercial spreadsheet, simple programming using BASIC language, use an application generator or Pascal or C and some libraries and/or cross-platform development tools for more advanced programming. The first option is the widely-used and popular spreadsheet that is accessible to almost everyone. Three choices are possible: • Templates using the spreadsheet interface with pre-programmed worksheets containing data, functions and macro-commands. Many spreadsheets are compatible with Lotus 1-2-3 (Quattro Pro, Excel, etc.) and each has its dialect. However, all are able to use Lotus 1-2-3 version 2.1 worksheets and macros. However, applying the latest features or options of a current version might not be supported by previous versions. This consideration should be kept in mind to guarantee compatibility. DAS and PopSyn use this approach. Applications that use this approach have all the advantages offered by the spreadsheet ("no cost" - only the spreadsheet software, flexibility, import/export data, data manipulation, graphics capabilities, easy possibility to look, modify and customize existing worksheets). They are relatively easy to develop (macro recording possibilities in more recent spreadsheet software) and maintain (more or less facilities to debug, edit and modify macrocommands), but have some limitations. Only "small" data sets can be handled (the software is usually memory dependent and with the spreadsheet in RAM, the worksheet with its formulas, macros and data must fit in the RAM (many computers have 1Mb or less, often only 640Kb). The speed to recalculate the whole worksheet can be slow when there are many formulas. Worksheet files can consume a lot of storage space. Intensive computing, iterative algorithms or parametric procedures can only be implemented using external stand-alone module (BASIC, Pascal, C, etc.) through DOS shell execution on temporarily working data file (ASCII or Lotus format). Finally, macro-commands are language dependent. Since French and Spanish versions exist for

13

Software Development: Past, Present and Future Trends and Tools

most commercial spreadsheets, worksheets using macro-commands developed with an English version must be translated for the other language versions. • Macro-Toolkits and Add-ins. Add-ins are developed with tools provided by Lotus and utilize the unique Lotus Add-in Manager Technology. Add-ins become part of Lotus 1-2-3. They are invoked from within the spreadsheet through a familiar menu command and extend the power of Lotus 1-2-3, tailoring them to individual customer needs. New spreadsheet features and functions can be developed with macro-commands and programming facilities. Speed and capabilities are better than those offered by a simple template. However, the toolkit cost around $400 and the add-in can only be used within Lotus spreadsheet (not with compatible software) and for the specific version it has been developed (add-in for Lotus 1-2-3 release 2.1 does not work with release 3; a new version must be generated). The user loses some flexibility on customization (no change possible) and the national language support still remains a problem for further portability. • Spreadsheet Compiler. Templates with formulas and macro-commands can be compiled with some specialized software to produce stand-alone executable programs that can be distributed or sold. Customs applications can be produced using the Lotus spreadsheet interface. Speed execution is improved with additional user interface features. The advantage of this approach is the possibility to distribute the application as an independent software without being dependent of any commercial spreadsheet. However, users options and flexibility are limited to the choices offered in the generated applications. The following software are available for such compilation purpose: Baler Spreadsheet Compiler & Customizer (Baler Software Corp., Baler Express (compiler only): $150, Baler (compiler plus tools): $500 and Baler XE: $800 for the extended version allowing links with C, BASIC, FORTRAN, Pascal, or Assembler), King Jaguar (Sheng Labs, Inc. $600). The second option is to use a simple programming language like BASIC to develop more customized applications (without anymore the default spreadsheet interface and advantages builtin). BASIC (Beginners All purpose Symbolic Instruction Code) is considered one of the easiest programming languages to learn. Simple programs can be quickly written. However, BASIC used to be not a structured language, such as Pascal, dBASE or C. New generation of BASIC provides very good programming facilities combining interactive editor to develop and test the program in an interpreted environment and finally produce stand-alone self-executable program or software with the built-in compiler. • QuickBASIC (Microsoft, $100) or PowerBasic (Spectra Publishing / former Borland Turbo BASIC, $130) offers standard DOS possibilities but user interface and more advanced features must be programmed from scratch or through some external libraries. • Microsoft BASIC Professional Development System (Microsoft, $500) includes expanded memory support, and run-time overlays for large scale programs. Also some ISAM database functions, Excel-style spreadsheet features, and routines for presentation graphics, matrix math., and user interface. • GFA BASIC 386 for DOS (GFA Software, $300) contains over 500 commands and functions providing facilities to create customized graphics user interface. Supports hard disk swapping, special math functions, strings and array larger than 64Kb (allowing to manipulate large volume of data in memory: 20 Mb maximum array size), math coprocessor, etc. The same source is portable between DOS and Windows using only the GFA BASIC for Windows (GFA Software, $500). Options supported in Windows are similar to

14

Software Development: Past, Present and Future Trends and Tools

DOS, with some extra commands available for pull down-menus, alert boxes, menus, Clipboard, DDE, external DLLs, Dialog boxes, etc. A dBASE engine gives to the user the ability to access, lock, update and append dBASE III/IV records using indexes (except for Windows-specific commands, a GFA BASIC for Windows application can directly be ported to GFA BASIC for DOS). • For specific software development for Windows (without any portability to DOS), Visual Basic with Professional Toolkit (Microsoft, $500) and Realizer (Within Technologies, $400) offer extensive support for graphical interface development, business graphics and supports for DDE, DLLs and other links with external windows libraries. Realizer offers some very powerful Programmable Application Tools, such as charts, spreadsheets, forms and visual form designer, animation, and a command scheduler. The third option easily allows both programmers and non programmers to build complete applications without writing a line of code. Matrix Layout (Objects Inc., $300) is a general purpose tool and desktop programming environment for end users incorporating Computer Aided Software Engineering (CASE)12 and Object Oriented Programming (OOP)13 in a transparent way for the user. Within Layout, users build their applications by manipulating graphical objects on the PC screen without using a computer language or scripting tool. Instead of typing commands in a computer language, the developer selects objects (called "blackboxes" from an on-screen menu and connects them together to form a diagram of what he wants the program to do. Each blackbox performs a specific job, such as opening a window or displaying information. All objects needed to build standard programs are included with the software. Layout has a complete open architecture enabling the developer to build new objects, or purchase pre-made ones that have special capabilities like Business Graphics ($50), Graphics Tools ($40), FontMaker (100$) and Font Manager ($70), dBASE Blackboxes ($100) to create and manage DBF files, Novell Btrieve ($100), Convert Toolkit ($70) for graphic files and dBASE file conversions, Setup Toolkit ($100) to build setup and installation programs, FastEddie ($100) an ASCII full-text editor, Printer Toolkit ($30) for Postscript, 24-dot matrix and HP LaserJet support, Telecom Toolkit ($100) to add telecommunications capabilities, etc.

12 CASE: Software that is used in any and all phases of developing an information system, including analysis, design and programming. For example, data dictionaries and diagramming tools aid in the analysis and design phases, while application generators speed up the programming phase. CASE tools provide automated methods for designing and documenting traditional structured programming techniques. The ultimate goal of CASE is to provide a language for describing the overall system that is sufficient to generate all the necessary programs. 13 OOP: Programming technology that is more flexible than standard programming. Important features and concepts are: encapsulation, classification and inheritance Encapsulation is the creation of self-sufficient modules that contain the data and the processing (data structure and functions that manipulate that data). These user-defined, or abstract, data types are called classes. One instance of a class is called an object. Classes are created in hierarchies, and inheritance allows the knowledge in one class to be passed down the hierarchy. New objects can be created by inheriting characteristics from existing classes. For example, the object MACINTOSH could be one instance of the class PERSONAL COMPUTER, which could inherit properties from the class COMPUTER SYSTEMS. Adding a new computer requires entering only what makes it different from other computers, while the general characteristics of personal computers can be inherited. Object-oriented programming allows procedures about objects to be created whose exact type is not known until run time. For example, a screen cursor may change its shape from an arrow to a line depending on the program mode. The routine to move the cursor on screen in response to mouse movement would be written for "cursor," and polymorphism would allow that cursor to be whatever shape is required at run time. It would also allow a new shape to be easily integrated into the program.

15

Software Development: Past, Present and Future Trends and Tools

The objects are arranged within flowcharts and become a visual representation of the final programs. The graphical objects are the programs' building blocks and provide such computer functions as conditionals, loops and math operations. The objects also provide hypertext database access, windows, menus. and any number of graphical enhancements, including scanned-in pictures (PCX, TIFF, Dr. Halo, Windows Paint), line drawings, and colors. A program's final form is left to the user. Flowcharts can be automatically transformed into any and all of the following forms: .EXE (stand-alone executable) programs for DOS or C, Turbo Pascal or QuickBasic source code files. The Layout C Engine for Windows ($100) generates C source to be compiled with Microsoft C and the Software Development Kit for Windows. Users can also create their own Layout objects. User-defined objects, called "Blackboxes", can be designed and built within Layout itself or written in any of the popular PC languages: Assembler, Quick BASIC, Turbo Pascal or C. Blackboxes are free to circulate on their own and move easily from one open Layout environment to another (object reusability). There are no fees or royalties for the use of blackboxes produced by Matrix Layout and the distribution of application generated with the software. Windows users can also explore ObjectVision (Borland International, $150) enabling to visually create Windows applications without programming. ObjectVision's Visual Programming technology uses declarative style logic with a forms-oriented interface and visual programming techniques using graphical decision trees to represent and capture business rules and gives nontechnical users the power to create their own Windows business applications without traditional programming. ObjectVision applications are easily connected to a variety of popular databases and spreadsheet files and operate in a multi-user mode over Windows-supported networks. It includes an interpreter with a set of graphical tools, DLL, OLE, and DDE support. ObjectVision allows users to automate business management in much the same way as spreadsheets automate financial management, by combining a familiar metaphor (in this case, forms instead of ledgers) with declarative logic (formulas or business rules). Applications developed with ObjectVision can be distributed with an unlimited royalty free runtime module to users without the software. The last option is reserved to users in need of high performance and/or professional software development with more complex but more advanced programming languages (Pascal or C) and development tools. • Pascal: High-level programming language developed by the Swiss professor Niklaus Wirth in the early 1970s and named after the French mathematician, Blaise Pascal. It is noted for its structured programming. Pascal is available in both interpreter and compiler form and has unique ways of defining variables. Pascal had a strong influence on subsequent languages, such as Ada, dBASE and PAL, although most of them have not implemented all its features. Turbo Pascal ($150) is the Pascal compiler for DOS from Borland used in a wide variety of applications from accounting to complex commercial products. Turbo Pascal for Windows ($250) provides an object-oriented programming environment for Windows development. Quick Pascal ($100) is the Pascal compiler from Microsoft that is compatible with Turbo Pascal and provides object oriented capabilities. • C: High-level programming language developed at Bell Labs is able to manipulate the computer at a low level like assembly language. During the last half of the 1980s, C has become the language of choice for developing commercial software. C can be compiled

16

Software Development: Past, Present and Future Trends and Tools

into machine languages for almost all computers. For example, UNIX is written in C and runs in a wide variety of micros, minis and mainframes. C is programmed as a series of functions that call each other for processing. Even the body of the program is a function named "main." Functions are very flexible, allowing programmers to choose from the standard library that comes with the compiler, to use third party functions from other C suppliers, or to develop their own. Compared to other high-level programming languages, C appears complicated. Its intricate appearance is due to its extreme flexibility. C++ is the object-oriented version of C created by Bjarne Stroustrup that is becoming very popular. C++ combines traditional C programming with object-oriented capability (see above OOP). Turbo C ($100) is a C compiler from Borland used to create a wide variety of commercial products. It is known for its exceptionally well-designed debugger. Borland C++ ($500) is ANSI C and C++ compiler from Borland that is used to develop DOS and Windows applications. It is Turbo C-compatible and its debugger also supports Windows programs written in Microsoft C. A version of Turbo C++ for Windows is also available ($150). QuickC ($100) is a C compiler from Microsoft is compatible with its larger C compiler and used by the beginner or occasional programmer. QuickC for Windows ($150) is a version that works entirely within Windows environment for developing Windows applications. It includes the QuickWin library. The complete Microsoft C/C++ Development System for Windows ($500) is an in-depth solution for creating Windows-based applications. • Ada: High-level programming language developed by the U.S. Department of Defense in co-operation with the European Economic Community and some 200 other organizations worldwide. Ada is a Pascal-based comprehensive language. It was designed to be a do everything language, from business applications to rocket guidance systems. One of its principal features is that it supports real-time applications. In addition, Ada incorporates modular techniques that makes it easier to build and maintain large systems. Since 1986 Ada has been the mandatory development language for most U.S. military applications. Its use on the PC platform is today very limited mainly due to hardware resources. But its advantages and standardization might allow its expansion for software development in the 90s. Most recent C and Pascal compiler versions are offered in standard and professional edition, including additional development tools and application frameworks to build character-based or graphical user interfaces and to support enhanced features. However, none offers integrated development tools able to create user interface for both environment (DOS and Windows) from the same source code. User Interface libraries and Cross-Platform application development make it possible to take the outcome from one system and use it in a non compatible environment. Some companies are in the process of developing "industrial-strength" applications that will include the benefits of both visual programming and object-oriented reusability (see BYTE, January 1992). The following tools are available today to support such advanced user interface development across PC environments using C or C++: Zinc Interface Library (Zinc Software Inc., $500) can generates the same application for Windows, DOS Graphics and DOS Text with one set of source code. The WNDX GUI Development System (WNDX Corp., $800 for the Windows version) supports GUIbased application development from one source for Windows, DOS (graphics mode), Unix and the Macintosh. C++/Views (Liant, $500) is a portable C++ class library to create platform independent

17

Software Development: Past, Present and Future Trends and Tools

applications for Windows, OS/2 PM, and X/Motif. XVT (XVT Software) is a C library for Windows ($800), Macintosh ($800), Presentation Manager ($800), X Window System (Open Look and OSF/Motif), and UNIX or DOS character-based display ($800 for DOS) able to generate code for these 5 platforms from a unique program source. MEWEL (Magma Software Systems, $300) can be used to emulate or to port Windows programs to DOS text-based screen. The applications linked with one of these libraries may be distributed royalty free. Another alternative is the use of multi-platform CASE (Computer Aided Software Engineering) and application generators software that generate application programs from descriptions of the problem rather than from detailed programming. It is one or more levels higher than a high-level programming language, but still requires that the user enter mathematical, or algorithmic, expressions in order to describe complex functions. For example, a model life table computation would take a bit of programming to calculate no matter how high-level the application generator. Such tools simplified applications development and are likely to be used more frequently. However, for situations where time and space are critical, traditional programming will still remains necessary to provide the optimum solution. CASE:W Corporate Edition (Caseworks, $1000) and WindowsMaker Professional (Blue Sky Software, $1000) allow to design programs largely by pointing and clicking. However, the core routines must still be written since these tools are able to generate only the user interface.

Distribution licenses and fees Software are developed to be used and distributed. Tools and libraries used can sometimes limit such dissemination based on license agreements, distribution policies and royalties. Before purchasing and using development tools, users should clarify these issues. The following definitions might contribute to a better understanding of the issues: • Run-time version: Software that allows another program to run or enables a program to run with some enhanced capabilities. For example, a run time version of a windowing environment, such as Windows, provides a graphical interface for the accompanying application but cannot be used with any other program. DBMSs often provide an interpreted programming language requiring the full DBMS to reside in the computer in order to execute the applications developed in it. A run-time version of such a package would run the programs and allow them to be distributed to users that do not have DBMS. • Site license: License to use software within a facility. It provides authorization to make copies and distribute them within a specific jurisdiction. • Royalties. Royalty-free means that an unlimited number of copies of the stand-alone application generated using the product can be distributed (free or sold) without any fee to the development company. Otherwise, a nominal fee must be paid per copy or an annual license bought for an unlimited number of copies in the year.

Technical References Software Design, Development and Programming: "Some people call it a science, some people call it an art, some people call it a skill or craft. I think it has aspects of all three. We like to pretend that it has a lot of art in it, but we know it has a lot of science" (Charles Simonyi, Programmers at Work. p.11). Numerous books have been published and a few titles are listed at the end of this paper.

18

Software Development: Past, Present and Future Trends and Tools

Programming languages, compilers and development toolkits include good self-teaching documentations, and a large number of articles in computer magazines and books on programming techniques exist for each language and variants (Microsoft, Borland, etc.). Algorithms are formulas or set of steps for solving a particular problem. Numerous books and articles (Communications of the Association for Computing Machinery (ACM), Applied Statistics, etc.) about programming, numerical analysis and applied statistics introduce and describe many useful techniques and algorithms. However, the following publications can be considered as references: • Applied Statistics Algorithms. Editors P. Griffiths and I.D. Hill. Ellis Horwood, Chichester. England. 1985, 308 p. (Reprint of the most remarkable algorithms published in the Algorithms Section of Applied Statistics Journal of the Royal Statistical Society, London). • Computer Graphics: Principles and Practice. James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes. Addison-Wesley Publishing Company, Reading, MA. Second edition, 1990. 1174 p. + xxiv p. • Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Edited by Milton Abramovitz and Irene A. Stegun. U.S. National Bureau of Standards, Washington D.C. (Applied Mathematics Series 55). 1964, 1046 p. + xiv p. • Mathematical Elements for Computer Graphics. David F. Rogers and J. Alan Adams. McGraw Hill Company, New York, NY. 1976, 240 p. + xvi p. • Mathematical Modeling and Computers in Endocrinology. J.E.A. McIntosh and R.P. McIntosh. Springer-Verlag, Berlin. 1980. (see Appendix B - Computer Programs: MODFIT, a general computer program for fitting to experimental data equations of models that may be either linear or non-linear in their parameters, pp. 250-267). • Numerical Recipes in C: The Art of Scientific Computing. William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Cambridge University Press. Cambridge, MA. 1989, 736 p. + xxii p. (Also available for FORTRAN and Pascal). File formats: over the years, multiple file formats have appeared among commercial software and some became standards de-facto: Lotus 1-2-3 (wks, wk1) or dbase (dbf) for example are widely used to import and export data within spreadsheets, databases and word processors. More and more users are familiar with these software and file formats and most demographic software should support these files formats to ensure easy information exchange between software. The following articles and publications provide basic and technical information on the most popular formats. Most file formats are proprietary. However, information can be obtained usually directly from the software developer. Computer networks (CompuServe, Prodigy, etc.) and developer forums BBS such as Microsoft, Borland, Lotus, etc. also can provide the latest information on most file formats (Excel, etc.). • Bit-Mapped Graphics. Steve Rimmer. Windcrest / McGrawHill, New York. 1990, 492 p. + X p. (Graphics file formats for MacPaint, GEM/IMG, PaintBrush/PCX, GIF, TIFF, EPS; high speed screen drivers, dithering techniques, format translation and examples in QuickC, C and Assembler). • "Cracking the Lotus Spreadsheet Code". PC Magazine. Vol. 7, No. 21. December 13, 1988. pp. 297-314. (How to read and write a Lotus file using Microsoft QuickBasic)

19

Software Development: Past, Present and Future Trends and Tools • File Formats for Popular PC Software: A Programmer's Reference. Jeff Walden. John

Wiley and Sons. New York, NY. 1986, 288 p. + XVI p. (Lotus, Symphony, dBASE, DIF, Multimate, Multiplan, SYLK, SuperCalc, VisiCalc, WordStar with examples in Turbo Pascal) • The HP-GL/2 reference Guide: A Handbook for Program Developers. Hewlett Packard, San Diego, CA. 1990, 296 p. + X p. (HP-Graphic Language specification for HP plotters and HP LaserJet III) • Lotus File Formats for 1-2-3. Symphony and Jazz: File Structure Descriptions for Developers. Lotus Books / Addison-Wesley Publishing Company, Reading, MA, 1986, 276 p. + VIII p. (Complete technical specifications, including for PIC files, from Lotus Corp. with a sample in Turbo Pascal) • PC File Formats and Conversions for Developers. Ralf Kussmann. Abacus, Grand Rapids MI. 1990, 288 p. + X p. (Detailed description of the following file formats: ASCII delimited and SDF formats, dBASE IV, IBM-DCA/RFT formats, Microsoft SYLK format, Microsoft Word 4.0). Specialized software dealers: standard software and programming languages can easily be obtained but development tools and libraries are often available only from the software companies or through some dealers. The following references carry most software tools on the market, publish good software catalogues and offer discounted prices. • The Connection (Programmer's Connection Buyer's Guide). 7249 Whipple Avenue NW. North Canton, Ohio 44720-7143, U.S.A. Fax: 1-216-494-7727. • Programmer's Paradise. 1163 Shrewsbury Ave. Shrewsbury, New Jersey 07702. U.S.A. Fax: 1-908-389-9227. • The Programmer's Shop. 90 Industrial Park Road. Hingham, MA 02043. U.S.A. Fax: 1-617-740-0025. Specialized Libraries: software development often requires solving technical problems or supporting some advanced features that demand skills and time that are not readily available. Many general or specialized libraries exist and should be used whenever it is possible to help the software development process. The computer magazines and the software catalogues from some specialized dealers (see above) offer a large variety of options for each programming language. However, the following references might be useful to know: • Memory Management and Overlay − Huge Virtual Array and Numerical Analysis Toolbox (Quinn-Curtis, $300) offers access to very large numeric arrays and breaks the 640Kb DOS limitation. Low memory, extended memory and finally virtual memory (hard disk) are used by order of priority. The size of virtual arrays is limited only by the size of the hard disk. Supports Turbo C/C++, Turbo Pascal, Microsoft C and QuickC. − PowerSTOR (Tool Makers / Acme Software, $120) allows to access huge data arrays up to 1Gb by using expanded, extended memory and virtual memory on hard disk. Supports Borland C/C++, Borland Turbo C, Lattice C, Microsoft C, and Zortech C/C++ − .RTLink/Plus (Pocket Soft, $500) is a fast linker with advanced overlays. No source changes. Virtual memory linker automatically executes program of any size in available memory.

20

Software Development: Past, Present and Future Trends and Tools

− WarpLink (Hyperkinetix Inc., $250) is a dynamic overlay linker that can be used to link applications written in any language whose compiler produces Microsoft/Intelcompatible object code. The major features of WarpLink include incremental linking, dynamic overlaying of Clipper-compiled code, dynamic overlaying of C and ASM routines, symbol table compaction, and a host of memory management functions. • Spreadsheet − Compile 1 to C (Resource Analysis International Corp., $300) translate a Lotus 1-2-3 template into a C program. − DataTable Spreadsheet Control (Protoview Development Co., $90) is a code generator allowing to design forms and screens using a spreadsheet interface (look & feel) in Windows environment. Data Tables can be accessed from Windows Borland compilers using OWL (Object Windows Library), Microsoft compilers with MFC (Microsoft Fundation Class), and Pascal for Windows. − PowerCell (Raima Corp.) is an interesting C library (including source) that provides sub-routines and all the necessary functions to build a powerfull spreadsheet (Lotus clone with no graphic support). − WKS Library (Raima, $200), 123 Library (Atlantic Corp., $160), Goldstein's Pascal (or C) Programmer's Library for 1-2-3 (Simon & Schuster, $100) are libraries providing functions to read and write Lotus files. • Graphics − BGI For Windows (Ryle Design, $90) is a dynamic link library providing a Borland BGI compatible interface to the Windows Graphics Device Interface (GDI). with this DLL existing BGI graphics code can be ported with only little modifications. Supports Turbo C for Windows, Borland C++, and Turbo Pascal for Windows. − DIGLIB & VIDLIB (Chirp Technical Services, $360) Graphics library providing deviceindependent resolution for display and printing. Supports most printers and plotters. Supports QuickBasic, Microsoft BASIC, Turbo Pascal, Turbo C/C++, Microsoft C, Microsoft FORTRAN. − GraphiC (Scientific Endeavors, $470) offers a set of more than 150 C routines for publication quality scientific and engineering graphics. − MetaWindow (Metagraphics, $400) is a professional high-performance graphics toolkit which integrates a comprehensive set of drawing routines, with high speed performance and dynamic runtime support for popular video graphics devices into a unified development system. Integrated PCX support allows to import and export graphic files. Supports most C/C++ and Pascal compilers and over 100 devices including graphics adapters. mice and printers. − Science/Engineering/Graphics Tools (Quinn-Curtis, $100-150) Collection of functions for data analysis and graphics displays. High resolution printer drivers are included. Supports QuickBasic, Turbo Pascal, Turbo C/C++, Microsoft C and QuickC, Microsoft FORTRAN. − 3D Graphics Tools (Micro Systems Options, $300) for Windows version of Borland C++ or Turbo C++, Microsoft C or QuickC versions for Windows and Visual BASIC. • Printers:

21

Software Development: Past, Present and Future Trends and Tools

− BGI Printer Driver Toolkit (Ryle Design, $90) is a set of printer drivers for the Borland BGI graphics library. Independent device resolution on major printers. Supports Turbo C/C++, Borland C++, and Turbo Pascal. − FastFont Typeface Manager (Ancier technologies Inc. / Atech, $500) is an object code library offering a very powerful scalable font engine based on hinted Bezier curve technology. It comes in the form of a high level C language function called library, designed to integrate quickly and seamlessly into any application. Virtual printer driver supports over 450 printers. Additional Picture Manager is available for PCX, TIFF, PCC, EPS formats. − GhostScript is a "PostScript" language interpreter developed in C. The sources for the library are available for different platforms. They are free and can be reused in any program with a general public license from GNU (Gnu's Not UNIX), a project sponsored by the Free Software Fundation (14 ). − Graph/Drive Plus and Desktop Publishing Drivers (Fleming Software, $250) generalizes Borland's BGI to include hardcopy devices as well as video devices, by providing several BGI-compatible device drivers for major printers and plotters. Supports also various graphic file formats (PCX, BMP, IMG, TIF, CGM, DXF, VideoShow, WPG). − GraphLink (Visitech Software, $150) adds to Turbo Pascal access to most popular printer's full resolution and write device-independent graphics code. − HP LaserJet Programming. Andrew Binstock, David P. Babcock and Mary Luse. Addison-Wesley, 1991. 400 p. Programming details on HP II and HP III with examples in C. − Slate (The Symmetry Group, $300 and $450 with graphics support) is a generalized printer driver that presents the programmer with a standard printer interface device independent of any particular hardcopy device. Over 750 printers are supported. Only bitmap graphics are supported (PCX, TIFF). Libraries are available for most C/C++ compilers and for QuickBasic. • DBMS: multiple database management software, development tools and libraries are available on the market. However, dBASE and Clipper have been de-facto the standard for database application development compatible with xBASE products. More recently, FoxPro (Microsoft) and Paradox (Borland) started to offer some interesting alternatives. − Clipper 5.1 (Nantucket / Computer Associates, $800) is a comprehensive PC application development system for PCs offering network support, user-extensibility, a replaceable database driver and executable file generation. An open architecture system Clipper 5.O includes a robust language, pre-processor, compiler, linker, virtual memory manager, editor and a debugger, and permits development of applications that are larger than available memory.

14 Non-profit organization founded in 1985 by Richard Stallman that is dedicated to eliminating restrictions on copying and modifying programs by promoting the development and use of freely re- distributable software. It is developing the GNU computing environment, including operating system kernel, utilities, editor, compiler and debugger. GNU programs and others, such as X Window, are available for a transaction charge. Address: 675 Mass. Ave., Cambridge, MA 02139, 617/876-3296, Internet: [email protected].

22

Software Development: Past, Present and Future Trends and Tools

For years the FUNCky library (dLESKO Inc., $250) has been the first choice of most Clipper programmers. FUNCky takes an engine/surface approach to adding functions to applications. A core library routines is written in C and called by surface functions. FUNCky library is large, consisting of more than 1000 functions, which broken down into groups categorized by purpose, such as string handling, array handling, and printer functions. Greg Lief's "GrumpFish" library ($200) makes also a good first library for novice-to-intermediate Clipper programmers. It offers a large set of useful functions that do everything from popping up calendars to saving and restoring arrays to and from disk. It is especially helpful in adding effects to user interface. − CodeBase (Sequiter Software, $400) and PRO-C Lite/PRO-dbx (PRO-C Limited, $1200) gives programmers the possibility to access dBASE, Clipper, and FoxPro data, index, and memo files from C, C++, Visual Basic, and Turbo Pascal for Windows. Supports most C/C++ compilers. − Paradox Engine (Borland, $100) is a library that opens the architecture of Paradox, giving developers new ways to create and manage data in DOS or Windows. It enables the user to share data with other Borland applications; create, read and write Paradox tables, create stand-alone applications or applications used as an extension to Paradox. Compatible with all C/C++ Borland and Turbo compilers, Turbo Pascal and Microsoft C. − POET (BKS Software) is an object-oriented database management system running on DOS ($400), Windows ($500) and Unix ($1500). Supports Borland C++ or Microsoft C/C++. • Data Compression − Data Compression Library (PKware, $300) offering a flexible and likable compression and extraction routines which allow developers to directly incorporate data compression technology into their software applications. Compatible with most popular language compilers. Support Assembler, BASIC, C, Clipper and Turbo Pascal. − LHA (Haruyasu Yoshizaki) is a dual purpose archive program. Its primary purpose is to take normal binary or text files and make them smaller in size. This saves great amounts of storage space, with typical results being approximately 1/5 to 1/3 of original size. It can handle any size file that can be placed on the disk, together with the compressed file it then makes. The secondary purpose is to take more than one of these programs and include them in just one file, although each will have its own individual name inside that file. It runs on PCs, UNIX and other platforms as its source code is also free. − Diet (Teddy Matsumoto) is an executable file compressor as well as a file utility to compress data files. DIET can compress executable files and can execute them from compressed form as LZEXE or PKLITE. Executable programs take less space and large storage space can be saved. Both programs are distributed as free programs with copyright reserved. There is no restriction for the use within private corporations or the use for governmental agencies. • Help and Hypertext Development Tools − HyperHelper Developer's Kit (Azarona Software, $50) offers and hypertext compiler with stand-alone browser and memory resident facility.

23

Software Development: Past, Present and Future Trends and Tools

− UpShot (Autumn Hill Software Inc., $180) is an on-line help utility that allows developers and end users to construct and then use large-scale on-line documentation files, such as manuals, reference books, dictionaries, phone lists, etc. Options are available to generate table of contents, index and page numbering. The engine can be used from the command line as a standard program or installed and left resident as a TSR. − xText (Flambeaux Software, $140) is an hypertext compiler and toolkit that can be used without any programming with WordPerfect or MS-Word documents to generate standalone applications or to add on-line help, even context sensitive help, to any DOS character-based application without reprogramming (supports TSR mode or direct call from software). • Demonstration and Tutorial − Demo II (Life Boat Software, $250 and $1000 for the Professional version allowing encryption and compressed applications) allows to produce demos and computer-based training. − Instant Replay Professional (Nostradamus, $800) is a "multimedia system manager" for incorporating DOS based software, audio, video, graphics, animations, special effects, and compressed video into a presentation. Software presentations can be build using memorization of an external program (keystrokes and mouse actions) and memorization of the screen editors for creating animation (text and/or graphics). The software supports also powerfull slideshow scripts. A royalty free compiler is included to generate standalone applications combining any of these presentation techniques. − TutorMaker (Doctor Database Software, $170) is a tool to create demos and interactive tutorials for any DOS text-mode program developed by a programmer, or any commercial application program (spreadsheet, database, etc.).

Software Legal Aspects and Copyright Principles 15 Copyright does not protect ideas, only expressions of ideas. An idea is an original thought. An expression is that same thought reduced to something you can see or hear. Particularly with software, if you can see it you probably have an expression. For example, you can see source code, but not mental logic. Therefore, source code is protected, logic is not. Thus, the first rule for any copyright is there must be a tangible form of expression. The second rule is that the expression must be original. However, a single idea can be expressed more than one way. For example, Lotus 1-2-3 and Microsoft Excel both share the same idea of an electronic spreadsheet, yet each expresses the idea differently. They have different interfaces, file structures, and source code. There is no infringement. So, copyright only protects original expressions that are fixed in some tangible format. Sometimes an idea is so common or there are so few ways to express it that the idea and the expression are said to merge. A merger of ideas and its

15

Excerpts from "HOW TO COPYRIGHT SOFTWARE (Yourself)" by Beach A. Craigmyle, (c) 1992 Locus Inc. [Shareware programmer's guide to copyrighting software in the United States. It contains step-by-step instructions from a programmer/attorney how to complete the official application for a Certificate of Copyright Registration. For further information, please contact: Locus Inc. 122 Peace Lane, Pewee Valley, Louisville, KY 40056-9001].

24

Software Development: Past, Present and Future Trends and Tools

expression occurs when the expression is indispensable to the treatment of the idea. As a result, the scope of protection may be severely limited if you end up in court. Copyright protection is readily available for computer programs in all forms, including source code, object code, and microcode. You can also copyright written documentation and user manuals on the same application made for software. However, copyright protection does NOT extend to the underlying procedure, process, system, method, concept, principle, discovery, formula or algorithm, regardless of the format in which it is coded, described, illustrated or embodied in the work. A derivative work is one based upon or incorporating a preexisting work. For example, Microsoft Windows 3.0 derives from Windows 2.0, thus 3.0 is a derivative work of 2.0, and so on. Other examples of derivative works include translations (ex. rewriting BASIC into C), abridgments (ex. releasing a Lite version), and additions (ex. adding pull-down menus). So whenever a work is recast, transformed, or adapted, and the changes are significant enough, you have a derivative work. A compilation occurs when you collect and assemble other preexisting materials or data. The creative effort in a compilation copyright is in how you select, coordinate, or arrange the material. The classic example of a compilation copyright is the telephone directory. Another example would be a sampler disk or a collection of programs from various authors (ex. PC Magazine Utilities Disk). Note that you must have a copyright owner's permission before reproducing, including or changing his work. Public domain materials do not belong to anyone. They may be copyrights that have expired or the author has dedicated to the public. Or perhaps the author never registered the work, or maybe the registration was denied for lack of proper subject matter. Whatever the reason, public domain material does not have an owner, per se, and may be copied or included in derivative works and compilations. A copyright owner has certain exclusive rights. Only the owner of a copyright on a program can: (1) reproduce or authorize copying of the program; (2) make derivative works or changes to the program; and (3) distribute, license or sell the program. These exclusive rights last for the life of the author, plus 50 years. Or if the work was made for hire, for 75 years from the date of publication, or 100 years from creation, whichever is shorter. Having a Certificate of Copyright Registration (TX Form. United States Copyright Office, Library of Congress, Washington D.C. 20559) is prima facie evidence of the validity of your copyright. The copyright notice is no longer required. It used to be that if you failed to use a valid copyright notice, you lost all your copyrights in the work. That is no longer the law. But, it is still a VERY good idea to put the following notice prominently on your startup screens, in the source code, the user manuals, and all other documentation, including disks and distribution media: The three parts to the copyright notice are: (1) COPYRIGHT or COPR or (C); (2) the YEAR of creation or first publication; and (3) the NAME of the copyright owner. ALL RIGHTS RESERVED is not required, but gives you rights in other parts of the world. Note: Computer software may also be protected by patents and trademarks. Copyrights stop copying. Patents stop making, using or selling. Trademarks stop confusing names. Unfortunately, procedures in the U.S. Patent and Trademark Office are considerably more complex, time consuming and expensive than in the Copyright Office.

25

Software Development: Past, Present and Future Trends and Tools

Software can be categorized according to copyright status and distribution mode: • Public Domain: Software in which ownership has been relinquished to the public at large. • Freeware: Software distributed without charge. Ownership is retained by the developer who has control over its redistribution, including the ability to change the next release of the freeware to payware. • Shareware: Software distributed through informal networks, BBS's and information services free of charge on a trial basis. If you use it, you pay for it, for which you receive additional documentation, support or possibly the next upgrade at no cost. Paid licenses are required for commercial distribution. • Commercial: Software that is designed and developed for sale to the general public.

Conclusion Computer technology continues to evolve with dynamic and rapid development driven by fierce competition and a wealth of human talent. Much of the success in the computer industry can be attributed to the availability of more affordable and yet powerful and easy to use systems that make it possible for many individuals and organisations to acquire. Equally important is the desire and motivation to learn and use what was once conceived as a fearful device. Computer technology has made information accessible to a large group of users. Cost is no longer the main issue for many users; deciding what is appropriate and cost effective is, due to the proliferation of a wide range of hardware and software. New technologies and appropriate software interfaces (DOS character-based or graphical) should allow better human interaction with the computer and the data. System developers have new options that make it easier to create programs and applications. Past and recent researches and developments in the fields of Artificial Intelligence, Hypertext, Expert-Systems and Multimedia technology have slowly penetrated some economic sectors and will spread with decreasing hardware cost and increasing performances. Video presentations and communications, CD-ROM, slide-shows, demonstrations and computerized-tutorials should become more and more available in the coming years and contribute to a new dialog with the information. However, no software or hardware will replace well trained demographers, statisticians, planners and decision-makers. New technological developments should be seen as opportunities for an ever greater number of specialists and low-end users to share, access and interact with information through existing software or development of new applications. The new generation of software development tools allows more and more sophisticated application development without (or minor) programming and non-programmers now are able to develop or customize applications. Smart and efficient applications and software interfaces should free users from time consuming activities enabling them to focus on more substantive issues: the problems, the data, and the analysis. The United Nations assists developing countries by facilitating productive use of computer technology through software it develops and distributes free of charge to UN agency-supported programmes, government institutions, universities and national training institutes. The different United Nations organizations and agencies, including the Population Division and the UNFPA-

26

Software Development: Past, Present and Future Trends and Tools

funded project Computer Software and Support for Population Activities are involved in this activity that has contributed to enhancing the level of technical skills and expertise of many individuals. While much remains to be desired, there has been an improvement in understanding the value of computer technology. Computers used to be related to power (and it probably still is in some countries) and accessibility was restricted to a selected few. With computers getting more affordable a better understanding has evolved; human attitude has changed as people realize that sharing information improves work conditions and facilitates productivity. The United Nations continues to develop software that are easy to use, powerful and cost effective to ensure that users with limited computer knowledge also benefit from the applications. The project Computer Software and Support for Population Activities is fortunate to have the opportunity to provide service to developing countries through the distribution of PC-Edit, Xtable and PopMap, training and technical assistance provided. The development of PopMap by the project in collaboration with the Viet Nam Institute of Computer Science demonstrates the project's support for promoting and utilizing highly competent technical staff from developing countries. Demographic software still has a long way to reach the Mathematica dream. However, recent trends have produced powerful software systems with integrated facilities, and the new standardized approach in software design and programming should allow greater modularity, interaction and exchange, and complementarity through new dynamic links -- API, DLL, DDE, OLE, etc. -- strange acronyms that one day should provide demographers a new computing universe.

27

Software Development: Past, Present and Future Trends and Tools

References Computer Literacy Computers: The Plain English Guide (Almost everything you need to know about c o m p u t e r s , e v e n i f y o u d o n ' t k n o w AA NN YY TT HH II NN GG a b o u t c o m p u t e r s ) . Philip A. Covington. QNS, Jackson, MI. 1991, 296 p. + XVI p. E l e c t r o n i c C o m p u t e r G l o s s a r y . Alan Freedman. The Computer Language Co. Inc., 1981-1991. Microsoft Press Computer Dictionary: The Comprehensive Standard for Business, School, Library, and H o m e . Microsoft Press, Redmond, WA. 1991, 392 p. + VIII p. The Random House Personal Computer D i c t i o n a r y . Philip E. Margolis. The Random House, New York, NY. 1991, 512 p. T h e S e c r e t G u i d e t o C o m p u t e r s . Russ Walter. Somerville, MA. 16th edition, 1992. 608 p. The Women Computer Literacy Handbook. Deborah L. Brecher. Plume Book, New York, NY. 1985, 254 p. + VIII p. (New American Library).

Software Development Classic Languages, Part 6: BASIC. Doris Appleby. B Y T E . Vol. 17, No. 3, March. 1992. pp. 155-158. Computers and Information Processing: C o n c e p t s a n d A p p l i c a t i o n s . Steven L. Mandell. West Publishing Company, St. Paul, MN. Sixth edition, 1992, 634 p. + XXII p. Computers for People: Concepts and Applications. Jack B. Rochester and Jon R o c h e s t e r . Irwin, Homewood, IL and Boston, MA. 1991, 488 p. + XII p. Cures for C Sickness. Mark J. Minasi. B Y T E . Vol. 17, No. 2, February 1992. pp. 259-262. Decline and Fall of the American Programmer. Edward Yourdon. Yourdon Press, Prentice Hall Building, Englewood Cliffs, NJ. 1992, 352 p. + XVI p. Designing Intelligent Front Ends for Business S o f t w a r e . Dan Shafer. John Wiley and Sons, New York, NY. 1989, 314 p. + XXII p. Documenting the Software Development Process (A Handbook of Structured T e c h n i q u e s ) . Steve Ayer and Frank Patrinostro. McGraw-Hill Inc. , New York, NY. 1992, 435 p. + X p. The Future of Software Technology. B Y T E S p e c i a l I s s u e O u t l o o k ' 9 2 . Vol. 16, No. 11, Winter 1991, pp. 69-76. Everyone's Guide to Copyrights, Trademarks, a n d P a t e n t s . Running Press, Philadelphia, PA. 1990, 314 p. Hypertext and Hypermedia: Theory and A p p l i c a t i o n s . Nigel Woodhead. Sigma Press. Wilmslow, England. Addison-Wesley Publishing Company, Wokingham, England. 1991, 232 p. + X p. Illustrating Computer Documentation - The Art of Presenting Information Graphically on P a p e r a n d O n - l i n e . William Horton. John Wiley and Sons, NY. 1991, 314 p. + XXII p. Intelligent Systems Design: Integrating Expert Systems, Hypermedia, and Database T e c h n o l o g i e s . Larry Bielawski and Robet Lewand. John Wiley and Sons, New York, NY. 1991, 302 p. + XVIII p. Personal Computers and the World Software Market. Larry Press. C o m m u n i c a t i o n s o f t h e A C M , Feb. 1991, Vol. 34, No. 2, pp. 23-28. Programmers at Work (Interviews with 19 Programmers Who Shaped the Computer I n d u s t r y ) . Susan Lammers. Tempus Books of Microsoft Press, Redmond, WA. New edition 1989, 394 p. Software Made Simple (Will object-oriented programming transform the computer industry?) B u s i n e s s W e e k . No. 3233, Sept. 30, 1991. pp. 92-100. Software State-of-the Art: Selected Papers. Edited by Tom DeMarco and Timothy Lister. Dorset House Publisher, New York, NY. 1990, 570 p. + XIV p. Testing, Testing... (How to establish software testing as a part of your development cycle). Pete Becker. C o m p u t e r L a n g u a g e . April 1991. pp. 59-64. T h e A r t o f t e c h n i c a l D o c u m e n t a t i o n . Katherine Haramundanis. Digital Press, Maynard, MA. 1992, 268 p. + XVI p.

Computer History C o m p u t e r L i b / D r e a m M a c h i n e s . Ted Nelson. Tempus Books of Microsoft Press, Redmond, WA. New edition 1989, 336 p. A Computer Perspective (Background to the C o m p u t e r A g e ) . Charles and Ray Eames. Harvard University Press, Cambridge, MA and London England. New edition, 1990, 176 p. 40 years on the frontier. Linda Runyan. D a t a m a t i o n , Vol. 37, No. 6, March 15, 1991; p34 (13) History of the Computer Industry from N e w s b y t e s on CD-ROM. Wayzata Technology and Newsbytes News Network. 1991. The Making of Microsoft (How Bill Gates and his team created the world's most successful s o f t w a r e c o m p a n y ) . Daniel Ichbiah and Susan L. Knepper. Prima Publishing, Rocklin, CA. 1991, 304 p. + XVI p.

Computer Trends Computer Confusion (A jumble of competing, conflicting standards is chilling the market). B u s i n e s s W e e k . No. 3217, June 10, 1991. pp. 72-77. The Decade that Was (1980s). Peter Jackson. P C U s e r , No. 124, Jan. 17, 1990. pp. 36-40. IBM in the Nineties (A look at what lies ahead for Big Blue in the coming decade). Nick Baran. B Y T E I B M S p e c i a l E d i t i o n . Vol. 15, No. 11, Fall 1990. pp. 63-70. Looking at the Graphical User Interface (Graphics capability is reaching a critical mass stage, with a number of high-quality choices). Bill Nicholls. B Y T E I B M S p e c i a l E d i t i o n . Vol. 15, No. 11, Fall 1990. pp. 161-166. Looking at VisiCalc 10 years later. P e r s o n a l C o m p u t i n g . Vol. 13, No. 11, Nov. 1989. pp. 233-235. Outlook '92 (Key Technologies and Trend-Setting Products). B Y T E S p e c i a l I s s u e . Vol. 16, No. 11, Winter 1991. PCs: What the Future Holds (The industry is in turmoil. Whose technology will dominate the 90s?) B u s i n e s s W e e k . No. 3226, August 12, 1991. pp. 58-64. Ten Years of Predictions. Michael J. Miller. P C M a g a z i n e . Vol. 10, No. 19, Nov. 12, 1991. pp. 79-80

28

Software Development: Past, Present and Future Trends and Tools Tools for Window Workers. Martin Heller, Peter Wayner, and Ben Smith. B Y T E . Vol. 16, No. 6, June 1991. pp. 139-152. 3-D Reading with the Hypertext Edge. Henry Fersko-Weiss. P C M a g a z i n e , Vol. 10 No. 10. May 28, 1991, pp. 241-282. Two Ways to Program BASIC for Windows. Owen Linderholm. B Y T E . Vol. 16, No. 10, October 1991. pp. 221-224. What Is a Programming Language? Roundtable. B Y T E . Vol. 16, No. 8, August 1991. pp. 103-104. Writing Better Computer User Documentation - F r o m P a p e r t o H y p e r t e x t . R. John Brockmann. John Wiley and Sons, NY. Second edition, 1990, 366 p. + XVI p.

The Macintosh Finder: Pure GUI. Philip F. H. Rose. P C M a g a z i n e , Vol. 8, No. 15. Sept. 12, 1989. pp. 133-137. The Ultimate User Interface. Bob Jacobson. B Y T E . Vol. 17, No. 4, April 1992. pp. 175-182. Who Needs GUIs? Roundtable. B Y T E . Vol. 16, No. 6, June 1991. pp. 117-120. Windows Wars. Kenetth M. Sheldon, Janet J. Barron, and Ben Smith. B Y T E . Vol. 16, No. 6, June 1991. pp. 124-134.

Platform Portability Code on the Move. Raymond Ga Cote. B Y T E . Vol. 17, No. 7, July 1992. pp. 206-226. Cross-Platform Application Development Tools (Resource Guide). B Y T E . Vol. 17, No. 1, January 1992. pp. 201-202. Hedging Your Bets. Martin Heller. B Y T E . Vol. 16, No. 8, August 1991. pp. 291-292. Let the System Do the Porting (New cross-platform operating systems are coming in the 1990s). Ellen Ullman. B Y T E . Vol. 17, No. 1, January 1992. pp. 191-199. A Moving Target (Windows, Macintosh, assorted Unix flavors, and GUIs - how do you deal with all the platforms that make up today's computing environment?). Bob Ryan. B Y T E . Vol. 17, No. 1, January 1992. pp. 159-174. Portability and the GUI. David M. Andersen and Bruce A. Sherwood. B Y T E . Vol. 16, No. 12, Nov. 1991. pp. 221-226.

Graphical User Interfaces Faces of Unix. Ross M. Greenberg. P C M a g a z i n e , Vol. 8, No. 15. Sept. 12, 1989. pp. 143-157. The GUI: An Interface You Won't Outgrow. Jim Seymour. P C M a g a z i n e , Vol. 8, No. 15. Sept. 12, 1989. pp. 97-109. GUIs for DOS and OS/2. Charles Petzold, Luisa Simone, and Tami D. Peterson. P C M a g a z i n e , Vol. 8, No. 15. Sept. 12, 1989. pp. 111-131. Kinder, Gentler Computing. Maureen Caudill. B Y T E . Vol. 17, No. 4, April 1992. pp. 135-150. Mind Melding: How far can the human/computer interface go? Owen Linderholm. B Y T E S p e c i a l I s s u e O u t l o o k ' 9 2 . Vol. 16, No. 11, Winter 1991, pp. 41-46.

29

Software Development: Past, Present and Future Trends and Tools

Key Dates in the Microcomputer History 75

Microsoft BASIC is released for the first microcomputer kits (Altair based on Intel 8080)

76

The first word processing program for microcomputers is released (Electric Pencil by Michael Schrayer)

77

Apple II, Commodore PET and Tandy TRS-80 are introduced. Basic is provided as the programming language standard and Microsoft FORTRAN is introduced on the first microcomputers.

85

IBM released TopView, a text-based windowing environment. Microsoft version 1 of Windows, its graphical user interface for DOS, two years after the initial announcement. Lotus/Intel/Microsoft Extended Memory Specification (EMS) provides addressable memory space above 640K on MS-DOS machines. Ashton-Tate delivers dBASE III Plus, a network version of its database manager. Lotus releases version 2.0 of 1-2-3, which can handle LIM-standard memory extension cards and worksheets of up to 4 Mb. Aldus releases PageMaker for Mac. and introduces the desktop publishing on PCs.

86

Apple introduces the MacPlus computer and the LaserWriter Plus printer. Compaq releases the Deskpro 386, based on the new 80386 chip, before IBM.

87

Wayne Ratliff's database manager, dBASE II, is released. IBM-PC is announced and Microsoft published version 1.0 of MS-DOS. Apple introduces Apple III and Xerox releases the Star workstation, which has an innovative graphical user interface (with a mouse and pull-down menus), WYSIWYG. display and built-in networking hardware.

IBM releases its new range of microcomputers, the PS/2. Microsoft releases DOS 3.3 supporting up to 32 Mb hard disk. Microsoft and IBM announces that they are jointly developing a multitasking operating system called OS/2 for the PC and the PS/2. Microsoft releases Windows 2.0, Windows 386, and Excel for PC and the Mac. Commodore introduces the Amiga, the first multimedia computer, offering advanced support for video and audio. The first widely spread computer virus appears.

88

Microsoft releases FORTRAN, GW-BASIC and COBOL for MS-DOS. IBM releases Digital Research's CP/M-86 operating system for IBM-PC. The first IBM-PC clones start to appear on the market. Intel introduces the 80286 which is later used by IBM in the IBM-AT. WordPerfect is introduced for the IBM-PC.

Microsoft releases DOS 4.01 and the PC version of Works and OS/2 LAN Manager. Microsoft and IBM releases OS/2 version 1. Compaq announces the EISA (extended industry standard architecture) group, which proposes an alternative to the MCA bus used in the IBM PS/2. The first PC-notebook appears on the market. Steve Jobs introduces Next Computer.

89

OS/2 v. 1.1 and Presentation Manager. Microsoft releases Quick Pascal, designed to compete with Borland's Turbo Pascal.

90

80486-based computers appears on the market. Microsoft releases Windows 3.0. Most software developers

91

Microsoft releases DOS 5.0. Apple introduces System 7, its new operating system. Multimedia and Pen computing start to appear on the market. Compilers start to support Object-Oriented Programming.

92

Microsoft releases Windows 3.1 and IBM introduces OS/2 version 2.

93

Windows/NT and 80586-based computers will be introduced on the market.

78

Intel introduces the 8086 16-bit microprocessor, with increased speed and memory. Microsoft starts to sell its third language for PCs: COBOL. MicroPro introduces WordMaster, the predecessor to WordStar.

79

Dan Bricklin and Bob Frankston introduce the first version of VisiCalc. MicroPro introduces WordStar. Microsoft releases its Assembler language for the 8080/Z80 microprocessors (Microsoft Macro Assembler) and Basic for Intel 8086.

80

81

82

83

84

Microsoft publishes DOS 2.11 for the international market. Software publishers and computer manufacturers receive the first application development kits for WIndows. IBM introduces the IBM-PC/AT with a 20-megabyte hard disk. Microsoft publishes DOS 3.0 to support it, then DOS 3.1 to support PC networks. Digital Research introduces GEM, a text-based windowing environment for DOS.

Microsoft releases the SoftCard for the Apple II, enabling the Apple II to run CP/M software. IBM starts the Project Chess to produce its first PC version. IBM and Digital Research could not reach an agreement to collaborate. The operating system for the new IBM-PC will not be CP/M but a clone purchased by Microsoft.

Lotus releases the 1-2-3 spreadsheet and Microsoft introduces Microsoft Word and a mouse. Apple introduces the Lisa computer (Macintosh ancestor). IBM announces the PC-XT, which has a 10-megabyte hard disk and Microsoft publishes DOS 2.0 for the PC-XT. Microsoft releases new 16-bit languages for MS-DOS, including Pascal, C and Basic compilers and Borland begin promoting Turbo Pascal through mail order for a very reasonable price. It becomes the most popular programming language for the PC. Apple Computer introduces the Macintosh. Asthon-Tate announces Framework, a five-function integrated software package and dBASE III. Microsoft introduces Microsoft Project for managing and tracking projects and Microsoft Chart, a business graphics program for the IBM-PC and the Mac.

,

30