架构师在系统开发前期进行架构设计,有助于减少风险、控制成本、保证系统开发的质量。总体而言,进行架构设计有如下好处:
— 能够保证系统的品质
— 使相关利益方达成一致的目标
— 能够指导开发计划的编制
— 可以推进现在架构的完善
— 能够有效的管理系统开发的复杂性
— 为粗粒度和细粒度的复用奠定了基础
— 能够降低系统后期的维护费用
构架设计应考虑的一些因素:
— 程序的运行时结构
1.需求的符合性:正确性、完整性;功能性需求、非功能性需求。
2.总体性能(内存管理、数据库组织和内容、非数据库信息、任务并行性、网络多人操作、关键算法、与网络、硬件和其他系统接口对性能的影响)。
3.运行可管理性:便于控制系统运行、监视系统状态、错误处理;模块间通信的简单性;与可维护性不同。
4.与其他系统接口兼容性。
5.与网络、硬件接口兼容性及性能。
6.系统安全性。
7.系统可靠性。
8.业务流程的可调整性。
9.业务信息的可调整性。
10.使用方便性。
11.架构样式的一致性。
— 源代码的组织结构
1.开发可管理性:便于人员分工(模块独立性、开发工作的负载均衡、进度安排优化、预防人员流动对开发的影响)、利于配置管理、大小的合理性与适度复杂性。
2.可维护性:与运行可管理性不同。
3.可扩充性:系统方案的升级、扩容、扩充性能。
4.可移植性:不同客户端、应用服务器、数据库管理系统。
5.需求的符合性(源代码的组织结构方面的考虑)。