Page 12 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 12
Principles of Software Engineering
Notes
Let us consider the development of iron-making technology. In antique times,
very few people knew about iron making. Those who knew about it kept it a
closely-guarded secret. This esoteric knowledge used to get transferred from
generation to generation as a family secret. Slowly, technology graduated
from art to craft form, where tradesmen shared their knowledge with their
apprentices and the knowledge pool continued to grow. Much later, through
a systematic organization of knowledge, and incorporation of scientific basis,
modern steel-making technology has evolved.
Critics point out that many of the methodologies and guidelines provided by
the software engineering discipline lack scientific basis, are subjective, and
are often inadequate. Yet, there is no denying the fact that adopting software
engineering techniques facilitates development of high quality, software in a
cost-effective and efficient manner. Software engineering practices have proven
to be indispensable to the development of large software products-though
exploratory styles can often be successfully used to develop small programs.
1.4 Software Characteristics
The software has a very particular characteristic e.g., “it does not exhaust”. Its performance and
nature is quite diverse than other products of human life. A comparison with one such case, i.e.,
constructing a bridge in comparison with writing a program is given in Table 1.1. Both activities
require different processes and have different characteristics.
Table 1.1: A Compression Between Constructing a Bridge
and Writing a Program
Sr. No. Constructing a bridge Writing a program
1. The problem is well understood. Only some parts of the problem are
understood, others are not.
2. There are many existing bridges. Every program is different and
designed for special applications.
3. The requirements for a bridge Requirements typically change during
typically do not change much all phases of development.
during construction.
4. The strength and stability of a Not possible to calculate correctness
bridge can be calculated with of a program with existing methods.
reasonable precision.
5. When a bridge collapses, there is a When a program fails, the reasons are
detailed investigation and report. often unavailable or even deliberately
concealed.
6. Engineers have been constructing Developers have been writing
bridges for thousands of years. programs for 50 years or so.
7. Materials (wood, stone, iron, steel) Hardware and software changes
and techniques (making joints in rapidly.
wood, carving stone, casting iron)
change slowly.
Some of the important characteristics are discussed:
6 LOVELY PROFESSIONAL UNIVERSITY