Flexible, Reliable Software: Using Patterns and Agile Development (Hardback) book cover

Flexible, Reliable Software

Using Patterns and Agile Development

By Henrik B. Christensen

Chapman and Hall/CRC

527 pages | 86 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781420093629
pub: 2010-05-04
$85.95
x
eBook (VitalSource) : 9781420093636
pub: 2011-06-21
from $28.98


FREE Standard Shipping!

Description

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.

Reviews

…This book brings together a careful selection of topics that are relevant, indeed crucial, for developing good quality software with a carefully designed pedagogy that leads the reader through an experience of active learning. The emphasis in the content is on practical goals—how to construct reliable and flexible software systems—covering many topics that every software engineer should have studied. The emphasis in the method is on providing a practical context, hands-on projects, and guidance on process. … The text discusses not only what the end product should be like, but also how to get there. … I know that this book will be a great help for many of my students on the path from a novice programmer to a mature, professional software developer.

—From the Foreword by Michael Kölling, originator of the BlueJ and Greenfoot environments, co-author of the best-selling Objects First with Java, and author of the best-selling Introduction to Programming with Greenfoot

Table of Contents

BASIC TERMINOLOGY

Agile Development Processes

Reliability and Testing

Flexibility and Maintainability

THE PROGRAMMING PROCESS

Pay Station Case

Test-Driven Development

Build Management

THE FIRST DESIGN PATTERN

Deriving Strategy Pattern

Refactoring and Integration Testing

Design Patterns—Part I

Coupling and Cohesion

VARIABILITY MANAGEMENT AND 3-1-2

Deriving State Pattern

Test Stubs

Deriving Abstract Factory

Pattern Fragility

COMPOSITIONAL DESIGN

Roles and Responsibilities

Compositional Design Principles

Multi-Dimensional Variance

Design Patterns—Part II

A DESIGN PATTERN CATALOGUE

Facade

Decorator

Adapter

Builder

Command

Iterator

Proxy

Composite

Null Object

Observer

Model-View-Controller

FRAMEWORKS

Introducing MiniDraw

Template Method

Framework Theory

OUTLOOK

Configuration Management

Systematic Testing

PROJECTS

The HotGammon Project

The HotCiv Project

Bibliography

Index

Index of Sidebars/Key Points

A summary, selected solutions, review questions, and exercises appear at the end of most chapters.

About the Author/Editors

Henrik Bærbak Christensen is an associate professor in the Department of Computer Science at the University of Aarhus, where he has been teaching advanced design and programming techniques for more than ten years to young students and seasoned developers. Dr. Christensen is also the owner of Imhotep, a company specializing in consulting and courses in software development.

About the Series

Chapman & Hall/CRC Textbooks in Computing

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COM051010
COMPUTERS / Programming Languages / General
COM051230
COMPUTERS / Software Development & Engineering / General
COM051300
COMPUTERS / Programming / Algorithms