Loading...
- Type of Document: M.Sc. Thesis
- Language: Farsi
- Document No: 52751 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Mirian Hosseinabadi, Hassan
- Abstract:
- Software versioning is always considered one of the main principle activities in maintain software systems. Investigating code and software architecture conformance in different versions of software and its impact on other parts of the system due to its needed granularity, or even on high abstraction models, such as software design and software architecture are considered as a challenge in this area. Code level changes frequently result in the changes in high-level abstractions unintentionally and would impact the performance of a software system. While this true, not only software engineers need to test the code functionalities which are changed but also test the various impacted parts of the software system. With a more complicated design, this is fundamentally necessary to track the changes in software architectural components, large or small. This is a serious issue for software architectures that take part in maintaining to became aware of the software architectural impacts.In this thesis, we use the call graph extracted from the source code, and with respect to changes granularity, we analyze the software changes on different versions of the software. To achieve the purpose, we use data mining approaches, like clustering and improving them to adjust to the problems we face in the code changes impact on software architecture. We determine the software architecture components needed to test under the applying changes and help software architectures to have a more visionary approach on the software architecture conformance for them to decide on the changes to apply or not. In order to demonstrate the results, we select a famous Boost library, which considered as open-source software with multiple versions, then we implement our technique on this software, specify the changes in the level of architectural components, check software architectural conformance, and highlighting the component changes in a high-level abstraction
- Keywords:
- Software Architecture ; Call Graph Extraction from Code ; Software Changes ; Software Architectural Conformance
- محتواي کتاب
- view