AI Magazine Volume 13 Number 3 (1992) (© AAAI) Articles Software Engineering in the Twenty-First Century Michael R. Lowry There is substantial evidence that AI technology can meet the require- ments of the large potential market that will exist for knowledge-based software engineering at the turn of the century. In this article, which forms the conclusion to the AAAI Press book Automating Software Design, edited by Michael Lowry and Robert McCartney, Michael Lowry discusses the future of software engineering, and how knowledge-based software engineering (KBSE) progress will lead to system development environments. Specifically, Lowry examines how KBSE techniques pro- mote additive programming methods and how they can be developed and introduced in an evolutionary way. By the year 2000, there will be a large poten- encoded form and automated. KBSE will revo- tial market and a fertile environment for lutionize software design, just as computer- knowledge-based software engineering (KBSE). aided design has revolutionized hardware In the coming decade, hardware improve- design, and desktop publishing has revolu- ments will stimulate demand for large and tionized publication design. sophisticated application software, and stan- This article draws on the chapters in dardization of software interfaces and operat- Automating Software Design and other sources ing systems will intensify competition to present one vision of the future evolution among software developers. In this environ- of KBSE. After an executive summary and a ment, developers who can rapidly create brief history of software engineering, the role robust and error-free software will flourish. of AI technology is examined in mainstream Developers who deliver buggy software years software engineering today. Currently, AI behind schedule, as is typical today, will programming environments facilitate rapid perish. To meet this challenge, software prototyping but do not produce efficient, developers will seek tools and methods to production-quality code. KBSE technology automate software design. combines the advantages of rapid prototyp- Computer-aided software engineering ing and efficient code in a new programming (CASE) is undergoing tremendous commercial paradigm: transformational programming, growth. However, the current generation of described in the subsequent part of the con- CASE tools is limited by shallow representa- clusion. In transformational programming, tions and shallow reasoning methods. CASE prototyping, validation, and modifications tools will either evolve into, or be replaced are done at the specification level; automatic by, tools with deeper representations and program synthesis then translates specifica- more sophisticated reasoning methods. The tions into efficient code. The following part enabling technology will come from AI, compares the trade-offs in various approach- formal methods, programming language es to program synthesis. Then, several near- theory, and other areas of computer science. term commercial applications of KBSE This technology will enable much of the technology are predicted for the next decade. knowledge now lost in the software develop- To scale up from these near-term applications ment process to be captured in machine- to revolutionizing the entire software life 0738-4602/92/$4.00 ©1992 AAAI FALL 1992 71 Articles cycle in the next cen- This article draws on the chapters in lutionary and com- tury, the computa- Automating Software Design and other sources patible with current tional requirements of to present one vision of the future evolution software develop- KBSE technology need of KBSE. After an executive summary and a ment methods. Some to be addressed. An brief history of software engineering, the role research systems examination of cur- of AI technology is examined in mainstream for intelligent rent benchmarks software engineering today. Currently, AI assistance in programming environments facilitate rapid reveals that hardware requirement and prototyping but do not produce efficient, performance by the specification engi- production-quality code. KBSE technology year 2000 is not combines the advantages of rapid prototyp- neering, such as likely to be a limiting ing and efficient code in a new programming ARIES and ROSE-2 factor but that fun- paradigm: transformational programming, incorporate many damental issues such described in the subsequent part of the con- of the current CASE as search control clusion. In transformational programming, representations. require further prototyping, validation, and modifications Thus, as they research. Finally, the are done at the specification level; automatic mature, they could program synthesis then translates specifica- future of KBSE in the be integrated into tions into efficient code. The following part next century is pre- the next generation compares the trade-offs in various approach- of CASE tools. On the sented from the es to program synthesis. Then, several near- research front, I viewpoint of differ- term commercial applications of KBSE ent people in the technology are predicted for the next expect continued software life cycle— decade. To scale up from these near-term progress in repre- from end users to the applications to revolutionizing the entire senting and reason- knowledge engineers software life cycle in the next century, the ing with domain who encode domain computational requirements of KBSE technol- and design knowl- knowledge and design ogy need to be addressed. An examination of edge. This research knowledge in soft- current benchmarks reveals that hardware will pay off in more performance by the year 2000 is not likely to ware architectures. sophisticated tools be a limiting factor but that fundamental for requirement and issues such as search control require further specification engi- Executive research. Finally, the future of KBSE in the next century is presented from the viewpoint neering as well as Summary of different people in the software life better program syn- Currently, KBSE is at cycle—from end users to the knowledge thesis systems. the same stage of engineers who encode domain knowledge Within the decade, development as early and design knowledge in software architec- the break-even tures. compilers or expert point will be systems. Commer- reached in general- cially, a few dozen purpose program handcrafted systems are in real use as indus- synthesis systems, trial pilot projects. The first and third sec- where given a domain theory, it will be faster tions of this book describe pilot systems for to interactively develop a program with one software maintenance and special-purpose of these systems than by hand. A key to this program synthesis. In research laboratories, breakthrough will be continued improve- many prototype KBSE systems have been ments in search control. Substantial research developed that have advanced the science of programs are now under way to scale KBSE formalizing and automating software design technology up from programming in the knowledge. Program synthesis research has small to programming in the large. matured over the last two decades to the point that sophisticated algorithms can be The Next Century synthesized with only limited human guid- Software engineering will evolve into a radi- ance. Research in intelligent assistance for cally changed discipline. Software will requirement and specification engineering is become adaptive and self-configuring, less mature but already shows considerable enabling end users to specify, modify, and promise. maintain their own software within restricted contexts. Software engineers will deliver The Next Decade knowledge-based application generators Within the next decade, significant commer- rather than unmodifiable application pro- cial use of KBSE technology could occur in grams. These generators will enable an end software maintenance and special-purpose user to interactively specify requirements in program synthesis. The influence will be evo- domain-oriented terms, as is now done by 72 AI MAGAZINE Articles …the current generation of CASE tools is limited by shallow representations and…reasoning methods. telephone engineers with WATSON, and then shorten design times. As hardware has automatically generate efficient code that become less expensive, more resources have implements these requirements. In essence, been devoted to making computers easier to software engineers will deliver the knowledge use and program. User interfaces have for generating software rather than the soft- evolved from punched cards for batch pro- ware itself. cessing to teletypes and cathode ray tubes for Although end users will communicate with time sharing to graphic user interfaces for these software generators in domain-oriented networked workstations. In the nineties, new terms, the foundation for the technology will modes of interaction such as handwriting and be formal representations. Formal representa- voice will become common. tions can be viewed as the extension of cur- Likewise, computers are becoming easier to rent CASE representations, which only capture program. In the fifties and sixties, the first structural and syntactic information about a “automatic programming” tools were intro- software design, into complete semantic rep- duced—assemblers and compilers. Research in resentations that capture the full spectrum of programming languages and compiler tech- software design knowledge. Formal languages nology has been a major success for computer will become the lingua franca, enabling
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages17 Page
-
File Size-