About the Application Design Transformer

Related Topics

The Application Design Transformer creates first-cut application designs based on functions and business unit definitions created in the repository during the analysis phase. The Application Design Transformer generates candidate:

•	Modules

•	Menus

Note:	This utility only processes functions and business unit definitions owned by the current workarea.  Referenced functions and business unit definitions, outside the current workarea are not processed.

Module generation

The Application Design Transformer converts function definitions, their business unit associations and entity/attribute usages into candidate modules. The candidate modules can be implemented as Oracle Forms, Oracle Reports, Web PL/SQL or Visual Basic applications using the Design Editor. About

If the corresponding database table and column definitions exist in the repository, function data usages are converted into module components. Module components define how a module uses the tables and columns in the database. About

In addition, module parameters can be derived from dataflow definitions.

Menu generation

The Application Design Transformer uses the module to business unit association to create candidate menu module networks. About

Menu options are grouped together according to business unit usage and module type (i.e. Oracle Forms, Oracle Reports, Visual Basic etc.).

Using generated modules

Modules and menu modules created by the Application Design Transformer are initially presented in the Navigator as ‘candidate modules’, that is, they appear with the icon [image]. To accept a candidate module (i.e. to include it within an application design), you will need to change the Candidate property of the module to ‘No’. This changes the module icon to reflect the correct language for the module. About

Generated modules can then be used to generate client applications, using Design Editor. About


How the Application Design Transformer works

Related Topics

The Application Design Transformer can be run from the Function Hierarchy Diagrammer,  Dataflow Diagrammer, Repository Object Navigator or Oracle Designer Front Panel. How

The Application Design Transformer can generate modules and menu module networks.

How modules are generated

Candidate modules are generated according to a set of strict rules. Put simply, a candidate module is created for most business functions in the current application system. If you have created references to functions stored in other application systems within the current workarea, these functions can be processed too. The utility also performs a certain amount of merging and splitting of candidate modules. About

The resulting candidate modules are then categorized into a language type (i.e. manual, screen, report or utility) according to another set of rules. The utility also creates module arguments (sometimes called parameters) and module component data usages.

How menu module networks are generated

First, the utility generates candidate menu modules by grouping together under the same menu, modules that are associated with the same business units. Any modules not associated with a business unit are grouped under an additional menu module named Miscellaneous. About

Within each business unit menu, the modules are further grouped together according to the module language type, i.e. screen, report, utility. For example, all the report modules within a menu are grouped together under the Reports Menu.

The utility also creates the top-level Application Menu to contain all of the first level candidate menu modules.


Module elements created by the Application Design Transformer

Related Topics

During generation, the Application Design Transformer creates the following set of elements based on functions and business unit definitions:

Candidate modules

Module arguments (parameters)

Module components and their data usages

Candidate menu module networks

Refer to these topics for detailed information.


Candidate modules created by the Application Design Transformer

Related Topics

If you do not specify a Start Function for the Application Design Transformer, all business functions in the current application system are considered for generation into modules. If you have created references to business functions in other application systems within the current workarea, these functions are also presented. If you do specify a Start Function, all business functions that have the Start function as a root, are considered down to the elementary node (or leaf if no elementary nodes exist).

For a candidate module to be created from a business function, the function must satisfy one of the following three rules:

•	The function must be a leaf function and have no elementary or common function ancestors.

•	The function must be a common function.

•	The function must be an elementary function.

Merging modules

Candidate modules will be merged into a single module if the base functions are not manual functions and have:

•	the same value for 'Response Needed'

•	the same value for 'Input Parameters'

•	the same Business Unit Usages

•	similar data usages (you have the option of setting the level of granularity for the merge)

The Description and the Notes for the business functions will also be merged.

Splitting modules

A candidate module will be split into separate modules if the base function for that module is associated with more than one business unit. A module will be created for each function business unit usage.

Module language

The Application Design Transformer uses the following rules to determine the language for the module that it creates:

Situation	Language Type
No tables implemented for entities	Manual
Function Response Needed = 'Immediate'	Screen
Function has Read Only data usages	Report
Function Response Needed = 'Overnight'	Utility
None of the above	Screen
Note:	Use the Language group in the Application Design Transformer dialog box to specify which module language is to be assigned to each language type, i.e. Screen, Report, Utility.


Module arguments (parameters) the Application Design Transformer
Module arguments (parameters) created by the Application Design Transformer

