机房重构的代码编写完成后,下一阶段的任务就是画图和文档了。在师父细心的一番指导后,开始动工了。
在数据库设计的时候,自己也有根据自考学习的知识,画了张ER图。到现在系统完成后,回头看之前贴在博客上的那张ER图,也是错漏百出,自己都不知道误导了多少人了。。
今天一开始把ER图给师父看,师父第一个问题就是问ER图是给谁看的?我顿时懵了。师父接着说ER图是给用户看的,你用英文写,用户看的懂吗?
下面就从ER图说起:
ER图,是需要在需求分析文档中出现的,那么就是需要给用户看到的,而不是程序员或者说是开发项目的人。所以说,ER图需要用中文标注,而其中的关系(1:1,M:N)之类的,也是不需要显现的。另外,1:N的关系是不会在ER图中出现的,如果出现的话,那就还需要对数据库的设计进一步优化。比如说,用户对卡包括四种操作:注册、充值、退卡和上下机。而其中的注册和退卡操作都是1:N的关系,所以就不需要再单独设计两个表(注册表和退卡表)。
经过简单修改之后,ER图看着比之前的一张更加简单了些:
第一次接触UML的时候,是用的Rose画的9种图,在画完图之后,很多人都推荐使用EA试试,说功能强大,也很方便。这一次,机房重构,就用EA画的图。
一.用例图
需求分析文档中就要有用例图,让用户明白整个系统是干什么的,有些什么角色,有些什么功能。其中主要的就是包含和扩展两种关系。下面就贴一张操作员的用例图:
在文档中,有一点很重要的就是要有一个详细地说明,光有图,用户是看不懂的。
二.类图
在画类图之前,看了看之前在UML的学习中画的类图,自己都笑了。机房重构下来,系统共分为七层,才明白类图是需要分层画的。
而各个层下面就是系统中自己包含的各个类,其中各类的参数、返回和备注都是不可缺少的组成部分。下面是BLL层的类图:
三.时序图
在详细设计的文档中,时序图是很重要的一部分。因为编写代码的人就是根据时序图去实现功能的,而在这一过程中,每一步都是不可缺少的,必须做到有始有终。最开始必须写明点击什么按钮触发这一过程;这一事件的整个逻辑必须要是完整的,不能说因为简单或是麻烦就省略不画出来了;返回的值也需要有完整的判断,如果成功,接下去怎么做;如果失败又该怎么做;最后就是要有这一过程终止的标志。满足以上要求,才能说一张时序图算是勉勉强强表面上过关了,下面就以一张一般用户查看余额的功能看看修改后的时序图:
四.包图
在第一次画UML的包图的时候,我就没有画,因为当时不理解什么是包,机房收费系统中哪来的包。而机房重构,终于看到了“包”的庐山真面目了,其实就是本篇博客中类图下的一个个叫做包,而在画包图的时候,只需要将这一个个包拖拽过去就行。整个系统的架构也就一目了然,想要具体查看哪一层,也只需要点击就行。而对于各个包中的属性或是方法,也都可设置成不可见,所以下面就是最新的一张包图了:
此次也就谈谈这四种图了,可以说是比较重要的几种图,文档编写也需要将这九种图添加进去。
说完了图,下面就说几个比较重要的文档:
一.需求分析文档
其中需要包括ER图、用例图和模块图。模块图即是将整个系统的功能分模块画出来,这里也就是可分为管理员、操作员和一般用户三个模块。
二.数据库设计
首当其冲的是数据库的命名规则,如表、视图、字段如何命名,必须有一个约定,这样大家才能沟通的起来。其次是一个“三步走”战略,即概念设计、逻辑设计和物理设计。
三.概要设计
包图必须要有的,这样别人才清楚系统的一个框架;其次就是编程中添加的设计模式;最后是系统的类图,而图下面的解释说明也是不可少的。
四.详细设计
包括时序图和IPO图,这一文档更加需要细致地去完成,不然系统是做不出来的。
五.用户手册
需要将系统的各个窗体都截图下来,并且标注用户应当按照怎样的一个思路去操作该系统,而不是让用户看到系统后不知所措或者是瞎点。为了更加清楚些,每张界面截图的下面配有一些说明性的文字那就更完美了,就像我们吃药先要看药品里的说明书一样。
六.项目开发进度
做每件事都要做好计划。一个项目的开发,更加不能缺少规划。所以根据制定的计划,就需要有一张甘特图呈现出来。
学习心得:
实际上,画图和文档都是紧密联系的。在画完图后,经过师父又一番的细心指导,自己才真的是深刻体会到下面比较重要的几点:
1.明白每个文档是写给谁看的。
2.每个文档中应该有的各种图必须清楚。
3.把用户当成傻子,别指望他什么都是知道的。
4.约定是全局,正如米老师经常说的:不谋全局者不足谋一域。没有约定,后面的路是走不下去的。
5.图是画给别人看的,只是自己清楚远远不够,也要让其他人看的明白,做的下去。