What is Software?
Software can be described as a collection of instruction that is executed to get desired functionalities. It is different from a program in the sense that software includes programs, documentation and operating procedures.
Characteristics of software compared to hardware
- Software is developed, not manufactured.
- Does not wear out.
- Has reusable components.
- Flexible.
Types of software
System software
Software that provides a platform to other software such as Microsoft Windows, GNU/Linux, macOS.
Application Software
Programs designed for end users like Notepad, Firefox, Media players.
Engineering/Scientific Software
Software built with techniques and formulae specific to specific scientific or engineering field, examples are MATLAB, AUTOCAD.
Embedded Software
Programs that control machines or devices such as Traffic light control mechanism, Motorcycle dashboard display.
Product-line Software
A group of products sharing common features that are used to satisfy specific needs of a mission like MS Office supporting home use, business use, enterprise use etc.
Web Application Software
Programs that are run on web servers and are accessed through a web browser, examples are Gmail, Facebook etc.
Artificial Intelligence Software
Software that is capable of intelligent behaviour, like in Robotics, Game Playing etc.
Legacy Software System
Software systems that were developed decades ago which becomes costly and risky to maintain and evolve.
Software Engineering
Software engineering can be defined as a systematic and disciplined engineering approach applied for building and maintaining software.
It is a layered technology comprising
- Quality focus is its central support element since improving the quality of process and products through quality improvement techniques is the organisation’s main focus.
- The process layer provides a framework for the management of software project.
- The method layer includes methods such as communication, design, coding and other technical aspects for the development of software.
- The tools layer provides supporting tools for the Method and Process layers.
Thq maam