在给用户做售前工作时,讲软件架构基本是必选科目。而售前工作里的架构图,常常和开发的具体工作没什么关系。而在一个软件开发的初期,的确是需要进行架构设计的,这个架构会用于指导开发。但是却不会用于售前。
之所以出现这个问题,是因为架构表述的受众不同。对于售前工作,听众是用户,讲架构的目的是通过原理明确软件能干什么。对于开发工作,架构是实际软件的结构设计和技术考量。目的不同自然展示的方法会不同。
对于开发工作,架构设计是为了在软件的顶层设计阶段,明确哪些架构因素,必须在总体结构设计上进行考虑。
架构的 4+1 划分方法具有启发意义。
参考:
https://blog.csdn.net/taoge512/article/details/81224430
https://www.ibm.com/developerworks/cn/rational/r-4p1-view/
对于单一应用开发,大部分架构是有参考的,架构设计本身难度不大(但有好坏之分)。对于多应用(产品、工具)配合的大项目,架构方案上会基于现有的产品和工具(开源或收费)进行设计,这时的架构设计是比较难的,相应的人才也比较稀缺。
但对于售前来说,基本划分为:
功能架构 和 技术架构。
为了能解释清楚常常还会用 体系架构、逻辑架构、部署架构等划分多个架构图,展现软件的功能范畴和实现原理。