Software is intangible Hard to understand development effort Software is easy to reproduce Cost is in its development —in other engineering products, manufacturing is the costly stage
Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction —Works as long as the data is simple Adding data abstractions —Groups together the pieces of data that describe some entity
The recurring aspects of designs are called design patterns. A pattern is the outline of a reusable solution to a general problem encountered in a particular context Many of them have been systematically documented for all software developersto use