{"title":"运行时的QoS验证和模型调优","authors":"A. Filieri","doi":"10.1145/2025113.2025176","DOIUrl":null,"url":null,"abstract":"Unpredictable changes continuously affect software systems and may have a severe impact on their quality of service, potentially jeopardizing the system’s ability to meet the desired requirements. Changes may occur in critical components of the system, clients’ operational profiles, requirements, or deployment environments. As a consequence, software engineers are increasingly required to design software as a (self-) adaptive system, which automatically detects and reacts to changes. In order to detect significant changes in the execution environment, effective monitoring procedures are not enough since their outcome can seldom provide a direct support for reasoning and verification on the state of the system and its changes. The adoption of software models and model checking techniques at run time may support automatic reasoning about such changes, detect harmful configurations, and potentially enable appropriate (self-)reactions. However, traditional model checking techniques and tools may not be simply applied as they are at run time, since they may not meet the constraints imposed by on-the-fly analysis, in terms of execution time and memory occupation. The key idea to deal with verification complexity as proposed in this research consists of splitting the problem in two steps: 1) precomputing a set of closed formulae corresponding to desired properties and depending on relevant system’s variables, and then 2) quickly evaluate such formulas every time a variation is detected. This continuous verification of QoS requirements can support continuous adaptation of the software system. The term continuous here subsumes that reactions should be completed before a new variation invalidates their utility. A special, though large, class of systems behaves depending on a finite set of parameters, e.g. possible configurations, routing options, third party components selection and so on. Many control-theory based approaches have been studied to manipulate control parametersin order to reach or keep desired goals, but this continuous verification is an extremely hard task since software is usually very complex to formal-","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"QoS verification and model tuning @ runtime\",\"authors\":\"A. Filieri\",\"doi\":\"10.1145/2025113.2025176\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Unpredictable changes continuously affect software systems and may have a severe impact on their quality of service, potentially jeopardizing the system’s ability to meet the desired requirements. Changes may occur in critical components of the system, clients’ operational profiles, requirements, or deployment environments. As a consequence, software engineers are increasingly required to design software as a (self-) adaptive system, which automatically detects and reacts to changes. In order to detect significant changes in the execution environment, effective monitoring procedures are not enough since their outcome can seldom provide a direct support for reasoning and verification on the state of the system and its changes. The adoption of software models and model checking techniques at run time may support automatic reasoning about such changes, detect harmful configurations, and potentially enable appropriate (self-)reactions. However, traditional model checking techniques and tools may not be simply applied as they are at run time, since they may not meet the constraints imposed by on-the-fly analysis, in terms of execution time and memory occupation. The key idea to deal with verification complexity as proposed in this research consists of splitting the problem in two steps: 1) precomputing a set of closed formulae corresponding to desired properties and depending on relevant system’s variables, and then 2) quickly evaluate such formulas every time a variation is detected. This continuous verification of QoS requirements can support continuous adaptation of the software system. The term continuous here subsumes that reactions should be completed before a new variation invalidates their utility. A special, though large, class of systems behaves depending on a finite set of parameters, e.g. possible configurations, routing options, third party components selection and so on. Many control-theory based approaches have been studied to manipulate control parametersin order to reach or keep desired goals, but this continuous verification is an extremely hard task since software is usually very complex to formal-\",\"PeriodicalId\":184518,\"journal\":{\"name\":\"ESEC/FSE '11\",\"volume\":\"24 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2011-09-05\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ESEC/FSE '11\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2025113.2025176\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ESEC/FSE '11","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2025113.2025176","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Unpredictable changes continuously affect software systems and may have a severe impact on their quality of service, potentially jeopardizing the system’s ability to meet the desired requirements. Changes may occur in critical components of the system, clients’ operational profiles, requirements, or deployment environments. As a consequence, software engineers are increasingly required to design software as a (self-) adaptive system, which automatically detects and reacts to changes. In order to detect significant changes in the execution environment, effective monitoring procedures are not enough since their outcome can seldom provide a direct support for reasoning and verification on the state of the system and its changes. The adoption of software models and model checking techniques at run time may support automatic reasoning about such changes, detect harmful configurations, and potentially enable appropriate (self-)reactions. However, traditional model checking techniques and tools may not be simply applied as they are at run time, since they may not meet the constraints imposed by on-the-fly analysis, in terms of execution time and memory occupation. The key idea to deal with verification complexity as proposed in this research consists of splitting the problem in two steps: 1) precomputing a set of closed formulae corresponding to desired properties and depending on relevant system’s variables, and then 2) quickly evaluate such formulas every time a variation is detected. This continuous verification of QoS requirements can support continuous adaptation of the software system. The term continuous here subsumes that reactions should be completed before a new variation invalidates their utility. A special, though large, class of systems behaves depending on a finite set of parameters, e.g. possible configurations, routing options, third party components selection and so on. Many control-theory based approaches have been studied to manipulate control parametersin order to reach or keep desired goals, but this continuous verification is an extremely hard task since software is usually very complex to formal-