Pub Date : 1999-05-17DOI: 10.1109/PDSE.1999.779736
Hwan Wook Sohn, D. Kung, P. Hsia
Reproducible testing approaches have been developed for traditional concurrent programs for over a decade to provide a deterministic way of testing, but those approaches are generally based on the control structure of the program. However in recently revitalized component based software development, state-based testing is more important than control structure based testing because such components are usually implemented using the object-oriented paradigm. We propose a dynamic state-based reproducible testing approach for a component software that each component can change the system state nondeterministically during the concurrent execution in a Common Object Request Broker Architecture (CORBA) environment. We use a replay controller for a given state sequence from a statechart-like model of each component. The replay controller is designed to force the order of the program's execution based on the given state sequence. Unlike the static state analysis of a program, our approach dynamically executes the actual program components under the control of the replay controller for a selected state sequence. With this state-based reproducible testing approach, testers can detect state behavioral errors of a component software dynamically and deterministically.
{"title":"State-based reproducible testing for CORBA applications","authors":"Hwan Wook Sohn, D. Kung, P. Hsia","doi":"10.1109/PDSE.1999.779736","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779736","url":null,"abstract":"Reproducible testing approaches have been developed for traditional concurrent programs for over a decade to provide a deterministic way of testing, but those approaches are generally based on the control structure of the program. However in recently revitalized component based software development, state-based testing is more important than control structure based testing because such components are usually implemented using the object-oriented paradigm. We propose a dynamic state-based reproducible testing approach for a component software that each component can change the system state nondeterministically during the concurrent execution in a Common Object Request Broker Architecture (CORBA) environment. We use a replay controller for a given state sequence from a statechart-like model of each component. The replay controller is designed to force the order of the program's execution based on the given state sequence. Unlike the static state analysis of a program, our approach dynamically executes the actual program components under the control of the replay controller for a selected state sequence. With this state-based reproducible testing approach, testers can detect state behavioral errors of a component software dynamically and deterministically.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"143 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116524917","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779753
Chris Rudram, P. Croll, N. Uchihira
A novel concurrent programming paradigm called hypersequential programming (HSP) is being developed. HSP aims to eliminate all undesirable behaviours from a given application. A fundamental part of that system requires the use of test cases for the serialization of a program. Only those test cases found to be correct are used in the final concurrent program. Therefore, HSP relies on all the functionality being included into a program. This is opposite to traditional software engineering practice, which is to ensure that all unwanted behaviours have been removed. We briefly examine the HSP method with reference to test cases and scenarios. We examine a couple of brief examples and discuss the limitations of test cases, with particular respect to HSP. We conclude that finding a method of ensuring the correct set of test cases is used in development is essential to the success of HSP.
{"title":"Building test cases for use in hypersequential programming","authors":"Chris Rudram, P. Croll, N. Uchihira","doi":"10.1109/PDSE.1999.779753","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779753","url":null,"abstract":"A novel concurrent programming paradigm called hypersequential programming (HSP) is being developed. HSP aims to eliminate all undesirable behaviours from a given application. A fundamental part of that system requires the use of test cases for the serialization of a program. Only those test cases found to be correct are used in the final concurrent program. Therefore, HSP relies on all the functionality being included into a program. This is opposite to traditional software engineering practice, which is to ensure that all unwanted behaviours have been removed. We briefly examine the HSP method with reference to test cases and scenarios. We examine a couple of brief examples and discuss the limitations of test cases, with particular respect to HSP. We conclude that finding a method of ensuring the correct set of test cases is used in development is essential to the success of HSP.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129039546","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779734
Ashish Shah, D. Kafura
Symphony is an open and extensible Java-based framework for composition and manipulation of distributed legacy resources. Symphony allows users to compose visually a collection of programs and data by specifying dataflow relationships among them and provides a client/server framework for transparently executing the composed application. Additionally, the framework is Web-aware and helps integrate Web-based resources with legacy resources. Symphony uses Sun Microsystems' JavaBeans component architecture for providing components that represent legacy resources. These components can be customized and composed in any standard JavaBeans builder tool. Executable components communicate with a server implemented using Java Remote Method Invocation mechanism, for executing remote legacy applications. Symphony enables extensibility by providing abstract components which can be extended by implementing simple interfaces. Beans implemented from the abstract beans can act as data producers, consumers or filters.
{"title":"Symphony: a Java-based composition and manipulation framework for distributed legacy resources","authors":"Ashish Shah, D. Kafura","doi":"10.1109/PDSE.1999.779734","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779734","url":null,"abstract":"Symphony is an open and extensible Java-based framework for composition and manipulation of distributed legacy resources. Symphony allows users to compose visually a collection of programs and data by specifying dataflow relationships among them and provides a client/server framework for transparently executing the composed application. Additionally, the framework is Web-aware and helps integrate Web-based resources with legacy resources. Symphony uses Sun Microsystems' JavaBeans component architecture for providing components that represent legacy resources. These components can be customized and composed in any standard JavaBeans builder tool. Executable components communicate with a server implemented using Java Remote Method Invocation mechanism, for executing remote legacy applications. Symphony enables extensibility by providing abstract components which can be extended by implementing simple interfaces. Beans implemented from the abstract beans can act as data producers, consumers or filters.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131456785","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779749
M. Cremonini, Andrea Omicini, F. Zambonelli
An engineered approach to the design of mobile agent applications requires appropriate abstractions for both the space where agents move and the conceptual space of mobile agent interaction. The paper introduces the HiMAT framework for mobile agent applications, which models the Internet as a collection of hierarchical domains, where programmable coordination media rule mobile agent's interaction within each domain and locally to each node. This provides the designers of mobile agent systems with a single, coherent framework enabling them to effectively deal with network topology, authentication, authorisation and coordination in a uniform way.
{"title":"Building mobile agent applications in HiMAT","authors":"M. Cremonini, Andrea Omicini, F. Zambonelli","doi":"10.1109/PDSE.1999.779749","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779749","url":null,"abstract":"An engineered approach to the design of mobile agent applications requires appropriate abstractions for both the space where agents move and the conceptual space of mobile agent interaction. The paper introduces the HiMAT framework for mobile agent applications, which models the Internet as a collection of hierarchical domains, where programmable coordination media rule mobile agent's interaction within each domain and locally to each node. This provides the designers of mobile agent systems with a single, coherent framework enabling them to effectively deal with network topology, authentication, authorisation and coordination in a uniform way.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"107 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124748792","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779745
M. Gunzert, A. Nägele
In this paper we describe the development and verification of software for an automotive brake-by-wire system. This is a new brake system without mechanical or hydraulic backup. The system is based on a time-triggered communication architecture. The central control computer in this distributed system, called Brake-by-Wire Manager, is a redundant design in order to tolerate any single failure. The software of this computer is subject to a set of safety related requirements which must be verified. We have developed the software using synchronous software components based on the synchronous ESTEREL. Many safety properties have been verified successfully and the software has been integrated in a prototype brake-by-wire system in a research car.
{"title":"Component-based development and verification of safety critical software for a brake-by-wire system with synchronous software components","authors":"M. Gunzert, A. Nägele","doi":"10.1109/PDSE.1999.779745","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779745","url":null,"abstract":"In this paper we describe the development and verification of software for an automotive brake-by-wire system. This is a new brake system without mechanical or hydraulic backup. The system is based on a time-triggered communication architecture. The central control computer in this distributed system, called Brake-by-Wire Manager, is a redundant design in order to tolerate any single failure. The software of this computer is subject to a set of safety related requirements which must be verified. We have developed the software using synchronous software components based on the synchronous ESTEREL. Many safety properties have been verified successfully and the software has been integrated in a prototype brake-by-wire system in a research car.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115280030","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779735
Jianjun Zhao
Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. We present a dependence-based representation called multithreaded dependence graph, which extends previous dependence-based representations, to represent program dependencies in a concurrent Java program. We also discuss some important applications of a multithreaded dependence graph in a maintenance environment for concurrent Java programs.
{"title":"Multithreaded dependence graphs for concurrent Java programs","authors":"Jianjun Zhao","doi":"10.1109/PDSE.1999.779735","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779735","url":null,"abstract":"Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. We present a dependence-based representation called multithreaded dependence graph, which extends previous dependence-based representations, to represent program dependencies in a concurrent Java program. We also discuss some important applications of a multithreaded dependence graph in a maintenance environment for concurrent Java programs.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131446772","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779739
Jun Zhou, K. Tai
Reachability analysis of a concurrent program involves the derivation of states of the program and the detection of deadlocks and other types of faults. To perform reachability analysis of a concurrent program P, the number of instances of each process type in P needs to be determined. How to select such numbers for P is a difficult issue. If these numbers are large, reachability analysis of P needs huge memory and very long CPU time. If these numbers are small, we have little confidence on whether P is deadlock-free for larger numbers of instances of process types in P. A deadlock cutoff number C for a process type T in P means that if under certain conditions P with C instances of T has no deadlocks, then P has no dead locks for any number of instances of T. We describe methods for finding deadlock cutoff numbers for three types of synchronous message-passing programs. Our methods are based on the theory of Milner's CCS. By applying these methods, the effort for detecting deadlocks in many synchronous message-passing programs can be significantly reduced. Empirical results of applying our methods to solutions to the dining philosophers and readers and writers problems are presented.
并发程序的可达性分析包括程序状态的派生以及死锁和其他类型故障的检测。为了执行并发程序P的可达性分析,需要确定P中每种进程类型的实例数量。如何为P选择这样的数字是一个难题。如果这些数字很大,则P的可达性分析需要巨大的内存和非常长的CPU时间。如果这些数字很小,我们没有信心是否P是deadlock-free过程类型的实例的大量P .死锁截止在P C过程类型T意味着如果在特定条件下P C T的实例没有死锁,那么P没有死锁的T的实例数量我们描述方法寻找僵局截止数据三种类型的同步消息传递程序。我们的方法是基于米尔纳的CCS理论。通过应用这些方法,可以大大减少在许多同步消息传递程序中检测死锁的工作量。应用我们的方法来解决餐饮哲学家和读者和作家的问题的实证结果提出。
{"title":"Deadlock analysis of synchronous message-passing programs","authors":"Jun Zhou, K. Tai","doi":"10.1109/PDSE.1999.779739","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779739","url":null,"abstract":"Reachability analysis of a concurrent program involves the derivation of states of the program and the detection of deadlocks and other types of faults. To perform reachability analysis of a concurrent program P, the number of instances of each process type in P needs to be determined. How to select such numbers for P is a difficult issue. If these numbers are large, reachability analysis of P needs huge memory and very long CPU time. If these numbers are small, we have little confidence on whether P is deadlock-free for larger numbers of instances of process types in P. A deadlock cutoff number C for a process type T in P means that if under certain conditions P with C instances of T has no deadlocks, then P has no dead locks for any number of instances of T. We describe methods for finding deadlock cutoff numbers for three types of synchronous message-passing programs. Our methods are based on the theory of Milner's CCS. By applying these methods, the effort for detecting deadlocks in many synchronous message-passing programs can be significantly reduced. Empirical results of applying our methods to solutions to the dining philosophers and readers and writers problems are presented.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"180 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133692219","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779744
P. Andersen, Joseph Pizzi, Runlin Zhu, Youling Cao, D. Bagert, J. Antonio, Fred Lott, John C. Grieger
A general methodology based on software engineering principles is proposed for the parallelization of existing sequential code. The utility of the proposed methodology is evaluated through a case study involving a numerically intensive application in the domain of petrochemical exploration. The methodology does not assume the existence of detail design documentation for the sequential code. The methodology involves three basic phases: (1) reverse engineering; (2) parallel design; and (3) parallel implementation. The process iterates between phases two and three until the values of the performance metrics satisfy project requirements. In addition to the methodology itself considerable detail related to the experiences and lessons learned in performing the case study, are included.
{"title":"Evaluation of a methodology for the reverse engineering and parallelization of sequential code","authors":"P. Andersen, Joseph Pizzi, Runlin Zhu, Youling Cao, D. Bagert, J. Antonio, Fred Lott, John C. Grieger","doi":"10.1109/PDSE.1999.779744","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779744","url":null,"abstract":"A general methodology based on software engineering principles is proposed for the parallelization of existing sequential code. The utility of the proposed methodology is evaluated through a case study involving a numerically intensive application in the domain of petrochemical exploration. The methodology does not assume the existence of detail design documentation for the sequential code. The methodology involves three basic phases: (1) reverse engineering; (2) parallel design; and (3) parallel implementation. The process iterates between phases two and three until the values of the performance metrics satisfy project requirements. In addition to the methodology itself considerable detail related to the experiences and lessons learned in performing the case study, are included.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128216510","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779737
M. Frey, M. Podolsky
The ability to check whether the modeled system satisfies certain properties is a very important aspect in the software development process. Many object-oriented methods do not pay enough attention to behavioral descriptions. Indeed, they mostly do not provide formally founded descriptions that can be checked an atomatically. This paper presents an integrated approach, consisting of formally founded description techniques, an expressive temporal logic for specifying properties, and a model checking mechanism for automatically checking whether some executions of the specified system satisfy the required properties.
{"title":"Specifying and analysing distributed object-oriented systems","authors":"M. Frey, M. Podolsky","doi":"10.1109/PDSE.1999.779737","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779737","url":null,"abstract":"The ability to check whether the modeled system satisfies certain properties is a very important aspect in the software development process. Many object-oriented methods do not pay enough attention to behavioral descriptions. Indeed, they mostly do not provide formally founded descriptions that can be checked an atomatically. This paper presents an integrated approach, consisting of formally founded description techniques, an expressive temporal logic for specifying properties, and a model checking mechanism for automatically checking whether some executions of the specified system satisfy the required properties.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"644 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116417033","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 : 1999-05-17DOI: 10.1109/PDSE.1999.779742
B. Karaçali, K. Tai
Sequencing constraints for a concurrent program specify restrictions on the allowed sequences of synchronization events, and they can be used in generating test sequences for the program. In earlier work, the notion of CSPE (constraints on succeeding and preceding events) constraint was defined, and the CSPE-1 coverage criterion, which requires the coverage of each CSPE constraint at least once, was shown to be effective for fault detection. We show how to automatically generate test sequences to satisfy, the CSPE-1 criterion for a set of CSPE constraints. Our test sequence generation strategy is to determine (a) the number of instances for each process type for accomplishing the CSPE-1 coverage criterion such that the total instance number is minimum and (b) the smallest sequence set among all sets satisfying (a). Empirical results of applying our test generation strategy to the bounded buffer problem and seven versions of the readers and writers problem are presented.
{"title":"Automated test sequence generation using sequencing constraints for concurrent programs","authors":"B. Karaçali, K. Tai","doi":"10.1109/PDSE.1999.779742","DOIUrl":"https://doi.org/10.1109/PDSE.1999.779742","url":null,"abstract":"Sequencing constraints for a concurrent program specify restrictions on the allowed sequences of synchronization events, and they can be used in generating test sequences for the program. In earlier work, the notion of CSPE (constraints on succeeding and preceding events) constraint was defined, and the CSPE-1 coverage criterion, which requires the coverage of each CSPE constraint at least once, was shown to be effective for fault detection. We show how to automatically generate test sequences to satisfy, the CSPE-1 criterion for a set of CSPE constraints. Our test sequence generation strategy is to determine (a) the number of instances for each process type for accomplishing the CSPE-1 coverage criterion such that the total instance number is minimum and (b) the smallest sequence set among all sets satisfying (a). Empirical results of applying our test generation strategy to the bounded buffer problem and seven versions of the readers and writers problem are presented.","PeriodicalId":373753,"journal":{"name":"1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114441058","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}