SOFTWARE ENGINEERING CH1 - CH6
software - correct answer-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 - correct answer-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 - correct answer-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 - correct answer-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 - correct answer-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 - correct answer-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 - correct answer-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."
computer software - correct answer-The product that software professionals build and then
support over the long term. It encompasses programs that execute within a computer of any
size and architecture, content that is presented as the computer programs execute, and
descriptive information in both hard copy and virtual forms that encompass virtually any
electronic media.
software engineering - correct answer-(1) The application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of software; that is,
the application of engineering to software. (2) The study of approaches as in (1). It is a
process, set of methods, and an array of tools. Software engineers build and support
software, and virtually everyone in the industrialized world uses it either directly
or indirectly. A concerted effort should be made to understand the problem before a software
solution is developed; design becomes a pivotal activity; and software should exhibit high
quality and be maintainable.
civil engineering - correct answer-
scrum - correct answer-(the name is derived from an activity that occurs during a rugby
match) An agile software development method conceived by Jeff Sutherland and his team in
the early 1990s. Principles are consistent with the agile manifesto and are used to guide
development activities within a process that incorporates the following framework activities:
requirements, analysis, design, evolution, and delivery.
Within each framework activity, work tasks occur within a process pattern called a sprint. The
work conducted within a sprint (the number of sprints required for each framework activity