Methods and Tools

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 they are still good to strive for. More ambitiously, rather than build a single tool, we can build ``meta-tools'' which themselves produce tools customized for a particular problem domain~[#SMCB96##1#], formal notation~[#pac##1#], or logic~[#hol##1#, #kindred-wing96##1#]. These meta-tools, like compiler generators, provide an automatic way to build specialized model checkers or proof checkers. Finally, for any new method or tool, its developer should state explicitly what its strengths, limitations, modeling assumptions, ease of integration with other methods and tools, and start-up costs are. Clear selection criteria help potential users decide what method or tool is most appropriate for the problem at hand.