SOFTWARE ENGINEERING
CH1 - CH6 WITH COMPLETE
VERIFIED SOLUTIONS
software
Affects nearly every aspect of our lives and has become pervasive in our
commerce, our culture, and our everyday activities. As a product, it
delivers the computing potential embodied by computer hardware or by a
network of computers that are accessible by local hardware. It is an
information transformer—producing, managing, acquiring, modifying,
displaying, or transmitting information. As the vehicle used to deliver the
product, it acts as the basis for the control of the computer (operating
systems), the communication of information (networks), and the creation
and control of other programs (software tools and environments).
definition of software
Instructions (computer programs) that when executed provide desired
features, function, and performance. Data structures that enable the
programs to adequately manipulate information. Descriptive information
in both hard copy and virtual forms that describes the operation and use
of the programs
software vs hardware
Software has one fundamental characteristic that makes it considerably
different from hardware: software doesn't "wear out." 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 the
process through which design was translated into machine executable
code. Therefore, the software maintenance tasks that accommodate
requests for change involve considerably more complexity than hardware
maintenance.
hardware curve
The "bathtub curve" indicates that hardware exhibits relatively high
failure rates early in its life (these failures are often attributable to design
or manufacturing defects); defects are corrected and the failure rate
drops to a steady-state level for some period of time. As time passes,
however, the failure rate rises again as hardware components suffer from
the cumulative effects of dust, vibration, abuse, temperature extremes,
and many other environmental maladies.
, software curve
Software is not susceptible to environmental maladies. In theory,
therefore, the failure rate curve for software should take the form of the
"idealized curve." Undiscovered defects will cause high failure rates early
in the life of a program. However, these are corrected and the curve
flattens. Software doesn't wear out, but it does deteriorate! As changes
are made, it is likely that errors will be introduced, causing the failure rate
curve to spike. 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
deteriorates due to change.
legacy software
Hundreds of thousands of computer programs fall into one of the seven
broad application domains. Some of these are state-of-the-art software—
just released to individuals, industry, and government. Other programs
are older, in some cases much older, and are often referred to as this. The
focus of continuous attention and concern since the 1960s, Dayani-Fard
and his colleagues describe it in the following way: "... developed decades
ago and have been continually modified to meet changes in business
requirements and computing platforms. The proliferation of such systems
is causing headaches for large organizations who find them costly to
maintain and risky to evolve." Liu and his colleagues extend this
description by noting that "many remain supportive to core business
functions and are 'indispensable' to the business." Characterized by
longevity and business criticality; sometimes poor quality, inextensible
designs, convoluted code, poor or nonexistent documentation, test cases
and results that were never archived, a poorly managed change history.
legacy software evolution
If the legacy software meets the needs of its users and runs reliably, it
isn't broken and does not need to be fixed. However, as time passes,
legacy systems often evolve for one or more of the following reasons:
• The software must be adapted to meet the needs of new computing
environments or technology.
• The software must be enhanced to implement new business
requirements.
• The software must be extended to make it interoperable with other more
modern systems or databases.
• The software must be re-architected to make it viable within a evolving
computing environment.
The goal of modern software engineering is to "devise methodologies that
are founded on the notion of evolution;" that is, the notion that software
systems continually change, new software systems are built from the old
ones, and . . . all must interoperate and cooperate with each other."
CH1 - CH6 WITH COMPLETE
VERIFIED SOLUTIONS
software
Affects nearly every aspect of our lives and has become pervasive in our
commerce, our culture, and our everyday activities. As a product, it
delivers the computing potential embodied by computer hardware or by a
network of computers that are accessible by local hardware. It is an
information transformer—producing, managing, acquiring, modifying,
displaying, or transmitting information. As the vehicle used to deliver the
product, it acts as the basis for the control of the computer (operating
systems), the communication of information (networks), and the creation
and control of other programs (software tools and environments).
definition of software
Instructions (computer programs) that when executed provide desired
features, function, and performance. Data structures that enable the
programs to adequately manipulate information. Descriptive information
in both hard copy and virtual forms that describes the operation and use
of the programs
software vs hardware
Software has one fundamental characteristic that makes it considerably
different from hardware: software doesn't "wear out." 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 the
process through which design was translated into machine executable
code. Therefore, the software maintenance tasks that accommodate
requests for change involve considerably more complexity than hardware
maintenance.
hardware curve
The "bathtub curve" indicates that hardware exhibits relatively high
failure rates early in its life (these failures are often attributable to design
or manufacturing defects); defects are corrected and the failure rate
drops to a steady-state level for some period of time. As time passes,
however, the failure rate rises again as hardware components suffer from
the cumulative effects of dust, vibration, abuse, temperature extremes,
and many other environmental maladies.
, software curve
Software is not susceptible to environmental maladies. In theory,
therefore, the failure rate curve for software should take the form of the
"idealized curve." Undiscovered defects will cause high failure rates early
in the life of a program. However, these are corrected and the curve
flattens. Software doesn't wear out, but it does deteriorate! As changes
are made, it is likely that errors will be introduced, causing the failure rate
curve to spike. 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
deteriorates due to change.
legacy software
Hundreds of thousands of computer programs fall into one of the seven
broad application domains. Some of these are state-of-the-art software—
just released to individuals, industry, and government. Other programs
are older, in some cases much older, and are often referred to as this. The
focus of continuous attention and concern since the 1960s, Dayani-Fard
and his colleagues describe it in the following way: "... developed decades
ago and have been continually modified to meet changes in business
requirements and computing platforms. The proliferation of such systems
is causing headaches for large organizations who find them costly to
maintain and risky to evolve." Liu and his colleagues extend this
description by noting that "many remain supportive to core business
functions and are 'indispensable' to the business." Characterized by
longevity and business criticality; sometimes poor quality, inextensible
designs, convoluted code, poor or nonexistent documentation, test cases
and results that were never archived, a poorly managed change history.
legacy software evolution
If the legacy software meets the needs of its users and runs reliably, it
isn't broken and does not need to be fixed. However, as time passes,
legacy systems often evolve for one or more of the following reasons:
• The software must be adapted to meet the needs of new computing
environments or technology.
• The software must be enhanced to implement new business
requirements.
• The software must be extended to make it interoperable with other more
modern systems or databases.
• The software must be re-architected to make it viable within a evolving
computing environment.
The goal of modern software engineering is to "devise methodologies that
are founded on the notion of evolution;" that is, the notion that software
systems continually change, new software systems are built from the old
ones, and . . . all must interoperate and cooperate with each other."