Quick viewing(Text Mode)

Internet Engineering Jan Nikodem, Ph.D. Software Engineering

Internet Engineering Jan Nikodem, Ph.D. Software Engineering

Internet Engineering

Jan Nikodem, Ph.D.

Software Engineering Theengineering paradigm

Software Engineering Lecture 3 The term "" 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:

Nationality;Dutch, astronomer, , , Technical University of , . 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, 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, ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser

8/24 Wirth's adage Software is getting slower more rapidly than hardware becomes faster.

Nationality;Swiss, electronic engineer, computer scientist ETH Zürich, University of California, Berkeley, . 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 . Programming as a mathematical discipline Programming was obtaining a mathematical basis. Programs were no longer justcode for controlling , 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