Software development is an incremental process. Developers do not commonly write thousands of lines at a time.They proceed by addition and modification, starting most of the time from a system that is already of substantial size.When performing such an update, it is essential to have the guarantee that the resulting system will be consistent. For example, if you change a feature f of class C, you must be certain that every descendant of C which does not redefine F will be updated to have the new version of F, and that every call to f in a client of C or of a descendant of C will trigger the new version.
Conventional approaches to this problem are manual forcing the developers to record all dependencies, and track their changes, using special mechanisms known as “make files” and “include files”. This is unacceptable in modern software development especially in the object oriented world where the dependencies between classes resulting from the client and inheritance relations are often complex but may be deduced from a systematic examination of the software text.
System updating after a change should be automatic, the analysis of interclass dependencies being performed by tools, not manually by developers.It is possible to meet this requirement in a compiled environment in an interpreted environment or in one combining both of these language implementation techniques.In practice,the mechanism for updating the system after some changes should not only be automatic it should also be fast.
The time to process a set of changes to a system, enabling execution of the updated version, should be a function of the size of the changed components independent of the size of the system as a whole.Here too both interpreted and compiled environments may meet the criterion although in the latter case the compiler must be incremental. Along with an incremental compiler,the environment may of course include a global optimizing compiler working on an entire system as long as that compiler only needs to be used for delivering a finalproduct development will rely on the incremental compiler.
No comments:
Post a Comment