Page 25 -
P. 25
8 Chapter 1 Introduction
Product characteristics Description
Maintainability Software should be written in such a way so that it can evolve to
meet the changing needs of customers. This is a critical attribute
because software change is an inevitable requirement of a
changing business environment.
Dependability and security Software dependability includes a range of characteristics
including reliability, security, and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system.
Efficiency Software should not make wasteful use of system resources such
as memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilization, etc.
Acceptability Software must be acceptable to the type of users for which it is
designed. This means that it must be understandable, usable, and
compatible with other systems that they use.
and always try to discover solutions to problems even when there are no appli-
Figure 1.2 Essential
attributes of good cable theories and methods. Engineers also recognize that they must work to
software organizational and financial constraints so they look for solutions within these
constraints.
2. All aspects of software production Software engineering is not just concerned
with the technical processes of software development. It also includes activities
such as software project management and the development of tools, methods,
and theories to support software production.
Engineering is about getting results of the required quality within the schedule
and budget. This often involves making compromises—engineers cannot be perfec-
tionists. People writing programs for themselves, however, can spend as much time
as they wish on the program development.
In general, software engineers adopt a systematic and organized approach to their
work, as this is often the most effective way to produce high-quality software.
However, engineering is all about selecting the most appropriate method for a set of
circumstances so a more creative, less formal approach to development may be
effective in some circumstances. Less formal development is particularly appropri-
ate for the development of web-based systems, which requires a blend of software
and graphical design skills.
Software engineering is important for two reasons:
1. More and more, individuals and society rely on advanced software systems. We
need to be able to produce reliable and trustworthy systems economically and
quickly.