今天去看了real和yang的设计,需求已经被他俩用了一周洋洋洒洒的搞定,工具是rose.大概三四十个用例,基本都配有状态图,用以表示流程.类也已经设计出来了,每个都有n个起好名字的方法.但我还是无法独立开发类库,因为需求不熟悉,而且状态图和类的方法之间毫无关系,我面对的是一张精美的图纸和一堆散落在地的砖头.
yang昨天提到的客户改变的需求是添加了一套培训的表格.在得知和现有的需求冲突不是很大的时候,我说服real推迟了画用例和状态图,现有的东西已经够大了,而算上新的需求,我们一共只有两个月多一些,而我们拥有的只是一堆图标和在网页上由rose生成的类.
于是,我们(就我俩)开始了第一轮迭代,范围很小,涉及到4个用例,有关用户的登陆和组织机构的管理,以及客户的分配,计划用一周的时间到最终实现. 用了一个下午只是大体上完成了1.5个用例的类的设计.困难重重,因为对需求的不理解使我必须时时询问real,而yang的类设计和我思路很不一致,所以基本上是抛开了他的设计重新来做.
晚饭前和real交换了改进过程的想法.终于在我的坚持下加入了一些迭代的元素.在每个迭代前我评审他俩的需求和类的框架,这同时也是理解需求的过程.之后我开始开发评审过的需求的类库,他俩则停止分析设计新的需求,着手开发这一段需求的原型. 在这个过程中, real会实时准备和我交换需求和设计的思路,而我则有权提出对类库设计方面的修改.直到这个迭代的末尾,我交付类库和文档,由他俩再次评审并重新估计对已有需求和原型的影响.之后我负责实现这个迭代内的用例(根据类库和原型),他俩则开始为下一个迭代准备分析设计类库.最后由我演示最终实现的程序,并开始下一个迭代.
在整个过程中,我需求得到用例的详细说明(活动图),它对应的类库的实现,数据库中对应的结构,控件(如果有的话)的原型,系统的原型.我则需要提供类库的代码和详细的设计文档,修改后的类库结构和最后实现的系统.
在以后找到合适的开发人员,并找到可行的沟通手段后,可以把最终的实现分出去做.
整个迭代过程中,分为两方,real和yang属于需求和分析设计人员,我则是类库设计开发和最终编码实现.双方都存在两次评审和被评审,其他时间平行进行.现在的隐患是两次评审间的双方的时间是否对称,有待于进一步验证.
yang在晚饭时过来,饭后顺着这个流程正式开始了第一次迭代,real和yang把剩下的两个用例将给我听,并一一列出了功能在类库中对应的方法.在讨论的过程中,我和yang的设计思路仍然不一致,因此我需要提出一套简明且可操作的类设计规范出来,供大家遵守.
that's all for today