Chapter 4

Domain-driven analysis of architecture reconstruction methods

Burak Uzun; Bedir Tekinerdogan    Information Technology Group, Wageningen University, Wageningen, The Netherlands

Abstract

Software architecture reconstruction (SAR) is a process which aims to obtain the architecture information of any system using various sources. These sources contain documentations, logs, codes, and stakeholder concerns. Various automated and manual approaches have been proposed in the literature for SAR. Manual architecture reconstruction is usually time consuming, costly, error-prone, and complex. Hence different studies have addressed these problems by proposing automatized methods and tools for SAR. In this chapter we present a systematic characterization of the published architecture reconstruction methods. We apply a domain analysis process in which we first define the generic domain model of architecture reconstruction. The model is represented as a set of key terms, a generic business process model, and a feature diagram that represents the common and variant features of architecture reconstruction. We also present the method for deriving concrete architecture reconstruction methods from the generic domain model. We illustrate our approach for deriving two different concrete architecture reconstruction methods.

Keywords

domain analysis; feature modeling; architecture reconstruction methods

4.1 Introduction

One of the key artifacts in the software development life cycle process is the architecture design, which represents the gross-level structure of the system. The model architecture is important for supporting the communication among stakeholders, for analysis of the design decisions, and for guiding the organizational processes [30]. Software architecture can be prescriptive in that it defines how detailed design and code should be structured. Software architecture can also be descriptive in that it reflects the structure of current design and code artifacts [1]. Very often the architecture of a system is not existing or needs to be reconstructed due to the code that has evolved. In this context SAR methods can be used to reconstruct and obtain the architecture information of the system using various sources, such as documentations, logs, and code [7].

Various different approaches have been proposed in the literature for architecture reconstruction. Since manual handling of the architecture reconstruction process is usually time consuming and costly, automatized methods and tools have been proposed by different studies in the literature. In this chapter we present a domain-driven survey of the published architecture reconstruction methods. For this we apply a domain analysis process in which we first define the generic domain model of architecture reconstruction. The domain model is represented as a set of key terms, a generic business process model, and a feature diagram that represents the common and variant features of architecture reconstruction. We also present the method for deriving concrete architecture reconstruction methods from the generic domain model. We illustrate our approach for deriving two different concrete architecture reconstruction methods.

The remainder of the chapter is organized as follows. In Section 4.2, we discuss the background for architecture reconstruction and feature-driven domain analysis by presenting the conceptual model for it. Section 4.3 presents the domain model of software architecture reconstruction methods. Section 4.4 presents the derived feature and business process models for two case studies. Section 4.5 presents the related work and Section 4.6 presents the discussion. Section 4.7 concludes the chapter.

4.2 Preliminaries

4.2.1 Software architecture reconstruction

Software architecture reconstruction is a reverse engineering process which aims to obtain the architecture information of any system using existing other source artifacts [7]. Fig. 4.1 shows a conceptual model for architecture reconstruction.

Image
Figure 4.1 Conceptual model for architecture reconstruction.

An architecture reconstruction process uses different source artifacts which are input for the SAR process such as code, detailed design, logs, documentation, and stakeholder concerns. Two basic motivations for SAR can be identified, that is, missing or incomplete architecture documentation, or an architecture drift due to evolution of the requirements. Since manual handling of architecture reconstruction is usually time consuming and costly, fully or semiautomatized methods and tools are implemented. The result of the SAR process is an architecture documentation that includes a description of a set of architecture views for addressing stakeholder concerns [27]. An architecture view conforms to an architecture viewpoint. Architecture views can be visual or textual [5].

4.2.2 Domain analysis

A well-known process for analyzing and modeling the current state of the art of a particular domain is domain analysis. Domain analysis is the process of identifying, capturing domain knowledge about the problem domain with the purpose of making it reusable when creating new systems [4,18,31,21]. Domain here refers to “an area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area.” Several domain analysis processes have been defined in the literature, but in general these include the steps for (1) domain scoping and (2) domain modeling. Fig. 4.2 shows the overall domain analysis process that we will adopt.

Image
Figure 4.2 Common structure of domain analysis methods.

