IEEE Transactions on Software Engineering最新文献

筛选
英文 中文
Automated Co-Evolution of Metamodels and Code 元模型和代码的自动协同演化
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-20 DOI: 10.1109/TSE.2025.3540545
Zohra Kaouter Kebaili;Djamel Eddine Khelladi;Mathieu Acher;Olivier Barais
{"title":"Automated Co-Evolution of Metamodels and Code","authors":"Zohra Kaouter Kebaili;Djamel Eddine Khelladi;Mathieu Acher;Olivier Barais","doi":"10.1109/TSE.2025.3540545","DOIUrl":"10.1109/TSE.2025.3540545","url":null,"abstract":"<bold><i>Context.</i> </b> In Software Engineering, Model-Driven Engineering (MDE) is a methodology that considers Metamodels as a cornerstone. As an abstract artifact, a metamodel plays a significant role in the specification of a software language, particularly, in generating other artifacts of lower abstraction level, such as code. Developers then enrich the generated code to build their language services and tooling, e.g., editors, and checkers. <bold><i>Problem.</i> </b> When a metamodel evolves, the generated code is automatically updated. As a consequence, the developers’ additional code is impacted and needs to be co-evolved accordingly. <bold><i>Contribution.</i> </b> This paper proposes a new fully automatic code co-evolution approach with the evolution of the Ecore metamodel. The approach relies on pattern matching of the additional code errors. This process aims to analyze the abstraction gap between the evolved metamodel elements and the code errors to co-evolve them. <bold><i>Evaluation and Results.</i> </b> We evaluated our approach on nine Eclipse projects from OCL, Modisco, and Papyrus over several evolved versions of three metamodels. Results show that we automatically co-evolved 771 errors due to metamodel evolution with 631 matched and applied resolutions. Our approach reached an average of 82% of precision and 81% of recall, varying from 48% to 100% for precision and recall respectively. To check the effect of the co-evolution and its behavioral correctness, we rely on generated test cases before and after co-evolution. We observed that the percentage of passing, failing, and erroneous tests remained the same with insignificant variations in some projects. Thus, suggesting the behavioral correctness of the co-evolution Moreover, we conducted a comparison with the use of quick fixes that represent a usual tool for correcting code errors in an IDE. We found that our automatic co-evolution approach outperforms the use of quick fixes that lacked the context of metamodel evolution. Finally, we also compared our approach with the state-of-the-art semi-automatic co-evolution approach. As expected, precision and recall are slightly better with semi-automation, but with the burden of manual intervention, which is alleviated with our automatic co-evolution.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1067-1085"},"PeriodicalIF":6.5,"publicationDate":"2025-02-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143462505","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Understanding Security Issues in the DAO Governance Process 理解DAO治理过程中的安全问题
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-18 DOI: 10.1109/TSE.2025.3543280
Junjie Ma;Muhui Jiang;Jinan Jiang;Xiapu Luo;Yufeng Hu;Yajin Zhou;Qi Wang;Fengwei Zhang
{"title":"Understanding Security Issues in the DAO Governance Process","authors":"Junjie Ma;Muhui Jiang;Jinan Jiang;Xiapu Luo;Yufeng Hu;Yajin Zhou;Qi Wang;Fengwei Zhang","doi":"10.1109/TSE.2025.3543280","DOIUrl":"10.1109/TSE.2025.3543280","url":null,"abstract":"The Decentralized Autonomous Organization (DAO) has emerged as a popular governance solution for decentralized applications (dApps), enabling them to manage their members across the world. This structure ensures that no single entity can arbitrarily control the dApp without approval from the majority of members. However, despite its advantages, DAOs face several challenges within their governance processes that can compromise their integrity and potentially lead to the loss of dApp assets. In this paper, we first provided an overview of the DAO governance process within the blockchain. Next, we identified issues within 3 key components of the governance process: the Governance Contract, Documentation, and Proposal. Regarding the Governance Contract, malicious developers could embed backdoors or malicious code to manipulate the governance process. In terms of Documentation, inadequate or unclear documentation from developers may prevent members from effectively participating, increasing the risk of undetected governance attacks or enabling a small group of members to dominate the process. Lastly, with Proposals, members could submit malicious proposals with embedded malicious code in an attempt to gain control of the DAO. To address these issues, we developed automated methods to detect such vulnerabilities. To investigate the prevalence of these issues within the current DAO ecosystem, we constructed a state-of-the-art dataset that includes 3,348 DAOs, 144 documentation, and 65,436 proposals across 9 different blockchains. Our analysis reveals that many DAO developers and members have not given sufficient attention to these issues. For the Governance Contract, 176 DAOs allow external entities to control their governance contracts, while one DAO permits developers to arbitrarily change the contract's logic. In terms of Documentation, only 71 DAOs provide adequate guidance for their members on governance processes. As for Proposals, over 90% of the examined proposals (32,500) fail to provide consistent descriptions and code for their members, highlighting a significant gap in transparency within the DAO governance process. For a better DAO governance ecosystem, DAO developers and members can utilize the methods to identify and address issues within the governance process.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1188-1204"},"PeriodicalIF":6.5,"publicationDate":"2025-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143443467","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
SoapFL: A Standard Operating Procedure for LLM-Based Method-Level Fault Localization SoapFL:基于llm的方法级故障定位的标准操作流程
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-18 DOI: 10.1109/TSE.2025.3543187
Yihao Qin;Shangwen Wang;Yiling Lou;Jinhao Dong;Kaixin Wang;Xiaoling Li;Xiaoguang Mao
{"title":"SoapFL: A Standard Operating Procedure for LLM-Based Method-Level Fault Localization","authors":"Yihao Qin;Shangwen Wang;Yiling Lou;Jinhao Dong;Kaixin Wang;Xiaoling Li;Xiaoguang Mao","doi":"10.1109/TSE.2025.3543187","DOIUrl":"10.1109/TSE.2025.3543187","url":null,"abstract":"Fault Localization (FL) is an essential step during the debugging process. With the strong capabilities of code comprehension, the recent Large Language Models (LLMs) have demonstrated promising performance in diagnosing bugs in the code. Nevertheless, due to LLMs’ limited performance in handling long contexts, existing LLM-based fault localization remains on localizing bugs within a <italic>small code scope</i> (i.e., a method or a class), which struggles to diagnose bugs for a <italic>large code scope</i> (i.e., an entire software system). To address the limitation, this paper presents S<sc>oap</small>FL, which builds an LLM-driven standard operating procedure (SOP) to automatically localize buggy methods from the entire software. By simulating the behavior of a human developer, S<sc>oap</small>FL models the FL task as a three-step process, which involves comprehension, navigation, and confirmation. Within specific steps, S<sc>oap</small>FL provides useful test behavior or coverage information to LLM through program analysis. Particularly, we adopt a series of auxiliary strategies such as Test Behavior Tracking, Document-Guided Search, and Multi-Round Dialogue to overcome the challenges in each step. The evaluation on the widely used Defects4J-V1.2.0 benchmark shows that S<sc>oap</small>FL can localize 175 out of 395 bugs within Top-1, which outperforms the other LLM-based approaches and exhibits complementarity to the state-of-the-art learning-based techniques. Additionally, we confirm the indispensability of the components in S<sc>oap</small>FL with the ablation study and demonstrate the usability of S<sc>oap</small>FL through a user study. Finally, the cost analysis shows that S<sc>oap</small>FL spends an average of only 0.081 dollars and 92 seconds for a single bug.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1173-1187"},"PeriodicalIF":6.5,"publicationDate":"2025-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143443466","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
What Makes a Great Software Quality Assurance Engineer? 怎样才能成为一名优秀的软件质量保证工程师?
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-17 DOI: 10.1109/TSE.2025.3542763
Roselane Silva Farias;Iftekhar Ahmed;Eduardo Santana de Almeida
{"title":"What Makes a Great Software Quality Assurance Engineer?","authors":"Roselane Silva Farias;Iftekhar Ahmed;Eduardo Santana de Almeida","doi":"10.1109/TSE.2025.3542763","DOIUrl":"10.1109/TSE.2025.3542763","url":null,"abstract":"Software Quality Assurance (SQA) Engineers play a critical role in evaluating products throughout the software development lifecycle to ensure that the outcomes of each phase and the final product possess the desired quality standards. In general, a great SQA engineer requires a different set of abilities from development engineers to effectively oversee the entire product development process. While recent empirical studies have explored the attributes of software engineers and managers, the quality assurance role is overlooked. As software quality gains increasing priority in the development cycles, both employers seeking skilled professionals and new graduates aspiring to excel in Software Quality Assurance (SQA) roles face a critical question: What makes a great SQA Engineer? To address this gap, we conducted 25 semi-structured interviews and surveyed 363 SQA engineers from diverse companies worldwide. We use the data collected from these activities to derive a comprehensive set of attributes for great SQA Engineers, categorized into five key areas: personal, social, technical, management, and decision-making attributes. Among these, curiosity, effective communication, and critical thinking emerged as defining characteristics of great SQA engineers. These findings offer valuable insights for future research with SQA practitioners, contextual considerations, and practical implications for research and practice.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1153-1172"},"PeriodicalIF":6.5,"publicationDate":"2025-02-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143443468","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Trustworthy Distributed Certification of Program Execution 程序执行的可信分布式认证
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-13 DOI: 10.1109/TSE.2025.3541810
Alex Wolf;Marco Edoardo Palma;Pasquale Salza;Harald C. Gall
{"title":"Trustworthy Distributed Certification of Program Execution","authors":"Alex Wolf;Marco Edoardo Palma;Pasquale Salza;Harald C. Gall","doi":"10.1109/TSE.2025.3541810","DOIUrl":"10.1109/TSE.2025.3541810","url":null,"abstract":"Verifying the execution of a program is complicated and often limited by the inability to validate the code's correctness. It is a crucial aspect of scientific research, where it is needed to ensure the reproducibility and validity of experimental results. Similarly, in customer software testing, it is difficult for customers to verify that their specific program version was tested or executed at all. Existing state-of-the-art solutions, such as hardware-based approaches, constraint solvers, and verifiable computation systems, do not provide definitive proof of execution, which hinders reliable testing and analysis of program results. In this paper, we propose an innovative approach that combines a prototype programming language called Mona with a certification protocol OCCP to enable the distributed and decentralized re-execution of program segments. Our protocol allows for certification of program segments in a distributed, immutable, and trustworthy system without the need for naive re-execution, resulting in significant improvements in terms of time and computational resources used. We also explore the use of blockchain technology to manage the protocol workflow following other approaches in this space. Our approach offers a promising solution to the challenges of program execution verification and opens up opportunities for further research and development in this area. Our findings demonstrate the efficiency of our approach in reducing the number of program executions by up to 20-fold, while maintaining resilience against various malicious attacks compared to existing state-of-the-art methods, thus improving the efficiency of certifying program executions. Additionally, our approach handles up to 40% malicious workers effectively, showcasing resilience in detecting and mitigating malicious behavior. In the <small>EquivalentRegistersAttack</small> scenario, it successfully identifies divergent executions even when register values and results appear identical. Moreover, our findings highlight improvements in time and gas efficiency for longer-running problems (scaled with a multiplier of <inline-formula><tex-math>$1{,}000$</tex-math></inline-formula>) compared to baseline methods. Specifically, adopting an informed step size reduces execution time by up to 43-fold and gas costs by up to 12-fold compared to the baseline. Similarly, the informed step size approach reduces execution time by up to 6-fold and gas costs by up to 26-fold compared to a non-informed variation using a step size of <inline-formula><tex-math>$1{,}000$</tex-math></inline-formula>.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1134-1152"},"PeriodicalIF":6.5,"publicationDate":"2025-02-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143417835","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Towards measurement-based Software Engineering 面向基于度量的软件工程
IF 7.4 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-13 DOI: 10.1109/tse.2025.3541922
Victor Basili, David Weiss, Dieter Rombach
{"title":"Towards measurement-based Software Engineering","authors":"Victor Basili, David Weiss, Dieter Rombach","doi":"10.1109/tse.2025.3541922","DOIUrl":"https://doi.org/10.1109/tse.2025.3541922","url":null,"abstract":"","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"3 1","pages":""},"PeriodicalIF":7.4,"publicationDate":"2025-02-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143417831","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Personal Retrospective on Symbolic Execution 对象征性执行的个人回顾
IF 7.4 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-13 DOI: 10.1109/tse.2025.3536898
Lori A. Clarke
{"title":"A Personal Retrospective on Symbolic Execution","authors":"Lori A. Clarke","doi":"10.1109/tse.2025.3536898","DOIUrl":"https://doi.org/10.1109/tse.2025.3536898","url":null,"abstract":"","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"18 1 1","pages":""},"PeriodicalIF":7.4,"publicationDate":"2025-02-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143417834","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Engineering within boundaries when software has none 在软件没有边界的情况下进行工程
IF 7.4 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-11 DOI: 10.1109/tse.2025.3541189
Bashar Nuseibeh
{"title":"Engineering within boundaries when software has none","authors":"Bashar Nuseibeh","doi":"10.1109/tse.2025.3541189","DOIUrl":"https://doi.org/10.1109/tse.2025.3541189","url":null,"abstract":"","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"86 1","pages":""},"PeriodicalIF":7.4,"publicationDate":"2025-02-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143393224","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Search-Based DNN Testing and Retraining With GAN-Enhanced Simulations 基于搜索的深度神经网络测试和再训练与gan增强模拟
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-11 DOI: 10.1109/TSE.2025.3540549
Mohammed Oualid Attaoui;Fabrizio Pastore;Lionel C. Briand
{"title":"Search-Based DNN Testing and Retraining With GAN-Enhanced Simulations","authors":"Mohammed Oualid Attaoui;Fabrizio Pastore;Lionel C. Briand","doi":"10.1109/TSE.2025.3540549","DOIUrl":"10.1109/TSE.2025.3540549","url":null,"abstract":"In safety-critical systems (e.g., autonomous vehicles and robots), Deep Neural Networks (DNNs) are becoming a key component for computer vision tasks, particularly semantic segmentation. Further, since DNN behavior cannot be assessed through code inspection and analysis, test automation has become an essential activity to gain confidence in the reliability of DNNs. Unfortunately, state-of-the-art automated testing solutions largely rely on simulators, whose fidelity is always imperfect, thus affecting the validity of test results. To address such limitations, we propose to combine meta-heuristic search, used to explore the input space using simulators, with Generative Adversarial Networks (GANs), to transform the data generated by simulators into realistic input images. Such images can be used both to assess the DNN accuracy and to retrain the DNN more effectively. We applied our approach to a state-of-the-art DNN performing semantic segmentation, in two different case studies, and demonstrated that it outperforms a state-of-the-art GAN-based testing solution and several other baselines. Specifically, it leads to the largest number of diverse images leading to the worst DNN accuracy. Further, the images generated with our approach, lead to the highest improvement in DNN accuracy when used for retraining. In conclusion, we suggest to always integrate a trained GAN to transform test inputs when performing search-driven, simulator-based testing.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1086-1103"},"PeriodicalIF":6.5,"publicationDate":"2025-02-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143393222","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Automated Test Case Repair Using Language Models 使用语言模型自动修复测试用例
IF 6.5 1区 计算机科学
IEEE Transactions on Software Engineering Pub Date : 2025-02-11 DOI: 10.1109/TSE.2025.3541166
Ahmadreza Saboor Yaraghi;Darren Holden;Nafiseh Kahani;Lionel Briand
{"title":"Automated Test Case Repair Using Language Models","authors":"Ahmadreza Saboor Yaraghi;Darren Holden;Nafiseh Kahani;Lionel Briand","doi":"10.1109/TSE.2025.3541166","DOIUrl":"10.1109/TSE.2025.3541166","url":null,"abstract":"Ensuring the quality of software systems through testing is essential, yet maintaining test cases poses significant challenges and costs. The need for frequent updates to align with the evolving system under test often entails high complexity and cost for maintaining these test cases. Further, unrepaired broken test cases can degrade test suite quality and disrupt the software development process, wasting developers’ time. To address this challenge, we present <sc>TaRGET</small> (<sc>Test Repair GEneraTor</small>), a novel approach leveraging pre-trained code language models for automated test case repair. <sc>TaRGET</small> treats test repair as a language translation task, employing a two-step process to fine-tune a language model based on essential context data characterizing the test breakage. To evaluate our approach, we introduce <sc>TaRBench</small>, a comprehensive benchmark we developed covering 45,373 broken test repairs across 59 open-source projects. Our results demonstrate <sc>TaRGET</small>'s effectiveness, achieving a 66.1% exact match accuracy. Furthermore, our study examines the effectiveness of <sc>TaRGET</small> across different test repair scenarios. We provide a practical guide to predict situations where the generated test repairs might be less reliable. We also explore whether project-specific data is always necessary for fine-tuning and if our approach can be effective on new projects.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"51 4","pages":"1104-1133"},"PeriodicalIF":6.5,"publicationDate":"2025-02-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"143393223","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信