![]() | MSc-IT Study Material January 2011 Edition Computer Science Department, University of Cape Town | MIT Notes Home | Edition Home | |
Architecture refers to the software being developed. Specifically, the software's architecture is the structure of the software: the components that make up the software and how these components are brought together.
Through abstraction, the software's architecture can also be represented at different levels of detail. At lower levels of abstraction, software architecture is concerned with classes, objects, and their interrelationships; at higher levels, the components we consider are the systems and subsystems which make up the software.
The software's architecture is one of the most important aspects of a software system. As such, it should be considered early in the process of analysis and design. A poorly developed architecture is a high-risk factor in software development.
A number of models can be used to represent the software's architecture:
Structural models represent the program's components (such as class diagrams).
Framework models attempts to discover portions of the architecture that can be reused in similar programs. These reusable portions are called frameworks.
Dynamic models show how the architecture may change over time, especially when the software needs to react to external events (such as sequence diagrams).
Process models show the business / technical processes that the software captures (such as data-flow diagrams).
Functional models shows the software's functional hierarchy.