题
我试图拿出一份清单或一组问题的标准来评估和评价拟议的或突发的体系结构(执行建筑的评论).什么是最重要的问题你问什么时候试图计划、评估或审查的一个建筑?
我知道这是一个大的主题,所以我想限制它对单个端-端系统和不结构的整个组织。
代码完成 提供了一个体面的起点:
建筑
- 是的总体组织的程序的清晰,其中包括一个好的 概述和建筑 理由?
- 是的模块很好的定义,包括其功能和 其接口的其他模块?
- 所有列出的功能要求复理智,通过 不过多或过少的模块?
- 是的建筑设计为容纳有可能改变吗?
- 有必要购与建造的决策包括在内?
- 不结构说明如何重新使用代码将作出符合 其他建筑的目标?
- 是所有主要数据结构的背后,隐藏访问程序?
- 是的数据库组织和内容合理的?
- 是的所有关键算法描述并说明理由?
- 是所有主要对象的描述和理由?
- 是的战略,处理用户输入的所描述的?
- 是一种战略,用于处理I/O描述并说明理由?
- 是关键的方面的用户接口的定义?
- 是的用户界面的模块化,以便在它的变化不会影响 剩下的程序?
- 记忆使用的估计和战略存管理 描述并说明理由?
- 不会的建筑空间和速度的预算为每个模块?
- 是一种战略,用于处理串的描述,并字符串 储存估计值提供了?
- 是一个连贯一致错误的处理战略提供了?
- 是错误的消息管理作为一个设定出一个清洁的用户接口?
- 是一个级别的稳健指定?
- 是的任何一部分或下设计的?是的期望 这一地区设置了明确的?
- 是主要的系统目标的明确说明?
- 不整个建筑一起挂在概念上?
- 是顶级设计独立的机和 语言,将用于 实现它吗?
- 是的动机所有主要的决策提供了?
- 是你,作为一个程序员会实施该系统,舒服 该架构?
我在寻找实际知识的例子,例如,什么是最痛苦的一点在建筑你们创建?
解决方案
基于我的研究,这里有一些建筑审查清单我发现做这个问题一个小小的更多的公正,并提供一些背景什么的架构的审查。(似乎是有点混乱的关于它在这里.)
这些潜在的候选人包括许多不同的类别。总体重要性,这些类别将有所不同,根据业务需求。恕我直言,这是确定。这是多少代价高昂的问另一个问题时通过一份清单,审查和排除这不是错过了一个问题或者类别完全是因为它似乎没有足够重要,包括在清单开始。
- "软件架构的审评指南"通过亚历山大*诺瓦克
- "审查清单,用于建筑设计文件[s]"汤姆Verhoeff
- "清单:建筑和设计审查"从Microsoft模式和做法的开发中心
- "概念性的架构清单"克雷格Borysowich
- "应用程序拱导2.0知识基础:清单的建筑和设计"J.D.Meier,亚历克斯Homer,et al.(找到通过彼得Stuer的链路)
- "TOGAF构遵守审查清单"离开小组
- "结构审查进程"通过里奇Ho
那也似乎是一个白色的-纸编写的关于这一主题,虽然我还没有阅读。它试图回答这个问题的约11页。
- 建筑的评论:实践和经验 通过Maranzano,Rozsypal、et al。
另外一个同事建议一套书,从斯普林格,尽管我没有检查任何这些出自己:
- 企业工程系列 从斯普林格
其他提示
你怎么测试
它不会使用固体原则?
是有一个人可以负责架构有足够的 (1)技术知识的拟议架构, (2)管理经验的事情, (3)站在公司因此,他决定不能替代管理谁不知道事情。
由于(2)和(3)不真正依赖的架构,我会找到的人并要求他什么他就喜欢做的事。
现在假设你就是那个人(和那不是显而易见,从你的问题-这只适用于如果你认为你仍然会是一个总设计师这件事情一段时间),我会带一个 建议的Joel在软件的博客 和编写设计说明书,与计划、目标、客户,解释设计的选择,一切。应该明确的看法。
后来的想法
我试着想出的一点作为为什么确切的问题,你可能会问自己,你已经书面说明书,如'是很容易地更新自己的项目','不允许的灵活性,最终目标的','它会让事情容易支持','是否有任何安全问题,'等等, 但是,尽管这是值得询问这样的问题,我根本看不到任何方式,他们可能被用于任何'评价',因为其他与过滤出来的明显的错误我不认为任何 具体 问题会有多大帮助'的评估的建筑.也许是你的问题将受益于改写?