软件开发模式与方法(敏捷,dsdm等)和范例(特别是面向对象)之间有什么区别?

时间:2010-04-06 14:54:18

标签: oop agile methodology

软件开发模式有什么区别?

敏捷DSDM等方法如何将OO归类为方法论和范式?

如果本身是一种方法论,如何将OO应用于敏捷等方法?

范式与方法或发展模式之间的区别是什么?

感谢您的回复。

4 个答案:

答案 0 :(得分:3)

  

“当我用一个词时,”Humpty Dumpty   用一种相当鄙视的语气说,“它   意味着我选择它的意思 -   既不多也不少。“”问题   是,“爱丽丝说,”你能否做到   单词意味着很多不同的东西。“   “问题是,”Humpty Dumpty说,   “这就是主人 - 这就是全部。”

通过镜子。

好吧,不是我的回答,刘易斯卡罗尔的。

答案 1 :(得分:2)

方法论是关于人的。范式是关于软件的。

答案 2 :(得分:2)

仅查看您提出的一个问题:“...... OO如何被归类为方法论和范式?”

至少,这有一个相当简单的答案:

  1. 面向对象设计是一种分析方法。
  2. 面向对象编程是一种实现范例。
  3. OOD涉及根据对象及其交互来分析问题。 OOP涉及将解决方案实现为一组交互对象。

    “敏捷”(我讨厌这个名字 - 尽管我承认“极限编程”更糟糕)实际上是关于项目管理。例如,您可以将配对编程同样地应用于汇编语言或C语言,而不是明确支持面向对象编程的语言(尽管这是一个相对较新的概念,它可能最常用于相对较新的语言)。 / p>

    编辑:我如何将“方法论”与“范式”分开是相当简单的(至少在理论上)。

    Paradigm对于“例子”来说真的只是一个奇特的词。如果我将该示例关注到一个有意义的程度,那么程序的源代码(例如)应包含遵循该示例的直接(公平)明确定义的结果。只是为了显而易见的一个,从另一个公开派生的类将是一个非常明显的OOP指示。

    相比之下,方法不一定在源代码中显示直接的,可定义的结果。例如,源代码中不太可能表明它是否是使用“敏捷”方法开发的。如果(例如)所有源代码文件都包含指示两位作者的注释,我可能会猜测一下,但是(充其量)它会对该方法的一个特定部分进行相当间接的指示。

    我在理论上说,因为事情有时会变得有点“模糊”。如果我努力学习,我可能会写得非常接近纯粹的程序代码,即使是像Smalltalk这样几乎完全支持对象的语言。同样,如果我努力尝试,我可以在C语言中编写OO代码,而不是真正支持它。在这种情况下,遵循范式的指示通常比在更直接的情况下更难找到或定义。

答案 3 :(得分:1)

范式是一种思考问题的方式 - 所以对象,关系数据库,lambda演算都是将问题引入脑中的模型

方法论是一种基于范式实际构建某种东西的方法。

如果你愿意,范式是建筑师,正在建设什么?它应该是一座吊桥还是一座拱门。该方法是工程,有多少电缆,有多厚,哪些分包商。