What oo/modelling books/articles do we recommend these days?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

What oo/modelling books/articles do we recommend these days?

Tim Mackinnon
As I see Exercism students grapple with more realistic problems which are less algorithmic and more potentially OO (in this case - https://github.com/exercism/pharo-smalltalk/blob/master/dev/src/Exercism/TournamentTest.class.st ), I am wondering what we point people towards to learn about OO, identifying objects and more importantly responsibilities these days?

There is the early Beck CRC paper - but looking at it again, I wonder if its a bit cursory for people who missed the whole OO discovery years ago, and are now faced with competing advice on how to write good programs (much of which seems to eschew OO these days - rather unfairly I think).

Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Tim

Sent from my iPhone
Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Christopher Fuhrman
On Sun, 24 Mar 2019 at 21:26, Tim Mackinnon <[hidden email]> wrote:
Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Since 2003 in one of my courses I've used Craig Larman's Applying UML and Patterns because it has an analysis approach (getting from a semi-complex problem to a working OO solution in iterations, with UML if you want). It's using the Point Of Sale (cash register) problem which is complex yet familiar enough for most people to grasp (no pun intended, GRASP are the patterns he pushes as underlying responsibility-driven principles). 

Otherwise, Cay Horstmann's 3rd edition of OO Design and Patterns (Java, but applies to any OO language) should be out soon (I provided feedback on a draft copy last year). It has some good coverage of OO qualities and also uses a realistic problem (Graphics Editing framework, Violet) as the basis of lots of examples.  
Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Tim Mackinnon
Has anyone else got any thoughts? I checked out the Larman book - but it seems very process heavy (probably excellent for a full blown course), while I’m looking for something a bit lighter weight to guide students on the right way of thinking/approaching the little problems in Exercism.

Wasn’t there something that encouraged you to underline the nouns and circle the verbs and then start to identify objects and responsibilities? Its that kind of thing I am starting to see as the weak point in people approaching problems.

Tim

On 24 Mar 2019, at 22:47, Christopher Fuhrman <[hidden email]> wrote:

On Sun, 24 Mar 2019 at 21:26, Tim Mackinnon <[hidden email]> wrote:
Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Since 2003 in one of my courses I've used Craig Larman's Applying UML and Patterns because it has an analysis approach (getting from a semi-complex problem to a working OO solution in iterations, with UML if you want). It's using the Point Of Sale (cash register) problem which is complex yet familiar enough for most people to grasp (no pun intended, GRASP are the patterns he pushes as underlying responsibility-driven principles). 

Otherwise, Cay Horstmann's 3rd edition of OO Design and Patterns (Java, but applies to any OO language) should be out soon (I provided feedback on a draft copy last year). It has some good coverage of OO qualities and also uses a realistic problem (Graphics Editing framework, Violet) as the basis of lots of examples.  

Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Tim Mackinnon
Looking a bit further - Chapter 3 of: http://sdmeta.gforge.inria.fr/FreeBooks/STandOO/Smalltalk-and-OO.pdf (Smalltalk and Object Orientation - Hunt) gets me a bit closer, but still thinking I’ve seen better somewhere.

Tim

On 26 Mar 2019, at 09:16, Tim Mackinnon <[hidden email]> wrote:

Has anyone else got any thoughts? I checked out the Larman book - but it seems very process heavy (probably excellent for a full blown course), while I’m looking for something a bit lighter weight to guide students on the right way of thinking/approaching the little problems in Exercism.

Wasn’t there something that encouraged you to underline the nouns and circle the verbs and then start to identify objects and responsibilities? Its that kind of thing I am starting to see as the weak point in people approaching problems.

Tim

On 24 Mar 2019, at 22:47, Christopher Fuhrman <[hidden email]> wrote:

On Sun, 24 Mar 2019 at 21:26, Tim Mackinnon <[hidden email]> wrote:
Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Since 2003 in one of my courses I've used Craig Larman's Applying UML and Patterns because it has an analysis approach (getting from a semi-complex problem to a working OO solution in iterations, with UML if you want). It's using the Point Of Sale (cash register) problem which is complex yet familiar enough for most people to grasp (no pun intended, GRASP are the patterns he pushes as underlying responsibility-driven principles). 

Otherwise, Cay Horstmann's 3rd edition of OO Design and Patterns (Java, but applies to any OO language) should be out soon (I provided feedback on a draft copy last year). It has some good coverage of OO qualities and also uses a realistic problem (Graphics Editing framework, Violet) as the basis of lots of examples.  


Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

demarey
http://books.pharo.org/learning-oop/ ?

Le 26 mars 2019 à 11:09, Tim Mackinnon <[hidden email]> a écrit :

Looking a bit further - Chapter 3 of: http://sdmeta.gforge.inria.fr/FreeBooks/STandOO/Smalltalk-and-OO.pdf (Smalltalk and Object Orientation - Hunt) gets me a bit closer, but still thinking I’ve seen better somewhere.

Tim

On 26 Mar 2019, at 09:16, Tim Mackinnon <[hidden email]> wrote:

Has anyone else got any thoughts? I checked out the Larman book - but it seems very process heavy (probably excellent for a full blown course), while I’m looking for something a bit lighter weight to guide students on the right way of thinking/approaching the little problems in Exercism.

Wasn’t there something that encouraged you to underline the nouns and circle the verbs and then start to identify objects and responsibilities? Its that kind of thing I am starting to see as the weak point in people approaching problems.

Tim

On 24 Mar 2019, at 22:47, Christopher Fuhrman <[hidden email]> wrote:

On Sun, 24 Mar 2019 at 21:26, Tim Mackinnon <[hidden email]> wrote:
Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Since 2003 in one of my courses I've used Craig Larman's Applying UML and Patterns because it has an analysis approach (getting from a semi-complex problem to a working OO solution in iterations, with UML if you want). It's using the Point Of Sale (cash register) problem which is complex yet familiar enough for most people to grasp (no pun intended, GRASP are the patterns he pushes as underlying responsibility-driven principles). 

Otherwise, Cay Horstmann's 3rd edition of OO Design and Patterns (Java, but applies to any OO language) should be out soon (I provided feedback on a draft copy last year). It has some good coverage of OO qualities and also uses a realistic problem (Graphics Editing framework, Violet) as the basis of lots of examples.  



Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Tim Mackinnon
Thanks, I looked at that one - the title is right, but it’s more a tutorial where you type in code and follow along (and nothing wrong with that) - but I’m looking for something that teaches/helps you translate a problem domain into the sea of objects we are all accustomed to. And also gets to to the point quickly so that users can apply this to a problem they are trying to solve.

I’m now thinking that maybe Chapter 1 of http://sdmeta.gforge.inria.fr/FreeBooks/InsideST/InsideSmalltalk.pdf is pretty good (using a video game). 

Tim

On 26 Mar 2019, at 10:44, Christophe Demarey <[hidden email]> wrote:

http://books.pharo.org/learning-oop/ ?

Le 26 mars 2019 à 11:09, Tim Mackinnon <[hidden email]> a écrit :

Looking a bit further - Chapter 3 of: http://sdmeta.gforge.inria.fr/FreeBooks/STandOO/Smalltalk-and-OO.pdf (Smalltalk and Object Orientation - Hunt) gets me a bit closer, but still thinking I’ve seen better somewhere.

Tim

On 26 Mar 2019, at 09:16, Tim Mackinnon <[hidden email]> wrote:

Has anyone else got any thoughts? I checked out the Larman book - but it seems very process heavy (probably excellent for a full blown course), while I’m looking for something a bit lighter weight to guide students on the right way of thinking/approaching the little problems in Exercism.

Wasn’t there something that encouraged you to underline the nouns and circle the verbs and then start to identify objects and responsibilities? Its that kind of thing I am starting to see as the weak point in people approaching problems.

Tim

On 24 Mar 2019, at 22:47, Christopher Fuhrman <[hidden email]> wrote:

On Sun, 24 Mar 2019 at 21:26, Tim Mackinnon <[hidden email]> wrote:
Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Since 2003 in one of my courses I've used Craig Larman's Applying UML and Patterns because it has an analysis approach (getting from a semi-complex problem to a working OO solution in iterations, with UML if you want). It's using the Point Of Sale (cash register) problem which is complex yet familiar enough for most people to grasp (no pun intended, GRASP are the patterns he pushes as underlying responsibility-driven principles). 

Otherwise, Cay Horstmann's 3rd edition of OO Design and Patterns (Java, but applies to any OO language) should be out soon (I provided feedback on a draft copy last year). It has some good coverage of OO qualities and also uses a realistic problem (Graphics Editing framework, Violet) as the basis of lots of examples.  




Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Stephan Eggermont-3
In reply to this post by Tim Mackinnon
Tim Mackinnon <[hidden email]> wrote:

> As I see Exercism students grapple with more realistic, I am wondering
> what we point people towards to learn about OO, identifying objects and
> more importantly responsibilities these days?
>
> There is the early Beck CRC paper - but looking at it again, I wonder if
> its a bit cursory for people who missed the whole OO discovery years ago,
> and are now faced with competing advice on how to write good programs
> (much of which seems to eschew OO these days - rather unfairly I think).
>
> Any good references come to mind? As I’ll build up a list that I can
> point people to, that hopefully puts them in a better place to solve
> these more interesting and hopefully rewarding problems.

Rebecca Wirfs-Brock and Alan McKean (2002) Object Design, Roles,
Responsibilities, and Collaborations?

Stephan




Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Tim Mackinnon
Thanks, I recall the Wires-Brock books been pretty good, its a shame you can’t preview any of them (and mine are in a box in my attic somewhere). Unfortunately I can’t imagine that students first staring out will want to invest - but maybe I can find something that might fill the gap leading to those.

Tim


> On 26 Mar 2019, at 11:06, Stephan Eggermont <[hidden email]> wrote:
>
> Tim Mackinnon <[hidden email]> wrote:
>> As I see Exercism students grapple with more realistic, I am wondering
>> what we point people towards to learn about OO, identifying objects and
>> more importantly responsibilities these days?
>>
>> There is the early Beck CRC paper - but looking at it again, I wonder if
>> its a bit cursory for people who missed the whole OO discovery years ago,
>> and are now faced with competing advice on how to write good programs
>> (much of which seems to eschew OO these days - rather unfairly I think).
>>
>> Any good references come to mind? As I’ll build up a list that I can
>> point people to, that hopefully puts them in a better place to solve
>> these more interesting and hopefully rewarding problems.
>
> Rebecca Wirfs-Brock and Alan McKean (2002) Object Design, Roles,
> Responsibilities, and Collaborations?
>
> Stephan
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Christopher Fuhrman
In reply to this post by Tim Mackinnon
On Tue, 26 Mar 2019 at 10:17, Tim Mackinnon <[hidden email]> wrote:
Wasn’t there something that encouraged you to underline the nouns and circle the verbs and then start to identify objects and responsibilities? Its that kind of thing I am starting to see as the weak point in people approaching problems.

That's the Booch method which Larman mentions as the noun-phrase identification (I actually learned that in 1986 in my first Ada course). See slide 22 or so at http://stg-tud.github.io/eise/WS11-EiSE-07-Domain_Modeling.pdf

You could/should cherry-pick Larman's book (there's way too much there even for one course). There are all the references to Resp-Driven Design and even a lightweight "domain model" pattern (which doesn't have separate conceptual classes) from Fowler. https://martinfowler.com/eaaCatalog/domainModel.html

In my courses I get a lot of mileage from just the two GRASP patterns (that come from Wirfs-Brock et al if I'm not mistaken): Information Expert and Creator, but the latter is easier to apply if you have a domain model as a separate artifact.

IMO the older approaches to OO design get in to trouble today especially when 1) most objects use composition (an not inheritance with polymorphism, although it's very powerful for extending programs) and 2) inheritance is hard to get right the first time (and is difficult to change). There's real power in refactoring to patterns (e.g., )

There's the CRC method that Horstmann presents, too (I think that's what Pharo even recommends in the Class Comment template). Booch and CRC are mentioned on this page: http://www.cs.fsu.edu/~myers/cop3331/notes/analysis1.html

Finally - I'm not familiar with exercism exercises (I signed up but saw that smalltalk is still in alpha). Is there a sneak peak of an example exercise? 

Cris
 

Tim

On 24 Mar 2019, at 22:47, Christopher Fuhrman <[hidden email]> wrote:

On Sun, 24 Mar 2019 at 21:26, Tim Mackinnon <[hidden email]> wrote:
Any good references come to mind? As I’ll build up a list that I can point people to, that hopefully puts them in a better place to solve these more interesting and hopefully rewarding problems.

Since 2003 in one of my courses I've used Craig Larman's Applying UML and Patterns because it has an analysis approach (getting from a semi-complex problem to a working OO solution in iterations, with UML if you want). It's using the Point Of Sale (cash register) problem which is complex yet familiar enough for most people to grasp (no pun intended, GRASP are the patterns he pushes as underlying responsibility-driven principles). 

Otherwise, Cay Horstmann's 3rd edition of OO Design and Patterns (Java, but applies to any OO language) should be out soon (I provided feedback on a draft copy last year). It has some good coverage of OO qualities and also uses a realistic problem (Graphics Editing framework, Violet) as the basis of lots of examples.  


Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Sean P. DeNigris
Administrator
In reply to this post by Tim Mackinnon
Tim Mackinnon wrote
> Has anyone else got any thoughts?

I think Dan North's Behavior Driven Development stuff is great and covers
both OOP and TDD. The code is in Ruby, but the concepts IMHO are on the
money. For me, the holy grail of OOP books is A Mentoring Course on
Smalltalk, but I definitely wouldn't consider it "lightweight" ha ha. I'm
sure there are others, but that's off the top of my head...



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: What oo/modelling books/articles do we recommend these days?

Tim Mackinnon
In reply to this post by Christopher Fuhrman
Actually - I’ve been making good progress on Exercism (with help from Ben and Sam) - we can almost come out of alpha (but just need more exercises converted - not sure exactly what the limit is, but 22 isn’t quite enough).

I’m just tuning the tooling - and putting some bits in place so that its easier for others to help convert exercises - as well as some tools to help with mentoring (e.g. I can load snapshots of user submissions, but would love to figure out how to re-use our diff browser). I’m hoping to get a bit of input at Pharo days, to just nail it.

Anyway - if you want to try it - follow the instructions here: https://github.com/exercism/pharo-smalltalk (the top section outlines how to setup, the bottom is for contributors - but best to have tried it out first before taking that plunge).

The example that triggered this off was seeing some of the beta testers struggle with: https://github.com/exercism/pharo-smalltalk/blob/master/dev/src/Exercism/TournamentTest.class.st - a rather innocuous exercise, but actually the first one that wasn’t just an algorithmic several lines of code.

Thanks for for everyone’s input - I think I’m getting some ideas for material to put into the site, and possibly something to add to the hints for that exercise.

Tim


On 26 Mar 2019, at 14:20, Christopher Fuhrman <[hidden email]> wrote:

Finally - I'm not familiar with exercism exercises (I signed up but saw that smalltalk is still in alpha). Is there a sneak peak of an example exercise?