Toward higher-level abstractions for software systems
Date of Original Version
Can archive pre-print and post-print or publisher's version/PDF Important: Although publishers have default policies, individual journals may have special permissions, especially if they involve other organisations or have paid open access options. Always run a journal title or ISSN search to check.
Abstract or Description
Software now accounts for most of the cost of computer-based systems. Over the past thirty years, abstraction techniques such as high level programming languages and abstract data types have improved our ability to develop software. However, the increasing size and complexity of software systems have introduced new problems that are not solved by the current techniques. These new problems involve the system-level design of software, in which the important decisions are concerned with the kinds of modules and subsystems to use and the way these modules and subsystems are organized. This level of organization, the software architecture level, requires new kinds of abstractions. These new abstractions will capture essential properties of major subsystems and the ways they interact.