Browse > Article

A Program Analysis Technique for Recovery of Layered Architecture and Conformance Checking  

Park Chanjin (서울대학교 컴퓨터공학부)
Hong Euyseok (성신여자대학교 컴퓨터정보학부)
Kang Yoohoon (서울대학교 컴퓨터공학부)
Wu Chisu (서울대학교 컴퓨터공학부)
Abstract
Layered Architecture is a kind of nodule decomposition techniques, which decomposes a program by generality This paper proposes a ]aver based method for recovering layered architecture from object-oriented program and checking conformance against architectural document. To specify the rules for layered style in object-oriented program, we define a partially ordered set on modules by module use relationship and module layer relationship by module override relationship. The meaning of module layer relationship is explained with an example from design patterns. Steps to recover layered architecture from program are described and a metamodel for the recovery is proposed. Architecture recovery is performed on source codes from open-source software project, and the implication of parts that do not conform to its architectural document is discussed. As a result of checking, it is pointed out that, although the parts are considered allowable exceptions of layered architecture, their modifications should be controlled carefully.
Keywords
Layered Architecture; Software Architecture Recovery; Reverse Engineering;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Gamma, E., Helm, R., Johnson, R., and Vlissides, J., Design Patterns: Elements of Reusable Object Oriented Software, Addison Wesley, 1994
2 Szypersky, C., Component Software. 2nd Ed., Addison-Wesley, 2002
3 Clark, D. D., 'The structuring of systems using upcalls,' Proceedings of the 10th ACM symposium on Operating systems principles, 1985   DOI
4 Riva, C., Selonen, P., Systa, T., Tuovinen, A., Xu, J., and Yang, Y., 'Establishing a Software Architecting Environment,' Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture (WICSA'04), 2004
5 Stoermer, C., O'Brien, L., and Verhoef, C., 'Practice Patterns for Architecture Reconstruction,' Proceedings of the 9th Working Conference on Reverse Engineering (WCRE'02), 2002   DOI
6 Tran, J. B., Godfrey, M. W., Lee, E. H. S., and Holt, R. C., 'Architectural Repair of Open Source Software,' Proceedings of the 8th International Workshop on Program Comprehension (IWPC'00), pp. 48-59, 2000
7 Stoermer, C., O'Brien, L., and Verhoef, C., 'Moving Towards Quality Attribute Driven Software Architecture Reconstruction,' Proceedings of the 10th Working Conference on Reverse Engineering (WCRE'03), 2003
8 Seacord, R. C., Plakosh, D. and Lewis, G. A., Modernizing Legacy Systems, Addison Wesley, 2003
9 Murphy, G. C., Notkin, D., and Sullivan, K. J., 'Software reflexion models : bridging the gap between design and implementation,' IEEE Transactions on Software Engineering, vol. 27, no. 4, pp. 364-380, 2001   DOI   ScienceOn
10 Koschke, R. and Simon, D., 'Hierarchical Reflexion Models,' Proceedings of the 10th Working Conference on Reverse Engineering (WCRE'03), 2003
11 ArgoUML. http://argouml.tigris.org
12 Bowman, I. T., Holt, R. C., and Brewster, N. V., 'Linux as a Case Study: Its Extracted Software Architecture,' Proceedings of the 21st International Conference on Software Engineering, pp.555-563, 1999   DOI
13 Stoermer, C. and O'Brien, L., 'MAP - Mining Architectures for Product Line Evaluations,' Proceedings of the 2nd Working IEEE/IFIP Conference on Software Architecture (WICSA'01), 2001   DOI
14 Riva, C., 'Reverse Architecting: an Industrial Experience Report,' Proceedings of the 7th Working Conference on Reverse Engineering (WCRE'00), 2000   DOI
15 Shaw, M. and Garlan, D., Software Architecture, Prentice Hall, 1996
16 van der Linden, F. J. and Muller, J. K., 'Creating Architectures with Building Blocks,' IEEE Software, Nov., 1995   DOI   ScienceOn
17 Parnas, D. L., 'On the criteria to be used in decomposing systems into modules,' Communications of the ACM, Vol. 15, Issues 12, Dec., 1972   DOI   ScienceOn
18 Griswold, W. G. and Notkin, D., 'Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool,' IEEE Trans. on Software Engineering, Vol. 21, No.4, 1995   DOI   ScienceOn
19 Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Nord, R. and Stafford, J., Documenting Software Architecture, Addison Wesley, 2003
20 Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M., Pattern Oriented Software Architecture, Volume 1: A System of Patterns, John Wiley & Sons, 1996
21 Fowler, M., Refactoring, Improving the Design of Existing Code, Addison Wesley, 1999
22 Mancoridis, S., Mitchell, B. S., Rorres, C., Chen, Y., and Gansner, E. R., 'Using Automatic Clustering to Produce High-Level System Organizations of Source Code,' Proceedings of the 6th International Workshop on Program Comprehension (IWPC'98), 1998   DOI
23 Shokoufandeh, A., Mancoridis, S., and Maycock, M., 'Applying Spectral Methods to Software Clustering,' Proceedings of the 9th Working Conference in Reverse Engineering (WCRE'02), 2002
24 Java Compiler $Compiler^TM$ (JavaCC) The Java Parser Generator. http://javacc.dev.java.net
25 Graphviz - open source graph drawing software. http://www.research.att.com/sw/tools/graphviz