| Line 1: |
Line 1: |
| − | '''Software''' is [[computer]] code that is converted ("compiled") into a machine-readable [[Binary|binary]] program capable of performing complex operations. Software is differentiated from [[hardware]], which is a physical computer attribute, such as a monitor or [[hard drive]]. There are many different types of software, ranging from something as central to the computer as its [[operating system]] such as [[Windows]] or [[Tails (operating system)|Tails OS]], to such productivity-based software like [[Microsoft Office]], to purely entertainment software like [[video games]]. | + | '''Software''' is [[computer]] code that is converted ("compiled") into a machine-readable [[binary]] program capable of performing complex operations. Software is differentiated from [[hardware]], which is a physical computer attribute, such as a monitor or [[hard drive]]. There are many different types of software, ranging from something as central to the computer as its [[operating system]] such as [[Windows]] or [[Tails (operating system)|Tails OS]], to such productivity-based software like [[Microsoft Office]], to purely entertainment software like [[video games]]. |
| | | | |
| | ==Functional types== | | ==Functional types== |
| | *'''System software''' - Software which runs the various necessary functions of a computer system. The operating system is a collection of vital system software<ref name="classification-of-software">https://prezi.com/dbxyq-gz1dle/classification-of-software</ref> | | *'''System software''' - Software which runs the various necessary functions of a computer system. The operating system is a collection of vital system software<ref name="classification-of-software">https://prezi.com/dbxyq-gz1dle/classification-of-software</ref> |
| − | *'''Applications''' - Programs which run within a preexisting software environment which perform a wide variety of tasks. These programs can be generic such as a word processor, or specialized bespoke solutions like an air traffic control system.<ref name="classification-of-software">https://prezi.com/dbxyq-gz1dle/classification-of-software</ref><ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Applications''' - Programs which run within a preexisting software environment which perform a wide variety of tasks. These programs can be generic such as a word processor, or specialized bespoke solutions like an air traffic control system.<ref name="classification-of-software"/><ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> |
| − | **'''Programming tools, frameworks, etc.''' - One type of application is a program which creates or supports other programs. Code compilers, script frameworks, and other such software generate or facilitate applications, but are themselves applications.<ref name="classification-of-software">https://prezi.com/dbxyq-gz1dle/classification-of-software</ref> | + | **'''Programming tools, frameworks, etc.''' - One type of application is a program which creates or supports other programs. Code compilers, script frameworks, and other such software generate or facilitate applications, but are themselves applications.<ref name="classification-of-software"/> |
| | | | |
| | ==Classification== | | ==Classification== |
| | To better define software, it is often classified into smaller groups. The follow are the common classifications used: | | To better define software, it is often classified into smaller groups. The follow are the common classifications used: |
| − | *'''System software''' - runs the various necessary functions of a computer system<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''System software''' - runs the various necessary functions of a computer system<ref name="ecomputernotes.com"/> |
| − | *'''Real-time software''' - monitors and controls real world events as they take place (for example, military defense systems)<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Real-time software''' - monitors and controls real world events as they take place (for example, military defense systems)<ref name="ecomputernotes.com"/> |
| − | *'''Business software''' - used for managing and controlling basic business functions (Inventory management, payroll, etc.)<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Business software''' - used for managing and controlling basic business functions (Inventory management, payroll, etc.)<ref name="ecomputernotes.com"/> |
| − | *'''Engineering and scientific software''' - used for research and development of technology (used in astronomy and space travel, product design, etc.)<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Engineering and scientific software''' - used for research and development of technology (used in astronomy and space travel, product design, etc.)<ref name="ecomputernotes.com"/> |
| − | *'''Artificial intelligence''' - used for non-algorithmic problem-solving, where advanced comprehension and logic is needed<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Artificial intelligence''' - used for non-algorithmic problem-solving, where advanced comprehension and logic is needed<ref name="ecomputernotes.com"/> |
| − | *'''Web-based software''' - uses basic information on remote devices (such as Internet servers) to generate a versatile interface for end-users (web browsers are a common example of such software)<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Web-based software''' - uses basic information on remote devices (such as Internet servers) to generate a versatile interface for end-users (web browsers are a common example of such software)<ref name="ecomputernotes.com"/> |
| − | *'''Personal computer software''' - Whether a word processor, graphics editor, or media player, this software is designed for typical end-users from their local computer<ref name="ecomputernotes.com">http://ecomputernotes.com/software-engineering/characteristics-and-classification-of-software</ref> | + | *'''Personal computer software''' - Whether a word processor, graphics editor, or media player, this software is designed for typical end-users from their local computer<ref name="ecomputernotes.com"/> |
| | | | |
| | ==See also== | | ==See also== |