What is software?
Before we discuss software development or software engineering it is important to know whether we understand the term "Software" precisely. A textbook description of software might take the following form:
Software is:
· Instructions (computer programs) that when executed provide the desired function and performance,
· Data structures that enable the programs to adequately manipulate information, and
· Documents that describe the operation and the use of the programs.
From the above definition it is important realize that software is not only the "Executable Programs" but includes several other elements that support them in their operation. Therefore software is not just a single element, but it is a package.
Types of Software Products
From the development perspective, Software products fall into two broad classes.
1. Generic Products (Off-the-shelf products)
These are information systems which are produced by a development organization and sold on the open market to any customer who is interested to buy them.
2. Bespoke Products (Custom-built products)
These are systems which are requested by a particular customer. The software is developed specially for that customer by some contractor.
Comparison of Generic and bespoke Software
Generic Software | Bespoke Software |
Less expensive (Cost divided among several clients) | More expensive (Cost is charged from a single client ) |
More reliable (Proven track record & beta testing) | Less reliable (At least initially failures may occur) |
Immediate installation | Delay due to high development time |
More users friendly (because software is built to sell in the open market) | Fewer users friendly |
User requirements are not completely satisfied | Completely satisfied |
Cannot accommodate future changes | Can easily accommodate future requirements and do custom changes at any time |
Other Classification of Software
System software
The system software is directly controlling the hardware resources and supports the operation of application software. Such software includes:
· Operating systems
· Program translators
· Utility software
Application Software
Application software serves the user requirements in a particular application domain. They can be categorized as follows:
· Business software
· Scientific and engineering software
· Real-time software
· Embedded software
· Personnel computer software
· Artificial intelligence software
The type of software is an important consideration in software engineering because it influences the choice of process, techniques and tools used for developing the software.
Software Product Attributes
The attributes of a software product are the characteristics displayed by the product once it is installed and put into use. These are not the services provided by the product. Rather, they are concerned with the product's dynamic behavior and the use made of the product. Examples of these attributes are therefore efficiency, reliability, maintainability, robustness, portability and so on.
Maintainability:
It should be possible to change the software to meet the changing needs of the customers.
Dependability
Software dependability includes a range of characteristics such as reliability, safety and security. Dependable software should not cause physical or economic damage in the event of system failure.
Efficiency
Software should not make wasteful use of resources such as money and processor time
Usability
Software should have an appropriate user interface and adequate documentation to allow users to easily use the software.
No comments:
Post a Comment