Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Introduction to software engineering (2nd ed.)
Leach R., Chapman & Hall/CRC, Boca Raton, FL, 2016. 428 pp. Type: Book (978-1-498705-27-1)
Date Reviewed: Dec 15 2016

In this second edition book on software engineering, the author follows the same organizational structure as the first edition. The book is intended as a textbook for undergraduate students on the topic of software engineering and places an emphasis on systematically developing software systems by reusing code written by others, and not on designing from scratch. The book is still structured in a traditional manner and is composed of nine chapters.

The book commences by introducing the topic of software engineering. It introduces the reader to various classical and recent methods, and presents a good overview of the various software development models. In addition, quick overviews of metrics and cost estimation are also introduced. Chapter 2 provides a quick introduction to software project management including introducing topics that enable good development practices such as coding guidelines, scheduling, and estimation. Additionally, the chapter introduces a case study on agile development that is continued through the rest of the chapters.

Chapters 3 through 5 address requirements, design, and coding. In chapter 3, the author introduces requirements gathering and management. The chapter places the necessary focus on increasingly pursuing formal, complete requirements from the initial informal gathering phase, and the case study highlights the agile approach to the development of requirements. It combines the categorization of requirements into multiple categories, such as usability, while also introducing techniques such as decision trees and state diagrams for clarifying specifications. The next chapter, chapter 4, focuses on software system design. This chapter addresses design patterns, procedural and object-oriented software design, architecture, design metrics, and reviews. The case study focuses on the development of large reusable components by matching software patterns to stated software requirements. In the following chapter, chapter 5, the author introduces tradeoffs/choices in programming languages, coding metrics, coding guidelines, standards and styles, code reviews and inspections, and configuration management.

Next, the book addresses the issues of testing, integration, delivery and installation, and software maintenance. Chapter 6 discusses different testing techniques such as white-box and black-box testing, test case design and test strategies, the additional needs in testing object-oriented software, and system integration methods. It introduces the concept of software as a service over a cloud deployment, stress testing, performance testing, and the issue of managing changes in the integration process. It also introduces the concepts of software assurance and reliability. Chapter 7 focuses on delivery installation and documentation, including the focus on online documentation and training. Chapter 8 introduces and discusses different types of software maintenance, including corrective and adaptive maintenance, and introduces topics such as software evolution, make versus buy, and reuse versus re-engineer. It also very briefly introduces students to the concept of total life cycle costs, an often forgotten area of software development that is critical outside academia for effective software planning and management on a global scale.

The book concludes with an outline of various topical research areas in software engineering research across the various topics introduced in the book. In summary, the book is a well-written introductory text for undergraduate students. The adoption of a running case study is quite useful to thread the various topics together into a coherent framework for enabling learning.

The only minor flaw (if I have to name one) is the strong organization of the book (and hence the case study) in a classical waterfall model, while stressing agile development.

Reviewer:  Srini Ramaswamy Review #: CR144969 (1703-0168)
Bookmark and Share
  Featured Reviewer  
 
General (D.2.0 )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Development of distributed software
Shatz S. (ed), Macmillan Publishing Co., Inc., Indianapolis, IN, 1993. Type: Book (9780024096111)
Aug 1 1994
Fundamentals of software engineering
Ghezzi C., Jazayeri M., Mandrioli D., Prentice-Hall, Inc., Upper Saddle River, NJ, 1991. Type: Book (013820432)
Jul 1 1992
Software engineering
Sodhi J., TAB Books, Blue Ridge Summit, PA, 1991. Type: Book (9780830633425)
Feb 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy