O'Reilly logo

Codecharts: Roadmaps and blueprints for object-oriented programs by J. Nicholson, Amnon H. Eden

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 1

Motivation

Existing means for representing design decisions are deeply flawed. These flaws are at the root of many of the common problems in software development and maintenance. Understanding these essential difficulties will motivate our presentation.

The history of software engineering is often told as the history of monumental failures. The very name of the discipline has been intimately tied with the “software crisis” [Naur & Randell 1969]: a syndrome associated with the abundance of ambitious software development projects which end up as “a monster of missed schedules, blown budgets, and flawed products” [Brooks 1987]. With time, pundits came to describe this on-going state of affairs as “software's chronic crisis” [Gibbs 1994] and even “software hell” [Carr 2004]. Indeed, even laymen have come to accept the fact that software used in daily life suffers from a higher rate of errors that any other commodity.1 What explanations can be offered for this situation?

In “No Silver Bullet”, Frederick Brooks [1987] attributes the difficulties that software development projects face to four inherent properties of their products: complexity, conformity, invisibility, and changeability:2

  1. Complexity. By any measure, software systems are the most complex manufactured artefacts ever built by humankind—nuclear power stations, transatlantic jets and space stations notwithstanding. Many software systems are constituted of hundreds and thousands of components, each potentially manufactured ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required