In domain scoping it is explicitly described what will be considered in the domain and likewise the scope will be determined. This will include also the selection of the primary studies that will be used to analyze the domain. In the domain modeling process, usually a commonality and variability analysis process is carried out to derive a domain model. With the commonality and variability analysis process the identified primary studies are simultaneously analyzed to identify common and variant features of a domain [32]. A feature model is a model that defines features and their dependencies. A feature is a system property that is relevant to some stakeholder and is used to capture commonalities or discriminate between them. Feature models are usually represented in feature diagrams (or tables). A feature diagram is a tree with the root representing a concept (e.g., a software system), and its descendent nodes are features. Various relationships between a parent feature and its child features (or subfeatures) are defined, including mandatory, optional, or, and alternative. A feature configuration is a selected set of features which describes an instance of the feature diagram. Cross-tree constraints further restrict the possible selections of features to define configurations. The most common cross-tree constraints are requires and excludes.

4.3 Domain model of architecture reconstruction methods

In this section we present the results of the domain analysis process for SAR methods. This process resulted in the domain model which consists of a feature diagram and a generic business process model. In Section 4.3.1, we present the adopted scope of the domain that we have used to derive the domain model. Section 4.3.2 presents the feature diagram for SAR methods. Finally, Section 4.3.3 presents the generic business process model.

4.3.1 Domain scoping

As discussed before, the domain scoping defines what will be considered in the domain and likewise the scope will be determined. Our key concern in this study is architecture reconstruction and in particular we focus on the process and the corresponding tools. In the scoping process we have used different reputable and most cited libraries, including IEEE Explore, ACM, Science Direct, Springer, WebOfKnowledge, and Wiley. In these platforms we have searched for papers related to software architecture reconstruction. We have created search strings including the terms “software architecture reconstruction” and “software architecture recovery” in abstract of papers. After a careful analysis of the selected papers according to exclusion criteria we have derived the list of papers as shown in Appendix 4.A – Primary studies. We have thoroughly read these papers and applied the commonality and analysis for deriving the common and variant concepts related to SAR. The result of the data extraction process is described using a domain which is explained in the next subsection. Table 4.1 provides our exclusion criteria for the study selection process. We further filtered out the query results according to these defined criteria. Table 4.2 presents the number of study selections after applying search queries and exclusion criteria. Seventeen studies were singled out of 652 studies after applying the exclusion criteria.

Table 4.1

Study selection criteria.
EC1Papers in which the full text is not available
EC2Papers that are not in English
EC3Papers that are duplicate
EC4Papers that were published before 1998
EC5Papers that do not relate to software architecture reconstruction
EC6Papers that do not have a proposed tool
EC7Papers that are experience or survey papers

Table 4.2

Overview of search results and study selection.

SourceNumber of included studies after applying search queriesNumber of included studies after applying exclusion criteria EC1–EC4Number of included studies after applying exclusion criteria EC5–EC7
IEEE Xplore406258
ACM Digital Library2570
Wiley533
Interscience
Science Direct12152
Springer844
ISI Web of Knowledge8760
Total65211017

Image

4.3.2 Feature model

Fig. 4.3 shows the feature model of SAR methods that we have derived from the domain analysis process.

Image
Figure 4.3 Feature model for architecture reconstruction methods.

A SAR method consists of the mandatory features of goal, source artifacts, adopted method, process steps, and architecture model and one optional feature of architecture model.

The goal feature defines the aim of the SAR and why the SAR is actually applied. The goal of the SAR method can be architecture redesign, system modernization, refactoring, and architecture nonconformity identification. Architecture redesign is a process for enhancing, adapting, or revising the current architecture. Architecture redesign can be applied when underlying system architecture does not perform as desired against the current or future requirements. Refactoring is a software development process where the low-level components are rearranged without changing the functionality of the program code. Refactoring is heavily used in industry, which makes the code more readable and adaptable to further changes in the requirements. System modernization is a software process in which the current systems architecture and used technology stack are adapted to the current requirements and the current state of the system is maintained. At last, architecture nonconformity identification is a process that aims to find differences between intended and implemented architecture. These differences can be crucial and can lead to bugs, defects, or errors. One or more of the defined goals can be valid for a SAR method.

