请问有谁真正使用rup流程,按照角色开发,以及不再进行模块划分,而是按照use case的危险性来做
我想知道如果按照use case的核心程度来决定开发顺序的话,前期的工作要细化到什么程度,是项目的所有类图之类的已经完成了吗?这个时候怎么迭代?
我越来越感到按照模块划分,代码的重复性太大了
问题点数:50、回复次数:9Top
1 楼Schlemiel(维特根斯坦的扇子)回复于 2003-10-04 17:34:24 得分 30
类图没必要画出来吧?这完全可以由程序员自己来搞定。我们的项目一般会先写用例,每个用例分成几个任务,每个任务1-3天,然后大家凭兴趣选任务卡。具体每个任务怎么实现由程序员自己决定。
我倒觉得按模块划分挺好的,最大限度避免了程序员之间做代码级的交流,这种交流的成本太高了。如果每个人负责一个用例,基本上可以比较独立地从头做到尾。至于代码重复的问题,也没什么好办法。如果大家都只是闷着头做事,平时都不太聊天,彼此做了什么也不知道,你不可能让他们不写出重复的代码。Top
2 楼JingGG(郭靖)回复于 2003-10-04 21:57:44 得分 20
楼上的兄弟说的情况好像太夸张了吧
按照用例来做的话,会造成大量的类重复
(比如,订单处理和系统维护,都需要与订单类及用户类打交道)
还有,如果直接根据用例来写代码,那等于是完全跳开了设计这一步
没经过设计开发得出项目来吗?
再有就是,你说你们项目开发时
“大家都只是闷着头做事,平时都不太聊天,彼此做了什么也不知道”,
这样的环境开发出什么样的作品来,可想而知了
Top
3 楼Schlemiel(维特根斯坦的扇子)回复于 2003-10-05 00:39:31 得分 0
to JingGG(郭靖):
你的理解能力有问题还是我的表达能力有问题?我是说不管用任何方法,如果你的程序员这样做事,都会造成重复代码。看不明白?你提的这个问题就是一个很好的例子,如果负责定单这个用例的程序员和负责系统维护这个用例的程序员都不知道user类由谁来做,可见团队内部的交流差到了什么程度。这样的一支团队,不管你用什么方法都不会有更好的效果。即便你把任务划得再清楚,他们的接口也会出现无数的问题。
你的第一段话让我有同样的疑惑:我什么时候说过“直接根据用例来写代码”?用例是需求说明,讨论每个用例的实现方法,再划分成几张任务卡,这不是设计是什么?难道你还一定要搞那种所谓的“详细设计”?Top
4 楼runsoft(清风)回复于 2003-10-05 15:02:37 得分 0
别吵架呀,说出来就可以。
我个人认为,需要项目主管应该在 所有的用例设计完毕之后,设计公用类库,这样才可以开始,否则使用OO开发仅仅停留在口头上,如果是公用类库没有设计出来,说明是主管对系统得总体没有了解。Top
5 楼BirdGu(鲲鹏)回复于 2003-10-06 10:25:03 得分 0
Schlemiel(维特根斯坦的扇子) :
根据用例划分任务的过程具体是怎样的?划分出来的任务是什么样的?在划分任务的过程中你们也完全不画类图吗?或者你们用CRC?
TomandJerry (傅红雪) :
如果要把所有的类图都画出来再开始实现,那就不是迭代开发了。
每一个迭代选出需要实现的UseCase,然后对这些UseCase分析、设计到能去写程序的地步就可以了。至于具体到哪个程度,恐怕每个团队都会不一样的。
“我越来越感到按照模块划分,代码的重复性太大了。”能具体说说为什么吗?
Top
6 楼berl88(牛人)回复于 2003-10-06 14:05:57 得分 0
一个建模过程不会就是把用例完成,就给程序员选择用例来完成细化工作了吧?
我认为还是要强调需求分析与程序设计结果起来,
总结以前的结构化设计就是脱离了程序设计,
需求同程序完全脱节.所以我在建模过程完全把用例.序列图的类图MAPPING,静/动类图设计,都做到了.然后由程序员去实现类图中的代码.这其中当然少不了用例文档(先后提前件,事件流等)
这也是我个人想法.不知对不对?
Top
7 楼TomandJerry(傅红雪)回复于 2003-10-06 23:30:37 得分 0
代码重复,我举个例子,很多系统都会有组织架构,里面会有员工这个类,这个类其实会被很多次的引用,只是interface的宽窄问题,我发现很多人按模块来做的话,会自己写很多功能相似,完全为自己订制的接口,但其实这些都是可以统一起来的,不可否认,sa sd没做到位有一定的关系,但是独立作模块就很难发现这点,完成了才知道,如果按照use case来做,在完成一个use case,并且实现的话,就可以发现这点,我认为这样的维护应该会好一点,毕竟入口单一。
我也知道,类图画完了就不用iterator乐,但是,当前的coding是按照当前的sd去做的,可是,经过了iterator后,会发现前面的class,有的具有相似点,有的可以拿过来用,这个时候,对已经完成的coding改成iterator后class 结构来做吗,这个代价需要付出吗?Top
8 楼BirdGu(鲲鹏)回复于 2003-10-07 15:19:44 得分 0
在迭代式开发中,对以前写的类进行修改是很正常的。或者说一个稍微复杂一点的类,肯定是在多次迭代中逐渐“成长”起来的,而不是一开始就定型了的。Top
9 楼BirdGu(鲲鹏)回复于 2003-10-07 15:22:49 得分 0
“按模块划分开发任务”有一个从什么时候开始分的问题。还有就是始终要有一个人能照顾整体结构。
一个概念应该只在一个模块中实现,其它模块使用这一实现。如果多个模块都觉得需要实现某个概念,那就是模块划分有问题。Top




