software engineering: the order of the present

3
55 Software Engineering: The Order of the Present Nathaniel Macon Many people did not recognize the power of this concept. I recall an incident from the middle 1960s. I was looking over Univac's Exec-8 for the The Legacy of the Computer first time and came across the "FOLD" and "UN- FOLD" instructions which allow one to transform Whether one calls it MCMLXXXIV, 11111 executable programs into text files, edit them, and 000000, 3700 or 7CO, it's nineteen eighty-four. To then restore their executibility. Though this is now George Orwell, 1984 was simply a permutation of standard practice, I was then told that it was to 1948, the year he wrote his book. Herb Grosch allow the suppression of insignificant blanks when was the forecaster who predicted that the number saving programs. I still recall my reaction - you of computer programmers would increase ex- justify transcontinental flight by saying it reduces ponentially - that computers would become uni- wear and tear on the tires. It was impossible to versal. Though neither Grosch nor Orwell seems to forget that 15 years earlier we novitiate pro- have anticipated that "Big Brother" would turn grammers had created so much havoc in instru- out to be Margaret Thatcher, it is Herb's London menting the concept of programs that process where, at the time of this writing, BBC1 is broad- themselves that the FORTRAN people gave us an casting an insertion sort in BASIC (on page 705 of ultimatum to stop or get fired. CEEFAX). Already in the early 1950s Herb had We had yet to master the discipline of using the mastered a lesson from Saint Augustine: "The language of these new brains in a proper way. The future can only be told from the order of the problem, as stated in a different context by the present, for that exists, and may be seen." English essayist Eric Arthur Blair a decade or so Of course the past is part of the present. It was earlier, lay in our inexperience with using abstract, possibly in the Third Century that Sun Tzu wrote artificial languages to evoke real events. According his classic treatise on computing. Following what to Blair: was already a long tradition, he used a command When you think of a concrete object, you language, called standard procedures by name, think wordlessly, and then, if you want to and referenced data by location, name or value. describe the thing you have been visualizing Long before the abacus was invented, Sun Tzu you probably hunt around for the exact established that software engineering is not simply words that seem to fit. When you think of an intellectual discipline, a collection of concepts, something abstract you are more inclined to ideas and logical constructs, but also a means of use words from the start, and unless you carrying them out. Sun Tzu, and later Babbage, make a conscious effort to prevent it, the showed us that a mind without a brain is not enough. Moreover, Orwell showed that the reverse existing dialect will come rushing in and is even worse, doing the job for you, at the expense of During the last years of Orwell's life we began blurring or even changing your meaning. to get the brainsmonsters that would rival today's It is my belief that the "order of the present" is programmable pocket calculators, and a new idea. represented by the confluence of the ideas repre- For I don't think it ever occurred to Sun Tzu that sented by Sun Tzu, von Neumann and Blair with a program was itself data and, therefore, could those of the German algebraist Emmy Noether. process itself. We probably have John von Neu- Her contribution was to oversee the integration of mann to blame for that. much of our knowledge of algebra and geometry into coherent structures which could be under- North-Holland stood, extended, manipulated and, if one chose, Computer Networks and ISDN Systems 9 (1985) 55-57 mapped back into the level of detail from whence 0376-5075/85/$3.00 © 1985, Elsevier Science Publishers B.V. (North-Holland)

Upload: nathaniel-macon

Post on 21-Jun-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

55

Software Engineering: The Order of the Present N a t h a n i e l M a c o n Many people did not recognize the power of

this concept. I recall an incident from the middle 1960s. I was looking over Univac's Exec-8 for the

The Legacy of the Computer first time and came across the " F O L D " and " U N - F O L D " instructions which allow one to transform

Whether one calls it MCMLXXXIV, 11111 executable programs into text files, edit them, and 000000, 3700 or 7CO, it's nineteen eighty-four. To then restore their executibility. Though this is now George Orwell, 1984 was simply a permutation of standard practice, I was then told that it was to 1948, the year he wrote his book. Herb Grosch allow the suppression of insignificant blanks when was the forecaster who predicted that the number saving programs. I still recall my reaction - you of computer programmers would increase ex- justify transcontinental flight by saying it reduces ponentially - that computers would become uni- wear and tear on the tires. It was impossible to versal. Though neither Grosch nor Orwell seems to forget that 15 years earlier we novitiate pro- have anticipated that "Big Brother" would turn grammers had created so much havoc in instru- out to be Margaret Thatcher, it is Herb 's London menting the concept of programs that process where, at the time of this writing, BBC1 is broad- themselves that the F O R T R A N people gave us an casting an insertion sort in BASIC (on page 705 of ult imatum to stop or get fired. CEEFAX). Already in the early 1950s Herb had We had yet to master the discipline of using the mastered a lesson from Saint Augustine: "The language of these new brains in a proper way. The future can only be told from the order of the problem, as stated in a different context by the present, for that exists, and may be seen." English essayist Eric Arthur Blair a decade or so

Of course the past is part of the present. It was earlier, lay in our inexperience with using abstract, possibly in the Third Century that Sun Tzu wrote artificial languages to evoke real events. According his classic treatise on computing. Following what to Blair: was already a long tradition, he used a command When you think of a concrete object, you language, called standard procedures by name, think wordlessly, and then, if you want to and referenced data by location, name or value. describe the thing you have been visualizing Long before the abacus was invented, Sun Tzu you probably hunt around for the exact established that software engineering is not simply words that seem to fit. When you think of an intellectual discipline, a collection of concepts, something abstract you are more inclined to ideas and logical constructs, but also a means of use words from the start, and unless you carrying them out. Sun Tzu, and later Babbage, make a conscious effort to prevent it, the showed us that a mind without a brain is not enough. Moreover, Orwell showed that the reverse existing dialect will come rushing in and is even worse, doing the job for you, at the expense of

