`
lgstarzkhl
  • 浏览: 328362 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

敏捷模型2

    博客分类:
  • java
阅读更多
在一个真正的迭代开发环境中,我们不需要把所有的结构和设计问题事先完成。我们通过重构(改善代码而不影响功能)可以持续地对最初建立的设计进行改造,这是十分重要的。因为当真正开始编码后,可能会发现很多实现问题的更好方法。尽管项目的范围在一开始就定义好了,但随着迭代的逐渐进行,客户需求才不断地被加入其中,而不是在一开始就把一切锁定下来。问题的关键在于项目相关的所有人必须积极地交流沟通

不需要在一开始对类设计得很具体,可以只在必要时进行。

设计系统时先制定出规范,然后不断的循环进行测试。

如果你认为极限编程人员不进行设计和文档工作的话,我希望能在你看完本章后将此误解消除,事实并非如此。

迭代后的第一天是将用例分割成一个个的任务,这其实也是设计中的一部分,这样有助于分解模块并且得到最终的实现点。

另一个关于XP工作类型的观点是出于一个资深的软件架构师,他在一家提供IT解决方案的知名公司工作,并使用XP和AMDD技术在很多项目中取得成功。他说:“在XP项目中还有一种级别的设计,它每天都会进行。这就是重构,它也是一种很重要的设计活动。虽然迭代开始阶段的设计很重要,但在代码写好后的设计工作使得一个好的设计更加出色。”

综上几条可以看出,软件工程其实就是设计加上重构,这样每一个版本的产品才会更加的有效。

CRC用来表示各种类、它们的责任以及合作者。表3.1显示了一个CRC卡片布局的范例以及对3个组成部分的描述。虽然图中显示的是一个电子版的CRC卡,实际中的CRC卡画在一个3×5英寸大小的卡片上,如果需要的话,可以把它转换为类图。

表3.1   一个简单的CRC卡片的布局范例

类名(名词)

责任(一个类的功能,例如业务方法、异常处理、安全方法、属性或变量)
合作者(提供实现高级需求的解决方案需要的其他类)


CRC卡是一种非正式的面向对象技术,它可以帮助我们发现类之间的关系。我喜欢使用CRC卡,这样客户和开发者可以在非正式的会议上讨论对象而不需使用电脑。除此之外,如果需要的话,可以用CRC卡来生成正式的类图(在本章后面我们将做这个工作)。

表3.2到表3.4是本书后面将要开发的一些类图的CRC卡的范例,它们实现了时间报表清单页面的需求。

表3.2       Timesheet类的CRC卡范例

Timesheet

获得阶段的结束时间

获得输入的时间

获得部门代码
 

表3.3           TimesheetManager类的CRC卡的范例

TimesheetManager

从数据库中获得时间报表

将时间报表存入数据库中
Timesheet


表3.4       TimesheetListController类的CRC卡的范例

TimesheetListController

(在MVC中)控制时间报表清单的显示
TimesheetManager


我们已经了解了一些CRC卡的基础知识。具备了这些知识,我们就知道接下来该做什么了。

CRC卡片使用


敏捷开发者应该在数据建模、对象建模、重构、映射、实现和性能调整等问题上反复迭代


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics