I intend to teach some OOP methodology but everywhere I look, there are only syntethic examples and elaborations of various concepts of the OOP world (for example: what is inheritance, how to use interfaces).

Like [this](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/object-oriented-programming) or [this](http://www.c-sharpcorner.com/article/object-oriented-concepts-in-C-Sharp/).

What I'm looking for is a tutorial of how to solve a "real-world" problem (can be fictious) but with all (or most of) the steps of these:

* How to analyze the problem?
* What are the objects?
* What should be taken care of?
* What classes should be created?
* What pattern is recommended?

I found a [good book](http://www.itmaybeahack.com/book/oodesign-java-2.1/html/index.html) online but it is way too detailed to be a quick guidance - though not a bad start. Nevertheless, I'm looking for a shorter and more practice-oriented approach.

As you can see, I'd like to have a tutorial that teaches OOP as a whole and not its parts.

The students are mostly beginners but trying to use a wide range of OOP concepts - they have a few months of experience.

Do you know any example that has this kind of *tutorial structure*?