Source artifacts are artifacts that are used to (re)construct an architecture. Code, logs, documentations, and stakeholder concerns are source artifacts for SAR methods. SAR methods can use one or more of these artifacts to extract architectural elements which can be represented by architectural models. Code is an executable that is written according to a programming language. Code of systems are implemented with respect to their specifications in architecture designs. Logs are output data from systems which might give insight about system architecture. Documentation shows textual information about systems which can be architecture designs and functional and nonfunctional requirements. Stakeholders are individuals, groups, people, or organizations that have an interest in the developed system. Stakeholder concerns shape how the architecture is designed and implemented. The SAR method can have one or more of these source artifacts to reconstruct the system's architecture.

Adopted methods represent techniques applied for reconstructing the system architecture. Various methods have been implemented and proposed in the literature for SAR. These include clustering, partitioning, data mining, querying, or scripting. These methods can be used together or separately. Clustering methods consist of grouping some related data together. Partitioning is dividing data into parts that may or may not be related to each other. In SAR data mining techniques are adopted in which patterns are detected in large sets of source codes, logs, and documentation. Some of the SAR methods also utilize querying on graphs in which the architecture is represented as graph-based models. Scripting software architectures in their own domain-specific languages is another method adopted by SAR methods.

Process steps define phases used in a SAR method. SAR methods usually consist of a series of different processes including preprocessing, architecture extraction, architecture analysis, architecture visualization, and suggestions. Preprocessing is an optional step in which the source artifact might be prepared for the architecture extraction step. This can include reformatting, removing unnecessary libraries, and removing comments. Architecture extraction is performed on source artifacts; the valuable data are extracted from these artifacts and hence it is a mandatory step in all SAR methods. In the architecture analysis step architecture components are formed using the output of the extraction step. The architecture visualization step presents the reconstructed architecture in a user-friendly manner, which can be graphical or textual. Visualization of the reconstructed architecture is not always present; thus this feature is optional. Another optional feature in process steps is suggestions. Suggestions such as design pattern application, architecture pattern application, or code refactoring can be advised after the architecture is constructed.

Architecture model representation defines the representation used for describing the architecture. The adopted SAR methods in the primary studies use different representations, including Unified Modeling Language (UML), XML Metadata Interchange (XMI), MetaObject Facility (MOF), or graph representations. UML is the standardized model to represent the software architecture which contains diagrams for developers to develop, construct, and document the architectures. XMI is designed for exchanging information using extensible markup languages. Software architectures can be represented and visualized using XMI-based models. MOF is standard for model-driven engineering proposed by the Object Management Group. Graph-based models can also represent the software architecture in different forms, such as Bayesian networks, Markov chains, and state diagrams.

The architecture view feature represents which view is to be reconstructed using the SAR method. Architecture view is a mandatory feature in SAR methods for representing what part of the architecture will be constructed. The module view, allocation view, and component & connector view can be reconstructed in the architecture analyzing step. The module view represents how the system is structured as set of code units. The allocation view represents how the system relates the structures that are not software in the system's running environment. The component & connector view shows how the system is structured in terms of components and its relations among each other.

Using the feature diagram, we can generate many different architecture reconstruction methods by selecting the desired features. However, not all configurations might be possible in practice. Hence, cross-tree constraints are used to eliminate the invalid configurations. We have seen that if the architecture model selection feature is not chosen, then the architecture is not visualized. As architecture is not represented in any manner, it is impossible to visualize. In addition, if a model selection feature is present it is not mandatory to see the architecture visualization feature. Code source artifact must be selected if the goal of the SAR method is refactoring or architecture nonconformity identification. Hence, both of these goals are operated at code level, and code is needed. Refactoring or architecture nonconformity identification may or may not be selected if the code is selected as source artifact. Stakeholders source artifact must be chosen if system modernization goal is selected as a feature. The system modernization goal feature may or may not be selected if stakeholder source artifact is selected. The querying feature must be selected as adopted method if the architecture model is graph-based and vice versa if this constraint does not apply. The preprocessing step must be selected from process steps if log or documentation source artifacts are selected and vice versa if this constraint does not apply. The code source artifact feature must be selected if the code refactoring or design pattern application feature of process suggestions is selected and vice versa if this does not apply. Table 4.3 shows a summary of identified feature composition constraints.

