This Article 
 Bibliographic References 
 Add to: 
On Criteria for Module Interfaces
May 1990 (vol. 16 no. 5)
pp. 537-542

While the benefits of modular software development are widely acknowledged, there is little agreement as to what constitutes a good module interface. Computational complexity techniques allow evaluation of algorithm time and space costs but offer no guidance in the design of the interface to an implementation. Yet, interface design decisions often have a critical effect on the development and maintenance costs of large software systems. Criteria that have led to simple, elegant interfaces are presented in detail. These criteria have been developed and refined through repeated practical application. The use of the criteria is illustrated with concrete examples.

[1] E. W. Dijkstra, "Programming considered as a human activity," inProc. 1965 IFIP Congress. Amsterdam, The Netherlands: North-Holland, 1968.
[2] E. W. Dijkstra, "The humble programmer,"Commun. ACM, vol. 15, no. 10, pp. 859-866, Oct. 1972.
[3] D. L. Parnas and P. C. Clements, "A rational design process: How and why to fake it,"IEEE Trans. Software Eng., vol. SE-12, pp. 251-257, Feb. 1986.
[4] D. M. Hoffman and R. Snodgrass, "Trace specifications: Methodology and models,"IEEE Trans. Software Eng., vol. 14, no. 9, pp. 1243-1252, 1988.
[5] J. V. Guttag and J. J. Horning, "The algebraic specification of abstract data types,"Acta Inform., vol. 10, no. 1, pp. 27-52, 1978.
[6] J.M. Spivey,Introducing Z: A Specification Language and its Formal Semantics, Cambridge Univ. Press, 1988.
[7] C.B. Jones,Systematic Software Development Using VDM, Prentice Hall Int'l, 1986.
[8] G. A. Blaauw and F. P. Brooks, "Computer architecture" (draft), Dep. Comput. Sci., Univ. North Carolina, Chapel Hill, 1989.
[9] A. van Wijngaarden, "Revised report on the algorithmic language Algol 68,"Acta Inform., vol. 5, 1975.
[10] Parnas, D.L. 1972. On the Criteria to be Used in Decomposing Systems into Modules,Communications of the ACM, Vol.15, pp. 1053-1058.
[11] K. H. Brittonet al., "A procedure for designing abstract interfaces for device interface modules," inProc. Fifth Int. Conf. Software Eng., IEEE Comput. Soc., Mar. 1978.
[12] W. Stevens, G. Myers, and L. Constantine, "Structured design,"IBM Syst. J., vol. 13, no. 2, pp. 115-139, May 1974.
[13] B. W. Kernighan and D. M. Ritchie,The C Programming Language. Englewood Cliffs, NJ: Prentice-Hall, 1978.
[14] E. W. Dijkstra, "Solution of a problem in concurrent programming control,"Commun. ACM, vol. 8, pp. 569-569, Sept. 1965.
[15] G. Belpaire and J. P. Wilmotte, "A semantic approach to the theory of parallel processes," inProc. Int. Computing Symp.Amsterdam, The Netherlands: North-Holland, 1974, pp. 159-164.
[16] R. N. Horspool,C Programming in the Berkeley Unix Environment. Englewood Cliffs, NJ: Prentice-Hall, 1986.

Index Terms:
module interfaces; modular software development; software engineering.
D. Hoffman, "On Criteria for Module Interfaces," IEEE Transactions on Software Engineering, vol. 16, no. 5, pp. 537-542, May 1990, doi:10.1109/32.52776
Usage of this product signifies your acceptance of the Terms of Use.