course TOC

5.3. Software

Application Software [src]

General Description

Application software, also known as a program, an application or just an "app", is computer software designed to help the user to perform a single specific task, such as create a presentation. Examples of applications include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with documents. Apps may be bundled with the computer and its system software, or may be purchased separately. (And, of course, some is free.)

Application software is contrasted with system software, which manages and integrates a computer's capabilities, but typically does not directly apply them to the direct benefit of the user. The system software serves the application, which in turn serves the user.

Similar relationships apply in other fields. For example, a shopping mall does not provide the merchandise a shopper is seeking, but provides space and services for retailers that serve the shopper. Rail tracks similarly support trains, allowing the train service (or company) to transport passengers.

Application software applies the power of a particular computing platform (system software + hardware) to a particular purpose. Some apps such as Microsoft Office are available in versions for several different platforms; others have narrower requirements and are thus called, for example, a Geography application for Windows or an Android application for education or Linux gaming. Sometimes a new and popular application arises which only runs on one platform, increasing the desirability of that platform. This is called a killer application.

Gretl screenshot ru
gretl is an open-source statistical package, mainly for econometrics
By Alexged (Own work) [CC-BY-SA-3.0 or GFDL], via Wikimedia Commons

Glui
OpenGL User Interface Library (GLUI)
See page for author [GFDL], via Wikimedia Commons

Mp3blaster
mp3blaster on Linux KDE
By Rafael Ortega Díaz (Own work) [GFDL, CC-BY-SA-3.0 or CC-BY-SA-2.5-2.0-1.0], via Wikimedia Commons

Kinds of software

Application software falls into two general categories; horizontal applications and vertical applications. Horizontal applications, like Microsoft's Office Suite, are the most popular and are widely spread in departments or companies. This is the type of "boxed software" that was commonly sold in electronics or office supply stores, i.e., software that anyone might buy.

Vertical Applications are designed for a particular type of business or for a specific division in a company. The degree audit software used by universities to track student progress is of this type, as it is of little use to others.

Another basic classification is determined by the kind of user interface provided. Most applications provide Graphical User Interfaces (GUIs), like Windows and Mac OS. Other applications may be menu based or command line based interfaces.

Command line
Linux command line interface
By The GNU Dev team, and the Arch Linux Dev team (for the Pacman command in the example) (Own work) [GPL], via Wikimedia Commons

Gentoo kde amule konversation amarok
KDE 3.4.2 running on Gentoo Linux See page for author [GPL], via Wikimedia Commons

Application Suites

An application suite consists of multiple applications bundled together. They usually have related functions, features and user interfaces, and may be able to interact with each other, e.g. open each other's files. Business office applications (productivity software) often come in suites, e.g. Microsoft Office, OpenOffice and iWork, which each bundle together a word processor, a spreadsheet, etc.. (You may wish to look at: 5 free open source alternatives to Microsoft Office.)

Suites of software are available for other purposes, as well, e.g. graphics or music.

Office suite ja
OpenOffice Suite (Free!)
See page for author [GPL or FAL], via Wikimedia Commons

Enterprise Software

Enterprise software addresses the needs of organization processes and data flow, often in a large distributed environment. Examples include financial systems, customer relationship management (CRM) systems and supply-chain management software. Note that Departmental Software is a sub-type of Enterprise Software with a focus on smaller organizations or groups within a large organization. (Examples include Travel Expense Management and IT Helpdesk.) Enterprise infrastructure software provides common capabilities needed to support enterprise software systems. (Examples include databases, email servers, and systems for managing networks and security.)

JumperInputScreen1
Jumper 2.0 for collaborative search and knowledge management
See page for author [GPL or CC-BY-3.0], via Wikimedia Commons

Information worker software

Information worker software addresses the needs of individuals to create and manage information, often for individual projects within a department, in contrast to enterprise management. Examples include time management, resource management, documentation, analytical, and collaborative tools. Word processors, spreadsheets (any productivity software), email and blog clients, personal information system, and individual media editors may aid in multiple information worker tasks.

Mozilla Thunderbird 3.1
Mozilla Thunderbird 3.1.9 Email Interface
By Mozilla Foundation (Mozilla Thunderbird 3.1.9) [GFDL or CC-BY-SA-3.0-2.5-2.0-1.0], via Wikimedia Commons

Content access software

Content access software is software used primarily to access content without editing, but may include software that allows for content editing. Such software addresses the needs of individuals and groups to consume digital entertainment and published digital content. Examples include Media Players, Web Browsers, Help browsers and Games.

Content access management is also used to control who can see or change information in the workplace. An example you may have used is Google Docs, where a group may develop a project, but only group members have access.

Firefox 4
Mozilla Firefox web browser
By Own work (Wikipedia) [GPL or LGPL], via Wikimedia Commons

Educational software

Educational software is related to content access software, but has the content and/or features adapted for use by educators or students. For example, it may deliver evaluations (tests), track progress through material, or include collaborative capabilities. Students or parents may be able to look up assignments and/or grades. A system such as D2L is sometimes called a (course) content management system.

Moodle 2.0 on Firefox 4.0
Moodle Learning Management System
By Myself (http://demo.moodle.net/course/view.php?id=615) [GPL], via Wikimedia Commons

Simulation software

Simulation software is computer software for the simulation of physical or abstract systems and is often used for research, training, or entertainment purposes. We frequently see the results of such such software when we view weather reports which often predict future conditions. Simulations tend to require a lot of computing power and may be run mainframes or supercomputers.

You may have noted that when warnings of a hurricane are given, the actual path and strength are approximate. These predictions are based on multiple models (or simulations), each with there own, independent, results. The utility and accuracy of the results of any simulation, depend largely on:

  • how well the system or process being modeled is understood,
  • how much of the system is being accurately modeled (as opposed to simplified or ignored),
  • how well software engineers were able to turn that into a complete, correct program,
  • the accuracy and availability of data, and
  • the amount of computer power dedicated to the simulation.
Typhoon Mawar 2005 computer simulation thumbnail
48 hour weather simulation of Typhoon Mawar
By Typhoon_Mawar_2005_computer_simulation.gif: Atmozderivative work: Atmoz (Typhoon_Mawar_2005_computer_simulation.gif) [CC-BY-SA-3.0], via Wikimedia Commons

Fahr-Simulation
Driving
public domain image

Media development software

Media development software addresses the needs of individuals who generate printed media and create electronic media for others to consume, most often in a commercial or educational setting. This includes Graphic Art software, Desktop Publishing software, Multimedia Development software, HTML editors, Digital Animation editors, Digital Audio and Video composition, and many others.

Audacity screenshot
Audacity sound editor
Uploaded by Gh. Licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.

Product engineering software

Product engineering software is used in developing hardware and software products. This includes computer aided design (CAD), computer aided engineering (CAE), computer language editing and compiling tools, Integrated Development Environments, and Application Programmer Interfaces.

I was sorely tempted to say that this is the domain of computer geeks, but that isn't really true now, if it ever was. First the stereotype is wrong. Second, many non-computer science, non-software engineers now program at some level. Third, except perhaps for the perceived value of the end product, how is this any different than, say, media developent software.

Plasticity
Nonlinear statistics analysis of a 3D structure subjected to plastic deformations with Code-Aster
By Joël Cugnoni (http://www.caelinux.com) [GPL], via Wikimedia Commons

System Requirements

When software was sold from boxes in stores, the box had a list of system requirements that had to be met in order for the software to work properly. The sales clerk would generally point out unusual requirements. Today, we buy much of our software online, but it still won't work if we fail to meet the system requirements. Always check for these.

Common system requirements are:

  • Platform: Some combination of operating system and hardware, for example:
    Windows Vista or Windows 7 with Intel Pentium 4 or AMD Athlon dual-core processor, 3.0 GHz or higher with SSE2 technology
  • A minimum amount of RAM
  • A minimum amount of free disk space
  • Minimal display quality, for example:
    1,024 x 768 display resolution with true color
  • Supporting software, for example:
    Microsoft Internet Explorer 7.0 or later
    DirectX 9.0 or later
  • Graphics card, for example
    ATI Radeon HD 2900 XT, NVIDIA GeForce 8800 GT, or better recommended
  • Sound card with speakers or headphones, for example
    100% DirectX compatible sound card and drivers
  • Optical (CD, DVD, BD) drive, with some minimum speed (32x)
  • Internet Access for online/multiplayer game

Some systems will require more unique system hardware, for example the Nunchuk controller, zapper, shotgun, and yoga mat are only a few of the specialized UI devices available for a Wii. One would expect a yoga "game" to require the yoga mat.

Petraeus Wii
Wii system in use
public domain image

Mobile applications

Mobile applications (mobile apps) run on hand-held devices such as smart phones, tablet computers, portable media players, personal digital assistants and enterprise digital assistants. They are typically purchased & distributed through a network specific for the device (family), but may still have requirements such as a particular OS version.

Mobile app development is one of the hotest growth areas in programming right now.

iPhone
iPhone
Uploaded by Ausis. Source blakeburris (Flickr).

Web Applications [src]

A web application is an application that is accessed over a network such as the Internet. (I think of this as the start of cloud computing.) Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client, sometimes called a thin client. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity, as is the inherent support for cross-platform compatibility. Common web applications include webmail, online retail sales, online auctions, wikis and many other functions.

Horde-portal
Screenshot of Horde's portal view
By The Horde Project (http://www.horde.org/webmail/screenshots) [LGPL], via Wikimedia Commons

Cloud Computing (Applications) [src]

Cloud computing is a type of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources (e.g., computer networks, servers, storage, applications and services), which can be rapidly provisioned and released with minimal management effort. Cloud computing and storage solutions provide users and enterprises with various capabilities to store and process their data in third-party data centers that may be located far from the user – ranging in distance from across a city to across the world. Cloud computing relies on sharing of resources to achieve coherence and economy of scale, similar to a utility (like the electricity grid) over an electricity network.

Advocates claim that cloud computing allows companies to avoid up-front infrastructure costs (e.g., purchasing servers). As well, it enables organizations to focus on their core businesses instead of spending time and money on computer infrastructure. Proponents also claim that cloud computing allows enterprises to get their applications up and running faster, with improved manageability and less maintenance, and enables Information technology (IT) teams to more rapidly adjust resources to meet fluctuating and unpredictable business demand. Cloud providers typically use a "pay as you go" model. This will lead to unexpectedly high charges if administrators do not adapt to the cloud pricing model.

Cloud apps store their data in the cloud but it can be cached locally, allowing full use offline, unlike web apps that must be used online. Web apps always use a browser, while cloud apps may allow the use of a browser but allow alternative access methods.

cloud computing
Created by Sam Johnston using OmniGroup's OmniGraffle and Inkscape (includes Computer.svg by Sasa Stefanovic)

video icon
#216 Computing in the Cloud
Pros and Cons


Cloud app vs. web app: Understanding the differences

Third party server side application

A third party server side application is an app that the user may choose to install in his or her account on a social media site or other Web 2.0 web site, for example a Facebook app. With these apps, privacy may be a concern for users. As they are not written or distributed by the host site, they have their own privacy policies that control what information they may collect, trade, or sell about the user.

Widgets [src]

A software widget is a generic type of software application comprising portable code intended for one or more different software platforms. The term often implies that either the application, user interface, or both, are light, meaning relatively simple and easy to use, as exemplified by a desk accessory or applet, as opposed to a more complete software package such as a spreadsheet or word processor. Widgets often take the form of on-screen tools (clocks, event count downs, auction-tickers, stock market tickers, flight arrival information, daily weather etc).[src]

KDE-Widgets
Widgets under KDE 4.2 and Kubuntu 9.04.
By Canonical, KDE (selbst erstellt/taken myself) [GPL], via Wikimedia Commons

video icon
#85 Installing legacy software on new OS

course TOC


Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Attribution: Dr. Paul Mullins, Slippery Rock University
These notes began life as the Wikiversity course Introduction to Computers.
The course draws extensively from and uses links to Wikipedia.
A large number of video links are provided to labrats.tv. (I hope you like cats. And food demos.)