好的架构设计应该具有以下几点:
1.良好的模块化.每个模块职责明晰,模块之间的送耦合,模块内部高聚合并合理地实现信息隐藏.
2 .适应功能需求的变化,适应技术的变化.应该保持应用相关模块和领域通用模块的分离,技术平台相关模块和独立于具体技术的模块分离从而达到"隔离变化"的效果.
3.对数据的良好规划.
4. 明确灵活的部署规划.
软件架构的关键因素:非功能需求;功能需求;非功能需求可能来自用户.因为用户不光要功能,用户也需要质量.如性能,易用性等软件质量属性;质量属性差的软件系统大多数是不会成功的.因此在架构设计时,应该牢记软件的使用者---用户,不仅要满足用户的提出的功能要求,也要达到用户期望的质量.
非功能需求可能来自开发者和升级维护人员.软件的可扩展性,可重用性,可移植性,易理解性和易测试性等等非功能的需求.