Wednesday, January 14, 2009

Software

Software is a general term used to describe a collection of computer programs, procedures and documentation that perform some tasks on an operating system.
Terminology
The term includes:
• Application software such as word processors which perform productive tasks for users.
• Multimedia applications for playing multimedia.
• Firmware which is software programmed resident to electrically programmable memory devices on board mainboards or other types of integrated hardware carriers.
• Middleware which controls and co-ordinates distributed systems.
Software includes websites, programs, video games etc. that are coded by programming languages like C, C++, etc.
• System software such as operating systems, which interface with hardware to provide the necessary services for application software.
• Testware which is an umbrella term or container term for all utilities and application software that serve in combination for testing a software package but not necessarily may optionally contribute to operational purposes. As such, testware is not a standing configuration but merely a working environment for application software or subsets thereof.
"Software" is sometimes used in a broader context to mean anything which is not hardware but which is used with hardware, such as film, tapes and records. Updated Terminology
The term is now being used to include those that are non PC based like smartphones, palm OS, etc due to the proliferation of the mobile industry based on Symbian and Windows platforms.
"Software" is sometimes used in a broader context to mean anything which is not hardware but which is used with hardware, such as film, tapes and records.
Computer software, or just software is a general term used to describe a collection of computer programs, procedures and documentation that perform some tasks on a computer system.[1]


A screenshot of the OpenOffice.org Writer desktop software
The term includes:
• Application software such as word processors which perform productive tasks for users.
• Firmware which is software programmed resident to electrically programmable memory devices on board mainboards or other types of integrated hardware carriers.
• Middleware which controls and co-ordinates distributed systems.
Software includes websites, programs, video games etc. that are coded by programming languages like C, C++, etc.
• System software such as operating systems, which interface with hardware to provide the necessary services for application software.
• Testware which is an umbrella term or container term for all utilities and application software that serve in combination for testing a software package but not necessarily may optionally contribute to operational purposes. As such, testware is not a standing configuration but merely a working environment for application software or subsets thereof.
"Software" is sometimes used in a broader context to mean anything which is not hardware but which is used with hardware, such as film, tapes and records.[2]
Computer software is often regarded as anything but hardware, meaning that the "hard" are the parts that are tangible (able to hold) while the "soft" part is the intangible objects inside the computer. Software encompasses an extremely wide array of products and technologies developed using different techniques like programming languages, scripting languages etc. The types of software include web pages developed by technologies like HTML, PHP, Perl, JSP, ASP.NET, XML, and desktop applications like Microsoft Word, OpenOffice developed by technologies like C, C++, Java, C#, etc. Software usually runs on an underlying operating system (which is a software also) like Microsoft Windows, Linux (running GNOME and KDE), Sun Solaris etc. Software also includes video games like the Super Mario, Grand Theft Auto for personal computers or video game consoles.
Also a software usually runs on a software platform which can either be provided by the operating system or by operating system independent platforms like Java and .NET. Software written for one platform is usually unable to run on other platforms so that for instance, Microsoft Windows software will not be able to run on Mac OS because of the differences relating to the platforms and their own standards. These applications can work using software porting, interpreters or re-writing the source code for the specific platform.
Relationship to computer hardware
Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, software consists of a machine language specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions which change the state of the computer from its preceding state. Software is an ordered sequence of instructions for changing the state of the computer hardware in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.
The term "software" was first used in this sense by John W. Tukey in 1958.[3] In computer science and software engineering, computer software is all computer programs. The theory that is the basis for most modern software was first proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem.[4]
Computable numbers with an application to the Entscheidungsproblem.[4]
Types of software


A layer structure showing where Operating System is located on generally used software systems on desktops


An example text editor, Vim


Industrial Automation with robots engaged in vehicle assembly
Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred.
System software
System software helps run the computer hardware and computer system. It includes:
• device drivers,
• diagnostic tools,
• operating systems,
• servers,
• utilities,
• windowing systems,
The purpose of systems software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such as accessory devices as communications, printers, readers, displays, keyboards, etc.
Programming software
Programming software usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way. The tools include:
• compilers,
• debuggers,
• interpreters,
• linkers,
• text editors,
An Integrated development environment (IDE) merges those tools into a software bundle, and a programmer may not need to type multiple commands for compiling, interpreting, debugging, tracing, etc., because the IDE usually has an advanced graphical user interface, or GUI.]
Application software
Application software allows end users to accomplish one or more specific (non-computer related) tasks. Typical applications include:
• industrial automation,
• business software,
• computer games,
• databases,
• educational software,
• medical software,
Businesses are probably the biggest users of application software, but almost every field of human activity now uses some form of application software.

No comments: