Whither Software Engineering

semanticscholar(2008)

引用 0|浏览0
暂无评分
摘要
We address the disparity between the intellectual preparation that is expected in traditional engineering as compared to that accepted in software engineering. Any beginning student of a traditional engineering discipline realizes that their first courses will be steeped in mathematics–calculus and physics in particular. These foundational tools underlie the practical aspects of their future career. At best a software engineering student will begin with a similar program; but such courses are the stuff of software applications, not of the business of software per se. We examine the history of traditional engineering and the corresponding transformation of educational expectations from a shop-culture to a school-culture. From the origins of symbolic algebra in the late 16 century, through calculus and mathematical physics, the basic sciences that support modern engineering were developed. Shadowing this progress, the educational establishment was struggling with how–or whether–to move the new theory into practice. We all know how that struggle turned out. We argue that a similar pattern must occur in software development, not because of some academic whim but because the complexity of software demands that we expect higher standards. The critical problem in modern software is predictability: we need to know what to expect when we run a program or import software from the net. Such expectations are ill-served by current techniques. At best, programs are conjectures, free of justifications and supplied "asis." In this day of the virus such a cavalier attitude is indefensible. We will outline some mathematical foundations for software and illustrate their application to the interplay between program and specification. Many of these ideas are the result of early 20 century philosophers; ideas that developed into a constructive logic, and from there to a mathematical foundation for programming languages. The process that moved traditional engineering from an experience-based craft to a science-based discipline was a multi-century revolution. Thomas Kuhn’s “The Structure of Scientific Revolutions” explored a similar process in the advancement science. In the final section we review his arguments for science revolutions; adapt them for traditional engineering; and then show how our proposed revolution in the engineering of software falls within this framework.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要