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�����?
