Computer software, or simply software is any set of machine-readable instructions that directs a computer' a computer'ss processor to perform specific operations. Computer software contrasts with computer with computer hardware, which hardware, which is the physical component of computers. Computer hardware and software require each other and neither can be realistically used without the other.
Computer software includes computer includes computer programs, libraries programs, libraries and their associated documentation. The word software is also sometimes used in a more narrow sense, meaning application meaning application software only. Software is stored in computer in computer memory and cannot be touched i.e. it is intangible. intangible.[1] At the lowest level, executable code consists of machine language instructions specific to an individual processor individual processor – typically a central a central processing unit (CPU). A machine A machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state. For example, an instruction may change the value stored in a particular storage location inside the computer – an effect that is not directly observable to the user. An instruction may also (indirectly) cause something to appear on a display of the computer system – a state change which should be visible to the user. The processor carries out the instructions in the order they are provided, unless it is instructed to "jump" to a different instruction, or interrupted. Software written in a machine language is known as "machine code". However, in practice, software is usually written in high-level in high-level programming languages that are easier and more efficient for humans to use (closer to natural to natural language) than language) than machine language. language.[2] Highlevel languages are translated, using compilation using compilation or or interpretation interpretation or a combination of the two, into machine language. Software may also be written in a low-level low-level assembly assembly language, language, essentially, a vaguely mnemonic vaguely mnemonic representation of a machine language using a natural language alphabet. Assembly language is translated into machine code using an assembler. an assembler. Computer hardware is the collection of physical elements that constitutes a a computer computer system. Computer hardware refers to the physical parts or components of a computer such
as the monitor, the monitor, mouse, mouse, keyboard, keyboard, computer computer data storage, hard storage, hard drive disk (HDD), system unit (graphic cards, sound cards, memory, motherboard and chips), etc. all of which are physical objects that can be touched. touched .[1] In contrast, software contrast, software is instructions that can be stored and run by hardware. Peopleware is a term used to refer to one of the three core aspects of computer technology, the other two being hardware being hardware and software. and software. Peopleware Peopleware can refer to anything that has to do with the role of people in the development or use of computer software and hardware systems, including such issues as developer productivity, teamwork, group dynamics, the psychology of programming, project management, organizational factors, human interface design, and human-machine-interaction