With the Cibet framework, it is very easy to add various control mechanisms into a JPA and/or EJB-based Java application. The actual version includes control schemes like Archiving (manipulation of domain objects; data and execution of business processes are archived). From the archived state, domain objects can be reconstructed and business processes can be re-invoked with the same parameters at any time. The archive entries are secured against manipulation to make them audit-proof and revision safe. Four-eyes principle: this scheme is an example of a dual control mechanism: A user wants to perform some critical data manipulation or business process. With an applied dual control mechanism, the action is not executed in the production system directly, but stored and postponed. A second user must check the data and the action and can approve or decline. Only when the second user approves, the data manipulation or business process is executed in the production system; otherwise it is discarded. An even stricter example for a dual control mechanism is the six-eyes principle. In this case, a third user must approve a data manipulation or business process before it will become productive.
Metrix++ is a platform to collect and analyze code metrics. It has a plugin-based architecture, so it is easy to add support for new languages, define new metrics, and/or create new pre- and post-processing tools. Every metric has 'turn-on' and other configuration options. There are no predefined thresholds for metrics or rules; you can choose and configure any limit you want. It scales well to large codebases. For example, initial parsing of about 10000 files takes 2-3 minutes on an average PC, and only 10-20 seconds for iterative re-run. Reporting summary results and exceeded limits takes less than 1 - 10 seconds. It can compare results for 2 code snapshots (collections) and differentiate added regions (classes, functions, etc.), modified regions, and unchanged regions. As a result, easy deployment is guaranteed into legacy software, helping you to deal with legacy code efficiently, and either enforce the 'leave it not worse than it was before' rule or motivate re-factoring.