前一段出差耽误了,后来CSDN的Blog就一直上不来,现在终于可用了,赶紧补上。
总则
本次讲座虽然冠名以“UML实作细节”,我却觉得叫做“UML与用例驱动开发”更为合适。当然,我能体会到think的良苦用心——体现讲座的实践价值,凸现“聚焦最后一公里”的理念,不过这个名字还是容易使人误解,以为就是平常教UML的讲座。实际上,讲座涵盖了软件开发前期(分析和设计)的几个基本过程,并且通过实际案例,带领我们实践了整个过程。对我来说,最大的收获就在于实践过程中的诸多细节,或者纠正了误解,澄清了迷惑,或者印证了自己原本不太清晰的一些想法。下面的复习笔记就是对此的记录。
首先,应该看到当代软件开发方法论虽然百花齐放,诸如UP,XP,FDD等各自拥有大批拥护者,然而其中都体现了同样的核心思想:
1.迭代开发过程——这是最基本的要素,Ivar Jacobson在中国之行中曾经提到,即使最基本的,最简单的实际软件项目(他认为10人即是大的开发团队),也应该采用迭代开发——让瀑布式开发见鬼去吧!
2.基于架构——在当代软件,特别是商用软件中,怎么强调架构的重要也不过分
3.用例驱动——各种方法可能术语不同,比如UP中叫Use Case,XP中叫User Story,其中定义的表现形式不同,可实际表达的本质都是一致的——从用户的视角去观察软件的价值;
4.面向对象——尽管各种方法都没有限制必须采用面向对象的思想,但对于大多数项目而言,显然OO是必选项,也拥有最多的最佳实践案例。
这里应当注意,不要把UML和这些方法相混淆,UML是一种语言,一种表现形式,它并没有告诉我们应该做什么和怎么做,只是帮助我们想法记录下来,以便与他人交流。在我看来,UML的最大好处就在于为大家提供了一套既严谨又容易理解的标准符号,就像英语一样,程序员的世界从此缩小了距离。在实际中,UML的九种图不必一一用到,不要为了用UML而用UML,而应该把UML视为工具,需要用才用。最重要的是“用例图”“类图”和“序列图”。
。 软件开发的分析与设计过程可以分为以下几个步骤:
0.业务建模
1.获取需求
2.需求分析-静态结构
3.需求分析-动态行为(特征)
4.设计
这几步是自外而内,逐步求精的过程,在我们实施改进的时候应当循序渐进,本着“能用一点用一点,用一点是一点--匍匐前进”的原则进行;这个观点很重要,可以说是实践UML的重要指导思想。以前我自己也有类似的想法,不过没有think总结的透彻,也没有他那么自信:P