During the last years of Orwell's life we began blurring or even changing your meaning.

to get the brainsmonsters that would rival today's It is my belief that the "order of the present" is programmable pocket calculators, and a new idea. represented by the confluence of the ideas repre- For I don' t think it ever occurred to Sun Tzu that sented by Sun Tzu, von Neumann and Blair with a program was itself data and, therefore, could those of the German algebraist Emmy Noether. process itself. We probably have John von Neu- Her contribution was to oversee the integration of mann to blame for that. much of our knowledge of algebra and geometry

into coherent structures which could be under- North-Holland stood, extended, manipulated and, if one chose, Computer Networks and ISDN Systems 9 (1985) 55-57 mapped back into the level of detail from whence

0376-5075/85/$3.00 © 1985, Elsevier Science Publishers B.V. (North-Holland)

56 N. Macon / Software Engineering

they came. And software engineering is the center abstract situations with many dimensions, highly of this confluence, interdependent coordinates and fuzzy metrics.

Bearing this in mind, let's look for the obvious and concede that the subtleties are probably hidden

Software Engineering deep within the noise.

In the matter of specification we seem to be still For software engineering is, in a nutshell, the at a stage where natural language is our best tool,

process of reducing complexity and making it especially owing to the fact that specifications manageable. And the complexities described thus must include the bridges to the outside world from far existed already in the early 1950s, at which which the money comes. Granted, the field of time some mischievous soul invented "spooling." computer communication has produced languages Concurrency came into being and our preoccupa- such as SDL that are friendly to both producer tion with sequential processing became rather and consumer and that are, in essence, the lan- quaint. Talk and action began to turn to the guages of virtual machines. Yet the times seem to problems of distribtited processing and distributed favor sophisticated processes employing natural data bases, not to mention virtual memories and language over natural processes which employ virtual machines. Wirth was taking away GO TO's sophisticated languages. Moreover, it is now with his right hand and passing out pointers with acceptable to refer to " the myth of complete his left. There was plenty of complexity to reduce specification," which is to say, to admit that and manage, even before The Serpent delivered specification is a process rather than a product. the first APPLE. This, in turn, has made it possible to use com-

By the 1970s, there were intelligent and useful puters in an increasingly non-trivial way to sup- responses. While Buxton and Randall were play- port the process. The adage that the cobbler's wife ing midwife to software engineering through their has no shoes is less and less applicable to the wives NATO conferences, Kaenel and Winkler were in- of cobblers who specify software. venting ICCC in Winkler's dining room. Codd was The situation regarding design (which Clem encouraging the rationalization of data base McGowan calls "applied philosophy") is quite the management and Hoare the rationalization of opposite - many languages and few methods. software development. The lessons learned from Indeed, many people who should know better the SABRE system began to creep into the class- insist that, given complete and unambiguous room (with all references to IBM discreetly de- specifications, software can and should be gener- leted), and, last but no means least, CCITT settled ated automatically, that is to say, that software on a standard specification and design language, does not need to be designed. Others, especially

There is an order to software engineering. First, those entangled in concurrency, are developing we have the important distinction between innova- methods and the necessary tools to manage and tion and evolution. And second, within evolution, use the methods. The increasing recognition that there is a birth to death process known as the life quality, reliability and often even feasibility are cycle comprising user requirement, technical speci- established during the design phase of software fication, implementation, test and validation, development has resulted in increased profes- maintenance, and then renewal. These are con- sionalism and growing investment in software cepts, ideas and logical constructs that span two design and design software. A discipline is emerg- millennia, even though the mechanisms are rela- ing. tively new and still evolving. Implementation was the first and, for many

Accepting the idea that the order of the present years, the overriding concern of software develop- can be seen within software engineering, at least as ers. It has even given birth to a new discipline, far as evolutionary computer developments are computer science, which is respectable enough to concerned, there still remains the problem of un- stand alongside the other physical sciences, physics derstanding where we are and where we are head- and chemistry, in almost every college and univer- ing. Even in specific situations it is usually easier sity in the World. It also was the first to convince to determine position than velocity, and velocity is the World that computer technology was not sim- easier than acceleration. Here we are dealing with ply a branch of applied mathematics, such as

N. Macon / Software Engineering 57

numerical analysis, even though it shares the same engineering) in much the same way that the tradi- raw material - symbols. Thus, implementation is tional engineering disciplines are based on a fusion in safe hands, insofar as the hands of scientists are of chemistry, physics and mathematics. They, also, safe; it has paved the way for specification and were themselves spawned from and motivated and design to leave their orphanages and grow up too. revitalized by the infusion of engineering issues.

The maturation and instrumentation of specifi- We have only began to grasp the generality of cation and design are, in my view, the most inter- software engineering. Every new successful appli- esting and important elements of the order of the cation, from firing tables to nuclear reactor design present. The economic incentives are enormous; to aerospace to banking to CAM to communi- reusability at the module level alone will yield an cations, seems to come as a surprise. McGowan's adequate return on the investment, not to mention term, "applied philosophy," is a good one. I prefer the attractiveness of responsiveness, timeliness, it to " the order of the future." utility, manageability and value for the money. Furthermore, the writings of Codd and Myers, Note among others, are convincing evidence of challeng- ing intellectual content. Proper development and According to Mr. Allen Macro, who is an fusion of the "big three" - specification, design authority on such matters, the names "George and implementation - into a science of software Orwell" and "Eric Arthur Blair" reference the can and should support software engineering (in- same object. He should know, since all three are cluding much of what is now communications Englishmen.