Software Engineering, Pages 2-13, Mon- Ware Process, Pages 76 - 85, Dec
Total Page:16
File Type:pdf, Size:1020Kb
Software Processes Are Software Too, Revisited: An Invited Talk on the Most Influential Paper of ICSE 9 * Leon J. Osterweil University of Massachusetts Dept. of Computer Science Amherst, MA 01003 USA +1 413 545 2186 ljo@cs. umass.edu ABSTRACT led to a considerable body of investigation. The sug- The ICSE 9 paper, "Software Processes are Software gestion was immediately controversial, and continues to Too," suggests that software processes are themselves a be argued. Subsequently I discuss why I believe this form of software and that there are considerable benefits discussion indicates a pattern of behavior typical of tra- that will derive from basing a discipline of software pro- ditional scientific inquiry, and therefore seems to me to cess development on the more traditional discipline of do credit to the software engineering community. application software development. This paper attempts But what of the (in)famous assertion itself? What does to clarify some misconceptions about this original ICSE it really mean, and is it really valid? The assertion grew 9 suggestion and summarizes some research carried out out of ruminations about the importance of orderly and over the past ten years that seems to confirm the origi- systematic processes as the basis for assuring the quality nal suggestion. The paper then goes on to map out some of products and improving productivity in developing future research directions that seem indicated. The pa- them. Applying the discipline of orderly process to soft- per closes with some ruminations about the significance ware was not original with me. Lehman [13] and others of the controversy that has continued to surround this [18] had suggested this long before. But I was trou- work. bled because I had started to see the development of a Introduction whole new discipline and technology around the idea of "Software Processes are Software Too." How many software process, and to notice the emergence of many times I have heard that phrase quoted back to me in notions and tools that seemed eerily familiar. I was the past ten years! And how many times it has been starting to see the creation of a software process universe (sometimes amusingly) misquoted too. Often I have parallel to the universe of notions and tools surrounding been flattered to have had the ICSE9 paper [15] and its application software development. The more I looked, catchy title referred to as being "classic" and "seminal". the more similarities I saw. Processes and applications But often I have also been asked, "what does that really are both executed, they both address requirements that mean?" The idea is, alas, still misunderstood and mis- need to be understood, both benefit from being mod- construed in some quarters. But amazingly, and grat- elled by a variety of sorts of models, both must evolve ifyingly, the phrase is still used, and the discussion of guided by measurement, and so forth. Thus it seemed the idea still continues, even after ten years. important to suggest that software process technology might not need to be invented from scratch (or rein- The suggestion that software, and the processes that vented), but that much of it might be borrowed from deal with it, might somehow be conceptually similar re- application software technology. mains a powerfully appealing one that seems to have I have often been reminded that application software 'This work was supported in part by the Air Force Materiel technology is still badly underdeveloped and that using Command, Rome Laboratory, and the Defense Advanced Re- it as a model for software process technology might be of search Projects Agency under Contract F30602-94-C-0137. dubious value. This, however, overlooks clear evidence Permission to make digitallhard copies of all or put of this material for that, while we have not mastered application software personal or classroom use is granted without fee provided that the copies are not made or distrihuted for profit or commercial advanLige, the copy- technology, we have, nevertheless, created a powerful right notice, the title ofthe publication and itq date appear, and notice is assortment of tools, principles, and techniques in this given that copyright is by permission ofthe ACM, Inc. To copy otherwise, domain. Thus, there is much to be gained from using to republish, to post on servers or to redistrihute to lists, requires specific permission and/or fee obvious parallels to hasten the maturation of software ICSE 97 Boston MA USA Copyright 1997 ACM 0-89791-914-9197105..$3.50 5 40 process technology. It seemed important to suggest that Parallels Between Software Processes and Appli- the community should look to the more traditional and cation Software better-developed disciplines of application development Much work seems to demonstrate the existence of sig- to see what might be borrowed or adapted. It seemed nificant parallels between software processes and appli- clear that there were strong similarities, but likely that cation software, although not all of this work was in- there were differences as well. Investigation of the ex- tended to do so. This section briefly surveys what has tent of each seemed to be in order. The ICSE 9 talk been learned. invited community investigation of how processes and Process application software are the same and how they differ, Modelling There has been a great deal of study of how well var- so that relevant findings, approaches, and tools of one ious application software modelling formalisms model could be of use to the other. It has been gratifying to software processes. For example, Petri Nets [1],[5], Fi- see that this invitation has been taken up and that these nite State Machines &6],1111, and dataflow diagrams [19] explorations are still ongoing. have been used to model software processes. These ac- Conversely it has been disappointing to see the way in tivities have clearly demonstrated that application soft- which the suggestion has continued to be misconstrued ware modelling approaches can be strong aids in con- in some quarters. Subsequent sections will deal with ceptualizing processes, in helping people to communi- these misconceptions in more detail, but the following cate about processes and collaborate in their execution, brief summary seems in order here. and in raising intuition about processes. Software is not simply code. Neither are software pro- As with application soft,ware modelling, different types cesses. Application software generally contains code. of process models are good for different things. Petri This suggests that software processes might also con- Net models, for example, are quite useful in elucidat- tain code. Coding software processes thus seems to be ing parallelism and concurrency, but are less useful in an interesting possibility. Research has borne this out. modelling artifacts. Petri Nets process models seem to have very similar properties. They help to identify par- Programming is not the same as coding, it entails the allelism in processes, but have generally required aug- many diverse steps of software development. Software mentation in order to effectively elucidate the flow of process programming should, likewise, not simply be software artifacts through processes. Other similar ex- coding, but seemed to entail the many non-coding steps amples could readily be pointed out. usually associated with application development. Pro- cess modelling, testing, and evolution research seems to In general, models, by their nature, abstract away de- have borne that out. tails in order to focus on specific narrow issues, which are thereby made correspondingly clearer and more There are many examples of application code that are vivid. Thus, Petri Net models depict parallelism clearly not inordinately prescriptive, authoritarian, or intoler- in part because depictions of other less relevant details able to humans (eg. operating systems). Thus, there are specifically omitted. Thus, any particular model should be no presumption that process code must be should be expected to be useful in some contexts, but overly prescriptive, authoritarian, or intolerable either. less helpful in others. To support understanding of var- Process programs need not treat humans like robots- ious aspects of a software product different models are unless that is the intention of the process programmer. generally needed. Thus, a number of modelling systems Process modelling and coding languages demonstrate (eg. [6]) support the development and coordination of this. multiple models of application software. Experience in Finally, good software code is written at all levels of de- the software process domain has been similar. State- tail. Code contains fine scale details, but they emerge at mate was used as a process modelling tool [ll],and its lower levels, after high level code addresses larger issues. support for multiple models was useful precisely because Similarly process code contains details that are nested the different models supported understanding and rea- below higher abstract levels. Process code, like app1ica.- soning from a variety of aspects. In the application soft- tion code, can demonstrate that precise implementation ware domain there is a growing understanding of which of broader notions in terms of lower level engineering de- modelling tools and formalisms best elucidating which tails. Contemporary process coding languages demon- issues. We expect similar understandings to emerge in strate this too. the software process domain. The following section summarizes some research that But, as with application software modelling, it has also suggests continued and broadened research into these become clear in process modelling that there are rea- issues. sons why models, even multiple models, are sometimes inadequate. The very lack of certain types of details 541 in models means that models inevitably lack specifics stronger, broader semantics and greater detail are essen- that can be very important. In addition, many mod- tial. In reasoning, for example, about the presence or elling formalisms (eg. graphical models) are based upon absence of deadlocks and race conditions in processes weak and shallow semantics.