标签:
在修这门课之前,我头脑和实操中写的编代码都还停留在一个小的工程中,或许简单的一个project就能解决绝大部分问题。但是这一个学期的学习之后,我对软件的开发有了一个新的认识。当我认为有些问题可以通过编程解决的时候,那就不能只放眼于具体的代码实现阶段,而是需要用一个类似于软件构架师的思维和角度去仔细思考和斟酌如何才能设计出一个体系结构相对合理,存储方式比较简洁的产品项目。起初我认为这并不难,我一直将代码的编写放在一个软件的重中之重上,因为我觉着它最费脑筋;但是学习完软件体系结构这门课程之后,我不这么想了。我认为完善的需求分析和设计尽可能少bug的用例图、ER图、UML类图才是最为关键的。如果把一个软件比做人的话,那这些编程前细致入微的设计是一个软件的“骨架”,是一个软件的硬壳,那么代码的规范书写就是人体内的血管和神经。如果我们的骨骼搭建不好,那无论类中函数写的多么规范、无误,最终都会与骨架相碰,自毁。
说了很多自己的理解,下面谈谈这门课真正练到的东西。首先是需求分析,其实在软工的课程中也讲过,一款软件的需求分析在设计之初尤为重要,这是地基。所以我们在“考勤助手”的设计当中也是尽可能地把用户的需求完善,做到每个用户各司其职。结合需求分析的ER图的设计其实是比较复杂的,因为必须要考虑清楚每个实体集之间的联系情况,是多对多、多对一等等。其次是用例图,如果你的需求能够定好,那用例图的设计自然不会太难。我设计时就能根据当时对需求的构想写出用户的操作流,include和extend也是能够很好地帮助我完成对用例图的设计,表明用户接下来需要做的步骤。最后就是时序图和类图,其实从ER图开始,我认为接下来的时序图和UML类图也同样需要对敲和斟酌,一个小的疏忽可能在你设计的某个时刻被发现,从而带来“翻天覆地”的变化,所以需要不断地返工和完善这两项设计。
直至现在,我也不敢说自己的设计是正确的,因为是第一次进行软件体系的架构,有很多地方一开始不太懂,感觉软件架构的意识不强,导致时序图不知道怎么画,如何入手;不懂UML里控制类如何串联起边界类和实体类。不过这正是学习的过程,如今我感觉对体系架构有了初步的认识,希望自己在以后碰到类似的设计工作时,能够合理的运用学过的东西,逐渐培养起软件架构的意识。
感谢您一直以来的指导,StarUML感觉很好用,尤其是mac版本的界面看着挺舒服,多亏了您的推荐!希望我们考勤助手的架构能令您满意,因为留学的原因,也希望能够取得一个好的成绩,谢谢您!
标签:
原文地址:http://www.cnblogs.com/GG-TEN/p/5559908.html