I am reading the book Object-Oriented Analysis and Design written by Grady Booch and others. In the Section : I Concepts in a subsection Bringing Order to Chaos authors suggest to separate between a Method and a Methodology:

According to the book:

A method is a disciplined procedure for generating a set of models that describe various aspects of a software system under development, using some well-defined notation.

A methodology is a collection of methods applied across the software development lifecycle and unified by process, practices, and some general, philosophical approach.

I understood that a Method is used to built system models and a Methodology is a set of such methods that are applied across software development lifecycle. To my knowledge, a software development lifecycle includes but is not limited to analysis, design, implementation and testing phases.

How it can be that a Method that is used to built system models is also applied in implementation or testing phase?

  • 1
    May it be that a method and a methodology are in fact a design method and a design methodology?
    – Timofey
    Jan 22, 2011 at 7:20

4 Answers 4


Maybe I'm misreading the definitions (I haven't read the book), but wouldn't you have different methods for system building and testing? So your methodology would include some methods that apply to analysis, some that apply to building, some that apply to testing, etc. All of those methods would be grouped by a common approach or goal -- e.g. Agile methodology, Waterfall methodology, etc.

  • Your point is clear. I can name some system models of design phase of software development, for example, class diagram. Could you please name some system models that may be described with well-defined notation for an implementation and testing phases?
    – Timofey
    Jan 23, 2011 at 18:07
  • @Tim First thing that comes to mind is a sequence diagram. This could apply both at the implementation stage and at the testing stage to verify workflows.
    – Adam Lear
    Jan 23, 2011 at 20:42

method = one step

methodology = collection of steps

Note: every artifact including the code is a model of the system, or an aspect thereof. If it isn't, then you don't need it.

  • "methodology = series of steps" I see that series is not a good word here, the definition states "collection" or "set" of steps (you call a method step). Anyway, my confusion is: a method by definition is used to generate a set of system models. To my knowledge, the set of models is defined in design phase. A methodology is defined as a collection of methods that are applied across software development lifecycle, that along with design phase contains also implementation and testing phases. I think that system models are not created in the latter 2 phases, therefore, a method is not applied...
    – Timofey
    Jan 22, 2011 at 18:52
  • ...in these 2 phases. The last statement is in contradiction with definition of a methodology, that states that a collection of methods are applied across development lifecycle. I hope I am clear. I think I have somewhere a wrong statement in my chain. Could you please point out where?
    – Timofey
    Jan 22, 2011 at 18:56
  • @Tim: every artifact in the development process is a model of the system, or some aspect thereof. And yes, I should have said collection instead of series, thanks. Edited. Jan 23, 2011 at 17:10
  • @Stiven: The phrase "every artifact including the code is a model of the system" is the best candidate for an answer. Could you please give a reference to a scientific paper, book or a standard where it is precisely defined? Thank you.
    – Timofey
    Jan 23, 2011 at 18:41
  • @Tim: the quote is from me. It's truth should be obvious. If the artifact does not describe some aspect of the system, then it is not a model of the system, and it is unnecessary. And you can quote me on that ;-) Jan 23, 2011 at 19:15

I think, by the definition you gave, that the Method is and i quote:

... a set of models that describe various aspects of a software system...

So the method is not used to build system, rather they are used to describe aspects of it. So if you think about it, you can use a method to describe the situation of a current working project in a phase.

  • Thank you for the answer. 1) You said: "that the Method is and i quote: ... a set of models that describe various aspects of a software system...", I said: "A Method is a disciplined procedure...". I see a set of models and a disciplined procedure as different terms 2) You said: "So the method is not used to build system", I said: "A method is used to built system models". In my view, system and system models are different terms: a system is described with help of system models, i.e. static models, dynamic models. Sorry, it was not clear what you wanted to say.
    – Timofey
    Jan 22, 2011 at 9:27

There is no consensus in the software engineering community about this issue. Therefore, the answer to your question will depend on who you ask.

The Definitions Track of the SEMAT initiative adopts most of the definitions from ISO/IEC 24744, which states that method = methodology. You can also see this approach, for example, in page 3 of "Metamodelling for Software Engineering" by Gonzalez-Perez and Henderson-Sellers; scroll to page 3 and look at the two definitions.

In other words, the two words mean the same. This view is from an international standard and shared by a large-ish number of people, but, as I say, there is no consensus.

One can always get pedantic and argue that, in theory of science, "method" refers to the way of showing that something is true, whereas "methodology" refers to the way of creating or producing something. These definitions are well grounded, and I think they should be the ones to be taken into account if we were to make a distinction. However, and after many years working in method engineering, I don't think it's worth it.

  • I have asked about concrete definitions given in the book "OOAD with Applications". I always consider this book as fundamental work for object-oriented technology. Anyway it is always good to consider ISO standards.
    – Timofey
    Jan 23, 2011 at 18:36
  • @Tim: I understand, but OOADwA is a bit dated today :-) A lot of things have happened since the early 1990s (almost 20 years!), and research has made some interesting progress, especially in terms of using metamodels as a way to formalise the underpinnings of methodological work. I don't think OOADwA is consistent in its definitions, so no coherent answer is possible.
    – CesarGon
    Jan 23, 2011 at 18:46
  • I am reading the third edition of the book which was published in 2007. I like how Booch et al describes object model and I am looking forward to applying it in my every day work. Do you know other good books in object-oriented technology?
    – Timofey
    Jan 23, 2011 at 18:54
  • @Tim: I know about the third edition. And don't get me wrong; I think that OOADwA is a good book. But I also think it's a bit dated and not too rigorous sometimes. :-) It's hard to suggest alternatives given the wide range of learning styles, but if I had to pick a couple of books on OO technology, I would go for amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/… (amazingly comprehensive, rigorous and current despite its age) and also amazon.co.uk/Business-Objects-Re-engineering-Chris-Partridge/dp/… (quirky but very insightful).
    – CesarGon
    Jan 23, 2011 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.