Related Topics

Module arguments (sometimes called parameters) are derived from dataflows to and from the base business functions of the module. More specifically, a module argument is created for each attribute or data item in the dataflows of the function. The dataflows considered must satisfy the following two rules:

•	If the dataflow is an input, the source must not be a datastore.

•	If the dataflow is an output, the destination must not be a datastore.

The direction of the argument is determined by the direction of the dataflow. For example, if the dataflow is an input, then the argument is an INPUT.

Other property values of the module argument (e.g. datatype) are derived from the source attribute or data item in the dataflow.


Module components created by the Application Design Transformer

Related Topics

Module components and their data usages

The Application Design Transformer creates a module component and module table usage where the base function has entity usages and those entities have table usages. These table entity usages may have been created by the Database Design Transformer, or created manually using the Repository Object Navigator.

The corresponding Summary Module Table Usages are also created.

Note:	If a module contains more than one module component they are sequenced alphabetically.  If you want to use the Default Links Utility to create master-detail links between these components, it may be necessary to resequence the module components first. Use drag and drop on a Module Diagram to place module  components in the correct order.

Bound items

The Application Design Transformer creates one bound item for each column in a table that corresponds to an attribute used by the base function.

However, there are two other cases where the Application Design Transformer creates a bound item:

Foreign key implementation

To implement an entity relationship, the Database Design Transformer may create a surrogate key column for the resulting foreign key. If one exists, the Application Design Transformer creates a bound item for the a column, even though it does not map directly to an attribute.

Mandatory column implementation

A bound item is created for each mandatory column for which a module component has ‘insert usage’, i.e. its Insert property is set to ‘Yes’. This situation can occur for any one of these reasons:

−	One of the entities used by the base function has a mandatory relationship with an entity not used by the base function.

−	A mandatory attribute of one of the entities used by the base function is not used by the business function.

−	A mandatory column has been added manually to the table.

In these circumstances, the bound item is created only for those mandatory columns in a table for which the module component has insert usage. The reason for this is that if the generated module component inserts a row into the table, the mandatory column in that row requires a value and therefore the corresponding field should be accessible to the user in the generated module. If the module component cannot insert a row (i.e. it does not have insert usage on the table), then there is no need for the item.

Windows

A single window definition is created for all module components in a particular module.


Candidate menu modules created by the Application Design Transformer

Related Topics

Application level menu modules

The Application Design Transformer creates an application level menu module based on the Title property of the target application system. This menu module calls the first level candidate menu modules and is necessary for the Generators to be able to generate the menu module network.

First level menu modules

The first level of candidate menu modules are created from module business unit usages. Modules that are used by the same business unit are grouped under the same menu. Modules that are not associated with any business unit are grouped under the 'Miscellaneous' menu.

Second level menu modules

Within business unit menus, the modules are further subdivided by their type. For example, the screen modules are grouped into one menu.

These second level candidate menu modules call the modules previously created by the Application Design Transformer.

For example:

Consider the following set of modules and business units.

Module	Business Unit	Language	Language Type
MOD1	Headquarters	Oracle Forms	Screen
MOD2	Headquarters	Oracle Forms	Screen
MOD3	Headquarters	Oracle Reports	Report
MOD4	No unit	Oracle Forms	Screen
MOD5	No unit	Oracle Reports	Report
If the Module Prefix is set to MNU, the Application Design Transformer creates the following menu module network. Note how the leaf menu modules call the relevant application module:


Generating a default application design from analysis data

Related Topics

The Application Design Transformer creates a default application design by generating candidate modules and candidate menu module networks, from analysis data recorded in the repository.

The Application Design Transformer is not designed to be used iteratively on individual sections of a function hierarchy. Therefore, you should ensure that the analysis data is complete and that your database design is stable and complete, before you use this Transformer.

Note:	Both short and long module names must be unique across all modules in an application system, whether or not the modules are candidate modules. Attempting to create a new candidate module with the same name as an existing one does not overwrite the existing module but prevents completion of the Application Design Transformer.

To generate a default application design:

1.	If necessary, invoke one of the following tools:

•	Function Hierarchy Diagrammer

•	Dataflow Diagrammer

•	Repository Object Navigator

•	Oracle Designer Front Panel

2.	Generate candidate modules from analysis data.  How

3.	Accept (or reject) the candidate modules. How

4.	Generate candidate menu module networks from analysis data. How

