在跟老孟取了很多经后验收uml我还是出了很多的问题。但是不得不承认,我和老孟都对uml有了更多的感受。
一、用户到底是谁。
这次开会后,我最大的感受是基本了解到底机房收费系统到底是给谁用的。
“你觉得机房收费系统是给谁用的呢?”
我不经大脑回答了“学生”。
“那你之前敲的学生信息管理系统你觉得是给谁用的?”
我才慢慢反应过来,弱弱的说了一句是给“老师”用的。
“你去网吧的时候那个系统是给谁用的?”
当我回答是网管的时候我才有点明白原来机房收费系统应该主要是给老师或管理机房的人用。
无论是画uml图还是写软工文档,我都出现一个很严重的错误就是没有明确用户到底是谁,有时候想的是老师,有时候想的是学生(有时候想的是给老师工作的学生=-=。)
二、什么是系统边界。
所谓边界,也就是将这个系统看成一个黑盒子,和外界的交互。
例如:
"这,是一个黑色的立方体,长45厘米,宽23厘米,高3厘米,盒子的每个角都不尖锐,上方平坦,并有柔软质感;下方在四角之处都有凹进去的螺丝口,可以接杆子,以作凳子用。"
这就是仅仅对其功用的描述,其目标是作凳子用。这可以看作是功能性需求,当然如果还有一些约束,例如:
"此立方体可以承受300斤胖人之重"。
这就可以看作是非功能性需求。但同样还是在描述边界。而对于其内部构造如何,在需求中不要描述,例如:
盒子是空心的还是实心的,材质用钢板还是木头。
这都不是需求,而是已经在设计了。
需求所描述的系统边界,即系统包含的功能与系统不包含的功能之间的界限。用UML中的用例图来表示是比较简洁的。如下图:
三、不能孤立看图
举个例子说,用例图、类图和时序图之间刚开始画的时候我直接开了三个rose窗体,每个都另存为一个地方,可是慢慢往后学就发现越来越不对劲,我以为时序图里面的对象都是自己重新设计的,消息也是自己编写的事实上不是这样的。
在刚开始看很多人时序图博客的时候我就很奇怪为什么有些博客在对象上有很多差别。
比如:一般用户这个符号为什么是例图中一般用户的样子,上机为什么后面带着冒号,细心一点还会发现传递的消息为什么和类图中的方法一模一样,到验收的时候我才明白时序图里面无论是对象还是消息都不是自己现编写,它都是跟类图和用例图有着千丝万缕的关系,这也是为什么看很多博客的时候会有很多差别。
四、总结
我觉得每个阶段的学习只是自己一味的探索是远远不够的,我的学习感觉更多的来自于老孟和师傅们的帮助,所以,有问题的时候可以先和自己组的同学探讨一下,说不定效果会更好。