Ziying Dai, Xiaoguang Mao, Liqian Chen, Yan Lei, Yi Zhang
{"title":"Finding related events for specification mining","authors":"Ziying Dai, Xiaoguang Mao, Liqian Chen, Yan Lei, Yi Zhang","doi":"10.1109/ISSREW.2013.6688847","DOIUrl":null,"url":null,"abstract":"In contemporary software development practice, programmers reuse components by invoking their APIs to construct large systems. These APIs often involve constraints on the temporal order of method calls. For the example of the file usage, a programmer should first open a file, then read and/or write its content, and at last close it. Trying to read a closed file will cause exceptions to be thrown. Such constraints are often represented as a finite state machine (FSM) with a set of related events (typically method calls) as its alphabet. A set of events are related if interactions among them possibly obey some meaningful temporal specifications. In recent years, various specification mining techniques have been developed to automatically mine API specifications from API client programs [1]. A typical API specification miner conceptually has three steps. First, it decide which events are related. Second, different interactions among related events (which are sub-traces and sample strings of the specification FSM) are extracted either from source code of client programs or from their execution traces. Third, extracted interactions are passed to customized or off-the-shelf FSM learners which generalize these sample sub-traces to recover the specification FSM.","PeriodicalId":332420,"journal":{"name":"2013 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-12-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISSREW.2013.6688847","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
In contemporary software development practice, programmers reuse components by invoking their APIs to construct large systems. These APIs often involve constraints on the temporal order of method calls. For the example of the file usage, a programmer should first open a file, then read and/or write its content, and at last close it. Trying to read a closed file will cause exceptions to be thrown. Such constraints are often represented as a finite state machine (FSM) with a set of related events (typically method calls) as its alphabet. A set of events are related if interactions among them possibly obey some meaningful temporal specifications. In recent years, various specification mining techniques have been developed to automatically mine API specifications from API client programs [1]. A typical API specification miner conceptually has three steps. First, it decide which events are related. Second, different interactions among related events (which are sub-traces and sample strings of the specification FSM) are extracted either from source code of client programs or from their execution traces. Third, extracted interactions are passed to customized or off-the-shelf FSM learners which generalize these sample sub-traces to recover the specification FSM.