The Name and Nature of Software Engineering

Software engineering is discussed with particular reference to software-intensive application systems--those whose fundamental purpose is to bring about desired effects in a physical and human problem world by interaction with a programmed machine . Such systems bring together a problem world--typically composed of non-formal heterogeneous domains--and the formal or semi-formal domain of the machine. Clean engineering separation of the two is rarely, if ever, possible; and treating the problem world as an extension of the formal machine is hard because of its non-formal nature. Software engineers can learn from the structure and practices of the established branches of engineering--their treatment of formal analysis and reasoning, their practice of intense specialisation, and their attention to particular instances no less than to general concerns. Above all we can learn from their reliance on normal artifact design and normal design disciplines--both the golden fruit of specialisation.

[1]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[2]  Brian Cantwell Smith,et al.  The limits of correctness , 1985, CSOC.

[3]  M. Polanyi,et al.  Personal Knowledge: Towards a post-critical philosophy , 1959 .

[4]  Nancy G. Leveson,et al.  An investigation of the Therac-25 accidents , 1993, Computer.

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Henry Petroski,et al.  Design Paradigms: Case Histories of Error and Judgment in Engineering , 1994 .

[7]  Stephen M. McMenamin,et al.  Essential systems analysis , 1984 .

[8]  N. Dellsie,et al.  A formal specification of an oscilloscope , 1990, IEEE Software.

[9]  Michael A. Jackson,et al.  Problem Frames - Analysing and Structuring Software Development Problems , 2000 .

[10]  Eugene S. Ferguson,et al.  Engineering and the Mind's Eye , 1994 .

[11]  T. S. E. Maibaum,et al.  Taking more of the soft out of software engineering , 1993, Proceedings of 1993 IEEE 7th International Workshop on Software Specification and Design.

[12]  C. Michael Holloway From Bridges and Rockets, Lessons for Software Systems , 2004 .

[13]  Christopher Strachey,et al.  OS6 - an experimental operating system for a small computer. Part 2: input/output and filing system , 1972, Comput. J..

[14]  Henry Petroski,et al.  To Engineer Is Human: The Role of Failure in Successful Design , 1986 .

[15]  G. Rogers,et al.  The Nature of Engineering: A Philosophy of Technology , 1983 .

[16]  Edward W. Constant,et al.  The Origins of the Turbojet Revolution , 1982 .

[17]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[18]  Alain Abran,et al.  The Guide to the Software Engineering Body of Knowledge , 1999, IEEE Softw..

[19]  Fred B. Schneider,et al.  Derivation of sequential, real-time, process-control programs , 1991 .

[20]  Bill Addis Creativity and innovation : the structural engineer's contribution to design , 2001 .

[21]  Axel van Lamsweerde,et al.  Formal refinement patterns for goal-driven requirements elaboration , 1996, SIGSOFT '96.

[22]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[23]  George Cayley On Aërial Navigation , 1876 .

[24]  Walter G. Vincenti,et al.  What Engineers Know and How They Know It: Analytical Studies from Aeronautical History. , 1992 .

[25]  Robert Stephenson,et al.  The Britannia and Conway tubular bridges : with general inquiries on beams and on the properties of materials used in construction , 1850 .

[26]  Matthys Levy,et al.  Why Buildings Fall Down: How Structures Fail , 1994 .

[27]  Brian Randell A computer scientist's reactions to NPfIT , 2007, J. Inf. Technol..

[28]  T. S. E. Maibaum,et al.  Scientific rigour, an answer to a pragmatic question: a linguistic framework for software engineering , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[29]  A. Housman The name and nature of poetry , 1933 .

[30]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[31]  H Weyl THE MATHEMATICAL WAY OF THINKING. , 1940, Science.

[32]  David Lorge Parnas,et al.  Functional Documents for Computer Systems , 1995, Sci. Comput. Program..

[33]  Peter J. Denning A debate on teaching computing science , 1989, CACM.

[34]  David Lorge Parnas,et al.  Software engineering: an unconsummated marriage , 1997, CACM.

[35]  Butler W. Lampson,et al.  Hints for Computer System Design , 1983, IEEE Software.

[36]  T. S. E. Maibaum,et al.  What we teach software engineers in the university: do we take engineering seriously? , 1997, ESEC '97/FSE-5.

[37]  David Lorge Parnas,et al.  Software aspects of strategic defense systems , 1985, CACM.

[38]  G. F. C. Rogers,et al.  The Nature of Engineering , 1983 .

[39]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[40]  Capers Jones Software specialization , 1995 .

[41]  Nancy G. Leveson High-pressure steam engines and computer software , 1992, International Conference on Software Engineering.