Discrete relaxation techniques
Discrete relaxation techniques
STACS 91 Proceedings of the 8th annual symposium on Theoretical aspects of computer science
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
A relational approach to support software architecture analysis
Software—Practice & Experience
Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
Computing with graphs and graph transformations
Software—Practice & Experience
Software architecture abstraction and aggregation as algebraic manipulations
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Forward and reverse repair of software architecture
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Repairing software style using graph grammars
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
Using Graph Rewriting to Specify Software Architectural Transformations
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Structural Manipulations of Software Architecture Using Tarski Relational Algebra
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Software Architecture Transformations
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Comparing Graph-Based Program Comprehension Tools to Relational Database-Based Tools
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Flow equations as a generic programming tool for manipulation of attributed graphs
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Jedd: a BDD-based relational extension of Java
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Efficient Relational Calculation for Software Analysis
IEEE Transactions on Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
Relations as an abstraction for BDD-based program analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Factbase Filtering Issues in an Ontology-Based Reverse Engineering Tool Integration System
Electronic Notes in Theoretical Computer Science (ENTCS)
Science of Computer Programming
Legacy transformations for extracting service components
Rigorous software engineering for service-oriented systems
Hi-index | 0.00 |
In order to understand, analyze and modify software, wecommonly examine and manipulate its architecture. Forexample, we may want to examine the architecture atdifferent levels of abstraction. We can view suchmanipulations as architectural transformations, and morespecifically, as graph transformations. In this paper, weevaluate relational algebra as a way of specifying andautomating the architectural transformations.Specifically, we examine Grok, a relational calculatorthat is part of the PBS toolkit. We show that relationalalgebra is practical in that we are able to specify many ofthe transformations commonly occurring during softwaremaintenance and, using a tool like Grok, we are able tomanipulate, quite efficiently, large software graphs; thisis a "win". However, this approach is not well suited toexpress some types of transforms involving patterns ofedges and nodes; this is a "loss". By means of a set ofexamples, the paper makes clear when the approach winsand when it loses.