A theory for software design extraction
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.
KeywordsSoftware Engineering Reverse Engineering Maintenance Theory of Design Extraction
Unable to display preview. Download preview PDF.
- Aho, A.V., Hopcroft, J.E., Ullman, J.D. Data structures and algorithms. Addison-Wesley Publishing Company, Reading, Massachusetts, 1983, pp. 222–226.Google Scholar
- Aho, A.V., Ullman, J.D. Principles of Compiler Design. Addison-Wesley Publishing Company, Reading, Massachusetts, 1977, pp. 442–447.Google Scholar
- Biggerstaff, T. Design recovery for maintenance and reuse. IEEE Computer, Vol. 22–7, pp. 36–49.Google Scholar
- Choi, S.C. Scacchi, W. Extracting and restructuring the design of large systems. IEEE Software, Jan. 1990, pp. 66–71.Google Scholar
- Gilbert, W.J. Modern Algebra with Applications. John Wiley & Sons, New York, 1976, pp. 27–28.Google Scholar
- 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.Google Scholar
- Parnas, D.L. On the criteria to be used in decomposing systems in modules. Comm. of the ACM, Vol 15–2, Dec. 1972.Google Scholar
- Schwanke, R.W., Platoff, M.A. Cross References are Features. Proceedings of the Second International Workshop on Software Configuration Management, Princeton, NJ, Oct. 1989.Google Scholar
- 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.Google Scholar