Software Applications
Software applications are computer programs designed to carry out specific tasks other than just running the computer itself. They are often termed as application software, distinguishing them from system software, which manages and integrates the computer's capabilities but does not directly assist the end user in performing tasks.
Types of Software Applications
Desktop Applications
Desktop applications run on a personal computer or workstation. They are designed for a variety of tasks such as word processing, spreadsheets, or multimedia editing. Examples of desktop applications include Microsoft Word and Adobe Photoshop.
Mobile Applications
Mobile applications are designed to run on mobile devices such as smartphones and tablets. These applications range from productivity tools to games, and can be downloaded from platforms like the Google Play Store or Apple App Store.
Web Applications
Web applications are accessed via a web browser and require an internet connection to function. They often run on remote servers and can be used on any device that has a browser. Examples include Google Docs and Salesforce.
Enterprise Software
Enterprise software is used by businesses for a variety of purposes such as customer relationship management, enterprise resource planning, or supply chain management. They are typically complex and require a higher degree of customization.
Software as a Service (SaaS)
Software as a service (SaaS) is a software distribution model in which applications are hosted by a service provider and made available to customers over the internet. This model is prevalent due to the rise of cloud computing, offering flexibility and reduced need for IT infrastructure.
Development and Deployment
The creation of software applications involves several stages commonly referred to as the software development life cycle, which includes stages like requirement gathering, design, coding, testing, and deployment.
Software Development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications. Key methodologies include Agile, Waterfall, and DevOps.
Software Deployment
Deployment is the process of making an application available for use. With the advent of continuous delivery practices, deployment can happen frequently and seamlessly, particularly for web applications.
Notable Considerations
System vs. Application Software
The distinction between system software and application software can sometimes be blurred. For instance, controversies such as the United States v. Microsoft Corp. antitrust trial questioned whether Internet Explorer was part of the Windows OS or a separate application.
Embedded Systems
In embedded systems, application software may be indistinguishable from system software by the end-user. Examples include software found in DVD players or microwave ovens.
Killer Applications
A killer application is one that is so essential or desirable that it proves the value of some larger technology. VisiCalc, for example, was a killer app that demonstrated the potential of personal computers in the business world.