{"title":"利用特征建模进行程序理解和软件架构恢复","authors":"I. Pashov, Matthias Riebisch","doi":"10.1109/ECBS.2004.1316725","DOIUrl":null,"url":null,"abstract":"The available evidence in a legacy software system, which can help in its understanding and recovery of its architecture are not always sufficient. Very often the system's documentation is poor and outdated. One may argue that the most reliable resource of information is the system's source code. Nevertheless a significant knowledge about the problem domain is required in order to facilitate the extraction of the system's useful architectural information. In this approach feature modeling is introduced as an additional step in a system's architectural recovery process. Feature modeling structures the system's functionality and supports reverse engineering by detecting the relations between source code elements and requirements. Tracing these relations may lead to a better understanding of the program's behavior and the recovery of various architectural elements. In this way, by providing a mapping between source code and features, the system's feature model supports program comprehension and architectural recovery. The approach is developed as first part of a migration methodology towards a component-based architecture of legacy systems. Recovered information about features and architecture is collected in a repository to enable a refactoring as next step. The approach is currently applied in a large project for reengineering of an industrial image processing system.","PeriodicalId":137219,"journal":{"name":"Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"45","resultStr":"{\"title\":\"Using feature modeling for program comprehension and software architecture recovery\",\"authors\":\"I. Pashov, Matthias Riebisch\",\"doi\":\"10.1109/ECBS.2004.1316725\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The available evidence in a legacy software system, which can help in its understanding and recovery of its architecture are not always sufficient. Very often the system's documentation is poor and outdated. One may argue that the most reliable resource of information is the system's source code. Nevertheless a significant knowledge about the problem domain is required in order to facilitate the extraction of the system's useful architectural information. In this approach feature modeling is introduced as an additional step in a system's architectural recovery process. Feature modeling structures the system's functionality and supports reverse engineering by detecting the relations between source code elements and requirements. Tracing these relations may lead to a better understanding of the program's behavior and the recovery of various architectural elements. In this way, by providing a mapping between source code and features, the system's feature model supports program comprehension and architectural recovery. The approach is developed as first part of a migration methodology towards a component-based architecture of legacy systems. Recovered information about features and architecture is collected in a repository to enable a refactoring as next step. The approach is currently applied in a large project for reengineering of an industrial image processing system.\",\"PeriodicalId\":137219,\"journal\":{\"name\":\"Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004.\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2004-05-24\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"45\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ECBS.2004.1316725\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ECBS.2004.1316725","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Using feature modeling for program comprehension and software architecture recovery
The available evidence in a legacy software system, which can help in its understanding and recovery of its architecture are not always sufficient. Very often the system's documentation is poor and outdated. One may argue that the most reliable resource of information is the system's source code. Nevertheless a significant knowledge about the problem domain is required in order to facilitate the extraction of the system's useful architectural information. In this approach feature modeling is introduced as an additional step in a system's architectural recovery process. Feature modeling structures the system's functionality and supports reverse engineering by detecting the relations between source code elements and requirements. Tracing these relations may lead to a better understanding of the program's behavior and the recovery of various architectural elements. In this way, by providing a mapping between source code and features, the system's feature model supports program comprehension and architectural recovery. The approach is developed as first part of a migration methodology towards a component-based architecture of legacy systems. Recovered information about features and architecture is collected in a repository to enable a refactoring as next step. The approach is currently applied in a large project for reengineering of an industrial image processing system.