{"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}
{"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}
{"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}
{"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}
{"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}
{"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}
{"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}
P. Andersen, Joseph Pizzi, Runlin Zhu, Youling Cao, D. Bagert, J. Antonio, Fred Lott, John C. Grieger
{"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}
{"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}
{"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}