Table 4.3

Identified feature composition constraints.
Process steps. Architecture visualizationrequiresarchitecture model
Goal. Refactoringrequiressource artifact. Code source
Goal. System modernizationrequiressource artifact. Stakeholders
Adopted method. Queryingrequiresarchitecture model. Graph
Source artifact. Logrequiresprocess steps. Preprocessing
Source artifact. Documentationrequiresprocess steps. Preprocessing
Goal. Design pattern applicationrequiressource artifact. Code source
Goal. Architecture nonconformity identificationrequiressource artifact. Code source

4.3.3 Generic business process model

Architecture reconstruction is in essence a process activity that includes several steps linked in different ways. Based on the identified studies as discussed in the previous subsection, Fig. 4.4 provides the generic business process model for architecture reconstruction methods.

Image
Figure 4.4 Generic business process model for architecture reconstruction.

The first step in architecture reconstruction begins with a definition of a problem statement explaining what the proposed method aims to solve. According to the problem statement the required architectural information which consists of architecture views is selected. The next step is to select a method to solve the stated problem according to the needs defined in the previous step. These methods can utilize techniques from clustering, partitioning, data mining, or querying methods. Reconstruction methods might utilize a model for solving the problem or might need preprocessing of the source artifacts before the extraction of architectural elements. Models are used for representing both the abstractions in the code and reconstructed architectures. These models can be graph-, MOF-, UML-, or XMI-based. These four steps define the SAR process design describing the planning of the proposed SAR method.

Preprocessing can be done in several ways, such as reformatting and refactoring code, removing undesired libraries and dependencies, and providing intermediate models to a workflow. The successful completion of architectural element extraction is followed by the analysis of the extracted elements for forming the architectural information intended in the information selection phase. The process follows by two optional steps, i.e., visualizing the reconstructed architecture and suggesting improvements on the reconstructed architecture. In the visualization step the architecture is shown using the selected architecture representation. In the suggestion step the process provides guidelines for architecture reconstruction.

4.4 Concrete architecture reconstruction method

The domain model that has been defined in the earlier section represents both the common and the variant aspects of architecture reconstruction processes. We have provided a family feature model and a generic process model that has been described after a study of multiple methods. To develop a concrete architecture reconstruction method, the family feature model and generic process model can be reused and adapted with respect to the required features. Fig. 4.5 illustrates this process.

Image
Figure 4.5 Relation between reference SAR and concrete SAR.

Similar to reference models in general the approach can be used in either a prescriptive way or a descriptive way. In the prescriptive way the family feature model and the generic process can be reused to prescribe the common elements. Moreover, it can indicate the elements that might be selected as variant elements. Alternatively, in the descriptive way, the approach can be used to describe a given SAR method using the provided family feature model and the generic business process model. In the following subsections, we will show two different examples of concrete architecture reconstruction methods that are derived from the provided domain model. The first example relates to the architecture reconstruction method as discussed by Anquetil et al. [2]. This is explained in Section 4.4.1. The second example describes the Art method as discussed by Fiutem et al. [11]. This is explained in Section 4.4.2

4.4.1 Recovering software architecture from the names of source files

Table 4.4 shows the features for the architecture reconstruction method of Anquetil et al. [2]. As shown in the table the goal of this method is to identify the nonconformance between the intended architecture and implemented architecture. Only the code source artifact is used in the architecture extraction step. This method adapts a clustering and partitioning method and does not generate any models. In the architecture analysis step the component & connector view of the architecture is created using the extracted information from the architecture extraction step.

Table 4.4

Feature selection for recovering software architecture from the names of source files.

FeatureSelected features of SAR method
GoalArchitecture nonconformity identification
Source artifactsCode
Adopted methodClustering & partitioning
Process stepsArchitecture extraction
Architecture analysis
Architecture modelNot used
Architecture viewComponent & connectors view

Image

Fig. 4.6 shows the concrete business process model for this SAR method that is derived from the generic business process model of Fig. 4.4. The first step is to state the problem and then select which information will be extracted from the architecture. Subsequently, the reconstruction technique to be applied is selected and the steps so far actually designed the SAR method. Then the architectural elements are extracted and analyzed for reconstructing the architecture.

