系统架构是一个极具弹性的概念,实际上就是对软甲开发流程的规划。中培伟业《详细设计与系统架构最佳实践》程老师指出,系统架构是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务。软甲开发作为一个复杂和系统的工程,事前做好系统架构,是做好开发的前提。
但如何进行架构设计?是否有可借鉴的设计原则和方法呢?陈老师进一步指出,Mark Schultz在2007年3月发表《Architecture principles: Creating the foundation for robust architecture》一文,从通用架构、业务逻辑、技术、信息与数据、管理、发展趋势、安全性、测试等8方面探讨了在进行系统架构设计时需要考虑的 问题,除了一些软件工程中经常提到的保持易用性、可扩展性、安全性、可测试性等一般原则之外,他对某些问题的强调值得系统架构设计人员深思。
除了国外专家的观点之外 ,对系统架构方面应该注意的问题,程老师也有自己的督导的见解,他从4个方面对系统架构应该注意的问题发表了自己的看法。
1.在通用架构方面
充分重视非功能性需求非功能性需求应该与功能性需求一样进行认真地设计、开发、测试和管理。无论在何处访问,以IT系统架构为基础的应用应该能够提供一个与业务流程集成的一致视图。
2.在业务逻辑方面
在一个业务系统的生命周期内,其稳定性很大程度上取决是所采用的技术是否是可控、可管理的。开发人员总是喜欢尝试新技术的,但新技术能否融合入这个业务系统之中,则需要认真评估。
3.在发展趋势方面
尽可能采用业界成熟的开放标准,在自己试图定义某些协议之前,最好现考察一下是否有现成的协议可用。以前在开发一些智能控制产品时,我们采用了RS485串行总线,但由于RS485是底层协议,于是我们自己定义了一套上层通信协议,而事实证明这种做法很值得商榷。
4.在安全性方面
根据业务目标,风险与安全性之间应该达到一种平衡:不为无谓的风险强化安全性,也不为实在的风险弱化安全性。系统安全程度与系统构建维护成本总是成正比,在系统设计时就需要考虑如何达到一种适度的安全。