The Artima Developer Community
Sponsored Link

.NET Buzz Forum
What I want from a modelling tool

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Jonathan Crossland

Posts: 630
Nickname: jonathanc
Registered: Feb, 2004

Jonathan Crossland is a software architect for Lucid Ocean Ltd
What I want from a modelling tool Posted: Feb 13, 2009 7:40 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Jonathan Crossland.
Original Post: What I want from a modelling tool
Feed Title: Jonathan Crossland Weblog
Feed URL: http://www.jonathancrossland.com/syndication.axd
Feed Description: Design, Frameworks, Patterns and Idioms
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Jonathan Crossland
Latest Posts From Jonathan Crossland Weblog

Advertisement

Case tools, Modelling, UML, you name it, we have had the dream. We have built the tools. We have designed and bashed heads on semantics and special interests. Now the compromise is still not good enough. When a team of people begin to compromise design and philosophies you get a ViewPointMixture. A ViewPointMixture: a mixture of good ideas from various people for various reasons = Bad design (most of the time).

Not all good ideas work well together, albeit a good idea in itself. Most tools then become technical. UML is a technical specification, therefore the tool reflects a 1 to 1 mapping. I don't necessarily want that to always be the case.

With that said, this is what I would like to get out of this space. I would like 3 phases of activity/

Sketch Time, PlayDoe Time and WorkTime
Firstly a tool must allow me to sketch. I should be day dreaming, thinking, designing. Nothing is concrete. I like using a pencil tool for this. But I draw like a 3 year old, so I need the tool to help me a bit. Perhaps it can soften my curves, straighten my lines. Not Dead Straight, just straighter.
The tool should allow me to draw any shapes I want. rectangles that look like packages or components, it doesn't matter at this point. I draw lines, it does not matter if it looks like a generalization arrow or not. i am sketching and I know what I am drawing, I don't need interference, just gentle assistance.

PlayDoe Time
Now that I have some "shapes" and "lines" on the canvas from my sketching, I want to formalize it a little bit, move things around and solidify things one step at a time.
I want to click on a shape, that I am sure will be an Interface, and then it makes it so. The colour is slightly different, it straightens the shape a bit more (but not completely), and it adds an Icon, symbol on the shape representative of an Interface. Now looking at it, I can see its an Interface, not cast in stone, but more formal than my original sketch.
I can then systematically alter any shapes I want, pointing out boundaries. I draw a box around a group of shapes and mark it as "Server", and draw a box around bunch of shapes and call it components. I then draw another shape around those shapes and call it package. With each declaration of intent, the graphic becomes that little bit more finalized and clean, but not cast in stone.

WorkTime
So now I have the sketch, that has become playdoe, that has a little more metadata and structure, I can now decide to formalize it, one shape at a time, or do the whole lot for me at a single click. If I don't like the result, I go back to PlayDoe and add a little more metadata to define it a little more. Once again I click the create button to formalize the PlayDoe, and it results in something I want. Now I can Sketch on top of my WorkTime canvas. Which begins the cycle and applies the layer to the WorkTime model, when I want it to.



Now we come to Code Generation
The industry struggled with this for a while. But it is clear we must have a mixture of one way generation, Reverse Engineering or Round Tripping. Now we understand that we have to take bridge the gap between the design in a Model and the code the developer writes. However, fine grained control is required and I think that the idea of PlayDoe or something similar could help us with seeing our code and models in a semi concrete fashion distinct from the concrete classes.

So if I am designing some new things in a sprint, then until I commit, I don't want to affect the existing classes and code. i want to sketch and play and then commit it.

Read: What I want from a modelling tool

Topic: Frust auf der A3 Previous Topic   Next Topic Topic: Get Started Developing on Windows Azure

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use