Technical Notes
Up News Technical Notes Customer Profile WISL Profile Editorial Feedback

 

Musicnot.wmf (1656 bytes)Musicnot.wmf (1656 bytes)Musicnot.wmf (1656 bytes)Musicnot.wmf (1656 bytes)Musicnot.wmf (1656 bytes)Musicnot.wmf (1656 bytes)Musicnot.wmf (1656 bytes)

Technical issues can be perplexing! In this section we attempt to explain technical matters that have special interest in the WISL community.

Screen Control Application Development System(SCADS)

Introduction

SCADS or Screen Control Application Development System is a collection of macros, externals, and utilities that comprise a comprehensive systems development toolset.

SCADS generates menu-driven applications which employ screen-controlled data entry. Applications developed with SCADS are well documented and structured, and thus are readily understandable and easily maintained.

SCADS is not an end user facility; it is intended for programmer/analysts as a development toolset. Use of the facility removes the burden of the mundane and often repetitive coding involved in screen formatting and input data editing. SCADS also provides a structured framework for application development. The system developer is more able to concentrate on the organization of the application and data base management.

SCADS consists of BASIC macros; consequently, it is very flexible and adaptable to unusual requirements. Its facilities are designed to address three common data processing functions: data entry, record inquiry, and reporting.

Data Entry and Record Inquiry:

Although none of the features of SCADS are workstationl dependent, the facility simulates a full screen smart terminal. Many of the best features of the full screen approach are incorporated. The terminal screen is divided into heading, body, and control sections. The heading section provides for plug-in variables for system title, menu, or screen title and record identification. The body of the screen contains menus or formatted data entry or inquiry windows. The control section at the bottom of the screen is reserved for a data entry mask, input area, and error and control messages. In keeping with SCADS screen oriented nature, control characters and/or program function keys provide the capability to move around the screen in a controlled fashion. Subscreen displays, logical windowing and process transfer functions are supported.

The generation of menus, screens, simple edit rules, and clerk control records is accomplished outside of the data entry or inquiry program using facilities that are themselves written in SCADS. Changes in any of these variables does not require recompiling the main data entry or inquiry program. Program hooks are available to accommodate special editing or screen handling and data base management.

The typical structure of a SCADS data entry program begins with initialization of application variables, opening of files, and building of the application's menus and screens. The mainline consists primarily of menu control code that invokes the SCADS menu and screen control macros.

Data base management is normally handled through hooks from SCADS macros by external procedures. This approach provides flexibility to the application developer and conserves storage space for the mainline program.

Reporting:

The UniVerse DBMS offers an excellent fourth generation language referred to as RETRIEVE. SCADS applications take advantage of the RETRIEVE reporting language for most reporting. The PROC processor is employed to provide most of the control framework for reporting. However, there are three important areas in which SCADS is utilized to support the reporting function.

The menu and clerk control capabilities are used to control clerk access to the main menu of reporting applications. Secondly, a utility has been developed in SCADS to interactively prompt for record selection criteria. This facility provides the ability for end user staff to specify modifications to the selection specifications of canned reports without the onus of using the editor or knowing the technical syntax of the fourth generation language or the PROC processor. A third SCADS developed facility, QUIKREP,  provides the capability for end users to define complete report specifications in the same manner as the more limited specification of selection criteria. The report specification facility, while insulating the user from syntax problems, does require understanding of reporting concepts and an understanding of the target data base.

SCADS Macros, Externals, and Utilities

A SCADS application makes use of several types of program code: macros, which are modular portions of code designed to be included and compiled within a program ; externals, which are complete external subroutines; and utilities, which are complete applications.

Macros

Macros are programmed routines which have been designed to perform specific functions. They reduce the amount of redundant code, increase the reliability of code, reduce the development time and help to document and structure an application, thereby making the application readable and maintainable.

There are essentially 4 type of SCADS macros employed within a SCADS program:

- File opening macros

- General, unnumbered macros

- 9000 series SCADS macros

- 8000 series SCADS macros requiring or allowing program hooks

The macros are designed to work in combination with each other within a program.

The SCADS opening, general and 9000 macros are contained in the MACRO.LIB file, which is common to all SCADS applications. The 8000 series macros are placed in an application specific library.

Externals

The SCADS externals are compiled BASIC external subroutines. Some are used by the SCADS macros, while others are common facilities available to programmers for inclusion in applications.

Externals are found in the APPL.PGM file, which is available to all SCADS applications.

Utilities

The utilities provided with SCADS are SCADS applications in and of themselves. They are designed to create or maintain features of new or existing SCADS programs. The SCADS utilities are:

DMU Dictionary Maintenance Utility

- creates and modifies dictionary attributes for standard attribute data, SCADS edits, display parameters

SMU Screen Maintenance Utility

