Fellow Squeakers...
I'm currently building an object model for a banking domain that has 5 parallel projects utilizing it (you know the kind...100+ people, etc.). I have grown this model over the past year using true object-oriented design principles ("true OO" being defined by Alan Kay as messaging, encapsulation, and extreme late binding). Even though this is a huge I/T group (2000+) and they require models in UML, I've used Squeak as my modeling language. I have major parts of the model running in Squeak complete with Traits-like pluggable behaviors and SUnit tests.
But now the challenge...they want diagrams. Futhermore, they want them in UML.
For those that have ever dove deep into UML you know it does not support true messaging or late binding. A message in UML is a function invocation. This sequence diagrams have enough trouble handling superclass/subclass behaviors, and pluggable traits are almost impossible to show accurately.
Does anyone know of a graphical modeling notation that supports a truly object-oriented model? Or is Smalltalk a new calculus, as Alan Kay suggests, and therefore it remains textual? When I explain to people that the true power lies between the objects, ie, the messaging, they want me to to draw them a picture.
Thanks, Mark Mayfield
Mark, Look at Collaborations in UML 2.0. Let your objects be the roles of the collaborations and the timelines of your sequence diagrams. Use the UML notation, but ignore the textbooks and think in terms of run time objects rather than classes.
Good luck --Trygve
P.S. OOram modeling was invented for describing object interaction. (You find parts of OOram in the UML Collaborations and Interactions). UML 1.x got it wrong, letting a role ("ClassifierRole") be a classifier. They get it right in UML 2.0, the role (part) being a Property ("...a declared state of one or more instances in terms of a named relationship"). The value of a role is an object, possibly with late binding.
BabyUML is a laboratory I am developing to explore high level, true OO programming. A conceptual model is coded with UML class diagrams. The collaboration is an external schema on this model. Its roles are defined by queries (methods) on the conceptual model, ensuring a focus on objects and late binding. Interactions are used to code object interaction.
Great fun, but progress is slow because I use a lot of time to make Morphic do what I want.
At 18:34 18.06.2005, Mark Mayfield wrote:
Fellow Squeakers...
I'm currently building an object model for a banking domain that has 5 parallel projects utilizing it (you know the kind...100+ people, etc.). I have grown this model over the past year using true object-oriented design principles ("true OO" being defined by Alan Kay as messaging, encapsulation, and extreme late binding). Even though this is a huge I/T group (2000+) and they require models in UML, I've used Squeak as my modeling language. I have major parts of the model running in Squeak complete with Traits-like pluggable behaviors and SUnit tests.
But now the challenge...they want diagrams. Futhermore, they want them in UML.
For those that have ever dove deep into UML you know it does not support true messaging or late binding. A message in UML is a function invocation. This sequence diagrams have enough trouble handling superclass/subclass behaviors, and pluggable traits are almost impossible to show accurately.
Does anyone know of a graphical modeling notation that supports a truly object-oriented model? Or is Smalltalk a new calculus, as Alan Kay suggests, and therefore it remains textual? When I explain to people that the true power lies between the objects, ie, the messaging, they want me to to draw them a picture.
Thanks, Mark Mayfield
squeak-dev@lists.squeakfoundation.org