ModelMaker: Native Refactoring and UML 2.0 modeling for Delphi and C#

ModelMaker 11.5.0 released

On September 19th 2013 ModelMaker Tools released ModelMaker 11.5 This update includes Delphi XE5 support.

ModelMaker in short

  • Award winning Delphi™ and C# UML 1.4/2.0 Visual modeling and Refactoring tool.
  • Native Pascal and C# .NET support - unmatched by any other tool.
  • Delphi 4-7, Delphi 2007-2010 and Delphi XE-XE5 IDE integration
  • Visual Studio 2003 - 2012 IDE integration.
  • Instant Code generation, Reverse engineering (code import)
  • Instant visualization.
  • Designed for Large scale Restructuring and Refactoring.
  • Whole spectrum of UML diagrams supported.
  • IntelliReplace™ propagates renames in code.
  • Point-and-click, drag-and-drop programming.
  • Deploy Design Patterns.
  • Improve the design of existing code with build-in Refactorings.

As a result:

  • Speed up development
  • Produce designs and code of unequaled quality.
  • Think of design instead of typing code.
  • Design without compromising and Refactor designs until they feel just right.
  • Create and maintain magnitudes larger projects in magnitudes less time.
  • Document you designs in UML 1.4 or UML 2 style diagrams.
  • Document your source in help files by clicking a single button.
  • In short: save time and money, making better software.

ModelMaker is a two-way class tree oriented productivity, refactoring and UML-style CASE tool.

Pascal edition

The Pascal edition is specifically designed for generating native Delphi code. Delphi's Object Pascal language is fully supported, including most of Delphi for .NET syntax (v1 and v2). ModelMaker Pascal Edition has full reverse engineering capabilities and import existing Delphi code. Delphi IDE Integration experts take care of synchronizing ModelMaker and the Delphi IDE editors.

C# edition

The C# edition is specifically designed for generating native C# code. The C# 1 - C# 5 .NET framework syntax is fully supported. ModelMaker C# Edition has full reverse engineering capabilities and import existing C# code. including generics and nested types. Delphi and Visual Studio IDE Integration experts take care of synchronizing ModelMaker and the Delphi and or Visual Studio IDE editors.

Customers use ModelMaker for the whole field of software development: real-time, technical and database type applications.

Design and UML Modeler

You design in the UML modeler and/or the code model views. ModelMaker supports the full set of UML diagrams:

Restructuring and Refactoring

ModelMaker's active modeling engine maintains all relationships between classes and their members. This is the base for ModelMaker's restructuring power. For example: Renaming a class or changing its ancestor immediately propagates to the automatically generated source code. If you change a (virtual) method, the overriding methods are automatically updated and regenerated. Tasks like overriding methods, adding events, properties and access methods are reduced to selecting and clicking in dedicated dialogs.

Many build-in refactorings are available on both structural and code level. For example: Extract Method, Extract Class / Interface, Rename Parameter etc.

Apart from those you'll find that you can drag drop (or copy /paste) almost any entity to copy, rearrange or convert it. For example:

  • Copy/Move members to another class.
  • Convert local variable or procedure to a field or method.
  • Add/Remove a class to/from a module.
  • Rearrange classes within modules.
  • Create a Delegate from a method.
  • Create an Event property or Event handler method from a Delegate.
  • Much more included; check the user manual chapter Drag and Drop support.

Seamless transformation to code

The main difference between ModelMaker and other CASE tools is that design is strictly related to and native expressed in the Delphi or C# target code. This way there is a seamless transition from design to implementation as currently not found in any other high level CASE tool. At the same time this approach assures your designs remain down to earth.

The main difference between ModelMaker and other Delphi and C# code generators are it's high level overview and restructuring capabilities letting you deal with complex designs.

Visualizing (existing) code

Use instant code visualization to help you understand structure and design of existing code. Classes and their members are displayed in class diagrams along with their structural relations:

Different layouts and preset styles make visualization easy and fast.

  • Adjustable Auto maintained compartments show class members to any detail.
  • Visualize classes on multiple diagrams with different details to show different roles.
  • Drag and drop classes from classes or Modules view onto a diagram. Classes and their relations are instantly visualized.

Documenting design and code

  • Embed the professional quality UML diagrams in your documentation.
  • Copy and paste diagrams in windows metafile format or export diagrams to file in .wmf, .bmp, .png and .jpg format
  • Highly configurable visual appearance using (named) styles.
  • Stereotype based auto colored symbols
  • Print hard copies auto stretched or on multiple pages.
  • Enter Documentation and/or One Liner descriptions for entities. These can be generated and imported into / from source code.
  • Create Help Files with the build-in Help File Generator.
  • Create your own reports through the ModelMaker ToolsAPI. XML reporter sample included.

Other features

A unique feature is the support for Design patterns. A number of patterns are implemented as 'ready to use' active agents. A ModelMaker Pattern not only inserts Delphi code fragments to implement a specific pattern, but it also stays 'alive' to update this code to reflect any changes made to the design.

Design Critics scan your design for oddities and offer solutions wherever possible. You can add your own critics through the ToolsAPI.

The ModelMaker Tools API is a read/write API allowing you to create your own style reports, wizards, based on iteration on classes, members, diagrams etc. This API also integrates Version Control Systems with ModelMaker.