Browse Prior Art Database

Automated Support Code Generation for an Object Oriented System

IP.com Disclosure Number: IPCOM000115215D
Original Publication Date: 1995-Mar-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 6 page(s) / 230K

Publishing Venue

IBM

Related People

Chen, C: AUTHOR [+2]

Abstract

A method of generating supporting source code based on information extracted from a project's Object Oriented Analysis (OOA) models is disclosed. Code generation can be automated and controlled by an underlying architecture domain to help achieve the desired system performance and flexibility goals while preserving a framework derived from extensive modeling analysis. Excerpts of a functional implementation are used as examples to illustrate the interrelation between application objects and the architecture domain.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 24% of the total text.

Automated Support Code Generation for an Object Oriented System

      A method of generating supporting source code based on
information extracted from a project's Object Oriented Analysis (OOA)
models is disclosed.  Code generation can be automated and controlled
by an underlying architecture domain to help achieve the desired
system performance and flexibility goals while preserving a framework
derived from extensive modeling analysis.  Excerpts of a functional
implementation are used as examples to illustrate the interrelation
between application objects and the architecture domain.

      In addition to basic object characteristics such as object name
and object type, other artificially asserted characteristics can be
enforced during analysis to improve the modeling representation and
design documentation.  This facilitates error checking within models
and enables automated code generation.  The following asserted object
characteristics are used for automated code generation:
  o  unique object alias name
  o  requirement for instance list support
  o  requirement for subtype migration support
  o  resident processor
  o  transition control statements
  o  event naming conventions that uniquely define each event
  o  event tracing class

      Two different types of processing are involved in automated
code generation.  System wide definitions for data structures, global
types, constants, and macros are generated using a model extraction
tool set.  Object specific definitions and code are generated through
subsequent macro preprocessing using a compiler tool set.

      Given a software tool capable of extracting information from
analysis models, a set of local macro preprocessor definitions are
generated for each object in a file with a name derived from the
object's alias name.  These local macro preprocessor definitions
define the basic object characteristics and are used to control the
generation of specific supporting code during object module
compilation.  These local macros define the following information in
macro language syntax:
  o  object full name
  o  object alias name
  o  object type (Active, Passive, or Monitor)
  o  object storage class and size
  o  object requirement for instance list support
  o  object inheritance level (Supertype, Subtype, or Stand-Alone)
  o  if an object has a supertype, the supertype full name
  o  if an object has a supertype, the supertype alias name

      Prior to object module compilation, a macro preprocessor is
invoked to process the source code files and replace all defined
local macros with assigned text strings.  This creates specific
symbols and code that are only meaningful to a particular object in
specific implementation language syntax.

      As an example, to support a doubly linked instance list for a
supertype object, two additional attributes are generated and
inserted into an instance data structure to maintain l...