This appendix summarizes the architectural requirements to consider.
Functional requirements that are of particular relevance to architecture are generally derived from the analysis mechanisms listed in Appendix A.
|Accessibility||The ease with which different facets of the system are exercised.|
|Aesthetics||The aesthetic quality of the user interface.|
|Consistency||The consistent use of mechanisms employed in the user interface. This applies both within the system, and with other systems.|
|Accuracy||The accuracy of any calculations performed.|
|Availability1||The amount of system "up time."|
|Recoverability||The elegance with which the system recovers from failure.|
|Recovery time||The time to recover from a system failure.|
|Response time||The time for the system to provide a response.|
|Shutdown time||The time for the system to shut down.|
|Start-up time||The time for the system to start up.|
|Throughput||The capacity of the system to support a given flow of information.|
|Adaptability2||The ease with which the system is adapted to new environments.|
|Auditability||The ease with which the system provides audit trails of its execution.|
|Compatibility||The compatibility of this system with previous versions of the system.|
|Configurability3||The ease with which the system is configured.|
|Installability||The ease with which the system is installed.|
|Localizability||The level to which the system supports multiple human languages.|
|Maintainability4||The ease with which the system is maintained.|
|Scalability||The ease with which the system can scale in terms of data volumes and users.|
|Testability||The ease with which the system is tested.|
A design requirement is simply a constraint on the refinement of an analysis mechanism, such as those listed in Appendix A. For example, a requirement for a relational database is a constraint on the refinement of a persistence analysis mechanism. The set of design requirements to consider is therefore derived directly from the list of analysis mechanisms.
|Third-party components||Any constraints on the use and cost of third-party components.|
|Implementation languages||The implementation languages to be used.|
|Platform support||The platforms that the system will support.|
|Resource limits||Limits on the use of resources such as memory and hard disk space.|
|Standards compliance||Any standards to which the system must conform.|
|External systems||External systems with which this system must interface.|
|Interface formats||The format of any data passed between this system and external systems.|
|Shape||The shape of the resulting hardware housing the system.|
|Size||The size of the hardware housing the system.|
|Weight||The weight of the hardware housing the system.|
1 Availability is also known as robustness.
2 Adaptability is also known as evolvability, plugability and upgradeability.
3 Configurability is also known as customizability, extensibility and flexibility.
4 Maintainability is also known as serviceability.