INTRODUCTION TO SOFTWARE ENGINEERING
Have you ever noticed how the invention of one technology can have profound and unexpected effects on other seemingly unrelated technologies, on commercial enterprises, on people and even on culture as a whole? This phenomenon often called:-
“THE LAW OF UNINTENDED CONSEQUENCES”.
Today, computer software is the single most important technology on the world stage, and software is also a prime example of the “Law of Unintended Consequences”.
No one could have foreseen that over the past 50 years, software become embedded in system of all kinds. i.e. Banking, Medical, Transportation, Entertainment and so on. And if we believe in the Law of Unintended ...view middle of the document...
WHY IS SOFTWARE IMPORTANT?
Software affects nearly every aspect of our lives and has become pervasive in our commerce, our culture and our everyday activities.
THE EVOLVING ROLE OF SOFTWARE:
The role of computer software has undergone significant change over a span of little more than 50 years. Dramatic improvements in Hardware performance profound change in Computing architectures, vast increases in Memory and Storage capacity and a wide variety of exotic input and output options have all precipitated more sophisticated and complex computer based system.
Today, a huge software industry has become a dominant factor in the economies of the industrialized world.
The “LONE PROGRAMMER” of the earlier Software era has been replaced by teams of Software Specialists, each focusing on one part of the technology required to deliver a complex application. And yet the questions that were asked at the “Lone programmer” era are the same questions that are asked when modern Computer-based Systems are built:
• Why does it take so long to get software finished?
• Why are development costs so high?
• Why can’t we find all errors before we give the software to our customers?
• Why do we spend so much time and effort maintaining existing programs?
• Why do we still have difficulties in measuring progress as software is being developed and maintained?
These questions and many others demonstrate the Software industry’s concern and the manner in which it is developed, a concern that has lead to the adoption of Software Engineering practice.
To gain and understanding software, it is important to examine the Characteristics of Software that makes it different from other things than human beings build.
Considering that software is a Logical rather than Physical system element, the Software has characteristics that are considerable different than those of hardware.
1) Software is Developed or Engineered. It is not manufactured in the classical sense. Although some similarities exist between software development and hardware manufacturing, yet the two activities are fundamentally different.
2) Software does not wear out but deteriorates due to changes.
• Software is not susceptible to the environment maladies that cause hardware to wear out. Software undergoes changes during its life. As changes are made, it is likely that errors will be introduced; causing the failure and thus increased failure rate indicates the decoration of software as a result of change.
• Another aspect of Software and Hardware differences caused by wear-out is that:-
When a Hardware component wears out, It is replaced by a spare part.
There are no software spare parts. Every Software failure indicates an
error in design, or in program coding, therefore, Software