From: John.Roddick@levels.unisa.edu.au
Newsgroups: unisa.cis.isddb
Subject: 4GS
Date: 30 Oct 92 10:14:52 +0930
Organization: University of South Australia

                          Fourth Generation Systems

Ref: 	Pratt, P. and Adamski, J. 1987. Database Systems : Management and 
        Design, Boyd and Fraser Publ. Co., pp. 539 et seq.

Motivation

%	Programmer Shortage
%	Increased Demand for Programs and Automated Systems
%	System Development Problems
		Quality of programs poor
		Do not adhere to Systems Specifications
		User Ignorance of what was possible

                        Fourth Generation Environment

Programmer's Perspective

Data Dictionary

%	The repository of all knowledge and wisdom regarding the structure of
	the system

%	Holds	record formats
		field formats (storage and output)
		screen formats
		help at file/record/screen level
		aliases
		validation rules
		derivation formulas
		security and ownership
		distribution and protocols
		frequency of use and other statistics
		activities (trigger rules)
		
Report Writer

%	Enables fast generation of ad hoc reports by making assumptions about
	formats, layouts, etc.

%	Example:

	ACCESS STUDENTS
	REPORT NAME "Student List"
	FIELDS STUDNO, STUDNAME, ADDRESS, FEES
	TOTAL ON FEES
	GO

	Might produce:

15-Oct-1993	        University of South Australia                Page 1
16:45pm	                    Student Record System
                                 Student List

Student 	Student	        Address				Fees
Number		Name		

8722882A	Roddick, John	12, The Bronx			$3,000
9100202Q	Buckley, Bob	32, The Pits			$4,500

Total		       						$7,500

                            *** End of Report ***

%	Once draft obtained the can be refined to meet full requirements.

%	Can (at a pinch) allow naive users to use report writer (but allow for
	the inevitable mistakes)

Screen Writers

%	As for Report Writers, will produce prototype screens based on
	information stored in Data Dictionary.

%	Example:

	SCREEN STUD1
	FILES STUDFILE
	GO

	Might Produce
	
15-Oct-1993	        University of South Australia        	16:45pm
                            Student Record System

Action : 

Student Number 	    : _________
Student Name
	Surname	    : ___________________________
	Given Names : ___________________________
	Honorific   : ______
Address		    : ___________________________
Fees		    : $______.__

Enter E to Enter Data, U to Update, F to Find or D to Delete

%	Again - this can then be tailored to meet requirements.

Prototyping

Ref Pressman p.148 et. seq.

Definition

Is the process of building and refining a working model of the final
operational system during the development phase.  (Longey & Shain 1989).

Purpose

To refine inputs, outputs and functions during the design phase rather than
having to await the final development of the program.  (Longey & Shain 1989).

Forms

	Simplest level  - comprises a mockup of system output
			- sample reports
			- screen layouts

	More elaborate  - simulation of the final program
			- user samples the program as it would
					   be after development.

	Evolutionary - made possible by the development of 4GLs.

%	Prototyping is particularly applicable to 4GLs, whereby a program is
  	designed and written so that its external interface looks similar to
	the finished product.
%	Applicable when the user does not know what can be produced.  Can often
	become an interactive process.
%	Constructed by either:
		Using a 4GL
		Assembling rather than writing
		Leaving out internals and complex paths
		Not worrying about coupling, cohesion and other aspects of
 		program design.
%	Problems:
		Users get false idea of development time required.
		Prototype often becomes first working version
		A Computer Centre under stress will allow users to test, rather
			than test themselves first.
		User coding.

CASE Tools

%	Take ideas one step further and design total prototype system from the
	file formats
%	Provides
	%	A data entry screen for all files defined
	%	"Standard" reports
	%	Template documentation
	%	A "few" levels of security
		.
		.
#! rnews 2765