Flexible, Reliable Software: Using Patterns and Agile Development

Henrik B. Christensen

May 4, 2010 by Chapman and Hall/CRC
Textbook - 527 Pages - 86 B/W Illustrations
ISBN 9781420093629 - CAT# C3622
Series: Chapman & Hall/CRC Textbooks in Computing

USD$81.95

Add to Wish List
FREE Standard Shipping!

Features

  • Shows how to use agile testing and patterns for software design
  • Discusses the benefits and liabilities of each approach
  • Presents fifteen design patterns as well as the principles behind them
  • Provides source code for all examples and projects, installation guides, and other resources on www.baerbak.com

Pedagogical Features

  • Incorporates two elaborate projects that provide learning contexts for students to acquire the necessary skills
  • Summarizes key concepts at the end of chapters
  • Includes review questions, exercises, and selected solutions

Summary

Flexible, Reliable Software: Using Patterns and Agile Development guides students through the software development process. By describing practical stories, explaining the design and programming process in detail, and using projects as a learning context, the text helps readers understand why a given technique is required and why techniques must be combined to overcome the challenges facing software developers.

The presentation is pedagogically organized as a realistic development story in which customer requests require introducing new techniques to combat ever-increasing software complexity. After an overview and introduction of basic terminology, the book presents the core practices, concepts, tools, and analytic skills for designing flexible and reliable software, including test-driven development, refactoring, design patterns, test doubles, and responsibility driven and compositional design. It then provides a collection of design patterns leading to a thorough discussion of frameworks, exemplified by a graphical user interface frramework (MiniDraw). The author also discusses the important topics of configuration management and systematic testing. In the last chapter, projects lead students to design and implement their own frameworks, resulting in a reliable and usable implementation of a large and complex software system complete with a graphical user interface.

This text teaches  how to design, program, and maintain flexible and reliable software. Installation guides, source code for the examples, exercises, and projects can be found on the author’s website.