[comp.software-eng] CASE and scientific computing

dcheng@amelia.nas.nasa.gov (Doreen Y. Cheng) (06/08/90)

I am interested in applying CASE technologies to scientific computing
with three characteristics.
(1) Methods for developing good software are rarely used.
(2) FORTRAN is the most popular language, C is getting broader acceptance.
(3) Parallel processing is one of the major concerns.
I would like to ask the people who are familiar with CASE technologies
to comment on two of my thoughts.

1. A dream environment for scientists:

(1) The system keeps track of the decision making process at each design
    and implementation step which includes what, how, and why the choice
    is made.
(2) Help the top-down refinement design and implementation process.
    a. Allow user to partition the physical problem into subproblems
       and keep track of their specifications and relations.
    b. For each subproblem, the system helps specifying the set of 
       equations to be solved, the domain of interest, the boundary 
       conditions, the time duration, the solution of interest, the
       accuracy and the maximum execution time the user can tolerate.
    c. At each step of refinement, the user can query the system for
       available choices. For example, select the mesh, select
       discretization scheme, and select linear solver, etc.  The
       system also allows the user define a choice that is not available
       in the system.
(3) The user can use a graphic editor and a text editor to enter the
    specification and implementation hierarchically. The system
    maintains the consistency between the graphic and textual views.
(4) At any step, the user can query the system if the software under
    development is consistent and complete.
(5) When modifications are required in cases where the accuracy or
    performance is not satisfactory, the user can go back to the
    appropriate level of the design decision tree and make new choices.
    The system points out inconsistencies and incompleteness caused
    by the modification.
(6) The system helps in documentation, version control, and building
    the entire program out of a different set of components.
(7) The environment understands some parallel architectures and the
    user can query performance estimate based on static analysis
    and performance bottleneck based on dynamic trace.
(8) The environment is open architectured so that it is easy to add
    new tools, and to adopt to new technologies.

I am not looking for automatic program synthesis, rather an
interactive environment with system assistant.
Can this dream environment ever become a reality? What are the
difficulties? How difficult is each difficulty?

2. Can CASE approach help parallel processing?
   
   There are many parallel processing tools available. Most of them
   only address the program development phase. Many of them only 
   provide tools for a specific task, for example, for parallelization,
   or for debugging or for performance evaluation.
   
   I would like to argue for a CASE-based integrated environment for
   parallel processing tools for the following reasons.
   (1) Most tools share data (compilers, parallelization tools,
       debugging tools, and performance evaluation tools all
       manipulate program structure). It is more powerful and
       efficient to build these tools on top of a common data
       repository.
   (2) An integrated environment provides a relatively stable user
       interface. (Now different tools use different user interfaces)
   (3) Maintenance is more difficult for parallel programs than
       sequential programs because more iterations between design
       and implementation are required. System support can be
       beneficial.
   (4) Debugging parallel programs is very time consuming. CASE
       technologies can help reducing errors greatly.

   Any disadvantages of such an integrated environment?
   How difficult it is to integrate existing tools into a CASE
   tool environment?
   How difficult it is to support FORTRAN in CASE if one does not
   support FORTRAN right now?


Thanks in advance!

Doreen Cheng				NASA Ames Research Center
dcheng@orville.nas.nasa.gov		MS 258-6
(415) 604-4361				Moffett Field, CA 94035