针对各架构主题:
1、 程序的整体组织结构是否清晰,是否包含一个良好的架构全局观(及理由)?
2、 是否明确定义了主要的构造块(包括每个构造块的职责范围及与其他构造块接口)?
3、 是否描述并论证了那些最关键的类?
4、 是否描述并论证了数据设计?
5、 是否详细定义了数据库的组织结构和内容?
6、 是否指出了所有关键的业务规则,并描述对系统的影响?
7、 是否描述了用户界面设计的策略?
8、 是否将用户界面模块化,是界面变更不会影响程序其余部分?
9、 是否描述并论证了处理I/0的策略?
10、是否估算了稀缺资源(如线程、数据库连接、句柄、网络宽带等)的使用
11、是否描述了架构的安全需求
12、架构是否为每个类、每一个系统或每一个功能域提出空间和预算时间
13、架构是否描述了如何达到可伸缩性?
14、架构是否关注互操作性?
15、是否描述国际化/本地化的策略?
16、是否提供一套内聚的错误处理策略?
17、是否规定了容错的方法(如果需要)?
18、是否证实了系统各个部分的技术可行性?
19、是否详细描述了过度工程的方法?
20、是否包含了必要的“买vs造”的决策?
21、架构是否描述了如何加工和复用的代码,使之符合其他架构目标
22、是否将架构设计得能够适应可能出现的变更?
架构整体质量:
1、 架构是否解决了全部需求?
2、 有没有那个部分是“过度架构”或“欠架构”?
3、 整个架构是否概念上协调一致?
4、 顶层设计是否独立于用作实现他的机器和语言?
5、 是否说明了主要的决策的动机?
6、 你,作为一名实现该系统的程序员,是否对这个架构感觉良好?
本文摘自<代码大全>