昨天下午在伟东组长的带领下开始了我们机房收费系统的验收工作.伟东组长很负责,我们组是最后一个结束的,从三点半一直进行到六点.下面总结一下在这次验收的过程中自己的学习收获.
这次是自己换了一个角度来审视自己的系统,与伟东组长和爱岗一起来看我们所做的机房收费系统.发现好多自己钻在机房收费系统中所不能发现的问题,同时也解决了自己的好多疑惑.
1 Rational Rose? Or Enterprise Architect(EA)?
先看一下两个软件的大小.Rational Rose是592M,
Enterprise Architect(EA)是33.4M
如果单从文件大小来考虑的话,一般情况下软件越大,功能会更多.(通常的逻辑).然而通过这次验收的过程中发现并不是这样子,我画UML图是用的Rational Rose,也知道有Enterprise Architect也可以画UML.但是在验收的过程中组长介绍了EA画UML图有更大的灵活性和智能型.例如EA可以双向工程我们现在所用的VB.Net.
双向工程包括正向工程(从模型到代码)和反向工程(从代码到模型).而对于我们这种初学者而言,双向工程的功能非常的使用,可惜的是我所用的Rational Rose 并不支持,而Enterprise Architect 对此功能支持很好.看一下两个软件双向工程支持的语言对比
从总体上看Rose支持更多语言的双向工程.但是恰恰我么现在所用的VB.Net Rational Rose并不支持.(其实并不是不支持,而是Rational 专门针对.NET环境的 Rational XDE for .NET )
小结:不管Rational Rose也好 Enterprise Architect(EA)也罢,他们都是UML的一种工具,其中最重要的是UML本身,而工具好与坏的一个很好的标准是此工具是否适合你的需求.这次更适合我的应该是EA(虽然我现在还没有用过)但是多了解相关工具还是很有必要.
2 画时序图中如何画接口和实现接口的DAL层里面的类的"关系"
接触UML也有一段时间了,但是对里面的图具体如何的去画还是存在了许多疑虑.其中就有这样的一个疑虑,就是在画时序图的时候如何去画接口和实现接口的DAL层里的具体类,如图:
关于此问题,我们小组经过了讨论.最后通过VS生成的时序图进行反向学习.看VS是如何处理这个关系的.最后发现,VS根本没有我自己写的最后一个类DalCardInfo,而是用一个实例CreateInstance:ICardInfo.也就是说,我上面话的ICardInfo接口和DalCard类之间的实现关系是不需要话的,这两个应该是一个整体,也就是实现接口的那个类CreateInstance:ICardInfo.如此,解决了自己的疑惑.出现此疑惑的原因是自己对知识的理解不深所造成的.
如图2:
小结:时序图中工厂创建接口的实现类,而后BLL层调用接口的方法,在时序图中没有必要将此接口和其实现同时放到时序图中,可以只放接口或者按照VS序列图中的样例将此事例命名为CreateInstant:InterfaceName。同时在此过程中也体现这一种学习方法.反向学习,UML图的画法不是一下就可以学会的,需要代码和模型的相互不断的进行反向验证.在不断的验证中提高自己UML画图水平.
3 命名规范.关于命名规范.各个公司,各个地方的规范会有一些不同,我们要做的是适应.在哪个位置去适应那里的规范,除非到了某一天自己是制定规范的那个人. 我们现在是在提高班,就应该按照提高班的命名规范进行.这是毫无疑问的,适者生存!
通过昨天下午的验收工作自己的收获很大.在不知不觉中一下午已经过去,而自己还没有回过来神.发现了自己身上存在的问题,同时开阔了自己的眼界,了解了一些个新的工具,技术和思想.
真的认为米老师的这种安排非常的智慧.自己学习研究完成一个系统,然后通过小组的形式进行讨论验收,让大家在技术上和思想上都有一个提高.这种智慧用米老师的话叫做:教育管理.