Software Architecture Recovery based on Pattern Matching

Pattern matching approaches in reverse engineering aim to incorporate domain knowledge and system documentation in the software architecture extraction process, hence provide a user/tool collaborative environment for architectural design recovery. This thesis presents a model and an environment fo...

Full description

Bibliographic Details
Main Author: Sartipi, Kamran
Format: Others
Language:en
Published: University of Waterloo 2006
Subjects:
Online Access:http://hdl.handle.net/10012/1122
id ndltd-WATERLOO-oai-uwspace.uwaterloo.ca-10012-1122
record_format oai_dc
spelling ndltd-WATERLOO-oai-uwspace.uwaterloo.ca-10012-11222013-01-08T18:49:25ZSartipi, Kamran2006-08-22T14:25:48Z2006-08-22T14:25:48Z20032003http://hdl.handle.net/10012/1122Pattern matching approaches in reverse engineering aim to incorporate domain knowledge and system documentation in the software architecture extraction process, hence provide a user/tool collaborative environment for architectural design recovery. This thesis presents a model and an environment for recovering the high level design of legacy software systems based on user defined architectural patterns and graph matching techniques. In the proposed model, a high-level view of a software system in terms of the system components and their interactions is represented as a query, using a description language. A query is mapped onto a pattern-graph, where a module and its interactions with other modules are represented as a group of graph-nodes and a group of graph-edges, respectively. Interaction constraints can be modeled by the description language as a part of the query. Such a pattern-graph is applied against an entity-relation graph that represents the information extracted from the source code of the software system. An approximate graph matching process performs a series of graph edit operations (i. e. , node/edge insertion/deletion) on the pattern-graph and uses a ranking mechanism based on data mining association to obtain a sub-optimal solution. The obtained solution corresponds to an extracted architecture that complies with the given query. An interactive prototype toolkit implemented as part of this thesis provides an environment for architecture recovery in two levels. First the system is decomposed into a number of subsystems of files. Second each subsystem can be decomposed into a number of modules of functions, datatypes, and variables.application/pdf1813683 bytesapplication/pdfenUniversity of WaterlooCopyright: 2003, Sartipi, Kamran. All rights reserved.Computer ScienceAlborzQuery languageApproximate graph matchingComponentConnectorConstraintArchitecture recovery environmentSoftware viewsData miningHigh-level viewArchitectural patternGraph patternGraph representationGraph modelingGraph eSoftware Architecture Recovery based on Pattern MatchingThesis or DissertationSchool of Computer ScienceDoctor of Philosophy
collection NDLTD
language en
format Others
sources NDLTD
topic Computer Science
Alborz
Query language
Approximate graph matching
Component
Connector
Constraint
Architecture recovery environment
Software views
Data mining
High-level view
Architectural pattern
Graph pattern
Graph representation
Graph modeling
Graph e
spellingShingle Computer Science
Alborz
Query language
Approximate graph matching
Component
Connector
Constraint
Architecture recovery environment
Software views
Data mining
High-level view
Architectural pattern
Graph pattern
Graph representation
Graph modeling
Graph e
Sartipi, Kamran
Software Architecture Recovery based on Pattern Matching
description Pattern matching approaches in reverse engineering aim to incorporate domain knowledge and system documentation in the software architecture extraction process, hence provide a user/tool collaborative environment for architectural design recovery. This thesis presents a model and an environment for recovering the high level design of legacy software systems based on user defined architectural patterns and graph matching techniques. In the proposed model, a high-level view of a software system in terms of the system components and their interactions is represented as a query, using a description language. A query is mapped onto a pattern-graph, where a module and its interactions with other modules are represented as a group of graph-nodes and a group of graph-edges, respectively. Interaction constraints can be modeled by the description language as a part of the query. Such a pattern-graph is applied against an entity-relation graph that represents the information extracted from the source code of the software system. An approximate graph matching process performs a series of graph edit operations (i. e. , node/edge insertion/deletion) on the pattern-graph and uses a ranking mechanism based on data mining association to obtain a sub-optimal solution. The obtained solution corresponds to an extracted architecture that complies with the given query. An interactive prototype toolkit implemented as part of this thesis provides an environment for architecture recovery in two levels. First the system is decomposed into a number of subsystems of files. Second each subsystem can be decomposed into a number of modules of functions, datatypes, and variables.
author Sartipi, Kamran
author_facet Sartipi, Kamran
author_sort Sartipi, Kamran
title Software Architecture Recovery based on Pattern Matching
title_short Software Architecture Recovery based on Pattern Matching
title_full Software Architecture Recovery based on Pattern Matching
title_fullStr Software Architecture Recovery based on Pattern Matching
title_full_unstemmed Software Architecture Recovery based on Pattern Matching
title_sort software architecture recovery based on pattern matching
publisher University of Waterloo
publishDate 2006
url http://hdl.handle.net/10012/1122
work_keys_str_mv AT sartipikamran softwarearchitecturerecoverybasedonpatternmatching
_version_ 1716572454627835904