Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
Query by outlines: a new paradigm to help manage programs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Architecture recovery of web applications
Proceedings of the 24th International Conference on Software Engineering
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
Widening the Scope of Software Product Lines - From Variation to Composition
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
Software architecture abstraction and aggregation as algebraic manipulations
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Wins and Losses of Algebraic Transformations of Software Architectures
Proceedings of the 16th IEEE international conference on Automated software engineering
Removing false code dependencies to speedup software build processes
CASCON '03 Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research
Refining code-design mapping with flow analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Efficient Relational Calculation for Software Analysis
IEEE Transactions on Software Engineering
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
Continuous release and upgrade of component-based software
Proceedings of the 12th international workshop on Software configuration management
Relational programming with CrocoPat
Proceedings of the 28th international conference on Software engineering
Documenting software systems using types
Science of Computer Programming - Software analysis, evolution and re-engineering
Using SCL to Specify and Check Design Intent in Source Code
IEEE Transactions on Software Engineering
Software Engineering
Discovering and representing systematic code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Extending the reflexion method for consolidating software variants into product lines
Software Quality Control
Factbase Filtering Issues in an Ontology-Based Reverse Engineering Tool Integration System
Electronic Notes in Theoretical Computer Science (ENTCS)
A towards an extended relational algebra for software architecture
ACM SIGSOFT Software Engineering Notes
Semantic web enabled software analysis
Web Semantics: Science, Services and Agents on the World Wide Web
Excerpts from the TXL cookbook
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Languages for formalizing, visualizing and verifying software architectures
Computer Languages
Controversy Corner: Preserving knowledge in software projects
Journal of Systems and Software
Clustering methodologies for software engineering
Advances in Software Engineering
Hi-index | 0.00 |
Software architecture is typically drawn as a nested set of box and arrow diagrams. The boxes represent components of the software system and the edges represent interactions. These diagrams correspond to typed graphs, in which there are a number of 驴types驴 or 驴colors驴 of edges, and in which there is a distinguished 驴contain驴 relation that represents the system hierarchy (the nesting of boxes). During reverse engineering, one often transforms such diagrams in various ways to make them easier to understand. These transformations include edge aggregation, box abstraction (closing a box to hide its contents), and box separation (separating a box from its surrounding system). Such transformations are essential in helping make software architecture diagrams useful in practice.This paper shows how structural manipulations such as these can be specified and automatically carried out in a notation based on Tarski's relational algebra. The operators in this algebra include relational composition, union, subtraction, etc. These operators are supported in a language called Grok. Grok scripts have been used in manipulating the graphs for large-scale software systems, such as Linux, to help in program visualization and understanding.