A Brief History of Software Engineering

  title={A Brief History of Software Engineering},
  author={N. Wirth},
  journal={IEEE Annals of the History of Computing},
  • N. Wirth
  • Published 2008
  • Computer Science
  • IEEE Annals of the History of Computing
This personal perspective on the art of programming begins with a look at the state of programming from about 1960, and it follows programming's development through the present day. The article examines key contributions to the field of software engineering and identifies major obstacles, which persist even today. 
Beyond Hard and Soft OR: operational research from a software engineering perspective
This paper argues that current practice in the Operational Research (OR) discipline needs to tackle management problems from a broader point of view by including a new perspective. While Hard OR is...
Software Engineering: History
  • D. Grier
  • Computer Science, Engineering
  • Encyclopedia of Software Engineering
  • 2010
Softwareengineering has drawn heavily from other engineering fields, notably industrial engineering and quality control, and has grown into afield that describes, designs, creates, deploys, and maintains software systems. Expand
Modelled on software engineering: flexible parametric models in the practice of architecture
In this thesis I consider the relationship between the design of software and the design of flexible parametric models. There is growing evidence that parametric models employed in practice lack theExpand
The practices of programming
Accounts spanning software engineering, bricolage/tinkering, sketching, live coding, code-bending, and hacking are explored, offering potential to inform programming education, tools and work as well as future research. Expand
Assembling a prehistory for formal methods: a personal view
  • T. Haigh
  • Computer Science
  • Formal Aspects of Computing
  • 2019
Haigh explores some relevant ideas from academic history, sketches historical connections between formal methods and other areas of computer science, and concludes with some suggestion for and challenges to formal methods participants who aim to tell the story of their field. Expand
ion A view of an object that focuses on the information relevant to a particular purpose and ignores the remainder of the information. [IEEE Std 610.12-1990] In order to focus on some aspect of aExpand
A Software Cost Model to Assess Productivity Impact of a Model-Driven Technique in Developing Domain-Specific Design Tools
This work states that modelling languages support the design of software services in the form of domain models, which become the main development artefacts, which are then transformed using code generators to the required implementation. Expand
Strategies for the intelligent selection of components.
This investigation has focussed on finding and implementing strategies to enhance the selection of software components, targeting characterisation, process, strategies and evaluation using the Spiral Development Model. Expand
Architecture-Driven Integration of Modeling Languages for the Design of Software-Intensive Systems
This thesis contributes to Software Engineering research and practice by proposing the extension and integration of formal and semi-formal modeling languages in a multiple-view software architecture, combined with domain architecture, which are used in practice to develop a family of distributed real-time systems in the road traffic domain. Expand
Compilation of Software Quality Factors and Criteria along with their Description for a Quality Product
This paper shows a quick and elaborative review for a quality product and the preliminary phase of understanding how to perform any activity and knowing its pros and cons. Expand


A critical review of the state of the programming art
  • R. Barton
  • Computer Science
  • AFIPS '63 (Spring)
  • 1963
What follows is intended not as a scholarly review of the programming art, but as a personal appraisal. The bias is that of one interested in the subject of machine organization and its relation toExpand
An overview of Ada
  • J. Barnes
  • Computer Science
  • Softw. Pract. Exp.
  • 1980
The body of the paper is an informal description of the main features of the final language as revised after the Test and Evaluation phase of the DoD project. Expand
Structured programming
The first monograph has suggested that in analysing a problem and groping towards a solution, a programmer should take advantage of abstract concepts such as sets, sequences, and mappings; and judiciously postpone decisions on representation until he is constructing the more detailed code of the program. Expand
Communicating sequential processes
This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. WhenExpand
A Plea for Lean Software
The paper discusses some causes of "fat software" and considers the Oberon system whose primary goal was to show that software can be developed with a fraction of the memory capacity and processor power usually required, without sacrificing flexibility, functionality, or user convenience. Expand
Programming with abstract data types
An approach which allows the set of built-in abstractions to be augmented when the need for a new data abstraction is discovered and is an outgrowth of work on designing a language for structured programming. Expand
Cooperating sequential processes
This chapter is intended for all those who expect that in their future activities they will become seriously involved in the problems that arise in either the design or the more advanced applicationsExpand
Assigning Meanings to Programs
This paper attempts to provide an adequate basis for formal definitions of the meanings of programs in appropriately defined programming languages, in such a way that a rigorous standard isExpand
Abstract types defined as classes of variables
The concept of “type” has been used without a precise definition in discussions about programming languages for 20 years, but the need for a widely accepted definition became clear in discussions of languages that allow users to add to the set of possible types without altering the compiler. Expand
Notes on structured programming
The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers. Expand