skip to main content
10.1145/2304696.2304719acmconferencesArticle/Chapter ViewAbstractPublication PagescomparchConference Proceedingsconference-collections
research-article

Extraction of ownership object graphs from object-oriented code: an experience report

Published: 25 June 2012 Publication History

Abstract

Despite receiving much research attention, the extraction of runtime architecture remains hard. One approach, SCHOLIA, relies on adding typecheckable annotations to the code, and uses static analysis to extract a global, hierarchical Ownership Object Graph (OOG). The OOG provides architectural abstraction by ownership hierarchy and by types, and can be abstracted into a run-time architecture represented in an architectural description language, for documentation or conformance analysis.
We report on our experience in analyzing a medium-sized object-oriented system undergoing maintenance to: (1) extract an OOG; and (2) refine the OOG based on the maintainers' feedback.
We evaluate the effectiveness of abstraction by ownership hierarchy and by types to extract an OOG that the system maintainers understand. We measure the extraction effort to be about 1~hour/KLOC. An evaluation with the lead maintainer confirms that he understands abstraction by ownership hierarchy and by types. Finally, we illustrate how to incrementally refine an extracted OOG (without starting all over) to better match the maintainer's mental model.

References

[1]
M. Abi-Antoun. Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure. PhD thesis, Carnegie Mellon University, 2010. Technical Report CMU-ISR-10-114.
[2]
M. Abi-Antoun and J. Aldrich. A Field Study in Static Extraction of Runtime Architectures. In PASTE, 2008.
[3]
M. Abi-Antoun and J. Aldrich. Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure using Annotations. In OOPSLA, 2009.
[4]
M. Abi-Antoun and T. Selitsky. Interactive Refinement of Runtime Structure. In Workshop on Flexible Modeling Tools (FlexiTools), 2010.
[5]
M. Abi-Antoun, T. Selitsky, and T. LaToza. Developer Refinement of Runtime Architectural Structure. In Workshop on SHAring and Reusing architectural Knowledge (SHARK), 2010.
[6]
J. Aldrich and C. Chambers. Ownership Domains: Separating Aliasing Policy from Mechanism. In ECOOP, 2004.
[7]
K. Amin. Pathway-Express: a Bioinformatics Tool for Pathway Level Analysis using Gene Expression Data. Master's thesis, Wayne State University, 2007.
[8]
J. Bloch. Effective Java. Addison-Wesley, 2001.
[9]
S. Chardigny, A. Seriai, M. Oussalah, and D. Tamzalit. Extraction of Component-Based Architecture from Object-Oriented Systems. In WICSA, 2008.
[10]
P. Clements, F. Bachman, L. Bass, D. Garlan, J. Ivers, R. Little, R. Nord, and J. Stafford. Documenting Software Architectures: View and Beyond. Addison-Wesley, 2003.
[11]
W. Dietl, S. Drossopoulou, and P. Müller. Generic Universe Types. In ECOOP, 2007.
[12]
S. Ducasse and D. Pollet. Software Architecture Reconstruction: A Process-Oriented Taxonomy. TSE, 35(4), 2009.
[13]
Eclipse Metrics Plugin. http://metrics.sourceforge.net/, 2010.
[14]
B. Grone, A. Knopfel, and R. Kugel. Architecture Recovery of Apache 1.3 -- a Case Study. In International Conference on Software Engineering Research and Practice, 2002.
[15]
Intelligent Systems and Bioinformatics Laboratory. http://vortex.cs.wayne.edu/projects.htm/, 2003.
[16]
H. Koning, C. Dormann, and H. van Vliet. Practical Guidelines for the Readability of IT-Architecture Diagrams. In SIGDOC, 2002.
[17]
P. Lam and M. Rinard. A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information. In ECOOP, 2003.
[18]
N. Medvidovic and V. Jakobac. Using Software Evolution to Focus Architectural Recovery. ASE, 13(2), 2006.
[19]
G. Murphy, D. Notkin, and K. J. Sullivan. Software Reflexion Models: Bridging the Gap between Design and Implementation. TSE, 27(4), 2001.
[20]
T. Richner and S. Ducasse. Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information. In ICSM, 1999.
[21]
B. Schmerl, J. Aldrich, D. Garlan, R. Kazman, and H. Yan. Discovering Architectures from Running Systems. TSE, 32(7), 2006.
[22]
T. Systa, P. Yu, and H. Muller. Analyzing Java software by combining metrics and program visualization. In CSMR, 2000.
[23]
P. Tonella and A. Potrich. Reverse Engineering of Object Oriented Code. Springer-Verlag, 2004.
[24]
P. Tonella, M. Torchiano, B. Du Bois, and T. Systa. Empirical Studies in Reverse Engineering: State of the Art and Future Trends. Empirical Software Engineering, 12(5), 2007.
[25]
V. Tzerpos and R. C. Holt. A Hybrid Process for Recovering Software Architecture. In CASCON, 1996.

Cited By

View all
  • (2017)Euclidean space based hierarchical clusterers combinations: an application to software clusteringCluster Computing10.1007/s10586-017-1408-0Online publication date: 27-Nov-2017
  • (2015)In-Situ Visualisation of Fractional Code Ownership over TimeProceedings of the 8th International Symposium on Visual Information Communication and Interaction10.1145/2801040.2801055(13-20)Online publication date: 24-Aug-2015
  • (2015)Impact analysis based on a global hierarchical Object Graph2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2015.7081832(221-230)Online publication date: Mar-2015
  • Show More Cited By

Index Terms

  1. Extraction of ownership object graphs from object-oriented code: an experience report

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    QoSA '12: Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
    June 2012
    164 pages
    ISBN:9781450313469
    DOI:10.1145/2304696
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 June 2012

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. architecture recovery
    2. ownership types
    3. runtime architecture

    Qualifiers

    • Research-article

    Conference

    Comparch '12
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 46 of 131 submissions, 35%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 20 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)Euclidean space based hierarchical clusterers combinations: an application to software clusteringCluster Computing10.1007/s10586-017-1408-0Online publication date: 27-Nov-2017
    • (2015)In-Situ Visualisation of Fractional Code Ownership over TimeProceedings of the 8th International Symposium on Visual Information Communication and Interaction10.1145/2801040.2801055(13-20)Online publication date: 24-Aug-2015
    • (2015)Impact analysis based on a global hierarchical Object Graph2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2015.7081832(221-230)Online publication date: Mar-2015
    • (2013)Object graphs with ownership domainsAliasing in Object-Oriented Programming10.5555/2554511.2554519(109-155)Online publication date: 1-Jan-2013
    • (2013)Object Graphs with Ownership Domains: An Empirical StudyAliasing in Object-Oriented Programming. Types, Analysis and Verification10.1007/978-3-642-36946-9_6(109-155)Online publication date: 2013
    • (2012)Empirical Evaluation of Diagrams of the Run-time Structure for Coding TasksProceedings of the 2012 19th Working Conference on Reverse Engineering10.1109/WCRE.2012.46(367-376)Online publication date: 15-Oct-2012
    • (2012)Ownership Object Graphs with Dataflow EdgesProceedings of the 2012 19th Working Conference on Reverse Engineering10.1109/WCRE.2012.36(267-276)Online publication date: 15-Oct-2012

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media