Code Governance Platform

Hammurapi Group's foremost goal is development of Code Governance Methodology and Tools.

It is easy to automatically review several hundres source files and display results to the developer in his/her favorite IDE. There is a lot of tools doing this. IDE's like Eclipse have built-in simple code review rules. But what is next? What if the developer is overwhelmed with review warnings and they become a noise, which the developer simply ignores? If you integrate the review tool into the build process, who is going to review thousands of reported violations? How is that person going to communicate to developers problems which have to be addressed immediately and how will that person control that problems have been addressed? If there are problems with the source identified as a result of a production outage fix, or during manual reveiws or profiling. The tool doesn't catch the problem. Who will modify the tool?

This is where core reviews shall evolve to code governance.  Hammurapi Group's code governance platform initiative includes development of:
  • Code governance glossary.
  • Detailed code governance processes.
  • Argun -based web application which implements code governance processes and provides management interfaces for Mesopotamia repository, Hammurapi rules rule sets and Hammurapi reports.

Hammurapi

Hammurapi will evolve through:
  • Development of inspectors for available Mesopotamia language modules.
  • Report enhancements such as support of annotations. Annotation is a custom renderer (like a portlet) attached to source unit or report.

Argun

Argun is the key enabler of the Code Governance Platform. Below is the list of enhancements which we are going to add to Argun:
  • Web diagrams file type to model page relationships and generate pages from diagrams.
  • Export of the help system content to PDF.
  • Export of online documents to PDF.
  • Event bus.
  • Process execution engine.
  • Enhancements in process modeling.
  • State machines engine.
  • In-browser image editor.
  • "Flash" file type and other file types as needed.
  • Charting support to make it easy to include charts to pages and documents.
  • Metrics collection and browsing support.
  • Traceability between source and generated objects. E.g. traceability from analysis terms to database tables generated from them.
  • WebDAV support in Argun file system.

Mesopotamia

There are no major changes planned in the Mesopotamia library per se. The product will primarily evolve through addition of language modules and loaders. In particular we are looking at implementing:
  • Reference loaders for Java.
  • Language modules for 
    • XML
    • SQL
    • JDBC metadata
    • JavaScript
    • HTML
    • JSP
    • HTML
    • C#
Language module development process is well defined for ANTLR grammars. For all the above mentioned languages ANTLR grammars are either available or easy to implement.

Code Governance Platform will provide tooling for browsing and managing Mesopotamia repositories.

Hammurapi rules

  • Rule set management application is going to be part of the Code Governance Platform.
  • Higher-level, domain-specific rule authoring languages. Rules defined in these languages will be compiled to Java rule classes, statically or dynamically, in a way JSP's are compiled to Java classes.

SQLC

SQLC  is a stable product which does well what is was created for. In the future SQLC will be merged with Transformica to work off Mesopotamia models and to use Hammurapi rules behind the scenes. Essentially SQLC will become a ruleset for Transformica. Functionally, the following enhancements will be implemented after the merge:
  • Support for generics.
  • Behaviors - navigation of relationships and queries will be attached to data objects instead of engine classes. One table/query will have one base database object generated and multiple behaviors.
  • SQLC might be integrated with Argun's SQL Console.

Transformica

Transformica will be work off Mesopotamia models and will use Hammurapi rules . Support for additional template engines will be added.

Build number

Build number will be migrated to Argun. After that it will support upload of build deliverables to the Argun file system. Build Number will become a part of the Code Governance platform.

Common library and Enterprise Extensions

These two products will continue to evolve on as-needed basis through extraction of reusable pieces of code from other products.