Image
Figure 4.6 Business process model for recovering software architecture from the names of source files.

4.4.2 ART: an architectural reverse engineering environment

Table 4.5 shows the features for the architecture reconstruction method of Fiutem et al. [11]. The goal of this SAR method is to identify nonconformity between the architecture and code. Code of the system is used as source artifact and data mining techniques are adopted in this method. Process steps consists of preprocessing, architecture analysis, architecture extraction, and architecture visualization. The graph-based model is used for representing the architecture throughout the process. The module and component & connectors views of the architecture are reconstructed. The method proposes a nonsuggestive architectural recovery tool based on system, module, task, and data architecture views for software architecture. Lexical parsers were used to model the architecture from the code into abstract syntax trees (ASTs). The user constructs a file before the architecture extraction phase. After the architecture elements are analyzed they form a graph which is visualized through a user interface.

Table 4.5

Feature selection for ART: An architectural reverse engineering environment.

FeatureSelected features of the SAR method
GoalArchitecture nonconformity identification
Source artifactsCode
Adopted methodData mining
Process stepsPreprocessing
Architecture extraction
Architecture analysis
Architecture Visualization
Architecture modelGraph
Architecture viewsModule view, component & connector view

Image

Fig. 4.7 shows the business process model for this study. In this method, first the problem is defined. Information, technique, and model are selected according to the defined problem. Preprocessing is applied on the code and architectural elements are extracted and analyzed, different from the previous method architecture visualized in this method.

Image
Figure 4.7 Business process model for ART: An architectural reverse engineering environment.

4.5 Related work

In the literature we have found similar studies but none of the studies provides a feature model and generic business process model for software architecture reconstruction. Duenas et al. [9] present experiences with architectural recovery tools. In this study, the architecture reconstruction process is modeled in an iterative manner. Also, authors compare different approaches for tackling architecture construction problems such as statistics, cluster recognition, interface discovery, and model enrichments.

Garcia et al. [13] compare six software architecture recovery techniques and the accuracy of each technique. The objective of the study was to find a suitable and reliable fully automated method for reconstruction. Moreover, Gorton et al. [14] compare the architecture reconstruction as Garcia et al. for just-in-time architecture reconstruction. They construct different architectural views using five tools and output of these tools was compared in terms of accuracy rates on the same commercial system.

Guamán et al. [15] propose a reference process framework for architecture reconstruction in which architecture reconstruction is divided into four main parts, i.e., preprocessing, extraction, analysis, and visualization. In this study the complete framework is presented with a proposed adoption of Machine Learning concepts for recommendation and improvements after the method is trained with source code, documentation, and software architecture.

Koschke [19] summarizes the current state of the art for architecture reconstruction processes with architecture viewpoints in mind. The study divides the architecture reconstruction process into two phases, i.e., reconstruction design and reconstruction execution. These two phases are further decomposed into subphases. This study reveals that SAR methods are mostly carried out from a module viewpoint. Component & connector viewpoints are also addressed by some studies in the literature. The author also suggests that there are very few studies that have documented the complete SAR method and its application along with a cost benefit analysis.

Zahid et al. [33] present a survey study for the solutions and evolutions in the SAR method. The study suggests that knowledge-based clustering methods are most commonly used for automated architecture reconstruction. The studies selected for this survey mainly concentrate on component & connector architecture views. Different clusters are formed from this viewpoint and architecture is modeled accordingly. This survey also reviews the presented solutions and discusses precision levels of the reconstructed architectures with respect to the original architecture. Due to this fact, the authors suggest that none of the proposed solutions have reconstructed architecture precisely.

4.6 Discussion

In this chapter we have adopted a domain analysis process to identify the common and variant features of SAR methods. Although we have carefully performed the domain analysis process, a number of validity threats to the study can be identified. First of all, for the development of the domain model we have not opted for a heavyweight systematic literature review process. However, we adopted a domain analysis process in which we selected a sufficient set of papers that we believed to cover the adopted features. Of course, a more in-depth systematic literature review could have resulted in more papers which could have an impact on the feature model. However, we can also state that the papers that we have selected for our study appeared to exhibit a similar set of common and variant features. This showed the convergence of the domain model and hence increased our confidence of the validity of the feature model.

