<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rs-485.com/index.php?action=history&amp;feed=atom&amp;title=Software</id>
	<title>Software - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rs-485.com/index.php?action=history&amp;feed=atom&amp;title=Software"/>
	<link rel="alternate" type="text/html" href="https://rs-485.com/index.php?title=Software&amp;action=history"/>
	<updated>2026-05-03T23:19:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://rs-485.com/index.php?title=Software&amp;diff=1443&amp;oldid=prev</id>
		<title>RS-485: Imported from Wikipedia (overwrite)</title>
		<link rel="alternate" type="text/html" href="https://rs-485.com/index.php?title=Software&amp;diff=1443&amp;oldid=prev"/>
		<updated>2026-05-03T12:41:43Z</updated>

		<summary type="html">&lt;p&gt;Imported from Wikipedia (overwrite)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Instructions a computer can execute}}&lt;br /&gt;
{{Other uses}}&lt;br /&gt;
{{pp|small=yes}}&lt;br /&gt;
{{Use dmy dates|date=May 2017}}&lt;br /&gt;
&lt;br /&gt;
[[File:JavaScript_code.png|thumb|Software written in the [[JavaScript]] language]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Software&amp;#039;&amp;#039;&amp;#039; consists of [[computer program]]s that instruct the [[Execution (computing)|execution]] of a [[computer]].&amp;lt;ref name=&amp;quot;pis-p16&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  | last = Stair&lt;br /&gt;
  | first = Ralph M.&lt;br /&gt;
  | title = Principles of Information Systems, Sixth Edition&lt;br /&gt;
  | publisher = Thomson&lt;br /&gt;
  | year = 2003&lt;br /&gt;
  | page = 16&lt;br /&gt;
  | isbn = 0-619-06489-7&lt;br /&gt;
  | quote = Software consists of computer programs that govern the operation of the computer.&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; Software also includes design documents and specifications.&lt;br /&gt;
&lt;br /&gt;
The history of software is closely tied to the development of digital computers in the mid-20th century. Early programs were written in the [[machine language]] specific to the hardware. The introduction of [[high-level programming language]]s in 1958 allowed for more human-readable instructions, making [[software development]] easier and more portable across different [[computer architecture]]s. Software in a programming language is run through a [[compiler]] or [[Interpreter (computing)|interpreter]] to [[execution (computing)|execute]] on the architecture&amp;#039;s hardware. Over time, software has become complex, owing to developments in [[Computer network|networking]], [[operating systems]], and [[databases]].&lt;br /&gt;
&lt;br /&gt;
Software can generally be categorized into two main types:&lt;br /&gt;
# [[operating system]]s, which manage hardware resources and provide services for applications&lt;br /&gt;
# [[application software]], which performs specific tasks for users&lt;br /&gt;
&lt;br /&gt;
The rise of [[cloud computing]] has introduced the new software delivery model [[software as a service]] (SaaS). In SaaS, applications are hosted by a [[application service provider|provider]] and [[HTTP|accessed]] over the [[Internet]].&lt;br /&gt;
&lt;br /&gt;
The process of developing software involves several stages. The stages include [[software design]], [[Computer programming|programming]], [[software testing|testing]], [[software release life cycle|release]], and [[Software maintenance|maintenance]]. [[Software quality assurance]] and [[Information security|security]] are critical aspects of software development, as [[Computer bug|bugs]] and [[vulnerability (computing)|security vulnerabilities]] can lead to system failures and security breaches. Additionally, legal issues such as software licenses and intellectual property rights play a significant role in the distribution of software products.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
{{Main|History of software}}&lt;br /&gt;
The first use of the word &amp;#039;&amp;#039;software&amp;#039;&amp;#039; to describe computer programs is credited to mathematician [[John Tukey|John Wilder Tukey]] in 1958.{{sfn|Jones|2014|pp=19, 22}}{{sfn|Tracy|2021|p=2}}&amp;lt;ref&amp;gt;{{cite encyclopedia |author=&amp;lt;!-- not stated --&amp;gt; |date=2024 |title=software (n.), sense 2.a |url=https://doi.org/10.1093/OED/3803978366 |encyclopedia=Oxford English dictionary |location= |publisher=Oxford University Press |doi=10.1093/OED/3803978366 |access-date=2025-07-15}}&amp;lt;/ref&amp;gt; The first programmable computers, which appeared at the end of the 1940s,{{sfn|Gabbrielli|Martini|2023|p=519}} were programmed in [[machine language]]. Machine language is difficult to debug and not [[portability (computing)|portable]] across different computers.{{sfn|Gabbrielli|Martini|2023|pp=520–521}} Initially, hardware resources were more expensive than [[human resources]].{{sfn|Gabbrielli|Martini|2023|p=522}} As programs became complex, [[programmer productivity]] became the bottleneck. The introduction of [[high-level programming language]]s in 1958 [[abstraction (computing)|hid]] the details of the hardware and expressed the underlying [[algorithm]]s into the code.{{sfn|Gabbrielli|Martini|2023|p=521}}{{sfn|Tracy|2021|p=1}} Early languages include [[Fortran]], [[Lisp (programming language)|Lisp]], and [[COBOL]].{{sfn|Tracy|2021|p=1}}&lt;br /&gt;
&lt;br /&gt;
==Types==&lt;br /&gt;
{{See also|Software categories}}&lt;br /&gt;
&lt;br /&gt;
[[File:Operating system placement (software).svg|thumb|upright|A diagram showing how the [[User (computing)|user]] interacts with [[application software]] on a typical [[desktop computer]]. The application software layer interfaces with the [[operating system]], which in turn communicates with the [[computer hardware|hardware]]. The arrows indicate information flow.]]&lt;br /&gt;
There are two main types of software:&lt;br /&gt;
* [[Operating system]]s are &amp;quot;the [[abstraction layer|layer of software]] that manages a computer&amp;#039;s resources for its users and their [[Application software|application]]s&amp;quot;.{{sfn|Anderson|Dahlin|2014|p=6}} There are three main purposes that an operating system fulfills:{{sfn|Anderson|Dahlin|2014|p=7}}&lt;br /&gt;
**Allocating resources between different applications, deciding when they will receive [[central processing unit]] (CPU) time or space in [[computer memory|memory]].{{sfn|Anderson|Dahlin|2014|p=7}}&lt;br /&gt;
**Providing an interface that abstracts the details of accessing [[Computer hardware|hardware]] details (like physical memory) to make things easier for programmers.{{sfn|Anderson|Dahlin|2014|p=7}}{{sfn|Tanenbaum|Bos|2023|p=5}}&lt;br /&gt;
**Offering common services, such as an interface for accessing network and disk devices. This enables an application to be run on different hardware without needing to be rewritten.{{sfn|Anderson|Dahlin|2014|pp=7, 9, 13}}&lt;br /&gt;
* [[Application software]] runs on top of the operating system and uses the computer&amp;#039;s resources to perform a task.{{sfn|Anderson|Dahlin|2014|pp=6-7}} There are many different types of application software because the range of tasks that can be performed with modern computers is so large.{{sfn|Jones|2014|p=121}} Applications account for most software{{sfn|Tracy|2021|p=66}} and require the [[Operating environment|environment]] provided by an operating system, and often other applications, in order to function.{{sfn|Tracy|2021|p=72}}&lt;br /&gt;
&lt;br /&gt;
[[File:Locale_RS6_Comparison of on-premise, IaaS, PaaS, and SaaS.png|thumb|Comparison of on-premise hardware and software, [[infrastructure as a service]] (IaaS), [[platform as a service]] (PaaS), and [[software as a service]] (SaaS)|upright=2.4|center]]&lt;br /&gt;
Software can also be categorized by how it is [[software deployment|deployed]]. Traditional applications are purchased with a perpetual [[software license|license]] for a specific version of the software, downloaded, and run on hardware belonging to the purchaser.{{sfn|O&amp;#039;Regan|2022|p=386}} The rise of [[the Internet]] and [[cloud computing]] enabled a new model, [[software as a service]] (SaaS),{{sfn|Campbell-Kelly|Garcia-Swartz|2015|pp=156-157}} in which the provider hosts the software (usually built on top of rented [[infrastructure as a service|infrastructure]] or [[platform as a service|platform]]s){{sfn|Rosati |Lynn|2020|p=23}} and provides the use of the software to customers, often in exchange for a [[subscription fee]].{{sfn|O&amp;#039;Regan|2022|p=386}} By 2023, SaaS products—which are usually delivered via a [[web application]]—had become the primary method that companies deliver applications.{{sfn|Watt|2023|p=4}}&lt;br /&gt;
&lt;br /&gt;
==Software development and maintenance==&lt;br /&gt;
[[File:Locale_RS6_Traditional software development life cycle diagram.png|thumb|upright=2.5|center|Diagram for a traditional [[software development life cycle]] from 1988. The numbers represent the typical cost of each phase.]]&lt;br /&gt;
&lt;br /&gt;
Software companies aim to deliver a high-quality product on time and under budget. A challenge is that [[software development effort estimation]] is often inaccurate.{{sfn|O&amp;#039;Regan|2022|p=7}} [[Software development]] begins by conceiving the project, evaluating its feasibility, analyzing the business requirements, and making a [[software design]].{{sfn|O&amp;#039;Regan|2022|p=5}}{{sfn|Dooley|2017|p=1}} Most software projects speed up their development by [[software reuse|reusing]] or incorporating existing software, either in the form of [[commercial off-the-shelf]] (COTS) or [[open-source software]].{{sfn|O&amp;#039;Regan|2022|pp=18, 110-111}}{{sfn|Tracy|2021|pp=43, 76}} [[Software quality assurance]] is typically a combination of manual [[code review]] by other engineers{{sfn|O&amp;#039;Regan|2022|pp=117-118}} and automated [[software testing]]. Due to time constraints, testing cannot cover all aspects of the software&amp;#039;s intended functionality, so developers often focus on the most critical functionality.{{sfn|O&amp;#039;Regan|2022|p=54}} [[Formal method]]s are used in some safety-critical systems to prove the correctness of code,{{sfn|O&amp;#039;Regan|2022|p=267}} while [[user acceptance testing]] helps to ensure that the product meets customer expectations.{{sfn|O&amp;#039;Regan|2022|p=20}} There are a variety of [[software development methodologies]], which vary from completing all steps in order to concurrent and iterative models.{{sfn|O&amp;#039;Regan|2022|p=9}} Software development is driven by [[software requirements|requirements]] taken from prospective users, as opposed to maintenance, which is driven by events such as a change request.{{sfn|Tripathy |Naik|2014|p=26}}&lt;br /&gt;
&lt;br /&gt;
Frequently, software is [[software release life cycle|released]] in an incomplete state when the development team runs out of time or funding.{{sfn |Reifer|2012|p=22}} Despite [[software testing|testing]] and [[Software quality assurance|quality assurance]], virtually all software contains [[software bug|bugs]] where the system does not work as intended. Post-release [[software maintenance]] is necessary to remediate these bugs when they are found and keep the software working as the environment changes over time.{{sfn|Tripathy |Naik|2014|pp=4, 27}} New features are often added after the release. Over time, the level of maintenance becomes increasingly restricted before being cut off entirely when the product is withdrawn from the market.{{sfn|Tripathy |Naik|2014|p=89}} As software [[software aging|ages]], it becomes known as [[legacy software]] and can remain in use for decades, even if there is no one left who knows how to fix it.{{sfn|Tracy|2021|p=3}} Over the lifetime of the product, software maintenance is estimated to comprise 75 percent or more of the total development cost.{{sfn|Varga|2018|p=6}}{{sfn|Ulziit &amp;#039;&amp;#039;et al.&amp;#039;&amp;#039;|2015|p=764}}&lt;br /&gt;
&lt;br /&gt;
Completing a software project involves various forms of expertise, not just in [[software programmer]]s but also testing, documentation writing, [[Software project management|project management]], [[graphic design]], [[user experience]], user support, [[marketing]], and fundraising.{{sfn|Tucker |Morelli |de Silva |2011|p=7}}{{sfn|Stull|2018|pp=24-25}}{{sfn|Dooley|2017|p=1}}&lt;br /&gt;
&lt;br /&gt;
==Quality and security==&lt;br /&gt;
{{main article|Software quality|Computer security}}&lt;br /&gt;
[[Software quality]] is defined as meeting the stated requirements as well as customer expectations.{{sfn|Galin|2018|p=3}} Quality is an overarching term that can refer to a code&amp;#039;s correct and efficient behavior, its reusability and [[porting|portability]], or the ease of modification.{{sfn|Galin|2018|p=26}} It is usually more cost-effective to build quality into the product from the beginning rather than try to add it later in the development process.{{sfn|O&amp;#039;Regan|2022|pp=68, 117}} Higher quality code will reduce lifetime cost to both suppliers and customers as it is more reliable and [[maintainability|easier to maintain]].{{sfn|O&amp;#039;Regan|2022|pp=3, 268}}{{sfn|Varga|2018|p=12}} Software failures in [[safety-critical system]]s may result in serious harm, including injury or death.{{sfn|O&amp;#039;Regan|2022|pp=3, 268}} By some estimates, the cost of poor quality software can be as high as 20 to 40 percent of sales.{{sfn|O&amp;#039;Regan|2022|p=119}} Despite developers&amp;#039; goal of delivering a product that works entirely as intended, virtually all software contains bugs.{{sfn|Ablon|Bogart|2017|p=1}}&lt;br /&gt;
&lt;br /&gt;
The rise of the Internet also greatly increased the need for [[computer security]] as it enabled malicious actors to conduct [[cyberattack]]s remotely.{{sfn|Campbell-Kelly|Garcia-Swartz|2015|p=164}}{{sfn|O&amp;#039;Regan|2022|p=266}} If a bug creates a security risk, it is called a [[vulnerability (computing)|vulnerability]].{{sfn|Ablon|Bogart|2017|p=2}}{{sfn|Daswani |Elbayadi|2021|p=25}} [[Software patch]]es are often released to fix identified vulnerabilities, but those that remain unknown ([[Zero-day (computing)|zero day]]s) as well as those that have not been patched are still liable for exploitation.{{sfn|Daswani |Elbayadi|2021|pp=26-27}} Vulnerabilities vary in their ability to be [[Exploit (computer security)|exploit]]ed by malicious actors,{{sfn|Ablon|Bogart|2017|p=2}} and the actual risk is dependent on the nature of the vulnerability as well as the value of the surrounding system.{{sfn|Haber |Hibbert|2018|pp=5-6}} Although some vulnerabilities can only be used for [[denial of service]] attacks that compromise a system&amp;#039;s availability, others allow the attacker to [[code injection|inject]] and run their own code (called [[malware]]), without the user being aware of it.{{sfn|Ablon|Bogart|2017|p=2}} To thwart cyberattacks, all software in the system must be designed to withstand and recover from external attack.{{sfn|O&amp;#039;Regan|2022|p=266}} Despite efforts to ensure security, a significant fraction of computers are infected with malware.{{sfn|Kitchin |Dodge|2011|p=37}}&lt;br /&gt;
&lt;br /&gt;
==Encoding and execution==&lt;br /&gt;
&lt;br /&gt;
===Programming languages===&lt;br /&gt;
{{main|Programming language}}&lt;br /&gt;
[[File:Locale_RS6_C Hello World Program.png|thumb|right|upright=1.3|The [[source code]] for a computer program in [[C (programming language)|C]]. The gray lines are [[comment (computer programming)|comments]] that explain the program to humans. When [[compiled]] and [[Execution (computing)|run]], it will output &amp;quot;[[&amp;quot;Hello, World!&amp;quot; program|Hello, world!]]&amp;quot;.]]&lt;br /&gt;
Programming languages are the format in which software is written. Since the 1950s, thousands of different programming languages have been invented; some have been in use for decades, while others have fallen into disuse.{{sfn|Tracy|2021|p=117}} Some definitions classify [[machine code]]—the exact instructions directly implemented by the hardware—and [[assembly language]]—a more human-readable alternative to machine code whose statements can be translated one-to-one into machine code—as programming languages.{{sfn|Tracy|2021|pp=118–120}} Programs written in the [[high-level programming languages]] used to create software share a few main characteristics: knowledge of machine code is not necessary to write them, they can be [[ported]] to other computer systems, and they are more concise and human-readable than machine code.{{sfn|Tracy|2021|pp=118–119}} They must be both human-readable and capable of being translated into unambiguous instructions for computer hardware.{{sfn|Kitchin |Dodge|2011|p=26}}&lt;br /&gt;
&lt;br /&gt;
===Compilation,  interpretation, and execution===&lt;br /&gt;
&amp;lt;!-- [[File:Compiler.svg|upright=1.5|thumb |A diagram of the operation of a typical multi-language, multi-target compiler]] --&amp;gt;&lt;br /&gt;
The invention of high-level programming languages was simultaneous with the [[compiler]]s needed to translate them automatically into machine code.{{sfn|Tracy|2021|p=121}} Most programs do not contain all the resources needed to run them and rely on external [[software library|libraries]]. Part of the compiler&amp;#039;s function is to link these files in such a way that the program can be executed by the hardware. Once compiled, the program can be saved as an [[object file]] and the [[Loader (computing)|loader]] (part of the operating system) can take this saved file and [[execution (computing)|execute]] it as a [[process]] on the computer hardware.{{sfn|Tracy|2021|pp=122-123}} Some programming languages use an [[Interpreter (computing)|interpreter]] instead of a compiler. An interpreter converts the program into machine code at [[execution (computing)|run time]], which makes them 10 to 100 times slower than compiled programming languages.{{sfn|O&amp;#039;Regan|2022|p=375}}{{sfn|Sebesta|2012|p=28}}&lt;br /&gt;
&lt;br /&gt;
==Legal issues==&lt;br /&gt;
===Liability===&lt;br /&gt;
{{main article|Software product liability}}&lt;br /&gt;
Software is often released with the knowledge that it is incomplete or contains bugs.{{cn|reason=see Talk:Software#Legal_issues_assertions|date=June 2025}} Purchasers knowingly buy it in this state,{{cn|reason=see Talk:Software#Legal_issues_assertions|date=June 2025}} which has led to a legal regime where [[Product liability|liability]] for software products is significantly curtailed compared to other products.{{sfn|Kitchin |Dodge|2011|pp=36-37}}&lt;br /&gt;
&lt;br /&gt;
===Licenses===&lt;br /&gt;
{{Main|Software license|Software copyright}}&lt;br /&gt;
[[File:Locale_RS6_Cube in Blender Editor.jpg|thumb|[[Blender (software)|Blender]], a [[free software]] program]]&lt;br /&gt;
Since the mid-1970s, software and its source code have been protected by [[copyright law]] that vests the owner with the exclusive right to copy the code. The underlying ideas or algorithms are not protected by copyright law, but are sometimes treated as a [[trade secret]] and concealed by such methods as [[non-disclosure agreement]]s.{{sfn|O&amp;#039;Regan|2022|pp=394-396}} A [[software copyright]] is often owned by the person or company that financed or made the software (depending on their contracts with employees or [[Independent contracting in the United States|contractor]]s who helped to write it).{{sfn|O&amp;#039;Regan|2022|p=403}} Some software is in the [[public domain]] and has no restrictions on who can use it, copy or share it, or modify it; a notable example is software written by the [[Federal government of the United States|United States Government]].{{cn|reason=see Talk:Software#Legal_issues_assertions|date=June 2025}} [[Free and open-source software]] also allow free use, sharing, and modification, perhaps with a few specified conditions.{{sfn|O&amp;#039;Regan|2022|p=403}}  The use of some software is governed by an agreement ([[software license]]) written by the copyright holder and imposed on the user. [[Proprietary software]] is usually sold under a restrictive license that limits its use and sharing.{{sfn|O&amp;#039;Regan|2022|pp=394, 404}} Some free software licenses require that modified versions must be released under the same license, which prevents the software from being sold&lt;br /&gt;
or distributed under proprietary restrictions.{{sfn|Langer|2016|pp=44-45}}&lt;br /&gt;
&lt;br /&gt;
===Patents===&lt;br /&gt;
{{Main|Software patent|Software patent debate}}&lt;br /&gt;
[[Patent]]s give an inventor an exclusive, time-limited license for a novel product or process.{{sfn|O&amp;#039;Regan|2022|p=395}} Ideas about what software could accomplish are not protected by law and concrete implementations are instead covered by [[copyright law]]. In some countries, a requirement for the claimed invention to have an effect on the physical world may also be part of the requirements for a software patent to be held valid.&amp;lt;ref&amp;gt;Gerardo Con Díaz, &amp;quot;The Text in the Machine: American Copyright Law and the Many Natures of Software, 1974–1978&amp;quot;, &amp;#039;&amp;#039;Technology and Culture&amp;#039;&amp;#039; 57 (October 2016), 753–79.&amp;lt;/ref&amp;gt; [[Software patent]]s have been [[Software patent debate|historically controversial]]. Before the 1998 case &amp;#039;&amp;#039;[[State Street Bank &amp;amp; Trust Co. v. Signature Financial Group, Inc.]]&amp;#039;&amp;#039;, software patents were generally not recognized in the United States. In that case, the [[Supreme Court of the United States|Supreme Court]] decided that business processes could be patented.{{sfn|Jones|2014|p=19}} Patent applications are complex and costly, and lawsuits involving patents can drive up the cost of products.{{sfn|O&amp;#039;Regan|2022|p=398}} Unlike copyrights, patents generally only apply in the jurisdiction where they were issued.{{sfn|O&amp;#039;Regan|2022|p=399}}&lt;br /&gt;
&lt;br /&gt;
==Impact==&lt;br /&gt;
{{further |Information Age}}&lt;br /&gt;
&amp;lt;!-- [[File:Elderly Man Using Pulse Oximeter.jpg|thumb|Many everyday objects such as the [[pulse oximeter]] the man is using are actually [[embedded system]]s that require software to function.{{sfn|Kitchin |Dodge|2011|p=47}}{{sfn|Jones|2014|p=xxviii}}]] --&amp;gt;&lt;br /&gt;
[[File:Locale_RS6_A computer graphic of the Queen Elizabeth carrier and carrier group.jpg|thumb|Computer-generated simulations are one of the advances enabled by software.{{sfn|Manovich|2013|p=333}}]]&lt;br /&gt;
Engineer [[Capers Jones]] writes that &amp;quot;computers and software are making profound changes to every aspect of human life: education, work, warfare, entertainment, medicine, law, and everything else&amp;quot;.{{sfn|Jones|2014|p=32}} It has become ubiquitous in [[everyday life]] in [[developed countries]].{{sfn|Kitchin |Dodge|2011|p=iv}} In many cases, software augments the functionality of existing technologies such as household [[Home appliance|appliances]] and [[elevator]]s.{{sfn|Kitchin |Dodge|2011|p=5}} Software also spawned entirely new technologies such as [[the Internet]], [[video games]], [[mobile phones]], and [[GPS]].{{sfn|Kitchin |Dodge|2011|p=5}}{{sfn|Jones|2014|p=xxviii}} New methods of communication, including [[email]], [[Internet forum|forum]]s, [[blog]]s, [[microblogging]], [[wiki]]s, and [[social media]], were enabled by the Internet.{{sfn|Manovich|2013|p=329}} Massive amounts of knowledge exceeding any paper-based library are now available with a quick [[web search]].{{sfn|Jones|2014|p=xxviii}} Most creative professionals have switched to software-based tools such as [[computer-aided design]], [[3D modeling]], digital [[image editing]], and [[computer animation]].{{sfn|Manovich|2013|p=333}} Almost every complex device is controlled by software.{{sfn|Jones|2014|p=xxviii}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
===Sources===&lt;br /&gt;
{{refbegin|indent=yes}}&lt;br /&gt;
*{{cite book |last1=Ablon |first1=Lillian |last2=Bogart |first2=Andy |title=Zero Days, Thousands of Nights: The Life and Times of Zero-Day Vulnerabilities and Their Exploits |date=2017 |publisher=Rand Corporation |isbn=978-0-8330-9761-3 |language=en|url=https://www.rand.org/content/dam/rand/pubs/research_reports/RR1700/RR1751/RAND_RR1751.pdf}}&lt;br /&gt;
*{{cite book |last1=Anderson |first1=Thomas |last2=Dahlin |first2=Michael |author1-link=Thomas E. Anderson |title=Operating Systems: Principles and Practice |date=2014 |publisher=Recursive Books |isbn=978-0-9856735-2-9 |edition=2 |language=en}}&lt;br /&gt;
*{{cite book |last1=Campbell-Kelly |first1=Martin |last2=Garcia-Swartz |first2=Daniel D. |title=From Mainframes to Smartphones: A History of the International Computer Industry |date=2015 |publisher=Harvard University Press |isbn=978-0-674-28655-9 |language=en}}&lt;br /&gt;
*{{cite book |last1=Daswani |first1=Neil|authorlink=Neil Daswani |last2=Elbayadi |first2=Moudy |title=Big Breaches: Cybersecurity Lessons for Everyone |date=2021 |publisher=Apress |isbn=978-1-4842-6654-0}}&lt;br /&gt;
*{{Cite book |last=Dooley |first=John F. |title=Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring |date=2017 |publisher=Apress |isbn=978-1-4842-3153-1 |language=en}}&lt;br /&gt;
*{{cite book |last1=Gabbrielli |first1=Maurizio |last2=Martini |first2=Simone |title=Programming Languages: Principles and Paradigms |date=2023 |publisher=Springer |isbn=978-3-031-34144-1 |language=en|edition=2nd}}&lt;br /&gt;
*{{cite book |last1=Galin |first1=Daniel |title=Software Quality: Concepts and Practice |date=2018 |publisher=John Wiley &amp;amp; Sons |isbn=978-1-119-13449-7 |language=en}}&lt;br /&gt;
*{{cite book |last1=Haber |first1=Morey J. |last2=Hibbert |first2=Brad |title=Asset Attack Vectors: Building Effective Vulnerability Management Strategies to Protect Organizations |date=2018 |publisher=Apress |isbn=978-1-4842-3627-7 |language=en}}&lt;br /&gt;
*{{cite book |last1=Jones |first1=Capers |title=The Technical and Social History of Software Engineering |date=2014 |publisher=Pearson Education |isbn=978-0-321-90342-6 |language=en}}&lt;br /&gt;
*{{cite book |last1=Kitchin |first1=Rob |last2=Dodge |first2=Martin |title=Code/space: Software and Everyday Life |date=2011 |publisher=MIT Press |isbn=978-0-262-04248-2 |language=en}}&lt;br /&gt;
*{{Cite book |last=Langer |first=Arthur M. |title=Guide to Software Development: Designing and Managing the Life Cycle |date=2016 |publisher=Springer |isbn=978-1-4471-6799-0 |language=en}}&lt;br /&gt;
*{{cite book |last1=Manovich |first1=Lev |title=Software Takes Command |date=2013 |publisher=Bloomsbury Academic |isbn=978-1-62356-745-3 |language=en}}&lt;br /&gt;
*{{cite book |last1=O&amp;#039;Regan |first1=Gerard |title=Concise Guide to Software Engineering: From Fundamentals to Application Methods |date=2022 |publisher=Springer Nature |isbn=978-3-031-07816-3 |language=en}}&lt;br /&gt;
*{{cite book |last1=Osterweil |first1=Leon J. |title=Perspectives on the Future of Software Engineering: Essays in Honor of Dieter Rombach |date=2013 |publisher=Springer |isbn=978-3-642-37395-4 |pages=237–254 |language=en |chapter=What Is Software? The Role of Empirical Methods in Answering the Question}}&lt;br /&gt;
*{{cite journal |last1=Rahman |first1=Hanif Ur |last2=da Silva |first2=Alberto Rodrigues |last3=Alzayed |first3=Asaad |last4=Raza |first4=Mushtaq |title=A Systematic Literature Review on Software Maintenance Offshoring Decisions |journal=Information and Software Technology |date=2024 |volume=172 |article-number=107475 |doi=10.1016/j.infsof.2024.107475|ref={{sfnref|Rahman et al.|2024}}}}&lt;br /&gt;
*{{cite book |last1=Reifer |first1=Donald J. |title=Software Maintenance Success Recipes |date=2012 |publisher=CRC Press |isbn=978-1-4398-5167-8 |language=en}}&lt;br /&gt;
*{{cite book |last1=Rosati |first1=Pierangelo |last2=Lynn |first2=Theo |title=Measuring the Business Value of Cloud Computing |date=2020 |publisher=Springer International Publishing |isbn=978-3-030-43198-3 |pages=19–37 |language=en |chapter=Measuring the Business Value of Infrastructure Migration to the Cloud}}&lt;br /&gt;
* {{cite book |last1=Sebesta |first1=Robert W. |title=Concepts of Programming Languages |date=2012 |publisher=Addison-Wesley |isbn=978-0-13-139531-2  |edition=10 |language=en}}&lt;br /&gt;
*{{cite book |last1=Stull |first1=Edward |title=UX Fundamentals for Non-UX Professionals: User Experience Principles for Managers, Writers, Designers, and Developers |date=2018 |publisher=Apress |isbn=978-1-4842-3811-0 |language=en}}&lt;br /&gt;
*{{cite book |last1=Tanenbaum |first1=Andrew S.|authorlink=Andrew S. Tanenbaum |last2=Bos |first2=Herbert |title=Modern Operating Systems, Global Edition |date=2023 |publisher=Pearson Higher Ed |isbn=978-1-292-72789-9 |language=en}}&lt;br /&gt;
*{{cite book |last1=Tracy |first1=Kim W. |title=Software: A Technical History |date=2021 |publisher=Morgan &amp;amp; Claypool Publishers |isbn=978-1-4503-8724-8 |language=en}}&lt;br /&gt;
*{{cite book |last1=Tripathy |first1=Priyadarshi |last2=Naik |first2=Kshirasagar |title=Software Evolution and Maintenance: A Practitioner&amp;#039;s Approach |date=2014 |publisher=John Wiley &amp;amp; Sons |isbn=978-0-470-60341-3 |language=en}}&lt;br /&gt;
*{{Cite book |last1=Tucker |first1=Allen |title=Software Development: An Open Source Approach |last2=Morelli |first2=Ralph |last3=de Silva |first3=Chamindra |date=2011 |publisher=CRC Press |isbn=978-1-4398-8460-7 |language=en}}&lt;br /&gt;
*{{cite journal |last1=Ulziit |first1=Bayarbuyan |last2=Warraich |first2=Zeeshan Akhtar |last3=Gencel |first3=Cigdem |last4=Petersen |first4=Kai |title=A conceptual framework of challenges and solutions for managing global software maintenance |journal=Journal of Software: Evolution and Process |date=2015 |volume=27 |issue=10 |pages=763–792 |doi=10.1002/smr.1720|ref={{sfnref|Ulziit et al.|2015}}}}&lt;br /&gt;
*{{cite book |last1=Watt |first1=Andy |title=Building Modern SaaS Applications with C# And . NET: Build, Deploy, and Maintain Professional SaaS Applications |date=2023 |publisher=Packt |isbn=978-1-80461-087-9 |language=en}}&lt;br /&gt;
*{{cite book |last1=Varga |first1=Ervin |title=Unraveling Software Maintenance and Evolution: Thinking Outside the Box |date=2018 |publisher=Springer |isbn=978-3-319-71303-8 |language=en}}&lt;br /&gt;
{{refend}}&lt;br /&gt;
&lt;br /&gt;
{{Software digital distribution platforms|state=collapsed}}&lt;br /&gt;
{{subject bar|Free and open-source software|auto=1}}&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Software| ]]&lt;/div&gt;</summary>
		<author><name>RS-485</name></author>
	</entry>
</feed>