这里的结构并不是指程序语言中的结构,那个结构是一种数据类型,我们这里的结构是指软件概要设计、详细设计中经常提到的一个概念,比如功能结构、系统结构等。结构经常和架构被混用,导致很多人认为是一个概念,实际上,结构和架构还是有些区别的,架构更侧重于框架布局和各组成部分之间的关系,而结构更侧重于内部构成,可见这是两个概念,举一个很平常的例子,网页的框架图是指网页的元素布局,而网页的结构则表示网页的元素构成。所以我们以后不能将业务框架叫成业务结构,显然是不对的。
再说功能结构,功能结构实际上就是描述一个系统或者模块内部的功能构成,就是有哪些功能。这个功能结构图很重要,因为单纯去看功能的文字描述,是很难让人有个比较直观的感觉,如果将这些功能用一个结构图表示出来就清晰多了。功能结构图一般会需求文档、实施方案、概要设计、详细设计都可能会涉及,但主要还是用在概要中。下面我针对功能结构图分享一些建议。
1、功能结构图尽量使用PPT画。实际上比较简单的图或者能够使用PPT画出来的图尽量用PPT来画,因为一般汇报用PPT比较多,这样既方便展示又方便修改。当然也可以使用脑图,但是脑图并不适用正式场合的展示,内部讨论是可以的;
2、功能结构图只需要画出功能的构成就可以,建议只需要画出2~3级即可,最多不要超过四级,太多了就看不明白了,有些乱。什么意思呢?就是假如模块有4级,我们只画出2~3级,如果非要画第四级,可以另外用一张图来表现;
3、功能结构图的表现形式有很多种,有树状图、框图等,树状图一般是类似组织结构图一样的,即倒树状结构,或者是金字塔结构的,这种的展现比较多。也有类似脑图的那种辐射图,那到底用哪一个比较合适呢?一般的规则是,不太复杂的、尤其用于汇报用的结构图,建议使用框图;对于复杂度中等、正式文档中使用的建议使用金字塔结构图;如果非常复杂的、内部交流使用的,建议使用脑图的辐射状展现方式。这里强调一下,到底使用哪种方式,并没有行业约束,你可以从展示难度、用户体验上去综合考虑。
4、功能结构图也有很多的变种,就是将功能结构图与流程图、框架图结合在一起,虽然感觉有些别扭,但是既然存在,也有它合理的地方。但是对于复杂系统来说,还是要分开用功能结构图和业务流程图、框架图来表示,这样会更加清晰。
5、功能结构图是对功能结构的展现,本质上要求我们对功能的划分有深入的理解,就是说我们得先了解系统和模块可以由哪些功能构成,比如说,用户管理模块由注册、登陆、修改密码等功能构成。弄明白这些,就可以画功能结构图了。如果对功能的划分没把握,建议使用脑图画个初稿,定稿后再转为PPT。
上面描述的是功能结构图,系统结构图是类似的,只不过系统结构内部元素是模块而已,其他的没什么不同。举一反三,类似的结构图也是如此。
关于结构的讲述就到此为止,下节我们聊聊网络拓扑图。欢迎大家阅读。