The family feature model for the SAR methods defines the common and variant features that can be used to describe individual SAR methods. With the feature model we indeed derive many different alternative SAR methods, describe existing SAR methods, and support the identification of novel SAR methods. We have illustrated how we could use the feature model to describe two different SAR methods. Although possible, in this study our goal was not to provide a survey of existing SAR methods. We aim to provide this in our future work.

Similar to the representation of common and variant features we have also explicitly described the reference model for SAR methods. Here again we could identify the common and variant steps of SAR methods. The combination and usage of feature models and process models appeared to be very useful to represent the SAR methods. However, similar to the construction validity threats for the feature model, process models could be perhaps more refined if an in-depth systematic literature review was provided. From our experience the process models also appeared to converge and hence we believe that we have largely captured the currently adopted SAR process activities.

4.7 Conclusion

Software projects often need to evolve or usually do not have a well-described software architecture. For these situations it is worthwhile to extract the information from the existing artifacts to derive the architecture. In the literature several architecture reconstruction methods have been proposed albeit fragmented over different studies. The objective of this study was to provide a more comprehensive view and analysis of these methods. For this we have applied a domain-driven approach in which we applied the domain scoping and domain modeling steps. With the domain scoping process, we have identified 17 relevant primary studies that we analyzed in detail to derive the domain model. The domain model has been presented as a set of common terms of software architecture reconstruction, a generic business process model, and a feature diagram. The domain model represents a family of SAR methods and can be used to derive a concrete SAR method. We have used the domain model to derive two different SAR methods. From the domain analysis process, we conclude that the topic of SAR has been considered for a long time but is still an important area that is in development. The domain model that we have provided can be used to provide insight in the overall methods and pave the way for further research. In our future work we aim to enhance our work on architecture reconstruction and derive a comprehensive SAR method.

Appendix 4.A Primary studies

Primary studyReference
Anquetil, N., & Lethbridge, T. C. (1999). Recovering software architecture from the names of source files. Journal of Software Maintenance: Research and Practice, 11(3), 201–221.[2]
El Boussaidi, G., Belle, A. B., Vaucher, S., & Mili, H. (2012, October). Reconstructing architectural views from legacy systems. In 2012 19th Working Conference on Reverse Engineering (pp. 345–354). IEEE.[3]
Van Deursen, A., Hofmeister, C., Koschke, R., Moonen, L., & Riva, C. (2004, June). Symphony: View-driven software architecture reconstruction. In Software Architecture, 2004. WICSA 2004. Proceedings. Fourth Working IEEE/IFIP Conference on (pp. 122–132). IEEE.[6]
von Detten, M. (2012, October). Archimetrix: A tool for deficiency-aware software architecture reconstruction. In Reverse Engineering (WCRE), 2012 19th Working Conference on (pp. 503–504). IEEE.[8]
Favre, J. M. (2004, November). Cacophony: Metamodel-driven software architecture reconstruction. In Reverse Engineering, 2004. Proceedings. 11th Working Conference on (pp. 204–213). IEEE.[10]
Fiutem, R., Antoniol, G., Tonella, P., & Merlo, E. (1999). Art: an architectural reverse engineering environment. Journal of Software Maintenance: Research and Practice, 11(5), 339–364.[11]
Fontana, F. A., & Zanoni, M. (2011). A tool for design pattern detection and software architecture reconstruction. Information sciences, 181(7), 1306–1324.[12]
Granchelli, G., Cardarelli, M., Di Francesco, P., Malavolta, I., Iovino, L., & Di Salle, A. (2017, April). Microart: A software architecture recovery tool for maintaining microservice-based systems. In IEEE International Conference on Software Architecture (ICSA).[16]
Guo, G. Y., Atlee, J. M., & Kazman, R. (1999). A software architecture reconstruction method. In Software Architecture (pp. 15–33). Springer, Boston, MA.[17]
Maqbool, O., & Babri, H. A. (2007, April). Bayesian learning for software architecture recovery. In Electrical Engineering, 2007. ICEE'07. International Conference on (pp. 1–6). IEEE.[20]
Risi, M., Scanniello, G., & Tortora, G. (2012). Using fold-in and fold-out in the architecture recovery of software systems. Formal Aspects of Computing, 24(3), 307–330.[22]
Riva, C. (2002). Architecture reconstruction in practice. In Software Architecture (pp. 159–173). Springer, Boston, MA.[23]
Roy, B., & Graham, T. N. (2008, September). An iterative framework for software architecture recovery: An experience report. In European Conference on Software Architecture (pp. 210–224). Springer, Berlin, Heidelberg.[24]
Sartipi, K., & Kontogiannis, K. (2003, September). On modeling software architecture recovery as graph matching. In International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. (pp. 224-234). IEEE. Maintenance, 2003. ICSM 2003. Proceedings. International Conference on (pp. 224–234). IEEE.[25]
Şora, I., Glodean, G., & Gligor, M. (2010, May). Software architecture reconstruction: An approach based on combining graph clustering and partitioning. In Computational Cybernetics and Technical Informatics (ICCC-CONTI), 2010 International Joint Conference on (pp. 259–264). IEEE.[26]
Stoermer, C., Rowe, A., O'Brien, L., & Verhoef, C. (2006). Model-centric software architecture reconstruction. Software: Practice and Experience, 36(4), 333–363.[28]
Stringfellow, C., Amory, C. D., Potnuri, D., Andrews, A., & Georg, M. (2006). Comparison of software architecture reverse engineering methods. Information and Software Technology, 48(7), 484–497.[29]

