Loading ...
Sorry, an error occurred while loading the content.

REVIEW: "Software Engineering", Ian Sommerville

Expand Messages
  • Rob, grandpa of Ryan, Trevor, Devon & Ha
    BKSFTENG.RVW 20020916 Software Engineering , Ian Sommerville, 2001, 0-201-39815-X, C$104.95 %A Ian Sommerville ian@software-engin.com %C P.O. Box 520,
    Message 1 of 1 , Dec 24, 2002
      BKSFTENG.RVW 20020916

      "Software Engineering", Ian Sommerville, 2001, 0-201-39815-X, C$104.95
      %A Ian Sommerville ian@...
      %C P.O. Box 520, 26 Prince Andrew Place, Don Mills, Ontario M3C 2T8
      %D 2001
      %G 0-201-39815-X
      %I Addison-Wesley Publishing Co.
      %O C$104.95 416-447-5101 fax: 416-443-0948
      %O http://www.amazon.com/exec/obidos/ASIN/020139815X/robsladesinterne
      %P 693 p.
      %T "Software Engineering, Sixth Edition"

      Part one is an overview. Chapter one is an introduction, a FAQ
      (Frequently Asked Questions list), definitions, and, interestingly, a
      section on ethics. A broad review of system development concepts
      (such as emergent properties) is presented as computer based software
      engineering, in chapter two. Stages in the software development
      process, none detailed, are listed in chapter three. Project
      management is discussed in chapter four.

      Part two looks at software requirements. Chapter five examines
      different types of requirements. Requirements engineering is software
      engineering in miniature, as chapter six points out. There is a heavy
      emphasis on the Universal Modeling Language (UML) in chapter seven's
      explanation of system models. The benefits and dangers of software
      prototyping are examined in chapter eight. Chapter nine points out
      that formal specification does require special training on the part of
      users, but can identify problems in requirements specifications.
      (More extensive examples would be helpful in making this point more

      Part three reviews design, and the chapters are mostly divided by
      system type. Chapter ten explains architectural design, and reviews
      tools and models. (Security, and other concerns, are addressed
      throughout the book: an example in this chapter points out that
      interrupt driven architectures are complex and difficult to validate.)
      Distributed systems architecture itself gets oddly short shrift in
      chapter eleven, which concentrates on client/server and CORBA (Common
      Object Request Broker Architecture). Object-oriented design is shown
      to be very much like modular design in chapter twelve. (The stated
      objective of the text is to introduce UML, but the explanations are
      not very clear.) Chapter thirteen looks at real-time software design
      but does not seem to be as complete as other topics. Design with code
      reuse is a good overview, but chapter fourteen starts out with the
      statement that electrical and mechanical engineers rely on component
      reuse, ignoring the lack of a broad range of standard components in
      the software environment. There are good, basic suggestions for user
      interface design, in chapter fifteen, although the discussion is
      limited. For example, the recommended principles suggest confirmation
      of destructive actions, but don't note the fact that even such
      confirmations become automatic over time, and therefore are not
      particularly useful.

      Part four deals with critical systems. Chapter sixteen looks at
      dependability in terms of availability, reliability, safety, and
      security. Critical systems specification, in chapter seventeen,
      examines dependability (and failure) metrics. Risk analysis is
      discussed, but not in the usual combination of probability and
      severity. Critical systems development is examined both in terms of
      fault avoidance and fault tolerance in chapter eighteen.

      Part five covers verification and validation. Chapter nineteen
      concentrates on code inspection and the Cleanroom process. Software
      testing, in chapter twenty, looks at types, cases, and procedures.
      Critical systems validation, in chapter twenty one, is basically the
      same process as the previous chapter, but more important.

      Part six, on management, is mostly a precis or list of principles from
      other sections. Chapter twenty two deals with managing people,
      looking at limits, motivation, group dynamics, recruiting, and
      keeping, as well as a quick overview of the People Capability Maturity
      Model (P-CMM). It's not a large section, but it is nice to see the
      importance of personnel recognized in this way. Software cost
      estimating, in chapter twenty three, is interesting, but possibly not
      terribly useful. Quality management is dealt with in chapter twenty
      four. Chapter twenty five reviews process improvement and the
      Capability Maturity Model (CMM), mentioning the work of Walter Deming
      but not, intriguingly, dealing with the fact that Deming's later work
      suggested that business had gone overboard in the pursuit of quality.

      Part seven deals with evolution and change. Chapter twenty six
      discusses legacy systems with a description of mainframe program
      structures and guidelines for the assessment of the possibilities for
      updating the system. Software change is reviewed in chapter twenty
      seven, with maintenance and re-architecting leading to a description
      of re-engineering in chapter twenty eight. Chapter twenty nine
      finishes off with configuration management, emphasizing version
      documentation more than change control.

      The book is written as a textbook, with a summary of key points and a
      very decent set of exercises at the end of every chapter. It
      certainly stands above the other systems development texts that I have
      experienced. However, this work also has value beyond the classroom.
      A great many professionals, such as information security officers,
      need to know the operations, procedures and concepts of software
      engineering without necessarily being programmers themselves. For
      these people, this volume makes a clear and excellent reference.

      copyright Robert M. Slade, 2002 BKSFTENG.RVW 20020916

      rslade@... rslade@... slade@... p1@...
      Find book info victoria.tc.ca/techrev/ or sun.soci.niu.edu/~rslade/
      Upcoming (ISC)^2 CISSP CBK review seminars (+1-888-333-4458):
      February 10, 2003 February 14, 2003 St. Louis, MO
      March 31, 2003 April 4, 2003 Indianapolis, IN
    Your message has been successfully submitted and would be delivered to recipients shortly.