5.	Accept (or reject) the menu module networks. How

Next Step

Once complete, use the Design Editor to refine your application module design.

If you want to use the Default Links Utility to create master-detail links between module components in the same module, it may be necessary to resequence the module components first, i.e. the master module component must precede the detail module component. By default, the Application Design Transformer sequences module components alphabetically. Use drag and drop on a Module Diagram to place module components in the order you require.

Once your application module design is complete it can be implemented as Oracle Forms, Oracle Reports, Web PL/SQL or Visual Basic applications using the Design Editor. About


Generating candidate modules from analysis data

Related Topics

Use the Application Design Transformer to create a set of candidate modules from analysis data.  About

To generate modules from analysis data:

1. 	Do one of the following:

•	From Function Hierarchy Diagrammer or Dataflow Diagrammer, choose Utilities→Application Design Transformer and then select a target application system for your modules. If a diagram is open, the application system of the current diagram is used.

•	From Repository Object Navigator, choose Utilities→Designer→Application Design Transformer and then select a target application system. You can pre-select a target application system on the Navigator if you wish.

•	From Oracle Designer Front Panel, click the Application Design Transformer icon and then select a target application system for your modules.

2.	Choose the Generate Modules option to specify that you want to generate candidate modules.

3.	(Optional) Enter a Module Prefix to be used for the generated module short name.

If you do not enter a prefix, the first six characters of the application system name are used by default.

4.	(Optional) Choose the Start Function to be used as the root of the function hierarchy.

To generate all functions within the current application system, leave this field blank. If you have created references to functions in other application systems within the current workarea, these functions are also processed.

Note:	If this utility is invoked from the Function Hierarchy Diagrammer or Repository Object Navigator with a single function selected, this field defaults to the name of the selected function.

5.	In the Module Options field, select the module language you want to assign to screen, report and utility module language types.

6.	Select the appropriate Merge Granularity option to determine the level of data match that should be used when merging candidate modules.

7.	Click Generate to start the Application Design Transformer.

8.	At the end of generation, click Close.

9.	To review generation messages, select the Show Results button.

Note:	Other, more detailed reports such as the Module Definition report can be run from Repository Reports.

10.	Review the generated modules, using the Navigator in the Design Editor or Repository Object Navigator.

11.	Accept or reject the candidate modules. How

Note:	Any candidate modules that you do not accept remain as candidate modules.

Next Step

Generate the menu module network for the candidate modules. How


Generating candidate menu module networks from analysis data

Related Topics

Use the Application Design Transformer to create a menu module network for modules previously generated from analysis data.  About

Note:	Candidate modules must be accepted before the menu modules can be created. How

To generate a candidate menu module network:

1. 	Do one of the following:

•	From Function Hierarchy Diagrammer or Dataflow Diagrammer, choose Utilities→Application Design Transformer and then select the target application system for your menu module network. If a diagram is open, the application system of the current diagram is used.

•	From Repository Object Navigator, choose Utilities→Designer→Application Design Transformer and then select the target application system. You can pre-select a target application system on the Navigator if you wish.

•	From Oracle Designer Front Panel, click the Application Design Transformer icon and then select the target application system for your menu module network.

2.	Choose the Generate Menus option to specify that you want to generate candidate menu modules.

3. 	(Optional) Enter a Module Prefix to be used for the generated menu module short name.

If you do not enter a prefix, the application system name is used by default.

4.	Select the appropriate Language for menu modules.

5.	To limit the number of menu options on a single menu, enter a value for Max Options on Menu.

The default value is 10.

6.	To include manual modules in the menu structure, check Include Manual Options.

7.	Click Generate to start the Application Design Transformer.

8.	At the end of generation, click Close.

9.	To review generation messages, select the Show Results button.

Note:	Other, more detailed reports such as the Module Definition report can be run from Repository Reports.

10.	Review the generated modules, using the Navigator in the Design Editor or Repository Object Navigator.

11.	Accept or reject the candidate menu modules. How

Note:	Any candidate modules that you do not accept remain as candidate menu modules.

Next Step

Once complete, use the Design Editor to refine your application module design. The final design can then be implemented as Oracle Forms, Oracle Reports, Web PL/SQL or Visual Basic applications using the Design Editor. About


Accepting candidate modules generated by the Application Design Transformer

Related Topics

