|
ABSTRACT
An algorithm component is an implementation of an algorithm which is not intended to be a stand-alone module, but to perform a specific task within a large software package or even within several distinct software packages. Therefore, the design of algorithm components must also incorporate software-engineering aspects. A key design goal is adaptability. This goal is important for maintenance throughout a project, prototypical development, and reuse in new, unforseen contexts. From a theoretical viewpoint most algorithms apply to a range of possible use scenarios. Ideally, each algorithm is implemented by one algorithm component, which is easily, safely, and efficiently adaptable to all of these contexts.
Various techniques have been developed for the design and implementation of algorithm components. However, a common basis for systematic, detailed evaluations and comparisons in view of the real practical needs is still missing. Basically, this means a set of concrete criteria, which specify what sort of adaptability is really required in practice, and which are well-justified by convincing, representative use scenarios.
This paper is intended to be a first “milestone” on the way towards such a system of criteria. We will present a set of concrete goals, which are general and problem-independent and might appear ubiquitously in the algorithmic realm. These goals are illustrated, motivated, and justified by an extensive requirements analysis for a particular algorithm from a particular algorithmic domain: Dijkstra's algorithm for shortest paths in networks.
Clearly, the field of algorithmics might be too versatile to allow a comprehensive, yet concise set of precise, justified criteria. Even a domain as restricted as graph and network algorithms includes aspects that are not fully understood. The analysis will include a discussion of the limits of the case study and the scope of the goals. The case study was chosen because it seems to be close to the “boderline” between the aspects that are well understood and the aspects that are not. Hence, this example may well serve as an“acid test” for programming techniques in view of the state of the art.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
AHUJA, R.K., MAGNANTI, T.L., AND ORLIN, J.B. 1993. Network Flows. Prentice Hall, Englewood cliffs, NJ.
|
 |
