Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Monitoring compliance of a software system with its high-level design models
Proceedings of the 18th international conference on Software engineering
Using object-oriented typing to support architectural design in the C2 style
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Lightweight Extraction of Object Models from Bytecode
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
An Event-Based Architecture Definition Language
IEEE Transactions on Software Engineering
Constructing Precise Object Relation Diagrams
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
SHriMP Views: An Interactive Environment for Exploring Java Programs
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Generalized aliasing as a basis for program analysis tools
Generalized aliasing as a basis for program analysis tools
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Parameterized object sensitivity for points-to analysis for Java
ACM Transactions on Software Engineering and Methodology (TOSEM)
Reverse Engineering of Object Oriented Code (Monographs in Computer Science)
Reverse Engineering of Object Oriented Code (Monographs in Computer Science)
Equipping the Reflexion Method with Automated Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
A case study in re-engineering to enforce architectural control flow and data sharing
Journal of Systems and Software
Discovering Architectures from Running Systems
IEEE Transactions on Software Engineering
Inferring aliasing and encapsulation properties for java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Differencing and merging of architectural views
Automated Software Engineering
Static extraction of sound hierarchical runtime object graphs
Proceedings of the 4th international workshop on Types in language design and implementation
A field study in static extraction of runtime architectures
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
How can diagramming tools help support programming activities?
VLHCC '08 Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing
Static extraction and conformance analysis of hierarchical runtime architectural structure
Static extraction and conformance analysis of hierarchical runtime architectural structure
Dynamic architecture extraction
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
Languages for formalizing, visualizing and verifying software architectures
Computer Languages
Questions about object structure during coding activities
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Developer refinement of runtime architectural structure
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Analyzing security architectures
Proceedings of the IEEE/ACM international conference on Automated software engineering
OOGIE: ownership object graph interactive editor
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
A case study in evaluating the usefulness of the run-time structure during coding tasks
Human Aspects of Software Engineering
Assisting conformance checks between architectural scenarios and implementation
Information and Software Technology
Extraction of ownership object graphs from object-oriented code: an experience report
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Modular specification and checking of structural dependencies
Proceedings of the 12th annual international conference on Aspect-oriented software development
Finding the missing eclipse perspective: the runtime perspective
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Automated architectural evaluation of web information systems
Proceedings of the 19th Brazilian symposium on Multimedia and the web
Beyond the geneva convention on the treatment of object aliasing
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
Object graphs with ownership domains: an empirical study
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
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.