架构应定义程序的主要构造。
每条列在需求中的功能都至少要有一个构造块覆盖。
架构应该详细定义所用的主要类。
架构应该描述主要文件和数据表的设计。
数据通常只应该由一个子系统直接访问。
用户界面在需求阶段进行详细说明。如果没有,就在架构阶段进行。要详细定义web页面格式、GUI、命令行接口。
架构应该模块化,以便更换新界面时不影响后台。
架构应该描述一份管理稀缺资源的计划。包括数据库链接,线程,句柄等。
架构应该描述设计和代码层面的安全性的方法。要建立威胁模型。
其他还有性能、可伸缩性、互用性、国际化、本地化、输入输出、错误处理。
编程约定: 要达到这样的精确度:在编写完软件之后,几乎不可能改变软件所遵循的编码约定。