References

[1] S. Angelov, P. Grefen, D. Greefhorst, A classification of software reference architectures: analyzing their success and effectiveness, Software Architecture, 2009 & European Conference on Software Architecture. Joint Working IEEE/IFIP Conference on. WICSA/ECSA 2009. IEEE; September 2009:141–150.

[2] N. Anquetil, T.C. Lethbridge, Recovering software architecture from the names of source files, Journal of Software Maintenance: Research and Practice 1999;11(3):201–221.

[3] G. El Boussaidi, A.B. Belle, S. Vaucher, H. Mili, Reconstructing architectural views from legacy systems, 2012 19th Working Conference on Reverse Engineering. IEEE; October 2012:345–354.

[4] K. Czarnecki, C. Hwan, P. Kim, K.T. Kalleberg, Feature models are views on ontologies, Software Product Line Conference, 2006 10th International. IEEE; 2006:41–51.

[5] E. Demirli, B. Tekinerdogan, Software language engineering of architectural viewpoints, Proc. of the 5th European Conference on Software Architecture. ECSA 2011. LNCS. 2011;vol. 6903:336–343.

[6] A. Van Deursen, C. Hofmeister, R. Koschke, L. Moonen, C. Riva, Symphony: view-driven software architecture reconstruction, Software Architecture, 2004. WICSA 2004. Proceedings. Fourth Working IEEE/IFIP Conference on. IEEE; June 2004:122–132.

[7] A. van Deursen, C. Hofmeister, R. Koschke, L. Moonen, C. Riva, Viewpoints in software architecture reconstruction, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture. WICSA. 2004:122–132.

[8] M. von Detten, Archimetrix: a tool for deficiency-aware software architecture reconstruction, Reverse Engineering (WCRE), 2012 19th Working Conference on. IEEE; October 2012:503–504.

[9] J.C. Duenas, W.L. de Oliveira, J.A. de la Puente, Architecture recovery for software evolution, Software Maintenance and Reengineering, 1998. Proceedings of the Second Euromicro Conference on. IEEE; March 1998:113–119.

[10] J.M. Favre, Cacophony: metamodel-driven software architecture reconstruction, Reverse Engineering, 2004. Proceedings. 11th Working Conference on. IEEE; November 2004:204–213.

[11] R. Fiutem, G. Antoniol, P. Tonella, E. Merlo, Art: an architectural reverse engineering environment, Journal of Software Maintenance: Research and Practice 1999;11(5):339–364.

[12] F.A. Fontana, M. Zanoni, A tool for design pattern detection and software architecture reconstruction, Information Sciences 2011;181(7):1306–1324.

[13] J. Garcia, I. Ivkovic, N. Medvidovic, A comparative analysis of software architecture recovery techniques, Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering. IEEE Press; November 2013:486–496.

