设计复杂系统却没有系统架构图,那就像没地图开车,不知道该往哪儿走。
在学校或者小团队里,通常没有规范的架构设计,前后端和各个文件的调用都是在用的时候才设计,缺乏整体规划。
但是呢,在大团队开发复杂系统软件时,没有架构设计意识会让各个开发人员之间合作困难,没法形成文档和技术经验积累,后期优化和维护也就难了。
拿UML画的架构图来说,一般包括图例和制图两部分,图例用来解释图中的意思,制图呢,就是用图例组合成整个架构。关于DLS系列的具体语法和图例,这儿就不细说了,主要讲讲程序设计的常用规则。
架构图通常用带圆角的方框表示子模块,但一个子模块可能包含多个功能集,当这些功能不是一直运行时,就需要用链接来描述。
首先是模块,模块是程序功能的基本单位,需要用线程或进程实现并行的模块。对于库,包括主模块中的lib或.so,当子模块功能不是一直运行时,应该以库的形式描述模块,并允许主模块用API来调用子模块。
然后是箭头,交互方式是架构图的关键。不同的交互方法通过箭头的颜色区分,在时序图中需要有相应的函数调用。
架构师围着架构图,按照原有模块绘制数据流图,数据流图不用展示函数方法,但需要清晰展示输入输出的内容。架构图中的箭头→也是为了数据流转服务。
那需要绘制哪些数据呢,这个根据项目目标或者输出功能来决定,具体展现给用户的功能如何从原始数据加载出来,都需要描绘出来。 要是需要详细描述的话,就会涉及到整个系统的路径,这部分不应该由应用开发自己决定。
在流程图和时序图中,得写清楚触发时机和触发条件,以及相关模块的动作,还要注明返回值和串并行动作。
数据流程图中的数据,得附上样例和传输方式。
总结一下
-
系统架构图在复杂系统设计中非常重要,缺乏它会导致开发混乱和无从下手。
-
大型团队项目需要规范化架构设计,形成文档和技术经验积累,便于后期优化和维护。
-
使用UML绘制的架构图和数据流图有助于描述程序功能的模块化和交互方式,需要详细描述数据流转和模块动作,并附上样例和传输方式。