Software includes things such as websites A website is a collection of related web pages, images, videos or other digital assets that are addressed with a common domain name or IP address in an Internet Protocol-based network. A web site is hosted on at least one web server, accessible via the Internet or a private local area network, programs Computer programs are instructions for a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. Computer programs are found either in executable form or as the source code from which executable programs are derived (e.g., compiled): in addition to running in a computer, the source or video games A video game is an electronic game that involves interaction with a user interface to generate visual feedback on a video device. The word video in video game traditionally referred to a raster display device. However, with the popular use of the term "video game", it now implies any type of display device. The electronic systems used to, that are coded by programming languages A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that specify the behavior of a machine, to express algorithms precisely, or as a mode of human communication like C C is one of the most popular programming languages. It is widely used on many different software platforms, and there are few computer architectures for which a C compiler does not exist. C has greatly influenced many other popular programming languages, most notably C++, which originally began as an extension to C or C++.
"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.[3]
Contents |
Overview
Computer software is often regarded as anything but hardware Hardware is a general term that refers to the physical artifacts of a technology. It may also mean the physical components of a computer system, in the form of computer hardware, meaning that the "hard" are the parts that are tangible In criminal law, one of the elements of an offense of larceny is that the stolen property must be tangible 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 A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that specify the behavior of a machine, to express algorithms precisely, or as a mode of human communication, scripting languages Categories: Domain-specific programming languages | Executable file formats or even microcode Microcode is a layer of lowest-level instructions involved in the implementation of machine code instructions in many computers and other processors; it resides in a special high-speed memory and translates machine instructions into sequences of detailed circuit-level operations. It helps separate the machine instructions from the underlying or a FPGA A field-programmable gate array is a semiconductor device that can be configured by the customer or designer after manufacturing—hence the name "field-programmable". FPGAs are programmed using a logic circuit diagram or a source code in a hardware description language (HDL) to specify how the chip will work. They can be used to state. The types of software include web pages A web page or webpage is a document or resource of information that is suitable for the World Wide Web and can be accessed through a web browser and displayed on a computer screen developed by technologies like HTML HTML, an initialism for Hypertext Mark-up Language, is the predominant markup language for web pages. It provides a means to describe the structure of text-based information in a document—by denoting certain text as links, headings, paragraphs, lists, etc.—and to supplement that text with interactive forms, embedded images, and other objects, PHP PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in standalone graphical applications, Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall, a linguist working as a systems administrator for NASA, in 1987, as a general purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely, JSP JavaServer Pages is a Java technology that allows software developers to create dynamically generated web pages, with HTML, XML, or other document types, in response to a Web client request. The technology allows Java code and certain pre-defined actions to be embedded into static content, ASP.NET ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages technology. ASP.NET is built on the Common Language, XML, and desktop applications Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user's work. In other words, it is the subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be like OpenOffice OpenOffice.org , commonly known simply as OpenOffice, is an office application suite available for a number of different computer operating systems. It is distributed as free software and written using the GTK. It supports the ISO/IEC standard OpenDocument Format (ODF) for data interchange as its default file format, as well as Microsoft Office, Microsoft Word Microsoft Word is Microsoft's word processing software. It was first released in 1983 under the name Multi-Tool Word for Xenix systems. Versions were later written for several other platforms including IBM PCs running DOS , the Apple Macintosh (1984), SCO UNIX, OS/2 and Microsoft Windows (1989). It is a component of the Microsoft Office system; developed by technologies like C C is one of the most popular programming languages. It is widely used on many different software platforms, and there are few computer architectures for which a C compiler does not exist. C has greatly influenced many other popular programming languages, most notably C++, which originally began as an extension to C, C++, Java Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode that can run,or C# C# is a multi-paradigm programming language encompassing functional, imperative, generic, object-oriented (class-based), and component-oriented programming disciplines. It was developed by Microsoft within the .NET initiative and later approved as a standard by Ecma (ECMA-334) and ISO (ISO/IEC 23270). C# is one of the programming languages. Software usually runs on an underlying software operating systems An operating system is an interface between hardware and user; an OS is responsible for the management and coordination of activities and the sharing of the resources of the computer. The operating system acts as a host for computing applications that are run on the machine. As a host, one of the purposes of an operating system is to handle the such as the Linux Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL and other free or Microsoft Windows Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal. Software also includes video games A video game is an electronic game that involves interaction with a user interface to generate visual feedback on a video device. The word video in video game traditionally referred to a raster display device. However, with the popular use of the term "video game", it now implies any type of display device. The electronic systems used to and the logic Logic, from the Greek λογική is defined by the Penguin Encyclopedia to be "The formal systematic study of the principles of valid inference and correct reasoning". As a discipline, logic dates back to Aristotle, who established its fundamental place in philosophy. It became part of the classical trivium, a fundamental part of a systems of modern consumer devices such as automobiles An automobile or motor car is a wheeled motor vehicle used for transporting passengers, which also carries its own engine or motor. Most definitions of the term specify that automobiles are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels, and to be constructed principally for the transport, televisions Commercially available since the late 1930s, the television set has become a common communications receiver in homes, businesses and institutions, particularly as a source of entertainment and news. Since the 1970s the availability of video cassettes, laserdiscs, DVDs and now Blu-ray discs, have resulted in the television set frequently being used, and toasters The toaster is typically a small electric kitchen appliance designed to toast multiple types of bread products. A typical modern two-slice toaster draws anywhere between 600 and 1200 W and makes toast in 1 to 3 minutes. There are also non-electrical toasters that can be used to toast bread products over an open fire or flame.
Relationship to computer hardware
Computer A computer is a machine that manipulates data according to a set of instructions software is so called to distinguish it from computer hardware A personal computer is made up of multiple physical components of computer hardware, upon which can be installed an operating system and a multitude of software to perform the operator's desired functions, 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 that 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 In computing, a high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be more portable across platforms. Such languages hide the details of CPU operations such as memory access that are easier and more efficient for humans to use (closer to natural language In the philosophy of language, a natural language is a language that is spoken, signed, or written by humans for general-purpose communication, as distinguished from formal languages (such as computer-programming languages or the "languages" used in the study of formal logic, especially mathematical logic) and from constructed languages) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language Assembly languages are a family of low-level languages for programming computers. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations that help the programmer, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler Assembly languages are a family of low-level languages for programming computers. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations that help the programmer.
The term "software" was first used in this sense by John W. Tukey John Wilder Tukey was an American statistician in 1958.[4] In computer science Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that describe and transform information; the fundamental question underlying computer and software engineering The term software engineering first appeared in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding the current "software crisis" at the time. Since then, it has continued as a profession and field of study dedicated to creating software that is of higher quality, more affordable, maintainable, and, computer software is all computer programs. The theory that is the basis for most modern software was first proposed by Alan Turing Alan Mathison Turing, OBE, FRS (pronounced /ˈtjʊrɪŋ/) (23 June 1912 – 7 June 1954) was a British mathematician, logician, cryptanalyst and computer scientist in his 1935 essay Computable numbers with an application to the Entscheidungsproblem.[5]
Types of software
A layer structure showing where Operating System An operating system is an interface between hardware and user; an OS is responsible for the management and coordination of activities and the sharing of the resources of the computer. The operating system acts as a host for computing applications that are run on the machine. As a host, one of the purposes of an operating system is to handle the is located on generally used software systems on desktops A desktop computer is a personal computer in a form intended for regular use at a single location, as opposed to a mobile laptop or portable computer. Prior to the wide spread of microprocessors a computer that could fit on a desk was considered remarkably small. Today the phrase usually indicates a particular style of computer case. DesktopPractical computer systems A computer is a machine that manipulates data according to a set of instructions divide software systems A software system is a system based on software forming part of a computer system . The term software system is often used as a synonym of computer program or software. The term software system is related to the application of systems theory approaches in software engineering context. This approach is often used to study large and complex software, into three major classes: system software System software is closely related to, but distinct from operating system. It is a computer software that provides the infrastructure over operating system which programs can operate, i.e. it allows application programs to perform different task on the computer. Operating systems, such as Microsoft Windows NT, Mac OS X or Linux, builds a virtual, programming software A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a and application software Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user's work. In other words, it is the subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be, although the distinction is arbitrary, and often blurred.
System software
System software System software is closely related to, but distinct from operating system. It is a computer software that provides the infrastructure over operating system which programs can operate, i.e. it allows application programs to perform different task on the computer. Operating systems, such as Microsoft Windows NT, Mac OS X or Linux, builds a virtual helps run the computer hardware and computer system. It includes combination of the following:
- device drivers In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device
- operating systems
- servers
- utilities
- windowing systems
The purpose of systems software is to unburden the applications programmer from the details of the particular computer complex being used, including such accessory devices as communications, printers, readers, displays and keyboards, and also to partition the computer's resources such as memory and processor time in a safe and stable manner.
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:
An Integrated development environment (IDE) is a single application that attempts to manage all these functions.
Application software
Application software allows end users to accomplish one or more specific (not directly computer development related) tasks. Typical applications include:
- industrial automation
- business software
- computer games
- telecommunications (i.e., the internet and everything that flows on it)
- databases
- educational software
- medical software
- military software
Application software exists for and has impacted a wide variety of topics.
Software topics
Architecture
See also: Software architectureUsers often see things differently than programmers. People who use modern general purpose computers (as opposed to embedded systems, analog computers and supercomputers) usually see three layers of software performing a variety of tasks: platform, application, and user software.
- Platform software: Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer. On a PC you will usually have the ability to change the platform software.
- Application software: Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are usually independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications.
- User-written software: End-user development tailors systems to meet users' specific needs. User software include spreadsheet templates, word processor macros, scientific simulations, and scripts for graphics and animations. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. Depending on how competently the user-written software has been integrated into default application packages, many users may not be aware of the distinction between the original packages, and what has been added by co-workers.
Documentation
Main article: Software documentationMost software has software documentation so that the end user can understand the program, what it does, and how to use it. Without a clear documentation, software can be hard to use--especially if it is a very specialized and relatively complex software like the Photoshop or AutoCAD.
Developer documentation may also exist, either with the code as comments and/or as separate files, detailing how the programs works and can be modified.
Library
Main article: Software libraryAn executable is almost always not sufficiently complete for direct execution. Software libraries include collections of functions and functionality that may be embedded in other applications. Operating systems include many standard Software libraries, and applications are often distributed with their own libraries.
Standard
Main article: Software standardSince software can be designed using many different programming languages and in many different operating systems and operating environments, software standard is needed so that different software can understand and exchange information between each other. For instance, an email sent from a Microsoft Outlook should be readable from Yahoo! Mail and vice versa.
Execution
Main article: Execution (computing)Computer software has to be "loaded" into the computer's storage (such as a [hard drive], memory, or RAM). Once the software has loaded, the computer is able to execute the software. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation – moving data, carrying out a computation, or altering the control flow of instructions.
Data movement is typically from one place in memory to another. Sometimes it involves moving data between memory and registers which enable high-speed data access in the CPU. Moving data, especially large amounts of it, can be costly. So, this is sometimes avoided by using "pointers" to data instead. Computations include simple operations such as incrementing the value of a variable data element. More complex computations may involve many operations and data elements together.
Quality and reliability
Main articles: Software quality, Software testing, and Software reliabilitySoftware quality is very important, especially for commercial and system software like Microsoft Office, Microsoft Windows and Linux. If software is faulty (buggy), it can delete a person's work, crash the computer and do other unexpected things. Faults and errors are called "bugs." Many bugs are discovered and eliminated (debugged) through software testing. However, software testing rarely – if ever – eliminates every bug; some programmers say that "every program has at least one more bug" (Lubarsky's Law). All major software companies, such as Microsoft, Novell and Sun Microsystems, have their own software testing departments with the specific goal of just testing. Software can be tested through unit testing, regression testing and other methods, which are done manually, or most commonly, automatically, since the amount of code to be tested can be quite large. For instance, NASA has extremely rigorous software testing procedures for its Space Shuttle and other programs because faulty software can crash the whole program and make the vehicle not functional, at great expense.
License
Main article: Software licenseThe software's license gives the user the right to use the software in the licensed environment. Some software comes with the license when purchased off the shelf, or an OEM license when bundled with hardware. Other software comes with a free software license, granting the recipient the rights to modify and redistribute the software. Software can also be in the form of freeware or shareware. See also License Management.
Patents
Main articles: Software patent and Software patent debateSoftware can be patented; however, software patents can be controversial in the software industry with many people holding different views about it. The controversy over software patents is that a specific algorithm or technique that the software has cannot be duplicated by others and is considered an intellectual property and copyright infringement depending on the severity. Some people believe that software patent hinder software development, while others argue that software patents provide an important incentive to spur software innovation.
Ethics and rights
Main article: Computer ethics| This section may contain original research or unverified claims. Please improve the article by adding references. See the talk page for details. (July 2008) |
There is more than one approach to creating, licensing, and distributing software. For instance, the free software or the open source community produces software under licensing that makes it free for inspection of its code, modification of its code, and distribution. While the software released under an open source license (such as General Public License, or GPL for short) can be sold for money,[6] the distribution cannot be restricted in the same way as software with copyright and patent restrictions (used by corporations to require licensing fees).
While some advocates of free software use slogans such as "information wants to be free," hinting that it is easy to copy digital data and that the licenses (enforced through laws) are unnatural restrictions, other creators and users of open source software recognize it to be one model among many for software creation, licensing, and distribution. And the laws themselves are put into place for the ostensible purpose of increasing creative output, by allowing the creators to control and profit most effectively from their intellectual property.
Design and implementation
Main articles: Software development, Computer programming, and Software engineeringDesign and implementation of software varies depending on the complexity of the software. For instance design and creation of Microsoft Word software will take much longer time than designing and developing Microsoft Notepad because of the difference in functionalities in each one.
Software is usually designed and created (coded/written/programmed) in integrated development environments (IDE) like emacs, xemacs, Microsoft Visual Studio and Eclipse that can simplify the process and compile the program. As noted in different section, software is usually created on top of existing software and the application programming interface (API) that the underlying software provides like GTK+, JavaBeans or Swing. Libraries (APIs) are categorized for different purposes. For instance JavaBeans library is used for designing enterprise applications, Windows Forms library is used for designing graphical user interface (GUI) applications like Microsoft Word and Windows Communication Foundation is used for designing web services. There are also underlying concepts in computer programming like quicksort, hashtable, array, binary tree that can be useful to creating software. When a program is designed, it relies on the API. For instance, if a user is designing a Microsoft Windows desktop application, he/she might use the .NET Windows Forms library to design the desktop application and call its APIs like Form1.Close() and Form1.Show() to close or open the application and write the additional operations him/herself that it need to have. Without these APIs, the programmer needs to write these APIs him/herself. Companies like Sun Microsystems, Novell and Microsoft provide their own APIs so that many applications are written using their software libraries that usually have numerous APIs in them.
Software has special economic characteristics that make its design, creation, and distribution different from most other economic goods.[7][8]
A title of a person who creates software is called a programmer, software engineer, software developer and code monkey that all essentially have a same meaning.
Industry and organizations
Main article: Software industrySoftware has its own niche industry that is called the software industry made up of different entities and peoples that produce software, and as a result there are many software companies and programmers in the world. Because software is increasingly used in many different areas like in finance, searching, mathematics, space exploration, gaming and mining and such, software companies and people usually specialize in certain areas. For instance, Electronic Arts primarily creates video games.
Also selling software can be quite a profitable industry. For instance, Bill Gates, the founder of Microsoft is the second richest man in the world in 2008 largely by selling the Microsoft Windows and Microsoft Office software programs. The same goes for Larry Ellison, largely through his Oracle database software.
There are also many non-profit software organizations like the Free Software Foundation, GNU Project, Mozilla Foundation. Also there are many software standard organizations like the W3C, IETF and others that try to come up with a software standard so that many software can work and interoperate with each other like through standards such as XML, HTML, HTTP or FTP.
Some of the well known software companies include Microsoft, Apple, IBM, Oracle, Novell, SAP and HP.[9]
See also
|
|
|
| Wikiversity has learning materials about School:Computer Science |
Textbooks from Wikibooks Quotations from Wikiquote Source texts from Wikisource Images and media from Commons News stories from Wikinews
Learning resources from WikiversityReferences
- ^ "Wordreference.com: WordNet 2.0". Princeton University, Princeton, NJ. http://www.wordreference.com/definition/software. Retrieved on 2007-08-19.
- ^ The Complete Software testing Theory, Rao. Vinayak 2008 MBA Test Engineer
- ^ software..(n.d.). Dictionary.com Unabridged (v 1.1). Retrieved 2007-04-13, from Dictionary.com website: http://dictionary.reference.com/browse/software
- ^ "John Tukey, 85, Statistician; Coined the Word 'Software'". New York Times. 2000-07-28. http://query.nytimes.com/gst/fullpage.html?res=9500E4DA173DF93BA15754C0A9669C8B63.
- ^ Hally, Mike (2005:79). Electronic brains/Stories from the dawn of the computer age. British Broadcasting Corporation and Granta Books, London. ISBN 1-86207-663-4.
- ^ GNU project: "Selling Free Software": "we encourage people who redistribute free software to charge as much as they wish or can."
- ^ v. Engelhardt, Sebastian (2008): "The Economic Properties of Software", Jena Economic Research Papers, Volume 2 (2008), Number 2008-045. (in Adobe pdf format)
- ^ "Why Open Source Is The Optimum Economic Paradigm for Software" by Dan Kaminsky 1999
- ^ "Software Top 100: the world's largest software companies". the Top 100 research foundation. http://www.softwaretop100.org. Retrieved on 2008-04-28.
|
|||||
Categories: Software
|
PC World
IT vendors and tech industry groups say a new set of legal principles for software contracts developed by the American Law Institute (ALI) could stifle ...
and more »
svartling
Sun, 26 Jul 2009 18:54:00 GM
Weekly . Software. Wrapup 07/19 - 07/26 (13). tmpCD4E. Here is this weeks music making . software. in a weekly wrapup. I will have some vacation now, so I will probably not blog so much in the coming week. ...
Q. I have an M-Audio Keystation 49 usb keyboard. It came with several programs with it to teach piano, but none of them will allow me to simply plug it in and play with sound coming out of the speakers. Is there any software out there (would like free or very cheap) that can do this. Should mention it is for a PC, with either xp or vista.
Asked by Ditka78 - Thu Nov 6 19:16:22 2008 - - 1 Answers - 0 Comments
A. Install Fruity Loops Demo.
Answered by Jay - Thu Nov 6 19:23:34 2008


