Architecturally, software types can generally be described as belonging to one of three basic categories: i) applications, ii) operating systems, or iii) middleware. Applications are software programs providing functionality focused on a particular task for end users, and as noted above, may reside locally on a machine or be delivered remotely. Examples of common software applications for individual household and office users include text processing programs, electronic spreadsheets, desktop publishing programs or various e- mail and web browsing applications. Operating systems reside locally, and serve as the platform interface between the hardware system and other types of user software programs while also providing services (e.g. file print). Middleware is a broad category of software ranging from task-specific functionality to platform-type functionality that permits applications to operate across operating systems and interoperate despite being written in different computer languages. Most software products have a fairly limited product life cycle; it is not uncommon for new versions of many software applications and operating systems to be released every few years. This is in marked contrast to other traditionally manufactured goods, such as furniture, major appliances and automobiles, which often can be expected to last for a decade or more. [1]

A particular category of software is embedded software, which denotes a type of software permanently embedded in a given hardware unit. This software is integral to the product, where it resides on a long-term basis, and by necessity it must be extremely reliable. Unlike other types of software, embedded software is sold as part of the hardware product on which it resides.  Medical device manufacturers, the consumer electronics industry, the automobile industry, the mobile phone industry, robotics makers and the telecommunications industry all make heavy use of embedded software applications. The market for embedded software is growing at a rapid pace and a large part of it is considered to be outside the traditional software-producing sector.

Increasingly high-speed digital networks are transforming software delivery from a physical carrying device used to install the software on a machine to remote software delivery via the Internet. Out of this a concept called software-as-a-service (SaaS) is evolving, which while in an early stage of market adoption, shows many signs of gaining market share in the coming years. SaaS has the advantage of being able to deliver software applications without customers needing to incur some of the traditional overhead expenses involved with…

Unlock the rest of this article with a 14 day trial

Already have an account?
Login here