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).
Easy to Use
The users should have no need to remember the symbols and key words to input parameters.
Efficiency and Effectiveness
- Accuracy. The degree of accuracy depends on the sophistication of algorithm schemes used.
- Efficiency in human time. If the one-step design process is used, every time a design is being made the human time and the real time can both be much less.
- Efficiency in computer execution time. With proper choice of algorithms and heuristics, the execution time for using the program can be made to increase as little as approximately linearly with the number of terminals.
The way to ensure the cost effectiveness of the designs is to use the "human" aided design approach, i.e., the use of human intelligence and manual interfacing to help the heuristic algorithm and the associated software tools produce cost-effective network topological designs.
The goodness of an algorithm or software tool cannot be measured in absolute terms. They should be judged by comparing with others in terms of human effort and the cost effectiveness of the final design.