From: dulman@ibm.net
Subject: software modernization (Leonid Dulman)
Date: 1996/08/22
Date: 1996-08-22T00:00:00+00:00 [thread overview]
Message-ID: <4vhh6d$lqu@news-s01.ny.us.ibm.net> (raw)
SOFTWARE MODERNIZATION.
-----------------------
by Leonid Dulman
Computer programming is one of most conservative areas of engineering
activity due to the high costs of innovation resulting from
re-education, abandonment of software, and possible new errors. Thus
new programming languages, methods and operating systems make their way
to the important segments of the software market with great difficulty.
Nobody wants to abandon cumulative software creation and to begin from
"tabula rasa ". Thus many bugs pass from project to project. Software
which was written 10-15 years ago more and more turns into "black
boxes", because few of those who wrote it still work in the same job or
even the same firm. Hence numerous corrections and modernizations
written by various programmers have made program code non-readable and
non-understandable even if the original code was elegant and well
structured.
If we consider the main purposes of software modernization, they can be
separated into two groups:
The first: Lending software a modern look and feel, ie a modern user
interface. Examples are the transition of code and applications from
DOS to WINDOWS or from UNIX to X-WINDOWS and X/Motif. This part of the
work, before we had modern VISUAL SYSTEMs, was rather labour-consuming.
It required much time and highly skilled programmers with a good
knowledge of the operating system. Programming API interface and
resources is a very complex problem.
The second: New product and new versions creation , expanding the sales
and application opportunity and correcting revealed errors.
In industry the creation of new products likewise requires huge efforts
for new technology development, special training, and special
manufacturing equipment. But nevertheless, in competitive markets, we
notice continued progress, with the continuing appearance of new items
and retirement from production of old items.
Today, since the occurrence of numerous and diverse VISUAL SYSTEMS, the
creation of the user interface has become a much less labour-consuming
problem. Main efforts are transferred to algorithm and problem solution
areas. Programming via VISUAL TECHNOLOGY enables the programmer to
react more easily to the system designer's efforts to market a system
with the most elegant interface. Thus the programmer has more time to
devote to the proper functioning of the application.
The main challenge in continuing system modernization is to preserve
the huge investment in installed software while creating the desired
improvements and corrections at a modest cost relative to a clean slate
approach.
Thus we must face the question "so how shall we do it?"
Even piecemeal rewriting of program modules from C to ADA 95 can reveal
and correct many bugs during the recompilation stage.
The most expensive part of such a modernization project is code
debugging and testing. For debugging a complex project, it is necessary
to develop and to write the required test programs. The system testing
difficulty does not depend strongly on which language is used. However,
the finding and correction of a "rare" bug in an assembly module can be
a much more difficult problem than algorithm realization in a modern
language.
Another problem is finding and correcting probable compiler errors.
They are very difficulty to find and they can appear at unexpected
times, for example at the transition from one version operating system
to another.
After 10-15 years experience with the new modern programming languages
and new software development technologies, I think that the heavily
modified software will still be with us and we must continue to seek
economic means to bring the benefits of the most modern technologies to
it.
In programming today, there is no sharp division into system analysts
who draw block diagrams or write algorithms in some meta language and
programmers who translate these meta programs to concrete program
modules. Modern designing and programming permit partial mechanization
of the conversion from interface specification packages, in which
abstract data types are entered, to their further concretion. Thus the
system designing is checked by the compiler. The software becomes
highly structured, and code development can be accomplished by
programmers or small teams working in parallel. A large project can
utilize a large number of programmers with good assurance that their
many independently created modules will operate successfully when all
are combined into the final program.
Soon new ADA 95 VISUAL SYSTEMs for UNIX, OS/2, and WINDOWS will allow
the creation of reliable high-performance systems for firms that will
be step up bravely and will proceed to modernize C, COBOL, and FORTRAN
programs by utilizing ADA 95. These firms can enter into the 21'th
century with software products suitable for the 21'th century.
next reply other threads:[~1996-08-22 0:00 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-08-22 0:00 dulman [this message]
-- strict thread matches above, loose matches on Subject: below --
1996-08-21 0:00 software modernization (leonid dulman) dulman
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox