9.1. 9.1 The Situation in Software Design

Software has been used successfully in standardizing and automating many areas of enterprise and industry. However, software is having trouble achieving similar success in its own realm. Compared to other industries such as building construction or manufacturing, software development has seen less increase in productivity and quality. Now, when software design is being studied in a more formal way, it is necessary to consider the reasons for this difference.

By providing an analysis of how software is currently developed, it is possible to gain insights that may change this situation. Software systems produced by software designers and programmers can be accessed usually only through descriptions such as the source code or executable code. At the source code level, designers and programmers can only see programming language constructs - functions, classes and so on - whose size is small relative to the scale of most software systems. It is therefore difficult to notice larger structures by just inspecting a software system at the level of its source or executable code. This lack of visibility of larger structures in software systems is an important cause of the seeming complexity that is commonly associated with software systems [RM97].

Other industries, such as building construction, have an advantage over the software industry due to their ability to manage the complexity of their products and development process [RM97] [Ben97]. This ...

Get Patterns for Parallel Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.