SNIP Code Pattern Engine

The SNIP Advanced Code Pattern Engine by Advantage Software Technologies is the fastest code generator on the planet. SNIP is the work-horse used in applying a software manufacturing approach. It can pull in descriptive metadata from multiple simultaneous sources, compile it, and create any number of code artifacts, running at incredible speeds for large scale applications.

SNIP is the enabling element in applying patterns in the software manufacturing process. It offers these features:

  • Accepts multiple forms of model/metadata input (UML XMI, XML, Java, SQL DDL, MOF, DSM metadata)
  • Highly effective template language for traversing models and generating components
  • Generates any number and types of files in a single pass
  • Compiles metadata and supplies a complete set of cross-reference links for use during code generation
  • Full control over directory and file creation
  • Preserves code within protected regions in generated files
  • UI for rapidly converting hand crafted code into templates
  • Ability to extract metadata from existing systems, enabling use of patterns in extending/re-engineering systems
How it works

The input to SNIP is metadata that describes class, state-transition and process models. SNIP internalizes the model information from a variety of input sources (its metadata compiler aspect) and then uses that information to execute templates that produce any number of generated code artifacts.

Templates are the work-horse of the solution, allowing you to take patterns of code that appear in your solutions and automate the production of code that follows those patterns.

Inputs that Supply Metadata

Types of inputs that supply descriptive metadata to SNIP may include any and all of:

  • XMI – exported from UML tools such as Enterpise Architect
  • XDSMXML following a recommended DTD for specifying class models
  • General XML of any format
  • DSM format – Our own human readable, CM system friendly, textual object specification
  • ODBC data sources (for re-engineering)
  • SQL DDL (for re-engineering)
  • Java class files (for re-engineering)
Applying Code Patterns

Applicaitons of SNIP have included model-driven development of:

  • Web applications
  • Database schemas
  • Object-relational persistence layers
  • C++ class networks
  • Java class networks
  • Documentation from reverse engineered information sources
  • Components that fit into custom object frameworks of many types
  • many others… and it is the engine underlying our FastTracks product