num_pages: 190
description: A newer edition of this book is now available; click on See all formats and editions above for details.This book addresses the topic of software how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design which is managing complexity. It then discusses philosophical issues about how to approach the software design process and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems so that you can write software more quickly and cheaply.
language: English
title: A Philosophy of Software Design
publisher: Yaknyam Press