No one method or tool can serve all
purposes. We need to support all different kinds. From past experience, we
have learned what kinds can have the
most impact. To be attractive to practitioners, methods and tools should satisfy the following criteria. We realize
that some of these criteria are ideals,
but it is still good to strive for them.
—Early payback. Methods and tools
should provide significant benefits almost as soon as people begin to use
them.
—Incremental gain for incremental effort. Benefits should increase as developers get more adept or put more
effort into writing specifications or
using tools.
—Multiple use. It should be possible to
amortize the cost of a method or tool
over many uses. For example, it
should be possible to derive benefits
from a single specification at several
points in a program’s life cycle: in
design analysis, code optimization,
test case generation, and regression
testing.
—Integrated use. Methods and tools
should work in conjunction with each
other and with common programming
languages and techniques. Developers
should not have to “buy into” a new
methodology completely to begin receiving benefits. The use of tools for
formal methods should be integrated
with that of tools for traditional software development, for example, compilers and simulators.
—Ease of use. Tools should be as easy to
use as compilers, and their output
should be as easy to understand.
No one method or tool can serve all
purposes. We need to support all different kinds. From past experience, we
have learned what kinds can have the
most impact. To be attractive to practitioners, methods and tools should satisfy the following criteria. We realize
that some of these criteria are ideals,
but it is still good to strive for them.
—Early payback. Methods and tools
should provide significant benefits almost as soon as people begin to use
them.
—Incremental gain for incremental effort. Benefits should increase as developers get more adept or put more
effort into writing specifications or
using tools.
—Multiple use. It should be possible to
amortize the cost of a method or tool
over many uses. For example, it
should be possible to derive benefits
from a single specification at several
points in a program’s life cycle: in
design analysis, code optimization,
test case generation, and regression
testing.
—Integrated use. Methods and tools
should work in conjunction with each
other and with common programming
languages and techniques. Developers
should not have to “buy into” a new
methodology completely to begin receiving benefits. The use of tools for
formal methods should be integrated
with that of tools for traditional software development, for example, compilers and simulators.
—Ease of use. Tools should be as easy to
use as compilers, and their output
should be as easy to understand.
การแปล กรุณารอสักครู่..