- creates and maintains input and inquiry screens for application, and allows input of help text

MMU Menu Maintenance Utility

- creates and maintains the menus for an application

CMU Clerk Maintenance Utility

- creates and maintains the clerk records for security and access control within a SCADS application.

CGU Code Generator Utility

- constructs a framework of program code for a new application using the screens and menus created by SMU and MMU

PRESTO Precompiler

- an editing, precompiler, and compiler control utility for the easy creation of code and the automatic include of macros into a program

A complete SCADS application is created using the utilities, and consists of macros combined into compiled programs, which often call externals.

 

SCADS Goals, Principles and Features

Design Goals

The structure of SCADS is better appreciated through an examination of overall development goals and the design principles they engender. WISL has identified the following goals for its application programming:

- Provide a standardized structure for applications

- Create maintainable and flexible code

- Handle common tasks, allowing the programmer to concentrate on correct application design and application specific code

- Simplify the development process

- Provide a consistent and powerful user interface environment

- Ensure database integrity in all circumstances

- Employ environment features while avoiding environment dependencies

Design Principles

The design goals are not always compatible with the development process. Often they conflict in their implementation; for example, standardized structures can sometimes reduce flexibility of code. SCADS addresses every one of these goals to some degree, through the adoption of the following principles stemming directly from the design goals:

- Structured programming techniques are paramount.

- Common functions should use identical code: they should therefore appear as either external or internal subroutines.

- Program libraries can provide standards in programs, provided that they are made easy to use and effective in their implementation

- Application structures should reflect the scope of the common functions they contain.

- Structured programs by their very nature are more maintainable: utilities which help to generate structured applications can further ease the maintenance process.

- Areas for program hooks and special modification should be easily identifiable and distinguishable from shared code.

- Self-evident naming conventions for variables, macros and programs are important for long-term maintainability and expansion.

- In unusual cases, the application structure must allow easy and identifiable substitution for shared code.

- The area of interest for purposes of identifying common tasks involves text-based menu-driven screen-oriented applications on a multi-user system: SCADS therefore addresses the features common to such tasks, with a particular emphasis on database applications.

- Utilities designed exclusively for the development process simplify and speed up the development process.

- Rigorous editing of data at the initial data entry point is the single most effective means of ensuring database integrity. Such data editing should be integrated and simplified in the application development process.

- All integral features of the database management system may be used. System calls and User exits must be treated with caution, however, to reduce platform dependency.

- Program code must avoid hard coding for specific input devices: when such code is necessary, such as for terminal graphics codes, translation tables should be utilized.

SCADS features

The SCADS system has incorporated the preceding design principles by adopting the following list of structures and procedures. Examining these features in the context of the goals and principles will aid in understanding the full SCADS system.

- SCADS programs are written in the programming language native to the database management system: on PICK-like systems, this involves a variant of PICK-Basic.

- Common programming code is organized in a standard hierarchy:

- external subroutines are provided in APPL.PGM and are available to all SCADS programs

- common macros are provided in MACRO.LIB and are incorporated into applications at the time of development or recompilation

- application specific macros are contained in the application's own macro library and are similarly incorporated at development or recompilation time

- Utilities for SCADS dramatically improve development efficiency:

                    - DMU Dictionary Maintenance Utility

                    - SMU Screen Maintenance Utility

                    - MMU Menu Maintenance Utility

                    - CGU Code Generation Utility

                    - PRESTO Precompiler and editing utility

- Several powerful database management features are incorporated into SCADS code, such as:

- the use of multiple data subsections of files

- extensions of dictionary driven file management to include the most common edit and display functions

- use of the existing fourth-generation reporting language

- provision for multi-valued data attributes within the database

- Applications menus are assumed to be organised in a logical tree structure, but SCADS also allows the logical windowing to other areas of the menu path.

- Common error handling and message functions are provided.

- Facilities for clerk control are available within an application to restrict clerk access and provide for a maintenance audit. The CMU (Clerk Maintenance Utility) handles maintenance of individual clerk records.

- Smart-terminal functionality is simulated without using terminal dependent code.

- A reporting utility (QUIKREP) provides edited access to the fourth generation reporting language and custom report creation for developers and end users.

- Screens are handled through serial data prompts, and provisions are made for:

- multiple types of data editing

- required fields

- table lookups and conversions

- edit masks and fields for prompting specific data formats

- direct movement to any screen prompt

- integrated user-accessible calculator functions

- basic word processing edits for text fields

- extensive help facilities for any field including lists of table lookup values

- user definable help feature to allow user customized help text

- subscreens and chained screens

- Item retrieval and writing to database files are handled through subroutines and are easily modifiable.

- Custom edits to fields both before and after user input are supported.

- Colour support is provided.

- Dual language displays are supported by individual clerk specification.