2
|
Don Batory , Vivek Singhal , Marty Sirkin , Jeff Thomas, Scalable software libraries, Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering, p.191-199, December 08-10, 1993, Los Angeles, California, United States
|
| |
3
|
BLUM,M.AND WASSERMAN, H. 1994. Program resultchecking: A theory of testing meets a test of theory. In Proceedings of the 35th Annual IEEE Symposium on Foundations of Computer Science (FOCS '94), pp. 382-392.
|
| |
4
|
Ulrik Brandes , Wolfram Schlickenrieder , Gabriele Neyer , Dorothea Wagner , Karsten Weihe, PlaNet: A software package of algorithms and heuristics for disjoint paths in planar networks, Discrete Applied Mathematics, v.92 n.2-3, p.91-110, June 25, 1999
[doi> 10.1016/S0166-218X(99)00048-7]
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
| |
8
|
DERIGS, U. 1988. Programming in Networks and Graphs: On the Combinatorial Background and Near-Equivalence of Network Flow and Matching Algorithms. Springer, Berlin.
|
| |
9
|
|
| |
10
|
FRICK, A., ZIMMER,W.,AND ZIMMERMANN, W. 1995. On the design of reliable libraries. TOOLS 17, 13- 23.
|
| |
11
|
GALLO,G.AND SCUTELLA, M.C. 1993. Toward a programming environment for combinatorial optimization: A case study oriented to maxflow computations. ORSA J. Comput. 5, 120- 133.
|
| |
12
|
|
 |
13
|
|
| |
14
|
GOLUMBIC, M.C. 1991. Algorithmic Graph Theory and Perfect Graphs. Academic Press, New York.
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
| |
18
|
John Irwin , Jean-Marc Loingtier , John R. Gilbert , Gregor Kiczales , John Lamping , Anurag Mendhekar , Tatiana Shpeisman, Aspect-Oriented Programming of Sparse Matrix Code, Proceedings of the Scientific Computing in Object-Oriented Parallel Environments, p.249-256, December 08-11, 1997
|
| |
19
|
|
| |
20
|
KICZALES, G., LAMPING, J., MENDHEKAR, A., MAEDA, C., VIDEIRA LOPES, C., LOINGTIER, J.-M., AND IRWIN, J. 1997. Aspect-oriented programming. PARC Tech. Rep. SPL97-008 P9710042, http:// www.parc.xerox.com/spl/projects/aop/tr-aop.htm.
|
| |
21
|
KREFT,K.AND LANGER, A. 1996. Iterators in the standard template library. C CC Rep. 8, 7, 30-37.
|
| |
22
|
KREFT,K.AND LANGER, A. 1997. Building an iterator for the STL and the Standard Template Library. C CC Rep. 9, 2, 20-27.
|
| |
23
|
KUHL, D., NISSEN, M., AND WEIHE, K. 1997. Efficient, adaptable implementations of graph algorithms. In On-Line Proceedings of the 1st Workshop on Algorithm Engineering (WAE '97). http://www.dsi.unive.it/~wae97/proceedings.
|
| |
24
|
KUHL,D.AND WEIHE, K. 1997. Data access templates. C CC Rep. 9, 7, 15-21.
|
| |
25
|
LAWLER, E.L. 1976. Combinatorial Optimization: Networks and Matroids. Holt, Rinehart and Winston, New York.
|
| |
26
|
LAWLER, E.L., LUBY, M., AND PARKER, B. 1983. Finding shortest paths in very large networks. In Proceedings of the 9th International Workshop on Graph-Theoretic Concepts in Computer Science. Trauner, Linz Austria, pp. 184-199.
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
 |
30
|
|
| |
31
|
MARTIN, R.C. 1996. The Liskov substitution principle. C CC Rep. 8 (Mar.).
|
 |
32
|
|
| |
33
|
MENDHEKAR, A., KICZALES,G.,AND LAMPING,L. 1997. RG: A case-study for aspect-oriented programming. Xerox PARC Palo Alto Tech. Rep. SPL97-009 P9710044, February 1997. http://www.parc.xerox.com/spl/groups/eca/pubs/ papers/PARC-AOP-RG97/.
|
| |
34
|
|
| |
35
|
|
 |
36
|
|
| |
37
|
|
| |
38
|
NISHIZEKI,T.AND CHIBA, N. 1988. Planar Graphs: Theory and Algorithms. North-Holland, Amsterdam. Annals of Discrete Mathematics, Vol. 32.
|
| |
39
|
NISSEN, M. 1998. Graph iterators-decoupling graph structures from algorithms. Diploma thesis, Univ. of Saarbr ucken, Germany. Http://www. mpi-sb.mpg.de/~marco/english.html.
|
| |
40
|
NISSEN,M.AND WEIHE, K. 1996. Combining LEDA with customizable implementations of graph algorithms. Http://www.informatik.unikonstanz.de/Preprints.
|
| |
41
|
|
 |
42
|
|
| |
43
|
|
| |
44
|
|
| |
45
|
|
| |
46
|
|
| |
47
|
SOUKOP, J. 1994. Taming C CC . Addison-Wesley, Reading, MA.
|
 |
48
|
|
| |
49
|
VELDHUIZEN, T. 1995. Expression templates. C CC Rep. 7, 26.
|
| |
50
|
VIDAL, R.V.V. 1993. Applied Simulating Annealing. Springer, Berlin. Lecture Notes in Economics and Mathematical Systems, Vol. 396.
|
| |
51
|
VIDEIRA LOPES,C.AND KICZALES, G. 1998. Recent developments in Aspect J. In Proceedings of the 12th European Conference on Object-Oriented Programming (ECOOP '98).
|
 |
52
|
Karsten Weihe, Reuse of algorithms: still a challenge to object-oriented programming, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.34-48, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
53
|
WEIHE, K. 1998. Using templates to improve C CC designs. C CC Rep. 10, 2, 14-21.
|
| |
54
|
|
| |
55
|
|
CITED BY
|
|
Jochen Van den Bercken , Björn Blohsfeld , Jens-Peter Dittrich , Jürgen Krämer , Tobias Schäfer , Martin Schneider , Bernhard Seeger, XXL - A Library Approach to Supporting Efficient Implementations of Advanced Database Queries, Proceedings of the 27th International Conference on Very Large Data Bases, p.39-48, September 11-14, 2001
|
REVIEW
"Taghi J. Mirsepassi : Reviewer"
The author first discusses the inadequacies of present-day methods of specifying the performance requirements of an algorithm component, specifically, the vagueness of the criteria established by “maintainability” and “reusabilit
more...
|