chapter-1
chapter-1
Definition of Software
Software is:
1. Instructions (computer programs) that when executed provide desired features, function, and performance;
2. Data structures that enable the programs to adequately manipulate information, and
3. Descriptive information (documents) in both hard copy and virtual forms that describes the operation and
use of the programs.
Characteristics of software
Software is developed or engineered; it is not manufactured in the classical sense.
The two activities (software development and hardware manufacturing) are fundamentally different. In
both activities, high quality is achieved through good design, but the manufacturing phase for hardware
can introduce quality problems.
Software doesn’t “wear out.” But it does deteriorate!
Software is not susceptible to the environmental maladies that cause hardware to wear out. In theory,
therefore, the failure rate curve for software should take the form of the “idealized curve” shown in Figure
This seeming contradiction can best be explained by considering the actual curve in Figure 1.2. During its
life, software will undergo change. As changes are made, it is likely that errors will be introduced, causing
the failure rate curve to spike as shown in the “actual curve” .Before the curve can return to the original
steady-state failure rate, another change is requested, causing the curve to spike again. Slowly, the
minimum failure rate level begins to rise—the software is deteriorating due to change.
Although the industry is moving toward component-based construction, most software continues to
be custom built.
2. Incremental Model:
The incremental model combines elements of linear and parallel process flows .Referring to Figure the
incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each
linear sequence produces deliverable “increments” of the software.
Disadvantages:
RAD needs enough human resources to create the required number of RAD teams.
If developers and customers are not committed to the rapid model, the RAD project fails.
Rapid-fire activities need to be completed in very short or small time frame. Time is the major constraint
in RAD.
RAD has to be modularized in a proper way otherwise creates a lots of confusions and problems.
In case of high performance requirement, RAD cannot be ideal model. Still if RAD model has to be used
then it can be done by making tune between interface and system components.