开发者

What is the difference between a software development pattern a methodology(agile, dsdm etc) and a paradigm(specifically object oriented)? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 5 years ago.

Improve this question

What is the difference between a software development pattern?

A methodology such as agile DSDM etc how is OO classed as a methodology and a paradigm?

How can OO be applied to a methodology 开发者_如何学Csuch as agile if itself is a methodology?

Whats the difference between a paradigm and a methodology or a development pattern?

Thanks for any replys.


"When I use a word," Humpty Dumpty said, in a rather scornful tone, "it means just what I choose it to mean - neither more nor less." "The question is," said Alice, "whether you can make words mean so many different things." "The question is," said Humpty Dumpty, "which is to be master - that's all."

Through the Looking Glass.

Well, not my answer, Lewis Carroll's.


Looking at only one of the questions you asked: "...how is OO classed as a methodology and a paradigm?"

That, at least, has a fairly simple answer:

  1. Object Oriented Design is an analysis methodology.
  2. Object Oriented Programming is an implementation paradigm.

OOD involves analyzing a problem in terms of objects and their interactions. OOP involves implementing a solution as a set of interacting objects.

"Agile" (I hate that name -- though I'll admit "eXtreme Programming" is worse) is really about project management. Just for example, you can apply Pair Programming about equally to something like assembly language or C as to a language that explicitly supports object oriented programming (though being a relatively new idea, it's probably used most often in conjunction with relatively new languages).

Edit: How I'd separate "methodology" from "paradigm" is fairly simple (at least in theory).

Paradigm is really just a fancy word for "example". If I'm following that example to a meaningful degree, the source code (for example) to the program should contain direct, (fairly) clearly defined results from having followed that example. Just for the obvious one, a class publicly derived from another would be a pretty obvious indication of OOP.

A methodology, by contrast, doesn't necessarily show a direct, definable result in the source code. Just for example, there's unlikely to be much in the source code to indicate whether it was developed using "Agile" methodology. I might be able to take a guess if (for example) all the source code files contained comments indicating two authors, but (at best) it would a rather indirect indication of one specific piece of the methodology.

I said in theory, because things can get a bit "fuzzy" at times. If I try hard enough, I can probably write pretty close to pure procedural code, even in a language like Smalltalk that favors objects almost exclusively. Likewise, if I try hard enough I can write OO code in something like C that doesn't really support it. In a case like this, the indications of following the paradigm will usually be harder to find or define than in a more straightforward case.


Methodology is about people. Paradigm is about software.


A paradigm is a way of thinking about a problem - so objects, a relational database, lambda calculus are all models for getting a problem into your head

A methodology is a way of actualy building something based on the paradigm.

If you like, the paradigm is the architect, what are building? should it be a suspension bridge or an arch. The methodology is the engineering, how many cables, how thick, which subcontractors.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