Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Software engineering
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Definition === Notable definitions of software engineering include: * "The systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software."—The Bureau of Labor Statistics—[[IEEE]] ''Systems and software engineering – Vocabulary''<ref name="IEEE24765">''Systems and software engineering – Vocabulary'', [[ISO]]/[[International Electrotechnical Commission|IEC]]/[[IEEE]] std 24765:2010(E), 2010.</ref> * "The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software."—[[IEEE]] ''Standard Glossary of Software Engineering Terminology''<ref name="IEEE610a">''IEEE Standard Glossary of Software Engineering Terminology'', [[IEEE]] std 610.12-1990, 1990.</ref> * "An engineering discipline that is concerned with all aspects of software production."—[[Ian Sommerville (academic)|Ian Sommerville]]<ref name="Sommerville1">{{cite book | last=Sommerville |first=Ian |author-link=Ian Sommerville (academic) | title=Software Engineering |orig-year=1982 | chapter-url=http://www.pearsoned.co.uk/HigherEducation/Booksby/Sommerville/ | edition=8th |year=2007 | publisher=Pearson Education |location=Harlow, England | isbn=978-0-321-31379-9 |pages=7 |chapter=1.1.2 What is software engineering? | quote=Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use. In this definition, there are two key phrases:<br /> 1. ''Engineering discipline'' Engineers make things work. They apply theories, methods and tools where these are appropriate [. . .] Engineers also recognize that they must work to organizational and financial constraints. [. . .]<br /> 2. ''All aspects of software production'' Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production. }}</ref> * "The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines."—[[Friedrich L. Bauer|Fritz Bauer]]<ref name="Bauer1">{{cite journal| title= Software Engineering | journal = Information Processing | volume = 71 | pages = 530–538}}</ref> * "A branch of computer science that deals with the design, implementation, and maintenance of complex [[computer program]]s."—[[Merriam-Webster]]<ref>{{Cite web|url=https://www.merriam-webster.com/dictionary/software+engineering|title=Definition of SOFTWARE ENGINEERING|website=www.merriam-webster.com|language=en|access-date=2019-11-25}}</ref> * {{"'}}Software engineering' encompasses not just the act of writing code, but all of the tools and processes an organization uses to build and maintain that code over time. [...] Software engineering can be thought of as 'programming integrated over time.{{'"}}—Software Engineering at [[Google]]<ref>{{cite book | last1=Winters | first1 =Titus | last2=Manshrec | first2=Tom | last3=Wright | first3=Hyrum | title=Software Engineering at Google | year=2020 | publisher= O'Reilly Media, Inc. | isbn=978-1-492-08279-8 | pages=xix–xx, 6–7 |chapter= Preface, Programming Over Time | quote=We propose that "software engineering" encompasses not just the act of writing code, but all of the tools and processes an organization uses to build and maintain that code over time. What practices can a software organization introduce that will best keep its code valuable over the long term? How can engineers make a codebase more sustainable and the software engineering discipline itself more rigorous?}}</ref> The term has also been used less formally: * as the informal contemporary term for the broad range of activities that were formerly called [[computer programming]] and [[systems analysis]]<ref>{{cite web |url=http://www.micsymposium.org/mics_2002/SALAH.PDF|publisher=35th Annual Midwest Instruction and Computing Symposium|date=2002-04-05|access-date=2006-09-13|author=Akram I. Salah|title=Engineering an Academic Program in Software Engineering}}: "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card—never 'programmer' though."</ref> * as the broad term for all aspects of the ''practice'' of computer programming, as opposed to the ''theory'' of computer programming, which is formally studied as a sub-discipline of [[computer science]]<ref name="p. 26">Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in {{cite book|title=Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2–3,...|first = Lionel E.|last=Deimel|year=1990|publisher=Springer|isbn=978-0-387-97274-9}},[https://books.google.com/books?id=ZuWbyy2blMEC&pg=PA26 p. 26]: "As a practical matter, we regard software engineering as the necessary preparation for the practicing, software development and maintenance professional. The Computer Scientist is preparing for further theoretical studies..."</ref> * as the term embodying the ''advocacy'' of a specific approach to computer programming, one that urges that it be treated as an [[engineering]] discipline rather than an art or a craft, and advocates the [[Codification (law)|codification]] of recommended practices<ref>{{cite journal |title=Realising evidence-based software engineering |author1=Barbara Kitchevnham |author2=David Budgen |author3=Pearl Brereton |author4=Stephen Linkman |journal=[[ACM SIGSOFT Software Engineering Notes]] |date=2005 |volume=30 |issue=4 |pages=1–3 |doi=10.1145/1082983.1083175 |quote="We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis, ..."}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)