skip to main content
research-article

Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations

Published:25 October 2009Publication History
Skip Abstract Section

Abstract

An object diagram makes explicit the object structures that are only implicit in a class diagram. An object diagram may be missing and must extracted from the code. Alternatively, an existing diagram may be inconsistent with the code, and must be analyzed for conformance with the implementation. One can generalize the global object diagram of a system into a runtime architecture which abstracts objects into components, represents how those components interact, and can decompose a component into a nested sub-architecture.

A static object diagram represents all objects and inter-object relations possibly created, and is recovered by static analysis of a program. Existing analyses extract static object diagrams that are non-hierarchical, do not scale, and do not provide meaningful architectural abstraction. Indeed, architectural hierarchy is not readily observable in arbitrary code. Previous approaches used breaking language extensions to specify hierarchy and instances in code, or used dynamic analyses to extract dynamic object diagrams that show objects and relations for a few program runs.

Typecheckable ownership domain annotations use existing language support for annotations and specify in code object encapsulation, logical containment and architectural tiers. These annotations enable a points-to static analysis to extract a sound global object graph that provides architectural abstraction by ownership hierarchy and by types, where architecturally significant objects appear near the top of the hierarchy and data structures are further down.

Another analysis can abstract an object graph into a built runtime architecture. Then, a third analysis can compare the built architecture to a target, analyze and measure their structural conformance, establish traceability between the two and identify interesting differences.

References

  1. M. Abi-Antoun. Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure. PhD thesis, Carnegie Mellon University. Available as Technical Report CMU-ISR-09-119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Abi-Antoun and J. Aldrich. Ownership Domains in the Real World. In IWACO, pages 93--104, 2007.Google ScholarGoogle Scholar
  3. M. Abi-Antoun and J. Aldrich. A Field Study in Static Extraction of Runtime Architectures. In PASTE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Abi-Antoun and J. Aldrich. Static Extraction of Sound Hierarchical Runtime Object Graphs. In Types in Lang. Design and Impl. (TLDI), pages 51--64, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Abi-Antoun, J. Aldrich, and W. Coelho. A Case Study in Re-engineering to Enforce Architectural Control Flow and Data Sharing. J. Systems&Software, 80(2):240--264, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Abi-Antoun, J. Aldrich, N. Nahas, B. Schmerl, and D. Garlan. Differencing and Merging of Architectural Views. Automated Software Eng., 15(8):35--74, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Aldrich and C. Chambers. Ownership Domains: Separating Aliasing Policy from Mechanism. In ECOOP, pages 1--25, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  8. J. Aldrich, C. Chambers, and D. Notkin. ArchJava: Connecting Software Architecture to Implementation. In ICSE, pages 187--197, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Christl, R. Koschke, and M.-A. Storey. Equipping the Reflexion Method with Automated Clustering. In WCRE, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. G. Clarke, J. M. Potter, and J. Noble. Ownership Types for Flexible Alias Protection. In OOPSLA, pages 48--64, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Clements et al. Documenting Software Architecture. Addison-Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Conte, P. Foggia, C. Sansone, and M. Vento. Thirty Years of Graph Matching in Pattern Recognition. Int. J. Pattern Recognit. Artif. Intell., 18(3):265--298, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  13. C. Flanagan and S. N. Freund. Dynamic Architecture Extraction. In FATES-RV, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. D. Garlan et al. The Acme Architectural Description Language. http://www.cs.cmu.edu/ acme.Google ScholarGoogle Scholar
  16. T. Hill, J. Noble, and J. Potter. Scalable Visualizations of Object-Oriented Systems with Ownership Trees. J. Visual Lang. and Comput., 13(3):319--339, 2002.Google ScholarGoogle Scholar
  17. D. Jackson and A. Waingold. Lightweight Extraction of Object Models from Bytecode. TSE, 27(2), 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. jRM. http://jrmtool.sourceforge.net, 2003.Google ScholarGoogle Scholar
  19. R. Koschke and D. Simon. Hierarchical Reflexion Models. In WCRE, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. P. Lam and M. Rinard. A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information. In ECOOP, pages 275--302, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  21. S. Lee, G. Murphy, T. Fritz, and M. Allen. How can diagramming tools help support programming activities. In VL/HCC, pages 246--249, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. C. Luckham and J. Vera. An Event-Based Architecture Definition Language. TSE, 21(9):717--734, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K.-K. Ma and J. S. Foster. Inferring Aliasing and Encapsulation Properties for Java. In OOPSLA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. N. Medvidovic, P. Oreizy, J. E. Robbins, and R. N. Taylor. Using Object-Oriented Typing to Support Architectural Design in the C2 Style. In FSE, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. N. Medvidovic and R. N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. TSE, 26(1), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Milanova, A. Rountev, and B. G. Ryder. Constructing Precise Object Relation Diagrams. In ICSM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Milanova, A. Rountev, and B. G. Ryder. Parameterized Object Sensitivity for Points-To Analysis for Java. TOSEM, 14(1):1--41, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. G. C. Murphy, D. Notkin, and K. J. Sullivan. Software Reflexion Models: Bridging the Gap between Design and Implementation. TSE, 27(4):364--380, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. W. O'Callahan. Generalized Aliasing as a Basis for Program Analysis Tools. PhD thesis, CMU, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Sagiv, T. Reps, and R. Wilhelm. Parametric Shape Analysis via 3-Valued Logic. In POPL, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. J. Schafer and A. Poetzsch-Heffter. A Parameterized Type System for Simple Loose Ownership Domains. Journal of Object Technology, 5(6):71--100, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  32. J. Schafer, M. Reitz, J.-M. Gaillourdet, and A. Poetzsch-Heffter. Linking Programs to Architectures: an Object-Oriented Hierarchical Software Model based on Boxes. In Common Component Modeling Example (CoCoME), pages 238--266, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. B. Schmerl, J. Aldrich, D. Garlan, R. Kazman, and H. Yan. Discovering Architectures from Running Systems. TSE, 32(7):454--466, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. M. Sefika, A. Sane, and R. H. Campbell. Monitoring Compliance of a Software System with its High-Level Design Models. In ICSE, pages 387--396, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. M.-A. Storey, C. Best, and J. Michaud. SHriMP Views: An Interactive Environment for Exploring Java Programs. In IWPC, page 111, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. P. Tonella and A. Potrich. Reverse Engineering of Object Oriented Code. Springer-Verlag, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. van Ommering, R. Krikhaar, and L. Feijs. Languages for Formalizing, Visualizing and Verifying Software Architectures. Computer Languages, 27(1-3):3--18, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!