[14] I. Gorton, L. Zhu, Tool support for just-in-time architecture reconstruction and evaluation: an experience report, Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on. IEEE; May 2005:514–523.

[15] D. Guamán, J. Pérez, J. Díaz, Towards a (semi)-automatic reference process to support the reverse engineering and reconstruction of software architectures, Proceedings of the 12th European Conference on Software Architecture: Companion Proceedings. ACM; September 2018 8 pp.

[16] G. Granchelli, M. Cardarelli, P. Di Francesco, I. Malavolta, L. Iovino, A. Di Salle, Microart: a software architecture recovery tool for maintaining microservice-based systems, IEEE International Conference on Software Architecture (ICSA). April 2017.

[17] G.Y. Guo, J.M. Atlee, R. Kazman, A software architecture reconstruction method, Software Architecture. Boston, MA: Springer; 1999:15–33.

[18] K.C. Kang, S.G. Cohen, J.A. Hess, W.E. Novak, A.S. Peterson, Feature-Oriented Domain Analysis (FODA) Feasibility Study. [No. CMU/SEI-90-TR-21] Pittsburgh, PA: Carnegie-Mellon Univ. Software Engineering Inst.; 1990.

[19] R. Koschke, Architecture reconstruction, Software Engineering. Berlin, Heidelberg: Springer; 2006:140–173.

[20] O. Maqbool, H.A. Babri, Bayesian learning for software architecture recovery, Electrical Engineering, 2007. ICEE'07. International Conference on. IEEE; April 2007:1–6.

[21] K. Öztürk, B. Tekinerdogan, Feature modeling of software as a service domain to support application architecture design, Proc. of the Sixth International Conference on Software Engineering Advances. ICSEA 2011, Barcelona, Spain. October 2011.

[22] M. Risi, G. Scanniello, G. Tortora, Using fold-in and fold-out in the architecture recovery of software systems, Formal Aspects of Computing 2012;24(3):307–330.

[23] C. Riva, Architecture reconstruction in practice, Software Architecture. Boston, MA: Springer; 2002:159–173.

[24] B. Roy, T.N. Graham, An iterative framework for software architecture recovery: an experience report, European Conference on Software Architecture. Berlin, Heidelberg: Springer; September 2008:210–224.

[25] K. Sartipi, K. Kontogiannis, On modeling software architecture recovery as graph matching, Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on. IEEE; September 2003:224–234.

[26] I. Şora, G. Glodean, M. Gligor, Software architecture reconstruction: an approach based on combining graph clustering and partitioning, Computational Cybernetics and Technical Informatics (ICCC-CONTI), 2010 International Joint Conference on. IEEE; May 2010:259–264.

[27] H. Sozer, B. Tekinerdogan, Introducing recovery style for modeling and analyzing system recovery, Proc. of Seventh Working IEEE/IFIP Conference on Software Architecture. 2008:167–176.

[28] C. Stoermer, A. Rowe, L. O'Brien, C. Verhoef, Model-centric software architecture reconstruction, Software, Practice & Experience 2006;36(4):333–363.

[29] C. Stringfellow, C.D. Amory, D. Potnuri, A. Andrews, M. Georg, Comparison of software architecture reverse engineering methods, Information and Software Technology 2006;48(7):484–497.

[30] B. Tekinerdogan, Software architecture, T. Gonzalez, J.L. Díaz-Herrera, eds. Computer Science Handbook, Volume I: Computer Science and Software Engineering. second edition Taylor and Francis; 2014.

[31] B. Tekinerdogan, M. Akşit, Classifying and evaluating architecture design methods, M. Aksit, ed. Software Architectures and Component Technology: The State of the Art in Research and Practice. Boston: Kluwer Academic Publishers; 2001:3–27.

[32] B. Tekinerdogan, K. Öztürk, Feature-driven design of SaaS architectures, Software Engineering Frameworks for the Cloud Computing Paradigm. London: Springer; 2013:189–212.

[33] M. Zahid, Z. Mehmmod, I. Inayat, Evolution in software architecture recovery techniques a survey, Emerging Technologies (ICET), 2017 13th International Conference on. IEEE; December 2017:1–6.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.165.120