Page 23 -
P. 23

6   Chapter 1   Introduction


                     Question                                 Answer

                     What is software?                        Computer programs and associated documentation.
                                                              Software products may be developed for a particular
                                                              customer or may be developed for a general market.
                     What are the attributes of good software?  Good software should deliver the required
                                                              functionality and performance to the user and should
                                                              be maintainable, dependable, and usable.
                     What is software engineering?            Software engineering is an engineering discipline that
                                                              is concerned with all aspects of software production.

                     What are the fundamental software engineering  Software specification, software development,
                     activities?                              software validation, and software evolution.
                     What is the difference between software  Computer science focuses on theory and
                     engineering and computer science?        fundamentals; software engineering is concerned
                                                              with the practicalities of developing and delivering
                                                              useful software.

                     What is the difference between software  System engineering is concerned with all aspects of
                     engineering and system engineering?      computer-based systems development including
                                                              hardware, software, and process engineering. Software
                                                              engineering is part of this more general process.

                     What are the key challenges facing software  Coping with increasing diversity, demands for reduced
                     engineering?                             delivery times, and developing trustworthy software.

                     What are the costs of software engineering?  Roughly 60% of software costs are development
                                                              costs; 40% are testing costs. For custom software,
                                                              evolution costs often exceed development costs.

                     What are the best software engineering techniques  While all software projects have to be professionally
                     and methods?                             managed and developed, different techniques are
                                                              appropriate for different types of system. For example,
                                                              games should always be developed using a series of
                                                              prototypes whereas safety critical control systems
                                                              require a complete and analyzable specification to be
                                                              developed. You can’t, therefore, say that one method
                                                              is better than another.
                     What differences has the Web made to software  The Web has led to the availability of software
                     engineering?                             services and the possibility of developing highly
                                                              distributed service-based systems. Web-based
                                                              systems development has led to important advances
                                                              in programming languages and software reuse.


                                      Software engineers are concerned with developing software products (i.e., soft-
                  Figure 1.1 Frequently
                  asked questions about  ware which can be sold to a customer). There are two kinds of software products:
                  software
                                    1.  Generic products These are stand-alone systems that are produced by a develop-
                                        ment organization and sold on the open market to any customer who is able to
   18   19   20   21   22   23   24   25   26   27   28