Whitehorse Class Designer

I had promised last week that I would post some screen shots of the Whitehorse Class Designer tool. Here is one.

Notice that this diagram would be familiar to anyone used to UML notation. However, it is not a UML Class Diagram, but a visualization of CLR classes which could be either from VB or from C# projects. Underlying code artifacts (source files) are kept in sync with changes made using the Class Designer. Changes made to source files which affect elements of the diagram are likewise immediately synchronized. Feedback from developers who have used this designer has so far been largely positive. To a developer it is a useful code visualization tool, and a place where the structure of an emerging program can be designed before any method body coding starts. There are no concepts exposed that are based on a generic type structure, as would a corresponding UML Class Diagram, and no odd extensions that have been grafted on to the surface to cope with CLR unique characteristics.

True, in its raw form, it offers no higher-level abstractions, but to tool developers (like us), it is built in exactly the same way that a designer for higher-level, more abstract domain-specific modeling language would be built (like one of the other Whitehorse designers, for example). We defined:

  • a metamodel, or abstract syntax graph, for the DSL (which is a meta representation of the CLR type system)
  • the mapping of the abstract syntax graph to a concrete syntax (boxes and lines in this case)
  • well-formedness rules for the language (CLR type system constraints)
  • mappings from this abstract syntax to artifacts (C# or VB source files, in this case)

Hence the Class Designer is very much part of our broader strategy for using DSLs to improve the application development process.

To get away from somewhat contrived examples, here’s a piece of a Class Designer screen created when asked to visualize a piece of the System.XML assembly.

Comments

  • Anonymous
    March 05, 2004
    Can you post some slightly less blurry images? It's hard to make out details on those screenshots because of the resampling.

  • Anonymous
    March 05, 2004
    Keith,

    This is excellent stuff. When I saw it at the PDC, I was literally blown away. The ability for designers/developers to update diagrams and have the code kept in sync is absolutely amazing. As an architect, I constantly create and update UML diagrams, and am always concerned about the diagrams getting outdated. Typically, diagrams are created during design and once developers start writing code, the diagrams go out-of-date because developers won't update the diagrams as they make changes to the code. The Whitehorse stuff seems to address that problem, and I very much look forward to it. BTW, any job openings on your team :-)

  • Anonymous
    March 05, 2004
    If its not UML, then dont waste our time.

  • Anonymous
    March 06, 2004
    If you really need to do this today, full round trip engineering, Rational XDE does this today. It's a bit on the clunky side and seemingly more disjoint from the actual code base.

  • Anonymous
    March 06, 2004
    Are you going to support ORM (Object Role Modelling) in Whitehorse? Do you see Object Role Modelling being in use by many developers? Will it still be supported in Visio?

  • Anonymous
    March 06, 2004
    Well Mark, in my opinion, ORM is a superior form of data modeling and well supported in Visio. For Whidbey, I understand the ORM support will still be part of the Visio version that ships with the Enterprise Architect Visual Studio. ORM has an enthusiastic, but small, user community. We hope that that community will take up the challenge (when we're able to publish our designer-building tools and framework) of implementing ORM as a first-class DSL within our family of modeling languages.

  • Anonymous
    March 06, 2004
    BTW, apologies for the blurry images, I'll update the links with better ones as soon as I can. In posting this article, I was severely image-posting challenged, but wanted to get up what I had :-)

  • Anonymous
    March 06, 2004
    The comment has been removed

  • Anonymous
    March 07, 2004
    Ferris, you are so darn smart aren't you!

  • Anonymous
    March 08, 2004
    Any chance this will make it into the "Professional" editon?

  • Anonymous
    March 08, 2004
    Keith:

    Any initution on the level of complexity involved in hosting UML 2.0 as a DSL in Whitehorse? This is just metamodel->visual syntax+well formedness rules, no artifacts. This is assuming that the modeling infrastructure will be available for third party extensions at some point.

    Also, I think there is may be value in this example to provide a "standard UML" or "simplified" view. Simple lines and text, no use of icons or widgets (text/stereotype annotations only), and so on.

    I find this more easy to print, read and sketch. One big advantage to UML notation is that it is visually simpler and easier to read and create. For example, how would I sketch a Whitehorse class on a whiteboard? Are the icons important? And so on. It think a "non-UI" view of models is very important.

  • Anonymous
    March 08, 2004
    Keith:

    I am wondering when drawing the graphs do you use gdi or gdi+

  • Anonymous
    March 09, 2004
    Keith,

    Thanks for posting this info. I absolutely love it! It looks like you're delivering exactly what I need. Keep up the great work.

    Once again you have made my day! :-)

    Bill

  • Anonymous
    March 10, 2004
    To Lynn:

    Current plan is to include Class Designer almost in each and every Visual Studio SKU - including Professional edition.

    Also wanted to comment on the size of Class Designer installation - it's quite different from what you expect from large modeling suites for UML which exist today - it's just 4MB total size! So it won't hurt your hard drive at all :-)

    Thanks
    /Dmitriy
    Class Designer Team

  • Anonymous
    March 10, 2004
    I've upgraded the screen shot images as promised. Sorry it took so long. Dont forget to maximize your browser for best effect.

  • Anonymous
    March 12, 2004
    To Nathan:

    I don't have a really solid feel yet for the effort required to build a new DSL as I explained in the article. This is mostly because we have been simultaneously building the underlying framework while building the first few tools based upon it. To implement all the current notation sets/tools in UML 2.0 would be an undertaking for sure, but picking say the task of implementing an Activity Diagram should be manageable by a small team (2-3 people) in a small number of weeks. The key variable is the amount of artifacts that mauct be generated and synced from the DSL.

    Again, this is an opinionated guess based on work on the Class Designer, and could be wildly out in either direction. This is something we have to get more concrete on.

  • Anonymous
    March 13, 2004
    Keith:

    Thanks for the qualified estimate. As you noted, it is a very rough estimate (subject to change), and understandably so.

    As in many software projects, we are busy constructing the building at the very same time as the foundation.

    At any rate, it seems to me UML 2.0 may be an undertaking, it is not by any stretch impossible. I see this as a very good thing.

    Hopefully it will force others in the UML tool community to face up to the limits of profile-based extension and to see the advantages of metamodel-based approaches.

    Another thing. Being able to use model information to fill in a Enterprise Template would be cool. Model template would extremely cool, but that's hard.

    I look forward to seeing what other DSLs may be awaiting us.

    Thanks again for your kind attention,

    Nathan

  • Anonymous
    March 18, 2004
    I saw a demo of whitehorse as part of a webcast a month or so ago. It looks fantastic.

    Do you have any idea if it will be in the beta releases of Whidbey or if there is any way to obtain it to use alongside the PDC release of Whidbey? I would love to have a try of it.

    Neil

  • Anonymous
    March 18, 2004
    You will have a chance to try Class Designer in the Beta releases - we'd love to hear your feedback! Unfortunately, it was not in the DVD that was released at the PDC.

  • Anonymous
    March 23, 2004
    whitehorse is a open source product? any similar program version available in the net as open source project, maybe at the sourceforge portal?

  • Anonymous
    March 28, 2004
    I would like to know if this still works if you descent from classes in assemblies for which you don't have any sourcecode. It would be great if these classes are readonly in the model.

  • Anonymous
    March 31, 2004
    Robert: Yes, the Class Designer can read metadata from assemblies referenced in projects and display these as read-only classes.

  • Anonymous
    April 06, 2004
    Mark Speaker (on ORM):

    Northface University focus on modeling environments supported by Microsoft and IBM. Grady Booch is on our advisory board and Terry Halpin (the man behind ORM) is full time with us. We plan indeed to marshal the ORM community and do a first-class ORM DSL as soon as feasible. We currently offer a BSCS, but we will introduce two masters program and a doctorate later this year and modeling related to service oriented architectures will be one of the core research areas for us

  • Anonymous
    April 09, 2004
    To Mark: This sounds exciting. Good luck with your plans. Let me know if there's anything we can do to help.

  • Anonymous
    April 22, 2004
    Nice idea
    Shame that is is going to be a proprietory implementation

  • Anonymous
    April 22, 2004
    Nice idea
    Shame that is is going to be a proprietory implementation

  • Anonymous
    May 29, 2009
    PingBack from http://paidsurveyshub.info/story.php?title=keith-short-s-blog-whitehorse-class-designer

  • Anonymous
    June 08, 2009
    PingBack from http://quickdietsite.info/story.php?id=356

  • Anonymous
    June 15, 2009
    PingBack from http://einternetmarketingtools.info/story.php?id=22729