Hammurapi Group
Java tools and libraries
Products
Hammurapi
Hammurapi rules
jIncarnate

Supporting libraries
Common library
Enterprise extensions
Mesopotamia

Contact us
Discussion board
Newsletter

Code governance glossary

DescriptionThis document defines terminology and concepts of the code governance methodology.
Id127
Last modifiedFri Jul 27 18:17:05 EDT 2007
GUID4ffea34c999652b77199b73d6dcadcdb3415d79d

Figure 1. Code governance process


Figure 2. Deployment architecture


Figure 3. Embedded embodiment

Glossary

Actor

C

Code governor

Code governor is the central figure in the code governance process. Typically this role requires deep knowledge of target languages. Typically it is played by a senior developer or an architect.

D

Developer

Developers code application functionality. outsource, contractors, ...

I

Inspectors developer

Inspectors developer is responsible for development of inspectors and registering them in the Code Governance Control Center.

L

Language module developer

Language module developer is a person or organization responsible for development of language modules and registering them in the Code Governance Control Center.

R

Runtime environment

Environment where binaries build from sources produced by Developer are executed to deliver business value.

Class

C

Code Governance Control Center

Component

Component is a collection of sources. It is unit of review. Component corresponds to Repository and to a IDE 'Project'. A component belongs to one project, worked on by one or more developers.

I

Inspector

Inspector set

P

Product

Product is a collection of components. ... Team allocation...

R

Review hook

A point in the Development process at which sources are automatically reviewed. ... IDE, (local) build, version control

Component

A

Agent

Agent is a background process (e.g. Windows service), with the following responsibilities:

An agent can fulfill one, two or all three responsibilities at the same time.

Agent-oriented architecture has the following benefits:

  • Minimal client configuration.
  • Client can be written in any language - Java, .Net, C++, Ruby.
  • Distributed processing, which is very important for large codebases.

Artifact manager

Artifact manager is responsible for storing uploaded inspector libraries and assembling jar files stored in it into packages to support review with a particular Inspector set. The artifact manager calculates SHA digests for each uploaded component  and stores only unique artifacts. With the help of the Artifact Manager Code Governance Control Center ensures that inspector sets are assembled in a compatible way, e.g. it doesn't include inspectors residing in different revisions of the same jar. Artifact manager is aware of internal structure of zip and jar files and introspects them to identify changes in inspector classes.

C

Client

Client is an application requesting to review source code. Clients communicate with agents using XML over a variety of protocols, e.g. TCP/IP, HTTP, JMS.
Examples of clients:
  • Plug-in for an Integrated Development Environment (IDE) performs background review of source files and displays results in the IDE problem window.
  • Command-line tool scans a source directory, sends source files to the agent for review and prints review results to the console.
  • A task for a build tool like Ant or make. The task sends source files to the agent for review, outputs review results to a file or console. It can also fail the build process if review results contain severe violations.
  • A hook in the version control system can send source files being checked-in to review. Optionally the hook might disable checking-in of 'bad' code.

Code Governance Control center

Web application (-based) to manage code governance artifacts and processes and to access review results.

Code governance database

A relational database (or a set of databases) which stores configuration information, parsed sources, and review results.

Coordinator

Coordinator is an Agent configured to coordinate code review process by distributing jobs to other agents. There can be multiple coordinators in the network for load balancing purposes. Different algorithms can be employed to select review coordinator based on review initiating agent. Several options are listed below:
  • The Agent itself coordinates reviews, but delegates jobs to other agents when possible
  • Each agent has an assigned coordinator.
  • For each review Coordinator is chosen from a list of available coordinators using round-robin or other load balancing altgorithm.
Coordinator also serves as a remote classloader for agents. Agents cache classes loaded from the Coordinator. This approach obviates deployment of updates to each agent and also optimizes network utilization.

I

Inspector library

Inspector library contains jar file with inspectors and helper classes, supporting jars, configuration files and documentation.

Operation

A

Automated review process

Automated review process is a process of parsing sources produced by Developer(s), ...

B

Build process

Build process is a process of convertins sources produced by Developer(s) into binary representation to...

D

Development process

...

References

Glossaries referenced by this glossary
GlossaryNamespace
Hammurapi glossary hammurapi
Hammurapi rules glossary hammurapi-rules
Mesopotamia glossary mesopotamia

Hammurapi Group