Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913237
K. Satoh
Proposes a method of consistency management for a logical specification with priority. When we add or delete some information to/from the original specification, we sometimes encounter "inconsistency". We often try to fix such inconsistency by revising the specification minimally. Moreover, we sometimes know that a certain part of the specification should be changed in preference to the other parts, because the part is less important than the others or the part allows more exceptions than the others. In this paper, we formalize this activity by abduction. We introduce prioritized hypotheses expressing deleting and adding of some part of specification, and we translate a specification into an abductive logic program which is used to compute a prioritized, minimally revised specification. We then show an application of this formalization to module reconfiguration.
{"title":"Formalizing prioritized consistency management in requirement engineering","authors":"K. Satoh","doi":"10.1109/ISPSE.2000.913237","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913237","url":null,"abstract":"Proposes a method of consistency management for a logical specification with priority. When we add or delete some information to/from the original specification, we sometimes encounter \"inconsistency\". We often try to fix such inconsistency by revising the specification minimally. Moreover, we sometimes know that a certain part of the specification should be changed in preference to the other parts, because the part is less important than the others or the part allows more exceptions than the others. In this paper, we formalize this activity by abduction. We introduce prioritized hypotheses expressing deleting and adding of some part of specification, and we translate a specification into an abductive logic program which is used to compute a prioritized, minimally revised specification. We then show an application of this formalization to module reconfiguration.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125083929","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913222
N. Yoshiura, N. Yonezaki
A reactive system, such as an operating system or elevator control system, is a system which ideally never terminates and is intended to maintain some interaction with environment. In previous research, a reactive system specification is required to satisfy realizability for synthesizing a program from it. A specification is realizable if and only if there exists a system which satisfies the specification no matter how the environment behaves. However, many actual reactive system specifications do not satisfy realizability and there exist actual reactive system programs of such specifications. We discuss a realizability property of actual reactive system specifications and show that stepwise satisfiability is a property which actual reactive system specifications have to satisfy. We also present a synthesis procedure of reactive system programs from stepwisely satisfiable specifications. By this procedure, we can synthesize prototype programs from an imperfect specification. It is useful to synthesize prototype programs in the middle of describing a specification because prototype programs give useful information for testing or revising the specification. Thus, the procedure in this paper is useful for system specification revision.
{"title":"Program synthesis for stepwise satisfiable specification of reactive system","authors":"N. Yoshiura, N. Yonezaki","doi":"10.1109/ISPSE.2000.913222","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913222","url":null,"abstract":"A reactive system, such as an operating system or elevator control system, is a system which ideally never terminates and is intended to maintain some interaction with environment. In previous research, a reactive system specification is required to satisfy realizability for synthesizing a program from it. A specification is realizable if and only if there exists a system which satisfies the specification no matter how the environment behaves. However, many actual reactive system specifications do not satisfy realizability and there exist actual reactive system programs of such specifications. We discuss a realizability property of actual reactive system specifications and show that stepwise satisfiability is a property which actual reactive system specifications have to satisfy. We also present a synthesis procedure of reactive system programs from stepwisely satisfiable specifications. By this procedure, we can synthesize prototype programs from an imperfect specification. It is useful to synthesize prototype programs in the middle of describing a specification because prototype programs give useful information for testing or revising the specification. Thus, the procedure in this paper is useful for system specification revision.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"93 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127541663","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913243
M. Murakami
Presents a model of concurrent processes that is an extension of a fragment of linear logic. Processes, messages and definitions of processes are represented using linear logic formulas. The presented method models a computation with a formal linear logic proof. The linear logic inference system which is used consists of rules extended for the new multi-dimensional representation of system states to represent the scopes of local names. The multi-dimensional representation of a system make it possible to avoid the inconvenience of inferences arising from the scopes of local names. This paper presents rules to represent the run-time transformation of process definitions as an application of the multi-dimensional representation.
{"title":"Run time transformation of concurrent processes using multi dimensional representation of linear logic","authors":"M. Murakami","doi":"10.1109/ISPSE.2000.913243","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913243","url":null,"abstract":"Presents a model of concurrent processes that is an extension of a fragment of linear logic. Processes, messages and definitions of processes are represented using linear logic formulas. The presented method models a computation with a formal linear logic proof. The linear logic inference system which is used consists of rules extended for the new multi-dimensional representation of system states to represent the scopes of local names. The multi-dimensional representation of a system make it possible to avoid the inconvenience of inferences arising from the scopes of local names. This paper presents rules to represent the run-time transformation of process definitions as an application of the multi-dimensional representation.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126318311","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913253
T. Tabata, H. Taniguchi, K. Ushijima
If it is possible to regulate program execution speed, we can control the execution speed arbitrarily, regardless of hardware performance, in order to improve the convenience of service. H. Taniguchi (2000) has previously proposed a mechanism to regulate the program execution speed. The proposed mechanism can control only one process, but it can't control multiple processes. However, since in most cases one service consists of multiple processes, it is necessary to establish a multi-process control mechanism for regulating the program execution speed. There are numerous combinations of processes when multiple processes are controlled. Therefore the execution speeds of all the processes need to be regulated smoothly in all combinations. We show a basic mechanism for regulating the program execution speed and describe the problem and treatment for a multi-process control mechanism. This paper reports the result of our evaluation.
{"title":"Implementation and evaluation of multiple processes control mechanism for regulating program execution speed","authors":"T. Tabata, H. Taniguchi, K. Ushijima","doi":"10.1109/ISPSE.2000.913253","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913253","url":null,"abstract":"If it is possible to regulate program execution speed, we can control the execution speed arbitrarily, regardless of hardware performance, in order to improve the convenience of service. H. Taniguchi (2000) has previously proposed a mechanism to regulate the program execution speed. The proposed mechanism can control only one process, but it can't control multiple processes. However, since in most cases one service consists of multiple processes, it is necessary to establish a multi-process control mechanism for regulating the program execution speed. There are numerous combinations of processes when multiple processes are controlled. Therefore the execution speeds of all the processes need to be regulated smoothly in all combinations. We show a basic mechanism for regulating the program execution speed and describe the problem and treatment for a multi-process control mechanism. This paper reports the result of our evaluation.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124033206","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913252
L. Nagamatsu
With the increased complexity of software and requirements for non-stop service features, it is important to establish an effective method for online or runtime program updating. For commercial servers, even a short break of service can cause a great loss for a company, and modern complex software systems are frequently updated for patching security holes or adding new features. To cope with such situations, a new paradigm for easy and effective software maintenance is needed. Many approaches have been proposed in software engineering for autonomous evolution or growth schemes, while in the domain of computer hardware or traditional machines, the in-operation replacement of parts (known as a "hot swap"), where a defective module in a complex system can be replaced during its operation, is common. In this paper, we discuss such a "hot swap" method for the software system, as well as ways to divide the whole system into basic modules and to reorganize them. We focus on methods using facilities that are available in traditional UNIX-type operating systems, such as dynamic linking or process management. With experiments on prototype routines, we demonstrate the feasibility of such a technique, which employs a version manager routine included in a simple example application.
{"title":"Runtime software reorganization by traditional OS features","authors":"L. Nagamatsu","doi":"10.1109/ISPSE.2000.913252","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913252","url":null,"abstract":"With the increased complexity of software and requirements for non-stop service features, it is important to establish an effective method for online or runtime program updating. For commercial servers, even a short break of service can cause a great loss for a company, and modern complex software systems are frequently updated for patching security holes or adding new features. To cope with such situations, a new paradigm for easy and effective software maintenance is needed. Many approaches have been proposed in software engineering for autonomous evolution or growth schemes, while in the domain of computer hardware or traditional machines, the in-operation replacement of parts (known as a \"hot swap\"), where a defective module in a complex system can be replaced during its operation, is common. In this paper, we discuss such a \"hot swap\" method for the software system, as well as ways to divide the whole system into basic modules and to reorganize them. We focus on methods using facilities that are available in traditional UNIX-type operating systems, such as dynamic linking or process management. With experiments on prototype routines, we demonstrate the feasibility of such a technique, which employs a version manager routine included in a simple example application.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129641888","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913249
M. Matsushita, M. Teraguchi, K. Inoue
In the maintenance phase of software development, it is necessary to check that all features still perform correctly after some changes have been applied to existing software. However, it is not easy to debug the software when a defect is found in those features which have not changed during the modification, even using a regression test. Existing approaches employ program deltas to specify defects; they have the limitation of it being hard to enact them, and they don't support any actual debugging activities. Moreover, such a system is hard to introduce into an actual environment. In this paper, we propose DMET (Debugging METhod) to solve such problems. DMET supports debugging activities when a defect is found by regression tests through detection, indication and reflection procedures. We also implement DSUS (Debugging SUpporting System) based on DMET. DSUS executes DMET procedures automatically, and it is easy to configure for an existing environment. Through experimentation with DMET and DSUS, we have confirmed that DMET/DSUS reduce the debugging time of software significantly. As a result, DMET/DSUS help in evolving the software for the software maintenance aspects.
{"title":"Effective testing and debugging methods and its supporting system with program deltas","authors":"M. Matsushita, M. Teraguchi, K. Inoue","doi":"10.1109/ISPSE.2000.913249","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913249","url":null,"abstract":"In the maintenance phase of software development, it is necessary to check that all features still perform correctly after some changes have been applied to existing software. However, it is not easy to debug the software when a defect is found in those features which have not changed during the modification, even using a regression test. Existing approaches employ program deltas to specify defects; they have the limitation of it being hard to enact them, and they don't support any actual debugging activities. Moreover, such a system is hard to introduce into an actual environment. In this paper, we propose DMET (Debugging METhod) to solve such problems. DMET supports debugging activities when a defect is found by regression tests through detection, indication and reflection procedures. We also implement DSUS (Debugging SUpporting System) based on DMET. DSUS executes DMET procedures automatically, and it is easy to configure for an existing environment. Through experimentation with DMET and DSUS, we have confirmed that DMET/DSUS reduce the debugging time of software significantly. As a result, DMET/DSUS help in evolving the software for the software maintenance aspects.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131514264","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913229
N. Amano, T. Watanabe
A software system has dynamic adaptability if it can adapt itself to dynamically changing runtime environments. This means that such a software system can change its own behavior depending on states of runtime environments in flexible way. We have proposed a software model with dynamic adoptability named DAS and its description language LEAD++. The DAS model is a reflective software model, and LEAD++ is an object-oriented reflective language based on Java. In this work, we apply our model to component-based software systems, and introduce dynamic adaptability into them by using LEAD++. The basic approaches are to change dynamically: the structure of component composition; and the inside behavior of each component, depending on the states of runtime environments.
{"title":"An approach for constructing component-based software systems with dynamic adaptability using LEAD++","authors":"N. Amano, T. Watanabe","doi":"10.1109/ISPSE.2000.913229","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913229","url":null,"abstract":"A software system has dynamic adaptability if it can adapt itself to dynamically changing runtime environments. This means that such a software system can change its own behavior depending on states of runtime environments in flexible way. We have proposed a software model with dynamic adoptability named DAS and its description language LEAD++. The DAS model is a reflective software model, and LEAD++ is an object-oriented reflective language based on Java. In this work, we apply our model to component-based software systems, and introduce dynamic adaptability into them by using LEAD++. The basic approaches are to change dynamically: the structure of component composition; and the inside behavior of each component, depending on the states of runtime environments.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114501785","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913219
K. Ochimizu, H. Murakoshi, K. Fujieda, M. Fujita
We discuss a model and mechanisms to support awareness of recognition gaps and coordination for distributed cooperative work, especially for software development activities. We show a model and an implementation of the information repository which can reflect the progress of the work in a real world to share the instability of the work among participants of the work. Sharing of instability gives us a basis to coordinate distributed cooperative work with regard to inconsistencies among shared artifacts and uncertainties included in decisions made through conversations. We also discuss partial requirements of a software process model for distributed cooperative work.
{"title":"Sharing instability of a distributed cooperative work","authors":"K. Ochimizu, H. Murakoshi, K. Fujieda, M. Fujita","doi":"10.1109/ISPSE.2000.913219","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913219","url":null,"abstract":"We discuss a model and mechanisms to support awareness of recognition gaps and coordination for distributed cooperative work, especially for software development activities. We show a model and an implementation of the information repository which can reflect the progress of the work in a real world to share the instability of the work among participants of the work. Sharing of instability gives us a basis to coordinate distributed cooperative work with regard to inconsistencies among shared artifacts and uncertainties included in decisions made through conversations. We also discuss partial requirements of a software process model for distributed cooperative work.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130130097","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913248
Shaoying Liu
Specification before implementation has been suggested as a sensible approach to software evolution. The quality of this approach may be improved by using formal specification. However, to serve as a trustable foundation for implementation and to help reduce the cost of program testing, the formal specification must be ensured to be satisfiable, consistent, complete and accurate in recording the user requirements. In this paper, we first define these four concepts and then introduce a technique for verifying formal specifications that combines fault-tree analysis with static analysis and testing techniques.
{"title":"Verifying formal specifications using fault tree analysis","authors":"Shaoying Liu","doi":"10.1109/ISPSE.2000.913248","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913248","url":null,"abstract":"Specification before implementation has been suggested as a sensible approach to software evolution. The quality of this approach may be improved by using formal specification. However, to serve as a trustable foundation for implementation and to help reduce the cost of program testing, the formal specification must be ensured to be satisfiable, consistent, complete and accurate in recording the user requirements. In this paper, we first define these four concepts and then introduce a technique for verifying formal specifications that combines fault-tree analysis with static analysis and testing techniques.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126709233","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2000-11-01DOI: 10.1109/ISPSE.2000.913235
P. O'Byrne, Bing Wu
This paper first presents a definition of the concept 'legacy status' with a three-dimensional model. It then discusses LACE frameworks and techniques, which can be used to assess legacy status from the cause and effects perspectives. A method of applying the LACE frameworks is shown and a technique with a mathematical model and metric so that the legacy status of a system can be calculated. This paper describes a novel and practical way to identify legacy status of a system, and has pointed out a new direction for research in this area.
{"title":"LACE frameworks and technique-identifying the legacy status of a business information system from the perspectives of its causes and effects","authors":"P. O'Byrne, Bing Wu","doi":"10.1109/ISPSE.2000.913235","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913235","url":null,"abstract":"This paper first presents a definition of the concept 'legacy status' with a three-dimensional model. It then discusses LACE frameworks and techniques, which can be used to assess legacy status from the cause and effects perspectives. A method of applying the LACE frameworks is shown and a technique with a mathematical model and metric so that the legacy status of a system can be calculated. This paper describes a novel and practical way to identify legacy status of a system, and has pointed out a new direction for research in this area.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132366965","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}