{"title":"Exception safety for C#","authors":"K. Leino, Wolfram Schulte","doi":"10.1109/SEFM.2004.14","DOIUrl":"https://doi.org/10.1109/SEFM.2004.14","url":null,"abstract":"Programming-language mechanisms for throwing and handling exceptions can simplify some computer programs. However the use of exceptions can also be error prone, leading to new programming errors and code that is hard to understand. This paper describes ways to tame the exception usage in C#. In particular the paper describes the treatment of exceptions in Spec#, an experimental superset of C# that includes code contracts.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125671853","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":"Abstraction of parallel uniform processes with data","authors":"J. Pang, J. Pol, M. V. Espada","doi":"10.1109/SEFM.2004.4","DOIUrl":"https://doi.org/10.1109/SEFM.2004.4","url":null,"abstract":"In practice, distributed systems are quite often composed by an arbitrarily large but finite number of processes that execute a similar program. Abstract interpretation is an effective technique to fight state explosion problems. In this paper, we propose a general framework for abstracting parallel composition of uniform processes with data, in the setting of a process algebraic language /spl mu/CRL We illustrate the feasibility of this technique by proposing two instances of the general framework and applying them to the verification of two systems.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127701869","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":"Using relation algebra for the analysis of Petri nets in a CASE tool based approach","authors":"Alexander Fronk","doi":"10.1109/SEFM.2004.50","DOIUrl":"https://doi.org/10.1109/SEFM.2004.50","url":null,"abstract":"We provide the calculus of relations as a data type implemented in an object-oriented Java-library, KURE. We demonstrate how to employ KURE in a CASE tool for the relation-algebraic analysis of Petri nets. Relation algebra has already been applied to condition/event nets. We extend this approach to place/transition systems in general and thereby provide a novel relation-algebraic interface to Petri net analysis. KURE is usable in any tool modelling with relations. In this paper we address in general how CASE tools are equipped with the calculus of relations and demonstrate in particular how reachability analysis of Petri nets benefits from this formal method.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129939524","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":"Proof reuse for deductive program verification","authors":"Bernhard Beckert, V. Klebanov","doi":"10.1109/SEFM.2004.33","DOIUrl":"https://doi.org/10.1109/SEFM.2004.33","url":null,"abstract":"We present a proof reuse mechanism for deductive program verification calculi. After a program amendment, it reuses a previous proof incrementally (one proof step at a time), employing a similarity measure for the points (formulas, terms, programs) where a rule is applied The method is flexible, as the reuse mechanism does not need knowledge about particularities of the target programming language or individual calculus rules. It also allows reuse of proof steps even if the situation in the new proof is merely similar but not identical to the template. Upon reaching a significant change in the program, the reuse process stops, and genuinely new proof steps have to be provided Reuse resumes automatically if another (unaffected) part of the proof template becomes pertinent. Our method has been successfully implemented within the KeY system to reuse correctness proofs for Java programs.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123048580","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":"Heuristics for refinement relations","authors":"F. Kammüller, J. Sanders","doi":"10.1109/SEFM.2004.24","DOIUrl":"https://doi.org/10.1109/SEFM.2004.24","url":null,"abstract":"A refinement relation, by documenting the relationship between the states of abstract and concrete systems, forms the basis for deriving the operations of the latter from those of the former However that approach requires the choice of an appropriate refinement relation and contains no 'redundancy', or room for error, since the (weakest) concrete system is entirely specified by the abstract system and the refinement relation. We provide heuristics to guide the choice of refinement relation, based on augmenting a state-based specification with laws of the kind used in algebraic specification or that arise from the general properties of reachability and full abstraction. The combination of static and dynamic information confers some redundancy that is useful to confirm the choice of refinement relation or, as presented here, aid its definition. We conclude that for practical purposes there is much to recommend the combination of state-based and algebraic specification techniques.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"80 10","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113975286","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":"Past- and future-oriented time-bounded temporal properties with OCL","authors":"S. Flake, W. Müller","doi":"10.1109/SEFM.2004.29","DOIUrl":"https://doi.org/10.1109/SEFM.2004.29","url":null,"abstract":"We present the syntax and semantics of a past- and future-oriented temporal extension of the Object Constraint Language (OCL). Our extension supports designers to express time-bounded properties over a state-oriented UML model of a system under development. The semantics is formally defined over the system states of a mathematical object model. Additionally, we present a mapping to Clocked Linear Temporal Logic (Clocked LTL) formulae, which is the basis for further application in verification with model checking. We demonstrate the applicability of the approach by the example of a buffer specification in the context of a production system.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125540525","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":"From requirements change to design change: a formal path","authors":"Lian Wen, R. Dromey","doi":"10.1109/SEFM.2004.20","DOIUrl":"https://doi.org/10.1109/SEFM.2004.20","url":null,"abstract":"The ideal we seek when responding to a change in the functional requirements for a system is that we can quickly determine; (1) where to make the change; (2) how the change affects the architecture of the existing system; (3) which components of the system are affected by the change; (4) and, what behavioral changes will need to be made to the components (and their interfaces) that are affected by the change. The change problem is complicated because requirements changes are specified in the problem domain, whereas the design response and the implementation changes that need to be made are in the solution domain. Requirements and design representations vary significantly in the support they provide for accommodating requirements changes. An important way of cutting down the memory overload and difficulties associated with making changes is to use the same representation for requirements and the initial design response to the change. In this paper we use a formal component-state representation called behavior trees for this purpose. It allows individual functional requirements to be translated into their corresponding behavior trees; these trees are composed, one at a time, to create an integrated design behavior tree (DBT). The architecture, the component interfaces and the component behaviors of each component in the system are all emergent properties of the DBT. We extend this design approach, by proposing a formal method for mapping changes in a system's functional requirements, to changes in the architecture, the behavior of individual components and their interfaces. Such changes are shown visually on the work products of the design process that are affected. A tool is used to implement the change process.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"425 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126715972","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}
G. Pu, Xiangpeng Zhao, Shuling Wang, Z. Qiu, Jifeng He, W. Yi
{"title":"An approach to hardware/software partitioning for multiple hardware devices model","authors":"G. Pu, Xiangpeng Zhao, Shuling Wang, Z. Qiu, Jifeng He, W. Yi","doi":"10.1109/SEFM.2004.5","DOIUrl":"https://doi.org/10.1109/SEFM.2004.5","url":null,"abstract":"Computer aided hardware/software partitioning is one of the key challenges in hardware/software co-design. This paper describes a new approach to hardware/software partitioning for multiple hardware-devices model. The partitioning is transformed into a reachability problem of timed automata, and the optimal solution can be obtained by means of an optimal reachability algorithm. To relax the initial condition of partitioning for optimization, two algorithms are designed to explore the dependency relations among processes in the sequential specification. Some experiments are conducted with model checker UPPAAL to show our approach is both effective and efficient.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"634 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122949059","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":"Verification of the WAP transaction layer","authors":"Yu-Tong He, R. Janicki","doi":"10.1109/SEFM.2004.51","DOIUrl":"https://doi.org/10.1109/SEFM.2004.51","url":null,"abstract":"This paper presents a formal approach of formalizing and verifying the Transaction Layer Protocol design in the approved Wireless Application Protocol architecture (WAP Version 2.0). By using the model checker SPIN, we uncover defects in the protocol, which can lead to deadlock and unfaithful refinement of the service definition. A set of desired properties is then verified for the corrected protocol model.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122694177","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":"A programming model for the orchestration of Web services","authors":"J. Misra","doi":"10.1109/SEFM.2004.2","DOIUrl":"https://doi.org/10.1109/SEFM.2004.2","url":null,"abstract":"We explore the following quintessential problem: given a set of basic computing elements how do we compose them to yield interesting computation patterns. Our goal is to study composition operators which apply across a broad spectrum of computing elements, from sequential programs to distributed transactions over computer networks; so, our theory makes very few assumptions about the nature of the basic elements. In particular, we do not assume that an element's computation always terminates, or that it is deterministic. We develop a theory which can provide useful guidance for application designs, from integration of sequential programs to coordination of distributed tasks. The primary application of interest for us is the orchestration of Web services over the Internet.","PeriodicalId":207271,"journal":{"name":"Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004.","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117011863","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}