software is a logical rather than a physical system element. Therefore, software has characteristics that are considerably different from those of hardware. Some of the major differences are the following: 1. software is developed or engineered, it is not manufactured. • The concept of raw material is non existent here. It is better visualised as a process, rather than a product. • The human element is extremely high in software development, compared to manufacturing. • The development productivity is highly uncertain, even with standard products, varying greatly with skill of the developers. • The development tools, techniques, standards, and procedures vary widely across and within an organisation. • Quality problems in software development are very different from those in manufacturing. Whereas the manufacturing quality characteristics can be objectively specified and easily measured, those in the software engineering environment are rather elusive. 2. Software development