History of software engineering
   HOME

TheInfoList



OR:

The history of software engineering begins in the 1960s. Writing
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to its stability, speed, usability, testability, readability, size, cost, security, and number of flaws or "bugs", as well as to less measurable qualities like elegance, conciseness, and customer satisfaction, among many other attributes. How best to create high quality software is a separate and controversial problem covering software design principles, so-called "best practices" for writing code, as well as broader management issues such as optimal team size, process, how best to deliver software on time and as quickly as possible, work-place "culture", hiring practices, and so forth. All this falls under the broad rubric of
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
.


Overview

The evolution of software engineering is notable in a number of areas: * Emergence as a profession: By the early 1980s software engineering had already emerged as a ''bona fide''
profession A profession is a field of work that has been successfully ''professionalized''. It can be defined as a disciplined group of individuals, '' professionals'', who adhere to ethical standards and who hold themselves out as, and are accepted by ...
., to stand beside computer science and traditional engineering. *
Role of women A gender role, also known as a sex role, is a social role encompassing a range of behaviors and attitudes that are generally considered acceptable, appropriate, or desirable for a person based on that person's sex. Gender roles are usually cent ...
: Before 1970 men filling the more prestigious and better paying
hardware engineering Computer engineering (CoE or CpE) is a branch of electrical engineering and computer science that integrates several fields of computer science and electronic engineering required to develop computer hardware and software. Computer engineers ...
roles often delegated the writing of software to women, and legends such as
Grace Hopper Grace Brewster Hopper (; December 9, 1906 – January 1, 1992) was an American computer scientist, mathematician, and United States Navy rear admiral. One of the first programmers of the Harvard Mark I computer, she was a pioneer of compu ...
or Margaret Hamilton filled many
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
jobs.
Today, fewer women work in software engineering than in other professions, a situation whose cause is not clearly identified. Many academic and professional organizations consider this situation unbalanced and are trying hard to solve it. * Processes: Processes have become a big part of software engineering. They are hailed for their potential to improve software but sharply criticized for their potential to constrict programmers. * Cost of hardware: The relative cost of software versus hardware has changed substantially over the last 50 years. When
mainframes A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
were expensive and required large support staffs, the few organizations buying them also had the resources to fund large, expensive custom software engineering projects. Computers are now much more numerous and much more powerful, which has several effects on software. The larger market can support large projects to create
commercial off the shelf Commercial off-the-shelf or commercially available off-the-shelf (COTS) products are packaged or canned (ready-made) hardware or software, which are adapted aftermarket to the needs of the purchasing organization, rather than the commissioning of ...
software, as done by companies such as
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
. The cheap machines allow each programmer to have a terminal capable of fairly rapid
compilation Compilation may refer to: *In computer programming, the translation of source code into object code by a compiler **Compilation error **Compilation unit *Product bundling, a marketing strategy used to sell multiple products *Compilation thesis M ...
. The programs in question can use techniques such as
garbage collection Waste collection is a part of the process of waste management. It is the transfer of solid waste from the point of use and disposal to the point of treatment or landfill. Waste collection also includes the curbside collection of recyclabl ...
, which make them easier and faster for the programmer to write. On the other hand, many fewer organizations are interested in employing programmers for large custom software projects, instead using
commercial off the shelf Commercial off-the-shelf or commercially available off-the-shelf (COTS) products are packaged or canned (ready-made) hardware or software, which are adapted aftermarket to the needs of the purchasing organization, rather than the commissioning of ...
software as much as possible.


1945 to 1965: The origins

Putative origins for the term ''software engineering'' include a 1965 letter from ACM president Anthony Oettinger, lectures by Douglas T. Ross at MIT in the 1950s. Margaret H. Hamilton is the person who came up with the idea of naming the discipline, software engineering, as a way of giving it legitimacy during the development of the Apollo Guidance Computer. The NATO Science Committee sponsored two conferences on software engineering in 1968 (
Garmisch Garmisch-Partenkirchen (; Bavarian: ''Garmasch-Partakurch''), nicknamed Ga-Pa, is an Alpine ski town in Bavaria, southern Germany. It is the seat of government of the district of Garmisch-Partenkirchen (abbreviated ''GAP''), in the Ob ...
, Germany â€” see ''
conference report In the United States Congress, a conference report refers to the final version of a bill that is negotiated between the House of Representatives and the Senate via conference committee. It is printed and submitted to each chamber for its considerat ...
'') and 1969, which gave the field its initial boost. Many believe these conferences marked the official start of the profession of ''software engineering''.


1965 to 1985: The software crisis

