Phase-III Macro System: Unterschied zwischen den Versionen
K |
K |
||
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | [[Kategorie: | + | [[Kategorie:Twiggi]] |
− | [[Datei:FRAKTAL_MACRO_ARCHITECTURE.png| | + | [[Datei:FRAKTAL_MACRO_ARCHITECTURE.png|300px|thumb|Synopsis]] |
== Positioning == | == Positioning == | ||
− | + | ;The ''Phase-III Macro System'' is not an end-to-end reporting tool. | |
+ | ;The '''''Phase-III Macro System''''' is a flexible, data independent and parameter controlled set of SAS macros. | ||
− | + | * It is a '''well structured and heavily interacting set of macro modules''' providing '''transformation methods''' for study emergent data making use of all the information available in the description part of the dataset processed. The user is provided with (an) output dataset(s) containing character columns with standard names and externally controlled attributes. | |
− | * It is a ''' | ||
* The ''Phase-III Macro System'' provides '''subroutines that care for data types, formats, labels, headers, missing values, loops and more'''. Runtime generated information used to control processing is kept in '''standardized data structures''' using macro-variable lists ''(mlists)'', SAS formats and datasets. | * The ''Phase-III Macro System'' provides '''subroutines that care for data types, formats, labels, headers, missing values, loops and more'''. Runtime generated information used to control processing is kept in '''standardized data structures''' using macro-variable lists ''(mlists)'', SAS formats and datasets. | ||
* Input data structures may need some form of '''pre-processing''' as well as output data structures may need some '''post-processing''' to perfectly fulfill requirements. The ''Phase-III Macro System'' already '''supports these steps''' to some extent by providing ''condense'', ''struct'' and ''missline'' functions. | * Input data structures may need some form of '''pre-processing''' as well as output data structures may need some '''post-processing''' to perfectly fulfill requirements. The ''Phase-III Macro System'' already '''supports these steps''' to some extent by providing ''condense'', ''struct'' and ''missline'' functions. | ||
− | == | + | == Properties == |
− | The ''Phase-III Macro System'' is aimed at '''serving as a base for an | + | The ''Phase-III Macro System'' is aimed at '''serving as a base for an extensible system''' that provides mechanisms for shaping input datasets, processing calculations and generating SAS datasets with ready made text content. |
The ''Phase-III Macro System'' '''interacts with and makes use of other programs, modules, systems and datasets available'''. Communication and information interchange use SAS macrovariables, environment variables from the operating system and data structures compatible with the SAS System. | The ''Phase-III Macro System'' '''interacts with and makes use of other programs, modules, systems and datasets available'''. Communication and information interchange use SAS macrovariables, environment variables from the operating system and data structures compatible with the SAS System. | ||
Zeile 25: | Zeile 25: | ||
== Fraktal Architecture == | == Fraktal Architecture == | ||
− | The ''Phase-III Macro System'' was coded by utilizing '''''[[Fraktal SAS Programming]]'''''. To a certain degree this concept compares to database normalization. ''[[Fraktal SAS Programming]]'' restricts program coding according to the '''''one-function-one-module''''' principle which is very well supported by the means delivered with the '''''SAS System'''''. The ''Phase-III Macro System'' system architecture is comprised from four types of modules. | + | The ''Phase-III Macro System'' was coded by utilizing '''''[[Fraktal SAS Programming]]'''''. To a certain degree this concept compares to database normalization. ''[[Fraktal SAS Programming]]'' restricts program coding according to the '''''one-function-one-module''''' principle which is very well supported by the means delivered with the '''''SAS System'''''. The ''Phase-III Macro System'' system architecture is comprised from '''four types of modules'''. |
{| class="wikitable" | {| class="wikitable" | ||
Zeile 31: | Zeile 31: | ||
! Type !!Function performed | ! Type !!Function performed | ||
|- | |- | ||
− | | [[ | + | | [[Info Modules (from Phase-III Macro System)|Info Modules]] || Provide information about datasets and variables for correct processing |
|- | |- | ||
− | | [[ | + | | [[Service Modules (from Phase-III Macro System)|Service Modules]] || Provide frequently requested tasks in a standard format with limited parameter set |
|- | |- | ||
− | | [[ | + | | [[Core Modules (from Phase-III Macro System)|Core Modules]] || Perform input transformation, calculations and output transformation |
|- | |- | ||
− | | [[ | + | | [[User Modules (from Phase-III Macro System)|User Modules]] || Generate datasets carrying subtables controlled by user-supplied parms |
|} | |} | ||
== Approach == | == Approach == | ||
− | In general, ''[[Fraktal SAS Programming]]'' introduced a number of benefits to the coding of ''Phase-III Macro System'', amongst which were: | + | In general, ''[[Fraktal SAS Programming]]'' introduced a fair number of benefits to the coding of ''Phase-III Macro System'', amongst which were: |
− | *Avoid dependency of programs to data scope, study characteristics or personal styles. | + | * Avoid dependency of programs to data scope, study characteristics or personal styles. |
− | *Have modules implemented in a way to operate in any emerging environment. | + | * Have modules implemented in a way to operate in any emerging environment. |
− | *Be prepared to add new output structures without substantial delay. | + | * Be prepared to add new output structures without substantial delay. |
− | *Produce a wide variety of output with a minimum set of modules. | + | * Produce a wide variety of output with a minimum set of modules. |
− | *Minimize maintenance efforts through self-documenting and limited program code. | + | * Minimize maintenance efforts through self-documenting and limited program code. |
− | *Maximize validation throughput by adopting a non-mutual-impact architecture. | + | * Maximize validation throughput by adopting a non-mutual-impact architecture. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Aktuelle Version vom 6. Januar 2016, 16:43 Uhr
Inhaltsverzeichnis
Positioning
- The Phase-III Macro System is not an end-to-end reporting tool.
- The Phase-III Macro System is a flexible, data independent and parameter controlled set of SAS macros.
- It is a well structured and heavily interacting set of macro modules providing transformation methods for study emergent data making use of all the information available in the description part of the dataset processed. The user is provided with (an) output dataset(s) containing character columns with standard names and externally controlled attributes.
- The Phase-III Macro System provides subroutines that care for data types, formats, labels, headers, missing values, loops and more. Runtime generated information used to control processing is kept in standardized data structures using macro-variable lists (mlists), SAS formats and datasets.
- Input data structures may need some form of pre-processing as well as output data structures may need some post-processing to perfectly fulfill requirements. The Phase-III Macro System already supports these steps to some extent by providing condense, struct and missline functions.
Properties
The Phase-III Macro System is aimed at serving as a base for an extensible system that provides mechanisms for shaping input datasets, processing calculations and generating SAS datasets with ready made text content.
The Phase-III Macro System interacts with and makes use of other programs, modules, systems and datasets available. Communication and information interchange use SAS macrovariables, environment variables from the operating system and data structures compatible with the SAS System.
Input data streams will require preprocessing in general by assigning formats and labels. Output datasets will need postprocessing using merge and set operations mainly.
Module size is kept small (not more than three screen pages) for maintainability and avoids hard-coded references to any application related information like data types, labels and formats. Coding style makes broad use of automatic documentation and generation of meta data and lookup tables at runtime.
Fraktal Architecture
The Phase-III Macro System was coded by utilizing Fraktal SAS Programming. To a certain degree this concept compares to database normalization. Fraktal SAS Programming restricts program coding according to the one-function-one-module principle which is very well supported by the means delivered with the SAS System. The Phase-III Macro System system architecture is comprised from four types of modules.
Type | Function performed |
---|---|
Info Modules | Provide information about datasets and variables for correct processing |
Service Modules | Provide frequently requested tasks in a standard format with limited parameter set |
Core Modules | Perform input transformation, calculations and output transformation |
User Modules | Generate datasets carrying subtables controlled by user-supplied parms |
Approach
In general, Fraktal SAS Programming introduced a fair number of benefits to the coding of Phase-III Macro System, amongst which were:
- Avoid dependency of programs to data scope, study characteristics or personal styles.
- Have modules implemented in a way to operate in any emerging environment.
- Be prepared to add new output structures without substantial delay.
- Produce a wide variety of output with a minimum set of modules.
- Minimize maintenance efforts through self-documenting and limited program code.
- Maximize validation throughput by adopting a non-mutual-impact architecture.