SoftEng 版 (精华区)

发信人: don (什么是苦?), 信区: SoftEng
标  题: OOA&OOD, FDD, XP, 体系结构...杂谈
发信站: 哈工大紫丁香 (2000年10月19日13:21:08 星期四), 站内信件

----------------
From selab
----------------

 
最早接触面向对象的分析及设计就是看Peter Coad以及Ed Yourden的那两本书,当
时的真是有一种找到了组织的感觉。有人评价说这两位大师所提出的OOA&OOD是一
种入门级的方法,比较初级。反正我觉得一开始看时还是不太好理解,只有多读几
遍才行。并且一定要真正用这种方法做项目才能将其吃透。当时很幸运的是,我们
在学习后就在一个比较小的产品(大约50000行的C++的代码量吧)的开发过程中采
用了此方法。总得感觉还是不错的,系统的结构比较清楚,各个类分工明确,至少
到目前整个的结构还是比较稳定的,并具有一定的可扩展性。
 
但在实践中也发现了一些问题:首先是找类不好找。可能是开始时我们对有关理论
的理解也有限,不知从何入手,问一问以前用过此方法开发的同事,他们也无法说
清楚这一步骤。后来在看《Software Architecture》一书时突然发现,原来可以
利用体系结构帮助找类。为什么这么说呢?因为:开始时感到无从下手是由于对此
类软件不熟悉,头脑中没有一个整体的结构,就向面对一张白纸,没有入手点。如
果对此类软件的常用的体系结构有了一定的了解,就好象在在白纸上已画出了轮廓
,此时已知道该做什么了,这时可供选择的类也就渐渐浮现出来了。再借助于
Patterns,就可以一步一步进行细化,得到最终的类图了。采用“体系结构
->Patterns->类”三步走的方法或者再细分一下采用“体系结构
->Framework->Patterns->类”四步走的方法应当是进行面向对象分析/设计所遵循
的方法(至少目前我是这样想的)。对于新手,可能在开始时要有一个比较有经验
的分析人员帮助一起进行体系结构的分析,带一带,这样可能会更好地入门。其实
上述分步走的方法也体现出我们对事物的一个由浅到深的认识过程,如果从重用的
角度上说,则是从大粒度的重用到中等粒度重用以至于小粒度重用的一个过程。
OOA&OOD方法固有的一个问题就是对大型的软件系统进行分析时再采用其所用的查
找类的方法已经适用。因为此时系统中的类太多太多了,若要列出所有的名词几乎
是不可能的。此时更需要从体系结构入手了。在Peter Coad等人提倡的FDD(
Feature-Driven Developing)开发模式中这一点体现的更清楚了:上来就是要找
到一个overall modeling,实际上就是找适合的体系结构。顺便说两句:FDD方法
结合了传统的瀑布开发方法以及迭代开发方法,是一种很不错的中型软件开发模式
。只是不知除了Together之外还有没有其它工具可以支持它。
 
另一个问题是:如果描述系统运行时的动态行为。当时我们采用的是文字描述的方
法,此方法真是又累又烦还没什么效果。象我们最后设计结束时写了十几页的文字
描述(主要是用户界面操作方法的内容),但真正编码时确很少看它们。后来才发
现Use Case可以很好地解决此问题。通过Use Case可以清楚地描述出人机间的交互
活动,再辅之以时序图,编码时应能充分理解设计人员的意图了。与Bill Weng的
观点相同,我不觉得直接从Use Case中导出类是一个好的方法。这方面的原因可以
参见Peter Coad在Coad Letter 最近一次的文章中找到。但如果先定好了系统的体
系结构,再用Use Case帮助导出类还是可行的。象我是从OOA&OOD的开发方法转过
来的,一上来就用User Case指类总是不习惯。另外前几天看了一篇文章说IBM提出
了一套方法,采用UML描述用户界面,很有新意的说。
 
XP我只在一个软件产品的升级过程中采用了(在约10000行的代码量吧),感觉很不
错。XP突出的一个特点就是灵活,人性化,它是一个完全迭代式的中小型的开发模
式,但采用这种模式个人认为比较适合进行版本升级工作时采用,并且人数不能多
,最好不要超过5人(虽然XP认为可以管理最多10人,但如果人数真这么多,并能
管理好,对管理人员的要求太高了)。开发团队的成员比较熟,最好已合作过一段
时间,没有太大的关于开发文化上的差异。如果是针对一个全新的产品开发采用
XP,还是要谨慎一些,尤其要重视体系结构的分析(这点总觉得在XP中强调的不够
)。对于目前国内普遍存在的小作坊式的开发情况,XP还是大有作为的 :)
 
这几年国外在中小型软件开发模式中的研究比较热,也提出了不少的模式,希望大
家多关注一下这方面的内容。
--
一条驿路,一种氛围。
一朵梨花,一种思考。
希望能在Linux这条驿路上与你同行!

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: PR-AI.hit.edu.cn]
※ 修改:·don 於 10月19日13:21:56 修改本文·[FROM: PR-AI.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.839毫秒