Modules created by the Application Design Transformer are initially presented in the Navigator as ‘candidate modules’, i.e. they appear with this icon [image] You must accept (or reject) each candidate module before:

•	generating candidate menu module networks

•	implementing the modules as Oracle Forms, Oracle Reports, Web PL/SQL or Visual Basic applications

To accept a candidate module:

1.	Open the Design Editor, or Repository Object Navigator.

2.	From the Navigator, do one of the following:

•	In Design Editor, choose the Modules tab and expand the Modules node.

•	In Repository Object Navigator, expand the Modules node (under Modules in Group view).

3.	Select all the candidate modules you want to accept.

Tip:	Candidate modules appear with this icon

4.	Choose Edit→Properties.

5.	In the Property Palette, set the Candidate? property for all these modules to ‘No’.

6.	Click [image] to save.

Note how the module icons change to reflect the module type and language.

Next Step

Any modules you choose not to accept remain as candidate modules. If you decide not to include them in your application design, they can be deleted.


Application Design Transformer (Utilities Menu)

Related Topics

Creates a first-cut application design by generating candidate modules and candidate menu modules networks, from analysis data stored in the repository, i.e. from business function models created using the Function Hierarchy, or Dataflow Diagrammer from the Systems Modeler toolset.

You can specify whether you want to generate modules or menu modules and set runtime parameters for each module type.


Application Design Transformer dialog box

Related Topics

Generates a first-cut application design by generating candidate modules and candidate menu modules networks, from analysis data stored in the repository, i.e. from business function models created using the Function Hierarchy, or Dataflow Diagrammer from the Systems Modeler toolset.

Use this dialog to specify whether you want to generate modules or menu modules, and set runtime parameters for each module type.

Generate Options

Modules

To create candidate application modules from the function hierarchy defined in the ‘Start Function’ field, click Modules.

Menus

To create a candidate menu module network from the function hierarchy defined in the ‘Start Function’ field, click Menus.

Common Parameters

Use these fields to specify the run-set (i.e. the function hierarchy to be processed) and the names of generated modules.

Start Function

The name of the function to be used as the root of the function hierarchy. Only those functions in the hierarchy below the root function will be converted into modules.  To process all business functions in the current application system, leave this field blank. If you have created references to business functions in other application systems within the current workarea, these functions can also be processed.

The function description is displayed in the field below the function name.

Module Prefix

To specify a prefix for the Short Name of all generated modules, enter the Module Prefix, e.g. ADT

If you do not enter a prefix, it defaults to the first six characters of the application system name for modules, and to the full application system name for menu modules.

Start Number

To specify a number to be appended to the Module Prefix of the first module generated from this run-set, enter the Start Number. The number appended to each subsequent module is incremented by 10.

For example, if the Module Prefix is ADT and the Start Number is 10, the first three generated modules will have the Short Names, ADT10, ADT20 and ADT30 respectively.

Find Highest

To set the Start Number to be 10 above the highest number allocated to modules with the current module prefix, click Find Highest.

Description

A description to be appended to each module created by the Application Design Transformer.

Module Options

These options are available if ‘Modules’ is selected as the Generate Option. About

Language

To specify the languages of modules created by the Application Design Transformer, choose the appropriate module language for each language type, i.e.  Screen, Report and Utility.

Merge Granularity

Functions considered for transformation are merged into a single module if they have similar data usages. To set the level of data match required for merging modules, choose the criteria matching your requirements:

Identical Entities	-	Merge if the functions access the same set of entities.
Identical Entities and Usages	-	Merge if the functions access the same set of entities and have the same CRUD usages.
Identical Attributes	-	Merge if the functions access the same set of attributes.
Menu Options

These options are available if ‘Menus’ is selected as the Generate Option. About

Menu Language

To specify the language of menu modules created by the Application Design Transformer, choose the appropriate language from the list.

Max Options on Menu

Mandatory, 2 digits
To limit the number of menu options that can appear on a menu, enter the maximum number of menu options required.  If the grouping of generated menu modules exceeds this number, the menu will be split. The default for this option is 10.

Include Manual Options

To specify that manual modules (modules that have no data usages) are to be included in the menu structure, check Include Manual Options.

Manual modules may be used to display text as online documentation for processes which are not computerized.

Generate button

Generates candidate modules or menu module networks from the function hierarchy defined in the ‘Start Function’ field.

Show Results button

Displays the messages issued by the Application Design Transformer during generation (smadw.txt).