Software
Overview
Software is a collection of instructions and data that tell a computer how to work. This is in contrast to physical hardware, from which the system is built and actually performs the work. The software includes the operating system, which controls the hardware and provides services for the execution of the applications; and the application software, which accomplishes specific user tasks. In computer science and software engineering, software is all information processed by computer systems, programs, and data.
History
The concept of software was first proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem. The term "software" was first used in this sense by John W. Tukey in 1957. In computer science and software engineering, computer software is all information processed by computer systems, programs, and data. Computer software includes computer programs, libraries, and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.
Types of Software
There are two main types of software: system software and application software. System software controls a computer’s internal functioning, chiefly through an operating system, and also controls such peripherals as monitors, printers, and storage devices. Application software, by contrast, directs the computer to execute commands given by the user and may be said to include any program that processes data for a user.
System Software
System software is a type of computer program that is designed to run a computer's hardware and application programs. If we think of the computer system as a layered model, the system software is the interface between the hardware and user applications. The operating system (OS) is the best-known example of system software. The OS manages all the other programs in a computer.
Application Software
Application software is a program or group of programs designed for end-users. Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, an email client, a media player, a file viewer, simulators, a console game, or a photo editor. The collective noun application software refers to all applications collectively.
Software Development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process.
Software Development Life Cycle
The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
Software Development Methodologies
Software development methodologies are management practices for software development projects. They are designed to structure, plan, and control the process of developing an information system. Common methodologies include waterfall, prototyping, iterative and incremental development, spiral development, rapid application development, and agile.
Software Licensing
Software licenses typically are either proprietary, free or open source - the latter two being the subject of a vibrant debate, as they are seen as being more user-friendly. Proprietary software is placed under the exclusive copyright, and a software license grants limited usage rights. Free and open-source software is that which, by a licensing arrangement, grants recipients extensive rights to modify and distribute the software.