Because of the complexity of the algorithms, software tools are necessary for all but the most trivial networks.
When software tools are developed, attention should be paid to two issues: (1) transformation of the abstraction of the models and algorithms into the design of specific types of networks, and (2) the ease of using the tools.
Specific analysis and design problems that can be solved by software tools are numerous. Listed below are several typical ones. There are many other possibilities.
The usefulness of a software tool depends more on human engineering considerations than on the sophistication of algorithms and models.
Examples of this are the design of interactive input that can be easily learned and used, the input–output formats, the input data preparation and manipulation of output, and the inclusion of various defaults.
(that is in fact an en dash for input–output formats)
Reliability considerations. It is desirable to have the ability to design networks with different reliability considerations (which, of course, will result in different costs).