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.
   20   21   22   23   24   25   26   27   28   29   30