After lurking on this list for awhile, I am finally ready to give a few opinions 
regarding the topic of academic research that will advance the field of software 
engineering.

 

First, languages can be complex but programs should be simplified according to the 
Chomsky hierarchy of languages.  The systems analyst (SA) should deconstruct programs 
that are of DFA (or FSM) complexity. DO NOT assign programs to programmers that are 
complex, you are just asking for trouble. You need to have programs that are provable 
or near-provable. A DFA can arguably be accepted as a proof depending upon results 
from continuing research in the field of diagrammatics (pictures accepted as proofs).

 

Second, a SA should have automated control over a programmer. There should be a 
test-case-control-system (TCCA) that the SA will input the test suite (set of test 
cases). The programmer will write a program and execute the test suite (each case as 
appropriate for continued development). The SA would only get notified when the 
program passes ALL test cases.

 

Third, normally there is a data dictionary (DD) in a large program, the set of 
variables/data structures that are of major importance to the program. Not locals, 
loop indices, temps, or little ones, but useful variables with some form of global 
scope in the program/system. This DD should be of prime interest to the SA and changes 
to the DD (i.e. usually done in one program) should be done in DFA-level programs 
interacting with a database to preserve the DD. This would allow the SA to have a 
history of the DD (because of the database) and each program that changes the database 
would be provable (near-provable). If there are parts of the program that are CFL or 
CSL (more complex than DFA), they must be small and hence provable by some form of 
cleanroom engineering (book by Stavely).

 

The idea is to extend what is the correct/provable output of one person for one day. 
If the SA can assign and get back only programs that are proven, and the SA has more 
that one programmer working for them, then the correct/provable output of one SA would 
be greater than the output of the programmer.

 

I am developing a system such as this, a long way from fruition, but getting started.

 

 

Ron Finkbine, Ph.D., [EMAIL PROTECTED]

Assistant Professor of Computer Science

Indiana University Southeast

 

<�+����]��.��i�
+�8�r�,i٢�m���h���,������������+-�w��جr�,y�wi٢�m���h���,������������+-�w������x��8�r�,j�!������
0���j�!����o݊�.��4�����?

Reply via email to