锁定老帖子 主题:软件工程和软件方法的联系和异同(讨论)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-07-25
关于工程和方法、工艺,学术概念上或许都能找到比较明确的描述和定义,只所以“纷争”“似乎”很多,个人认为其实多是因为现实的“多态性”。
比如: XP方法对此的应对是抓住“一个中心(人)、几个基本点(XP基本原则)”,收缩战线、集中精兵强将,兵来将挡、水来土屯,逐个击破。XP并不在可以预见的所有点上部署兵力,而是抓住眼下的最主要矛盾,以精兵强将迅速击破之,换来时间差,在下一个主要矛盾未损害到我方前再击破之。XP不怕变化,因为XP本身就无定法(这是相对的说法,XP核心已经收缩的很小,因此很灵活)。如果以战役来比,中东战争中以色列对付阿拉伯联军的方法和策略就是XP的。 XP团队就像一个特种兵团或突击队,以弱胜强或均力抗衡。 UP方法则尽量预测可能发生的状况,更强调过程控制,抓住“一个中心(架构)、一个基本原则(迭代)、几个基本阶段(需求、架构设计...)”,以定法来应对变化(比如迭代可以一定程度上应对变化),拉长战线、严防死守,投入足量兵力,在各个点上等着“敌人”来。UP不怕预测范围、强度内的变化。如果以战役来比,海湾战争中美国对付伊拉克的方法和策略就是UP的(先是几次大规模虚拟联演,配合实战演练,然后以优势军力击溃之)。 UP就像一个常规兵团,以强胜弱或均力抗衡。 |
|
返回顶楼 | |
发表时间:2006-07-25
最近看了一个两年前的帖子,有个问题很有趣:到底什么是软件工程。如果说软件工程也是工程学的一个分支,那么它的唯一目的就是提高质量降低成本。从这个根本出发点,什么“文档驱动的软件工程”,什么“拒绝个人英雄主义的软件工程”,根本就是扯淡(至少在某些特定的场景底下),根本就是伪软件工程,因为它们跟“工程”的根本出发点就不符合。
|
|
返回顶楼 | |
发表时间:2006-07-25
最多人参与的问题往往根本就不是实质的问题,只是实质的外衣,或者外衣的装饰,因为华丽、因为刺激人的肾上腺,所有人都在扯淡,你扯你的淡,他扯他的淡,我扯我的淡,如此而已。
“开发出”能刺激大家都扯淡的话题,最大的好处就是吸引眼球,如果你能受刺激,增强肾上腺分泌,并且刺激出你最真实的想法、最虚伪的想法、最荒诞的想法、最有创意的想法...,话题的目的就达到了。 得利的只有渔翁--那些冷静观察的人、以及扯淡后肾上腺分泌能回归正常的人。 |
|
返回顶楼 | |
发表时间:2006-07-26
我认为软件开发方法这个概念的外延比软件工程要广。软件工程是将人类在其他领域的工程项目(最典型的就是建筑工程)中得到的知识和经验应用于软件开发项目而得到的软件开发方法。它来源于将软件开发比作一般工程项目的隐喻。因此瀑布模型并非偶然的,一方面因为它最直接。另一方面,这也是其它领域的工程项目中最常见的。建筑工程有可能采用迭代模型吗?
不同的隐喻会导致不同的软件开发方法。敏捷联盟中的人恐怕都不同意“工程项目”这个隐喻。比如Cockburn就把软件开发比喻为一场Game(我觉得这个Game应该理解为一场体育比赛,而不是一般意义上的游戏。)。 |
|
返回顶楼 | |
发表时间:2006-07-26
BirdGu 写道 我认为软件开发方法这个概念的外延比软件工程要广。软件工程是将人类在其他领域的工程项目(最典型的就是建筑工程)中得到的知识和经验应用于软件开发项目而得到的软件开发方法。
唉,又看到类似的言论了,“其他领域的工程项目”“最典型的就是建筑工程" 不要人云亦云好不好? 1、不同领域的工程项目差别还是挺大的。 2、现在的软件工程根本不是从建筑工程套用得来的 |
|
返回顶楼 | |
发表时间:2006-07-26
clamp 写道 BirdGu 写道 我认为软件开发方法这个概念的外延比软件工程要广。软件工程是将人类在其他领域的工程项目(最典型的就是建筑工程)中得到的知识和经验应用于软件开发项目而得到的软件开发方法。
唉,又看到类似的言论了,“其他领域的工程项目”“最典型的就是建筑工程" 不要人云亦云好不好? 1、不同领域的工程项目差别还是挺大的。 2、现在的软件工程根本不是从建筑工程套用得来的 现在的软件工程?不,我说的是最早的软件工程。 |
|
返回顶楼 | |