Internet Engineering Jan Nikodem, Ph.D. Software Engineering
Total Page:16
File Type:pdf, Size:1020Kb
Internet Engineering Jan Nikodem, Ph.D. Software Engineering Theengineering paradigm Software Engineering Lecture 3 The term "software crisis" was coined at the first NATO Software Engineering Conference in 1968 by: Friedrich. L. Bauer Nationality;German, mathematician, theoretical physicist, Technical University of Munich Friedrich L. Bauer 1924 3/24 The term "software crisis" was coined at the first NATO Software Engineering Conference in 1968 by: Peter Naur Nationality;Dutch, astronomer, Regnecentralen, Niels Bohr Institute, Technical University of Denmark, University of Copenhagen. Peter Naur 1928 4/24 Whatshouldbe ourresponse to software crisis which provided with too little quality, too late deliver and over budget? Nationality;Dutch, astronomer, Regnecentralen, Niels Bohr Institute, Technical University of Denmark, University of Copenhagen. Peter Naur 1928 5/24 Software should following an engineering paradigm NATO conference in Garmisch-Partenkirchen, 1968 Peter Naur 1928 6/24 The hope is that the progress in hardware will cure all software ills. The Oberon System User Guide and Programmer's Manual. ACM Press Nationality;Swiss, electrical engineer, computer scientist ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser 7/24 However, a critical observer may notethat software manages to outgrow hardware in size and sluggishness. The Oberon System User Guide and Programmer's Manual. ACM Press Nationality;Swiss, electrical engineer, computer scientist ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser 8/24 Wirth's computing adage Software is getting slower more rapidly than hardware becomes faster. Nationality;Swiss, electronic engineer, computer scientist ETH Zürich, University of California, Berkeley, Stanford University University of Zurich. Xerox PARC. Niklaus Emil Wirth 1934 9/24 A Brief History of SE I. The 1960s and the Origin of Software Engineering Computersemergencedfrom the closed laboratory of electrical engineers into the publicdomain. There was no interactivity between man and computer. N. E. Wirth 10/24 A Brief History of SE II. Programming as a Discipline High-level languagebecame an ill-understood buzzword.What, if anything, was to be “high-level”? Softwareengineers were judgedby the number of lines of code produced per hour [sic]. N. E. Wirth 11/24 A Brief History of SE III. Abstraction Computer systems are machines of large complexity. This complexity can be masteredintellectually by one tool only: Abstraction. N. E. Wirth 12/24 A Brief History of SE IV. The Advent of the Micro-Computer Computing went public. ”Testing mayshow the presence of errors, but it can never prove their absence. Software Engineering is programming for those who can’t.” E.W.Dijkstra N. E. Wirth 13/24 A Brief History of SE V. Programming as a mathematical discipline Programming was obtaining a mathematical basis. Programs were no longer justcode for controlling computers, but static texts that could be subjected to mathematicalreasoning. A solution was to lie in a disciplined manner of programming, rather than a rigorous scientific theory. N. E. Wirth 14/24 A Brief History of SE VI. The Era of the Personal Workstation Up to 1980 the commonly accepted model of computing was transforming data fromtheir given state to the result, gradually transforming input into output. This view of computing stemmed from the original task of computers: computing numerical results N. E. Wirth 15/24 A Brief History of SE VII. Abundance of Computer Power Awild growthof varieties of variants isnot ininterest of high-quality engineering andprofessionalism. The writing of complicated code and the nasty decryption by others isapparently considered easier or more economical than the careful designanddescription of clean interfaces of modules. N. E. Wirth 16/24 A Brief History of SE VIII. Wasteful Software Carefuldesign is timeconsuming,costly. But it is still cheaper than unreliable, difficult software, when thecost of “maintenance” is not factored in. N. E. Wirth 17/24 Conclusion 1 A primary effort must be education toward a sense of quality!!! •Programmers must become engaged crusaders against home-made complexity. •Thecancerous growth of complexity is not a thing to be admired; it must be foughtwherever possible. 18/24 Conclusion 1 (cont’d) A primary effort must be education toward a sense of quality!!! •Programmers must be given time and respect for work of highquality. This is crucial and ultimately more effective than better tools and rules. •Let usembark on a global effort to prevent software from becoming known as softwaste! 19/24 Conclusion 2 Systems can be designed with utmost care andprofessionalism, yet they remain error-prone if built on a complex and unreliableplatform. 20/24 Conclusion 3 We must stop thecrazy drive for more complexity. Software manuals of several hundred pagesare an unmistakable symptom of their inadequacy. 21/24 Conclusion4 Software engineering would be the primary beneficiary of a professional education in disciplined programming. Engineers in industry, supposedly must be compatible with the rest of the world, and to deviate from established standards might be fatal. 22/24 Readings • NiklausWirth, A Brief History of Software Engineering IEEE Annals of the History of Computing -Volume 30, Number 3, July-September 2008, pp. 32-39, DOI: 10.1353/ahc.0.0021 23/24 .