Software engineering was spurred by the so-called ''
software crisis Software crisis is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity ...
'' of the 1960s, 1970s, and 1980s, which identified many of the problems of software development. Many projects ran over budget and schedule. Some projects caused property damage. A few projects caused loss of life. The software crisis was originally defined in terms of
productivity Productivity is the efficiency of production of goods or services expressed by some measure. Measurements of productivity are often expressed as a ratio of an aggregate output to a single input or an aggregate input used in a production proces ...
, but evolved to emphasize
quality Quality may refer to: Concepts *Quality (business), the ''non-inferiority'' or ''superiority'' of something *Quality (philosophy), an attribute or a property *Quality (physics), in response theory * Energy quality, used in various science discipl ...
. Some used the term ''software crisis'' to refer to their inability to hire enough qualified programmers. * Cost and Budget Overruns: The
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
operating system was a classic example. This decade-long project from the 1960s eventually produced one of the most complex software systems at the time. OS/360 was one of the first large (1000 programmers) software projects.
Fred Brooks Frederick Phillips Brooks Jr. (April 19, 1931 â€“ November 17, 2022) was an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the O ...
claims in ''
The Mythical Man-Month ''The Mythical Man-Month: Essays on Software Engineering'' is a book on software engineering and project management by Fred Brooks first published in 1975, with subsequent editions in 1982 and 1995. Its central theme is that adding manpower to a ...
'' that he made a multimillion-dollar mistake of not developing a coherent
architecture Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing building ...
before starting development. * Property Damage: Software defects can cause property damage. Poor
software security Application security (short AppSec) includes all tasks that introduce a secure software development life cycle to development teams. Its final goal is to improve security practices and, through that, to find, fix and preferably prevent security i ...
allows hackers to steal identities, costing time, money, and reputations. * Life and Death: Software defects can kill.
Embedded systems An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
used in radiotherapy machines prove the ability to fail so catastrophically that they administered
lethal dose In toxicology, the lethal dose (LD) is an indication of the lethal toxicity of a given substance or type of radiation. Because resistance varies from one individual to another, the "lethal dose" represents a dose (usually recorded as dose per kilog ...
s of radiation to patients. The most famous of these failures are the ''
Therac-25 The Therac-25 was a computer-controlled radiation therapy machine produced by Atomic Energy of Canada Limited (AECL) in 1982 after the Therac-6 and Therac-20 units (the earlier units had been produced in partnership with of France). It was invol ...
'' incidents. Peter G. Neumann has kept a contemporary list of software problems and disasters. The software crisis has been fading from view, because it is psychologically extremely difficult to remain in crisis mode for a protracted period (more than 20 years). Nevertheless, software – especially real-time embedded software – remains risky and is pervasive, and it is crucial not to give in to complacency. Over the last 10–15 years
Michael A. Jackson Michael Jackson (1958–2009) was an American singer, songwriter and dancer known as the "King of Pop". Michael Jackson, Mike Jackson, or Mick Jackson may also refer to: People Entertainment industry * Michael Jackson (radio commentator) (1934 ...
has written extensively about the nature of software engineering, has identified the main source of its difficulties as lack of specialization, and has suggested that his problem frames provide the basis for a "normal practice" of software engineering, a prerequisite if software engineering is to become an engineering science.


1985 to 1989: "''No Silver Bullet''"

For decades, solving the software crisis was paramount to researchers and companies producing software tools. The cost of owning and maintaining software in the 1980s was twice as expensive as developing the software. * During the 1990s, the cost of ownership and maintenance increased by 30% over the 1980s. * In 1995, statistics showed that half of surveyed development projects were operational, but were not considered successful. * The average software project overshoots its schedule by half. * Three-quarters of all large software products delivered to the customer are failures that are either not used at all, or do not meet the customer's requirements.


Software projects

Seemingly, every new technology and practice from the 1970s through the 1990s was trumpeted as a ''
silver bullet In folklore, a bullet cast from silver is often one of the few weapons that are effective against a werewolf or witch. The term ''silver bullet'' is also a metaphor for a simple, seemingly magical, solution to a difficult problem: for example, pe ...
'' to solve the software crisis. Tools, discipline,
formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the exp ...
, process, and professionalism were touted as silver bullets: * Tools: Especially emphasized were tools: structured programming,
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
, CASE tools such as ICL's
CADES CADES (Computer Aided Design and Evaluation System) was a software engineering system produced to support the design and development of the VME/B Operating System for the International Computers Limited, ICL New Range - subsequently 2900 - comput ...
CASE system,
Ada Ada may refer to: Places Africa * Ada Foah, a town in Ghana * Ada (Ghana parliament constituency) * Ada, Osun, a town in Nigeria Asia * Ada, Urmia, a village in West Azerbaijan Province, Iran * Ada, Karaman, a village in Karaman Province, ...
, documentation, and standards were touted as silver bullets. * Discipline: Some pundits argued that the software crisis was due to the lack of discipline of programmers. * Formal methods: Some believed that if formal engineering methodologies would be applied to software development, then production of software would become as predictable an industry as other branches of engineering. They advocated proving all programs correct. * Process: Many advocated the use of defined processes and
methodologies In its most common sense, methodology is the study of research methods. However, the term can also refer to the methods themselves or to the philosophical discussion of associated background assumptions. A method is a structured procedure for bri ...
like the Capability Maturity Model. * Professionalism: This led to work on a code of ethics, licenses, and professionalism. In 1986,
Fred Brooks Frederick Phillips Brooks Jr. (April 19, 1931 â€“ November 17, 2022) was an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the O ...
published his ''
No Silver Bullet "No Silver Bullet—Essence and Accident in Software Engineering" is a widely discussed paper on software engineering written by Turing Award winner Fred Brooks in 1986. "No Silver Bullet—Essence and Accident in Software Engineering" Brooks argu ...
'' article, arguing that no individual technology or practice would ever make a 10-fold improvement in productivity within 10 years. Debate about silver bullets raged over the following decade. Advocates for
Ada Ada may refer to: Places Africa * Ada Foah, a town in Ghana * Ada (Ghana parliament constituency) * Ada, Osun, a town in Nigeria Asia * Ada, Urmia, a village in West Azerbaijan Province, Iran * Ada, Karaman, a village in Karaman Province, ...
, components, and processes continued arguing for years that their favorite technology would be a silver bullet. Skeptics disagreed. Eventually, almost everyone accepted that no silver bullet would ever be found. Yet, claims about ''silver bullets'' pop up now and again, even today. Some interpret ''
no silver bullet "No Silver Bullet—Essence and Accident in Software Engineering" is a widely discussed paper on software engineering written by Turing Award winner Fred Brooks in 1986. "No Silver Bullet—Essence and Accident in Software Engineering" Brooks argu ...
'' to mean that software engineering failed. However, with further reading, Brooks goes on to say: "We will surely make substantial progress over the next 40 years; an order of magnitude over 40 years is hardly magical ..." The search for a single key to success never worked. All known technologies and practices have only made incremental improvements to productivity and quality. Yet, there are no silver bullets for any other profession, either. Others interpret ''no silver bullet'' as proof that software engineering has finally matured and recognized that projects succeed due to hard work. However, it could also be said that there are, in fact, a range of ''silver bullets'' today, including lightweight methodologies (see "
Project management Project management is the process of leading the work of a team to achieve all project goals within the given constraints. This information is usually described in project documentation, created at the beginning of the development process. T ...
"), spreadsheet calculators, customized
browsers Browse, browser or browsing may refer to: Programs * Web browser, a program used to access the World Wide Web *Code browser, a program for navigating source code * File browser or file manager, a program used to manage files and related objects * ...
, in-site search engines, database report generators, integrated design-test coding-editors with memory/differences/undo, and specialty shops that generate niche software, such as information web sites, at a fraction of the cost of totally customized web site development. Nevertheless, the field of software engineering appears too complex and diverse for a single "silver bullet" to improve most issues, and each issue accounts for only a small portion of all software problems.


1990 to 1999: Prominence of the Internet

The rise of the
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
led to very rapid growth in the demand for international information display/e-mail systems on the World Wide Web. Programmers were required to handle illustrations, maps, photographs, and other images, plus simple animation, at a rate never before seen, with few well-known methods to optimize image display/storage (such as the use of thumbnail images). The growth of browser usage, running on the
HyperText Markup Language The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript ...
(HTML), changed the way in which information-display and retrieval was organized. The widespread network connections led to the growth and prevention of international computer viruses on MS Windows computers, and the vast proliferation of spam e-mail became a major design issue in e-mail systems, flooding communication channels and requiring semi-automated pre-screening. Keyword-search systems evolved into web-based search engines, and many software systems had to be re-designed, for international searching, depending on
search engine optimization Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets unpaid traffic (known as "natural" or " organic" results) rather than dire ...
(SEO) . Human natural-language translation systems were needed to attempt to translate the information flow in multiple foreign languages, with many software systems being designed for multi-language usage, based on design concepts from human translators. Typical computer-user bases went from hundreds, or thousands of users, to, often, many-millions of international users.


2000 to 2015: Lightweight methodologies

With the expanding demand for software in many smaller organizations, the need for inexpensive software solutions led to the growth of simpler, faster methodologies that developed running software, from requirements to deployment, quicker & easier. The use of rapid-prototyping evolved to entire ''lightweight methodologies'', such as
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, P ...
(XP), which attempted to simplify many areas of software engineering, including requirements gathering and reliability testing for the growing, vast number of small software systems. Very large software systems still used heavily documented methodologies, with many volumes in the documentation set; however, smaller systems had a simpler, faster alternative approach to managing the development and maintenance of software calculations and algorithms, information storage/retrieval and display.


Current trends in software engineering

Software engineering is a young discipline, and is still developing. The directions in which software engineering is developing include:


Aspects

Aspects help software engineers deal with
quality attributes In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with func ...
by providing tools to add or remove boilerplate code from many areas in the
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
. Aspects describe how all objects or functions should behave in particular circumstances. For example, aspects can add debugging, logging, or locking control into all objects of particular types. Researchers are currently working to understand how to use aspects to design general-purpose code. Related concepts include
generative programming In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level. There has been little ...
and
templates Template may refer to: Tools * Die (manufacturing), used to cut or shape material * Mold, in a molding process * Stencil, a pattern or overlay used in graphic arts (drawing, painting, etc.) and sewing to replicate letters, shapes or designs Co ...
.


Experimental

Experimental software engineering Experimental software engineering involves running experiments on the processes and procedures involved in the creation of software systems, with the intent that the data be used as the basis of theories about the processes involved in software ...
is a branch of software engineering interested in devising
experiment An experiment is a procedure carried out to support or refute a hypothesis, or determine the efficacy or likelihood of something previously untried. Experiments provide insight into Causality, cause-and-effect by demonstrating what outcome oc ...
s on software, in collecting data from the experiments, and in devising laws and theories from this data. Proponents of this method advocate that the nature of software is such that we can advance the knowledge on software through experiments only.


Software product lines

Software product lines, aka product family engineering, is a systematic way to produce ''families'' of software systems, instead of creating a succession of completely individual products. This method emphasizes extensive, systematic, formal
code reuse In software development (and computer programming in general), code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles. Code reuse may be achie ...
, to try to industrialize the software development process. The Future of Software Engineering conference (FOSE), held at ICSE 2000, documented the state of the art of SE in 2000 and listed many problems to be solved over the next decade. The FOSE tracks at the ICSE 2000 and the ICSE 2007 conferences also help identify the state of the art in software engineering.


Software engineering today

The profession is trying to define its boundary and content. The Software Engineering Body of Knowledge
SWEBOK The ''Software Engineering Body of Knowledge'' (SWEBOK ( )) is an international standard ISO/IEC TR 19759:2005 specifying a guide to the generally accepted software engineering body of knowledge. The Guide to the Software Engineering Body of Know ...
has been tabled as an ISO standard during 2006 (ISO/IEC TR 19759). In 2006, ''Money Magazine'' and ''Salary.com'' rated software engineering as the best job in America in terms of growth, pay, stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field.


Sub-disciplines


Artificial intelligence

A wide variety of platforms has allowed different aspects of AI to develop, ranging from
expert systems In artificial intelligence, an expert system is a computer system emulating the decision-making ability of a human expert. Expert systems are designed to solve complex problems by reasoning through bodies of knowledge, represented mainly as if†...
such as
Cyc Cyc (pronounced ) is a long-term artificial intelligence project that aims to assemble a comprehensive ontology and knowledge base that spans the basic concepts and rules about how the world works. Hoping to capture common sense knowledge, Cyc f ...
to deep learning to robot platforms such as the Roomba with open interface. Recent advances in deep
artificial neural network Artificial neural networks (ANNs), usually simply called neural networks (NNs) or neural nets, are computing systems inspired by the biological neural networks that constitute animal brains. An ANN is based on a collection of connected unit ...
s and distributed computing have led to a proliferation of software libraries, including
Deeplearning4j Eclipse Deeplearning4j is a programming library written in Java for the Java virtual machine (JVM). It is a framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, d ...
,
TensorFlow TensorFlow is a free and open-source software library for machine learning and artificial intelligence. It can be used across a range of tasks but has a particular focus on training and inference of deep neural networks. "It is machine learnin ...
,
Theano In Greek mythology, Theano (; Ancient Greek: Θεανώ) may refer to the following personages: *Theano, wife of Metapontus, king of Icaria. Metapontus demanded that she bear him children, or leave the kingdom. She presented the children of Melan ...
and
Torch A torch is a stick with combustible material at one end, which is ignited and used as a light source. Torches have been used throughout history, and are still used in processions, symbolic and religious events, and in juggling entertainment. I ...
. A 2011
McKinsey Global Institute McKinsey & Company is a global management consulting firm founded in 1926 by University of Chicago professor James O. McKinsey, that offers professional services to corporations, governments, and other organizations. McKinsey is the oldest and ...
study found a shortage of 1.5 million highly trained data and AI professionals and managers and a number of private bootcamps have developed programs to meet that demand, including free programs like The Data Incubator or paid programs like
General Assembly A general assembly or general meeting is a meeting of all the members of an organization or shareholders of a company. Specific examples of general assembly include: Churches * General Assembly (presbyterian church), the highest court of presb ...
.


Languages

Early symbolic AI inspired Lisp and
Prolog Prolog is a logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
, which dominated early AI programming. Modern AI development often uses mainstream languages such as
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
or
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, or niche languages such as
Wolfram Language The Wolfram Language ( ) is a general multi-paradigm programming language developed by Wolfram Research. It emphasizes symbolic computation, functional programming, and rule-based programming and can employ arbitrary structures and data. It ...
.


Prominent figures in the history of software engineering

*
Charles Bachman Charles William Bachman III (December 11, 1924 – July 13, 2017) was an American computer scientist, who spent his entire career as an industrial researcher, developer, and manager rather than in academia. He was particularly known for his ...
(1924–2017) is particularly known for his work in the area of
databases In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spa ...
. *
László Bélády László "Les" Bélády (born April 29, 1928, in Budapest; died November 6, 2021) was a Hungarian computer scientist notable for devising the Bélády's Min theoretical memory caching algorithm in 1966 while working at IBM Research. He also dem ...
(1928–2021) the editor-in-chief of the IEEE Transactions on Software Engineering in the 1980s. *
Fred Brooks Frederick Phillips Brooks Jr. (April 19, 1931 â€“ November 17, 2022) was an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the O ...
(born 1931) best known for managing the development of
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
. *
Peter Chen Peter Pin-Shan Chen (; born 3 January 1947) is a Taiwanese American computer scientist. He is a (retired) distinguished career scientist and faculty member at Carnegie Mellon University and Distinguished Chair Professor Emeritus at LSU. He is ...
(born 1947) known for the development of
entity–relationship model An entity–relationship model (or ER model) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can ex ...
ing. * Edsger W. Dijkstra (1930–2002) developed the framework for a form of structured programming. *
David Parnas David Lorge Parnas (born February 10, 1941) is a Canadian early pioneer of software engineering, who developed the concept of information hiding in modular programming, which is an important element of object-oriented programming today. He is al ...
(born 1941) developed the concept of
information hiding In computer science, information hiding is the principle of segregation of the ''design decisions'' in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decisio ...
in
modular programming Modular programming is a software design technique that emphasizes separating the functionality of a Computer program, program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of th ...
. *
Michael A. Jackson Michael Jackson (1958–2009) was an American singer, songwriter and dancer known as the "King of Pop". Michael Jackson, Mike Jackson, or Mick Jackson may also refer to: People Entertainment industry * Michael Jackson (radio commentator) (1934 ...
(born 1936) software engineering methodologist responsible for JSP method of program design; JSD method of system development (with John Cameron); and Problem Frames approach for analysing and structuring software development problems. *
Richard Stallman Richard Matthew Stallman (; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to ...
, created the GNU system utilities and championed free software.


See also

*
History of software Software is a set of programmed instructions stored in the memory of stored-program digital computers for execution by the processor. Software is a recent development in human history, and it is fundamental to the Information Age. Ada Lovelace ...
*
History of computer science The history of computer science began long before the modern discipline of computer science, usually appearing in forms like mathematics or physics. Developments in previous centuries alluded to the discipline that we now know as computer science ...
*
History of programming languages The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure ...


References


External links


Oral history interview with Bruce H. Barnes
Charles Babbage Institute The IT History Society (ITHS) is an organization that supports the history and scholarship of information technology by encouraging, fostering, and facilitating archival and historical research. Formerly known as the Charles Babbage Foundation, ...
, University of Minnesota. Barnes describes the National Science Foundation (NSF) and its support of research in theoretical
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includi ...
,
computer architecture In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, the ...
,
numerical methods Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of numerical methods th ...
, and
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, and the development of networking.
Oral history interview with Laszlo A. Belady
Charles Babbage Institute The IT History Society (ITHS) is an organization that supports the history and scholarship of information technology by encouraging, fostering, and facilitating archival and historical research. Formerly known as the Charles Babbage Foundation, ...
, University of Minnesota. {{Software engineering Software engineering
Software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
History of computing