Abstract
In this paper we consider the problem of extracting a design for an existing software system. This problem is clearly relevant to understanding and maintaining software systems. The basis of our approach is a formalization of top-down design with information hiding. This formalization allows an accurate and concise formulation of constructing an a posteriori design for a software system using only the source text. The theory predicts that in general there are many possible designs and that these designs can be partially ordered and form a lattice. The lattice has a smallest element and this element is the best top-down design in the sense that it has the most information hiding. We show how this element can be constructed.
A tool has been built on the basis of the theory developed here. It has been applied to many software systems, written in various programming languages. These applications have shown that the theory is successful and can be used for understanding, documenting, maintaining, and restructuring software systems, without requiring from the user a detailed knowledge of the underlying theory.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho, A.V., Hopcroft, J.E., Ullman, J.D. Data structures and algorithms. Addison-Wesley Publishing Company, Reading, Massachusetts, 1983, pp. 222–226.
Aho, A.V., Ullman, J.D. Principles of Compiler Design. Addison-Wesley Publishing Company, Reading, Massachusetts, 1977, pp. 442–447.
Biggerstaff, T. Design recovery for maintenance and reuse. IEEE Computer, Vol. 22–7, pp. 36–49.
Choi, S.C. Scacchi, W. Extracting and restructuring the design of large systems. IEEE Software, Jan. 1990, pp. 66–71.
Gilbert, W.J. Modern Algebra with Applications. John Wiley & Sons, New York, 1976, pp. 27–28.
Maarek, Y.S., Kaiser, G.E., Change management in very large software systems. Phoenix Conference on Computer Systems and Communications, IEEE, Mar. 1988, pp. 280–285.
Parnas, D.L. On the criteria to be used in decomposing systems in modules. Comm. of the ACM, Vol 15–2, Dec. 1972.
Schwanke, R.W., Platoff, M.A. Cross References are Features. Proceedings of the Second International Workshop on Software Configuration Management, Princeton, NJ, Oct. 1989.
Selby, R.W. Basili, V.R., Error localization during software maintenance: Generating hierarchical system descriptions from the source code alone. Conference on Software Maintenance, 1988, IEEE, Oct. 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sijtsma, B.A., Mager, J.W.L.J. (1991). A theory for software design extraction. In: van Lamsweerde, A., Fugetta, A. (eds) ESEC '91. ESEC 1991. Lecture Notes in Computer Science, vol 550. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540547428_52
Download citation
DOI: https://doi.org/10.1007/3540547428_52
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54742-6
Online ISBN: 978-3-540-46446-4
eBook Packages: Springer Book Archive