modelant is a practical open source tool that supports model-driven software development processes. modelant version 2.x is an extension of Apache Ant, whereas modelant version 3.x extends Apache Maven. modelant can:

  • create models,
  • load models,
  • query models,
  • transform models,
  • export models,
  • reverse engineer to model
    • java code,
    • relational databases,
    • XML document type definitions (DTD),
    • XML Schema (XSD),
    • Ant scripts (projects and antlibs),
  • compare models and detect model changes,
  • generate textual artifacts from models:
    • java/any code,
    • SQL,
    • scripts,
    • configuration files, etc.
  • generate documentation of Ant scripts (for projects and antlibs in version 2.x)

Standards

modelant uses industry standard technologies and Java APIs. Namely, these standards are JMI 1.0, MOF 1.4, XMI 1.1 / 1.2, UML 1.3, UML 1.4. modelant is integrated with Apache Ant scripting front-end (version 2.x) and Apache Maven (version 3.x). It provides means to query and process JMI-compliant models, in particular:

Code Generation

modelant provides a powerful template engine to generate
  • code,
  • SQL scripts,
  • XML files,
  • textual descriptions
  • and many more.

modelant includes practical  code generation templates for Java POJO.  However, modelant does not provide a common off-the-shelf solution. It is not possible just to pick up and use immediately. Instead, the code generation templates should be adapted for the specific project, frameworks and code conventions.

modelant is a platform that really simplifies the creation of project-specific code generation. For more than 14 years, in my former team at i:FAO AG  we used modelant for code generation. It proved the value of the Model-Driven Software Development in for the development, support and maintenance of the products. In particular it proved the value of modelant too.

Reverse Engineering

modelant’s feature for reverse engineering of java code, relational databases, XML document type definitions (DTD), XML Schema (XSD) and ANT scripts extracts UML 1.3 model that are practical for:

  • generating documentation
  • generating code
  • comparing and revealing structural changes in databases, DTDs, XSDs
  • visualization and human comprehension

Actually, the documentation of ModelAnt itself is an example of ant.doc outcome.

Distribution

The integration of modelant with Apache Maven simplifies the distribution of modelant through Maven plugins, which are found in the Maven Central binary repository. Then the use of modelant’s components is just including in your pom.xml, for example:

 <plugin>
    <groupId>net.mdatools</groupId>
    <artifactId>modelant.uml13.maven.javauml</artifactId>
    <version>3.2.0</version>        
    <executions>
      <execution>
        <phase>compile</phase>
        <goals>
          <goal>reverseEngineerJavaInUml13</goal>
        </goals>
        <configuration>
          <sourcepath>...</sourcepath>
          <outputDirectory>...</outputDirectory>
          <includeDependencySources>false</includeDependencySources>
          <includeTransitiveDependencySources>false</includeTransitiveDependencySources>
        </configuration>
      </execution>
    </executions>
  </plugin>

This allows Maven to download all modelant components and use them.

Sharing Experience

We also collect and publish experience, practices, recommendations, ideas for improvement of the software development process, by employing model-driven software development (MDSD) and raising the abstraction level.

5 thoughts on “Model-driven software development with ModelAnt

  1. this site says:

    Excellent post. I used to be checking constantly this weblog and I am inspired! Very useful information specifically the closing phase 🙂 I maintain such information much. I used to be seeking this particular info for a long time. Thank you and best of luck.

    • popovr says:

      Hello,
      I used Goggle WebMaster Tools and especially PageSpeed Insights (https://developers.google.com/speed/pagespeed/insights) to analyze the .css and .js files the site pages load. As a result I excluded (manually) the .css for all WP plugins it used to include in any page and the corresponding not needed scripts (including the whole jQuery). Moved any other .js loads to the bottom of the HTML page. At the end installed W3 Total Cache to merge and minify the .css files and .js files the public pages still use and cache them. As a result the pages started loading fast.
      With best regards
      Rusi Popov

  2. Elwood says:

    Your style is very unique in comparison to other folks I’ve read stuff from.
    Thanks for posting when you’ve got the opportunity, Guess I’ll just bookmark this
    site.

    Feel free to surf to my web page; games offer (Elwood)

  3. Vite Devenir Riche says:

    Thanks a bunch for sharing this with all people you really underrstand what you’re talking about!
    Bookmarked. Kindly also talk over with my web site =).
    We could have a link trade arrangement among us

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.