{"title":"Static checking of interrupt-driven software","authors":"Dennis Brylow, Niels Damgaard, J. Palsberg","doi":"10.1109/ICSE.2001.919080","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919080","url":null,"abstract":"Resource-constrained devices are becoming ubiquitous. Examples include cell phones, Palm Pilots and digital thermostats. It can be difficult to fit the required functionality into such a device without sacrificing the simplicity and clarity of the software. Increasingly complex embedded systems require extensive brute-force testing, making development and maintenance costly. This is particularly true for system components that are written in assembly language. Static checking has the potential of alleviating these problems, but until now there has been little tool support for programming at the assembly level. In this paper, we present the design and implementation of a static checker for interrupt-driven Z86-based software with hard real-time requirements. For six commercial microcontrollers, our checker has produced upper bounds on interrupt latencies and stack sizes, as well as verified fundamental safety and liveness properties. Our approach is based on a known algorithm for the model checking of pushdown systems and produces a control-flow graph annotated with information about time, space, safety and liveness. Each benchmark is approximately 1000 lines of code, and the checking is done in a few seconds on a standard PC. Our tool is one of the first to give an efficient and useful static analysis of assembly code. It enables increased confidence in code correctness, significantly reduced testing requirements and support for maintenance throughout the system life-cycle.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114914236","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}
J. Weber, K. Kontogiannis, Eleni Stroulia, S. Tilley, Kenny Wong
{"title":"3/sup rd/ international workshop on net-centric computing (NCC 2001) Theme: migrating to the Web","authors":"J. Weber, K. Kontogiannis, Eleni Stroulia, S. Tilley, Kenny Wong","doi":"10.1109/ICSE.2001.919168","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919168","url":null,"abstract":"The theme of the 3rd International Workshop on Net-Centric Computing (NCC 2001) is “Migrating to the Web.” The workshop will focus on issues related to reengineering legacy systems for use in an NCC environment. In particular, on holistic techniques for Web-enabling existing applications that integrates various reengineering aspects (e.g., code, data, and user interface reengineering) into a “whole system” modernization process.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117031576","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}
R. Alur, L. D. Alfaro, R. Grosu, T. Henzinger, M. Kang, C. Kirsch, R. Majumdar, Freddy Y. C. Mang, Bow-Yaw Wang
{"title":"jMocha: a model checking tool that exploits design structure","authors":"R. Alur, L. D. Alfaro, R. Grosu, T. Henzinger, M. Kang, C. Kirsch, R. Majumdar, Freddy Y. C. Mang, Bow-Yaw Wang","doi":"10.1109/ICSE.2001.919196","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919196","url":null,"abstract":"Model checking is a practical tool for automated debugging of embedded software. In model checking, a high-level description of a system is compared against a logical correctness requirement to discover inconsistencies. Since model checking is based on exhaustive state-space exploration and the size of the state space of a design grows exponentially with the size of the description, scalability remains a challenge. We have thus developed techniques for exploiting modular design structure during model checking, and the model checker jMocha (Java MOdel-CHecking Algorithm) is based on this theme. Instead of manipulating unstructured state-transition graphs, it supports the hierarchical modeling framework of reactive modules. jMocha is a growing interactive software environment for specification, simulation and verification, and is intended as a vehicle for the development of new verification algorithms and approaches. It is written in Java and uses native C-code BDD libraries from VIS. jMocha offers: (1) a GUI that looks familiar to Windows/Java users; (2) a simulator that displays traces in a message sequence chart fashion; (3) requirements verification both by symbolic and enumerative model checking; (4) implementation verification by checking trace containment; (5) a proof manager that aids compositional and assume-guarantee reasoning; and (6) SLANG (Scripting LANGuage) for the rapid and structured development of new verification algorithms. jMocha is available publicly at ; it is a successor and extension of the original Mocha tool that was entirely written in C.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124567961","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}
Alexis Campailla, S. Chaki, E. Clarke, S. Jha, H. Veith
{"title":"Efficient filtering in publish-subscribe systems using binary decision diagrams","authors":"Alexis Campailla, S. Chaki, E. Clarke, S. Jha, H. Veith","doi":"10.1109/ICSE.2001.919117","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919117","url":null,"abstract":"Implicit invocation or publish-subscribe has become an important architectural style for large-scale system design and evolution. The publish-subscribe style facilitates developing large-scale systems by composing separately developed components because the style permits loose coupling between various components. One of the major bottlenecks in using publish-subscribe systems for very large scale systems is the efficiency of filtering incoming messages, i.e., matching of published events with event subscriptions. This is a very challenging problem because in a realistic publish subscribe system the number of subscriptions can be large. We present an approach for matching published events with subscriptions which scales to a large number of subscriptions. Our approach uses binary decision diagrams, a compact data structure for representing Boolean functions which has been successfully used in verification techniques such as model checking. Experimental results clearly demonstrate the efficiency of our approach.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129450992","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 software requirements to architectures","authors":"J. Castro, J. Kramer","doi":"10.1109/ICSE.2001.919167","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919167","url":null,"abstract":"The First International Workshop From Software Requirements to Architectures (STRAW01) was held in Toronto, Ontario, Canada, on May 14, 2001, just before the 23rd International Conference on Software Engineering (ICSE). This brief paper outlines the motivation, goals and organisation of the workshop.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130351588","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}
J. Berstel, S. Crespi-Reghizzi, G. Roussel, P. S. Pietro
{"title":"A scalable formal method for design and automatic checking of user interfaces","authors":"J. Berstel, S. Crespi-Reghizzi, G. Roussel, P. S. Pietro","doi":"10.1109/ICSE.2001.919118","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919118","url":null,"abstract":"The paper addresses the formal specification, design and implementation of the behavioral component of graphical user interfaces. Dialogs are specified by means of modular, communicating grammars called VEG (Visual Event Grammars), which extend traditional BNF grammars to make the modeling of dialogs more convenient. A VEG specification is independent of the actual layout of the GUI, but it can be easily integrated with various layout design toolkits. The specification may be verified with the model checker Spin, in order to test consistency and correctness, to detect deadlocks and unreachable states, and also to generate test cases for validation purposes. Efficient code is automatically generated by the VEG toolkit, based on compiler technology. Realistic applications have been specified, verified and implemented, like a Notepad-style editor, a graph construction library and a large real application to medical software. The complete VEG toolkit is going to be available soon as free software.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114215680","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":"The Software Factory: combining undergraduate computer science and software engineering education","authors":"John D. Tvedt, R. Tvedt, K. Gary","doi":"10.1109/ICSE.2001.919137","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919137","url":null,"abstract":"Industry often complains that current university curricula fail to address the practical issues of real software development. This paper outlines a proposal for an innovative core curriculum for a Bachelor of Science in computer science. The proposed core curriculum contains elements of traditional computer science programs combined with software engineering via a team-oriented, hands-on approach to large-scale software development. In addition to traditional lecture/project/exam courses, students are required to take an eight-semester sequence of \"Software Factory\" courses. Software Factory courses put the students' newly acquired skills to work in a real software organization staffed and managed by all students in the program. Students from all courses in the Software Factory sequence meet simultaneously to fulfil their roles in the software organization. We expect the students will be better-prepared software engineering practitioners after completing a curriculum that combines traditonal courses with practical Software Factory experience.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126204196","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":"Reuse that pays","authors":"Linda M. Northrop","doi":"10.1109/ICSE.2001.919150","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919150","url":null,"abstract":"A company builds a software system capable of running a diesel engine in a week, and in one case over a weekend, as opposed to the full year that it used to take. Another company builds one of its typical systems with 13 software engineers instead of the more than 100 it once required, and at the same time decreases the systems defect rate ten-fold. Still another increases its software-intensive product offerings from four per year to 50 per year. Imagine being able to use one person to integrate and test 1.5 million source lines of Ada for a real-time command-and-control system onboard a ship, with safety-critical requirements? Or increasing software productivity four-fold over three years, as another company has done? These organizations all achieved their results through strategic software reuse. We software people have been promising the benefits of reuse for decades. Are we finally achieving a reuse strategy that lives up to its hype?","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128034355","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":"XML technologies and software engineering","authors":"C. Mascolo, W. Emmerich, A. Finkelstein","doi":"10.1109/ICSE.2001.919173","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919173","url":null,"abstract":"The aim of the ICSE 2001 workshop on XML Technologies and Software Engineering (XSE01) is to join the efforts in the complementary areas of software engineering and XML [1]. There are two different aspects that characterize the relationship between these areas. The first addresses the use of XML and related technologies for the construction of software engineering tools and environments. The second focuses on the exploitation of XML for the development of a new generation of distributed software architectures and middleware that might provide new degrees of flexibility in terms of integration, security, and interoperability. XSE01 provides a forum to discuss both these aspects and stretches from pure research on XML and related technologies to applications and reports of industrial experience with markup languages and tools.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121951159","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":"Fast formal analysis of requirements via \"topoi diagrams\"","authors":"T. Menzies, J. Powell, M. Houle","doi":"10.1109/ICSE.2001.919112","DOIUrl":"https://doi.org/10.1109/ICSE.2001.919112","url":null,"abstract":"Early testing of requirements can decrease the cost of removing errors in software projects. However unless done carefully, that testing process can significantly add to the cost of requirements analysis. We show that requirements expressed as topoi diagrams can be built and tested cheaply /sup s/ing our SP2 algorithm, the formal temporal properties of a large class of topoi can be proven very quickly, in time nearly linear in the number of nodes and edges in the diagram. There are two limitations to our approach. Firstly, topoi diagrams cannot express certain complex concepts such as iteration and sub-routine calls. Hence, our approach is more useful for requirements engineering than for traditional model checking domains. Secondly, our approach is better for exploring the temporal occurrence of properties than the temporal ordering of properties. Within these restrictions, we can express a useful range of concepts currently seen in requirements engineering, and a wide range of interesting temporal properties.","PeriodicalId":374824,"journal":{"name":"Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001","volume":"77 6","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132463151","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}