LIME project LightweIght formal Methods for distributed component-based Embedded systems
|
|
|
- Sophie Fitzgerald
- 10 years ago
- Views:
Transcription
1 Tekes Ubicom program LIME project LightweIght formal Methods for distributed component-based Embedded systems Final Report Date: January 29, 2010 Sites of research: Department of Information and Computer Science Helsinki University of Technology (TKK) Department of Information Technologies Abo Akademi University (AAU) Responsible leader: Prof. Ilkka Niemela Tel: Project duration: Introduction This is the nal report of the project LightweIght formal Methods for distributed component-based Embedded systems (LIME) carried out at the Department of Information and Computer Science of Helsinki University of Technology (TKK) and Department of Information Technologies of Abo Akademi University (AAU) during the years The project has been funded by the Finnish Funding Agency for Technology and Innovation (Tekes), Space Systems Finland Oy, Nokia Oyj, Conformiq Software Oy and Elektrobit Oyj. The goal of the project has been to develop new lightweight design and validation methods for distributed embedded software components which are easy to introduce in a conventional design ow in a stepwise manner. Executive Summary The results and achievements obtained in the project with respect to the project plan are summarized below. The project has reached its main goal of developing new techniques for designing and validating distributed embedded software components successfully, the key achievements being: (i) an interface specication language for software components, (ii) a method for generating these specications from UML protocol state machines, (iii) a method for monitoring the specications at runtime, (iv) a technique for generating test cases for software components in a way that the specications are taken into account, and (v) evaluation of 1
2 state-of-the-art lightweight approaches for software validation and evaluation of the methods and tools developed in this project. The developed techniques have been implemented and evaluated in proof-ofconcept style prototype tools that have been made publicly available under an open-source license. The project has produced six Master's Theses, one Bachelor's Thesis, one student project report, two technical reports, and one international scientic publication. Furthermore, the project has provided valuable post-graduate education for the people that have worked in it. The costs of the project have stayed well within the budged. The rest of this report is organized as follows. The rest of this section summarizes (i) the people that have worked in the project, (ii) the produced Master's Theses and Student Project Reports, (iii) the scientic talks, research visits, and other scientic activities made in the project and (iv) the main deliverables produced in the project. A brief overview of the project and the architecture of the developed tools is given in Section 2. The results and developed techniques are explained in more detail in Sections 3-6, corresponding to the Tasks 1-4 in the Project Plan. 1.1 Personnel The following people have been working in the project at Helsinki University of Technology. Ilkka Niemela, responsible leader, October September Keijo Heljanko, research leader; project manager, part-time October August Kari Kahkonen, research assistant, full-time October August 2008; project manager, full-time September September 2009 Lauri Harpf, research assistant, full-time June{August 2008 Janne Kauttio, research assistant, full-time June{August 2008; part time September May 2009; full-time June{September 2009 Jani Lampinen, research assistant, full-time October September 2008 Sami Liedes, research assistant, full-time June{August 2008; part time September May 2009; full-time June{August 2009; part-time September 2009 Karoliina Oksanen, research assistant, part-time June 2009, Olli Saarikivi, research assistant, full-time June{August 2009, part-time September
3 Xi Chen, research assistant, full-time June{August Arto Vuori, research assistant, full-time June{September 11, The following people have been working in the project at Abo Akademi University. Johan Lilius, responsible leader, October September Ivan Porres, research leader, October September Emil Auer, research assistant, 15 January December Sam Gronblom, research assistant, November November Petter Holmstrom, research assistant, part-time September May 2009, full-time June September Soren Hoglund, research assistant, October September Sebastien Lafond, research assistant, 15 February July Ye Liu, research assistant, January September Mats Lovdahl, research assistant, August September Niclas Snellman, research assistant, full-time 15 May August 2009, part-time September Johan Selanniemi, research assistant, part-time April May 2009, fulltime June August Leif Siren, research assistant, part-time 15 March April 2009, full-time May September Andreas Akesson, research assistant, full-time 15 May August 2009, part-time September Theses and Student Project Reports The following academic theses and student project reports have been produced in the project. The Master's Thesis of Jani Lampinen [22] has been accepted at the Department of Information and Computer Science at Helsinki University of Technology (TKK) in May The topic of the thesis is the LIME interface specication method for software components. 3
4 The Master's Thesis of Kari Kahkonen [17] has been accepted at the Department of Information and Computer Science at Helsinki University of Technology (TKK) in August The topic of the thesis is automated test case generator developed in the project. The Master's Thesis of Emil Auer [1] has been accepted at the Department of Information Technology at Abo Akademi in December The topic of the thesis is the generation of LIME interface specications from UML protocol state machines. The Master's Thesis of Sam Gronblom [8] has been accepted at the Department of Information Technology at Abo Akademi in February The topic of the thesis is the experimental comparison of unit testing and inspections. The Master's thesis of Mats Lovdahl [26] has been accepted at the Department of Information Technology at Abo Akademi in The topic of the thesis is the generation of LIME and JML interface specications from UML protocol state machines with invariants. The Master's thesis of Soren Hoglund [13] has been accepted at the Department of Information Technology at Abo Akademi in The thesis describes an evaluation of dierent unit testing tools based on the LIME and JML interface specication languages. The Bachelor's Thesis of Janne Kauttio [20] has been accepted at the Department of Information and Computer Science at Helsinki University of Technology (TKK) in May The topic of the thesis is the C language version of the LIME interface specication language and its implementation. A report by Olli Saarikivi [29], describing the tness based search heuristic that is used to guide the LIME Concolic Tester towards execution paths that violate given LIME interface specications, has been accepted as the deliverable for the course \T Student Project in Theoretical Computer Science" at the Department of Information and Computer Science of Helsinki University of Technology (TKK). 1.3 Talks, Research Visits and Other Scientic Activities The following lists the conference participations and research visits made in the project. Helsinki University of Technology: On February-July 2008 Jori Dubrovin visited the Embedded Systems Research Unit (formerly IRST-SRA) of the Bruno Kessler Foundation in Trento, Italy. The research unit led by Dr. Alessandro Cimatti has substantial experience in designing methods and tools for the development and verication of embedded systems in industrial settings. The main research topic of the visit was 4
5 the ecient application of abstraction methods on model checking concurrent systems. Abstraction is a key technique in enhancing the scalability of model checking methods. This work contributes to Task 1.3 and Task 2.3, where such methods are planned to be used for guiding the generation of relevant test cases. On February 14-15, 2008 Keijo Heljanko participated in a Artemis Brokerage event in Dusseldorf, Germany On June 23-27, 2008 Jori Dubrovin participated in 8th International Conference on Application of Concurrency to System Design (ACSD 2008), Xi'an, China and presented the paper \ Symbolic model checking of hierarchical UML state machines" by Jori Dubrovin and Tommi A. Junttila. On March 29 - April 6, 2008, Kari Kahkonen and Keijo Heljanko visited The European Joint Conferences on Theory and Practice of Software (ETAPS) and its satellite events Foundations of Interface Technologies (FIT), Fourth Workshop on Model-Based Testing (MBT) and 8th International Workshop on Runtime Verication (RV). On May 26-30, 2008, Kari Kahkonen visited the 15th International Symposium on Formal Methods (FM 2008) held in Turku, Finland. On June 4-6, 2008 Jori Dubrovin participated in the 10th IFIP WG 6.1 International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS 2008), Oslo, Norway and presented the paper \Symbolic Step Encodings for Object Based Communicating State Machines" by Jori Dubrovin, Tommi A. Junttila and Keijo Heljanko. On October 21-23, 2008 Keijo Heljanko participated in the Artemis and ITEA2 co-summit in Rotterdam, the Netherlands. November 22-27, 2008 Jori Dubrovin participated in the 15th International Conference on Logic for Programming, Articial Intelligence, and Reasoning (LPAR 2008), Doha, Qatar and presented the paper \Encoding Queues in Satisability Modulo Theories Based Bounded Model Checking" by Tommi A. Junttila and Jori Dubrovin. On April-September, 2009 Matti Jarvisalo visited the Institute for Formal Models and Verication at Johannes Kepler University Linz, Austria in April- September, The institute led by Prof. Armin Biere has a strong track record in developing automated verication techniques and the visit by Matti Jarvisalo contributed to the task of developing automated test generation methods. In particular, Prof. Biere's group has recently developed a new powerful SMT solver approach supporting bit-vectors and bit-vector arrays and this approach has been used to enhance concolic testing techniques developed in the project. 5
6 On June 26 - July 2, 2009, Kahkonen presented the paper \The LIME Interface Specication Language and Runtime Monitoring Tool" by K ahkonen, Lampinen, Heljanko and Niemela in the Runtime Verication workshop (RV 2009) held in conjunction with the Computer Aided Verication (CAV) conference in Grenoble, France. On June 8-9, 2009, Keijo Heljanko participated in the Artemis Summer Camp 2009, Brussels, Belgium. On June 30-July 3, 2009 Matti Jarvisalo participated in the Twelfth International Conference on Theory and Applications of Satisability Testing, Swansea, Wales, United Kingdom On September 25, 2009 Keijo Heljanko gave a presentation of the LIME Interface Test Bench and the associated methodology developed in LIME with a talk "Automated Testing of Interfaces in Component Based Embedded Systems" at the Tekes Ubicom programme result seminar held in association with the Elkom 2009 fair ECT Forum Embedded Software development session. The seminar was open to the general public. Abo Akademi: On February , Ivan Porres visited Prof. Lionel Briand at the Simula Research Center, Oslo. Prof. Briand has a large experience on the evaluation of test methods and provided guidance for the Task 3. During June - November 2008, M.Sc. Torbjorn Lundkvist visited Technische Universitat Munchen in Germany to collaborate with Dr. Bernhard Schatz in his research group. Dr. Schatz is a merited researcher and model-based development of embedded systems for automotive applications is one of his main research interests. 1.4 Deliverables The following briey lists the main deliverables produced in the project. For more details, see Sections 3-6. The developed software and the research reports are available at The LIME Interface Specication Language and the supporting monitoring tool has been described in [23]. The research report also describes the support for C programming language and partially implemented systems. This report is a deliverable produced as part of Task 1. The automated test case generation method has been described in [18]. The report is a deliverable for Task 1. 6
7 A method to guide automated test generation based on specications written with LIME Interface Specication Language is described in [30]. This report has been produced as part of Task 1. An approach to generate LIME interface specications from UML protocol state machines containing state invariants and a supporting tool [15]. The tool also contains an interface to a UML modeling tool and can execute the LIME testing tools directly and report code coverage. The report and tool have been produced as part of Task 1. A tool to monitor LIME Interface specications has been implemented for both Java and C programs [24]. The tool is a deliverable for Task 2. A tool to automatically generate test cases for sequential Java programs has been implemented [19]. The tool is a deliverable for Task 2. A tool to generate JUnit tests based on the test cases generated by LCT has been implemented [19]. The tool has been produced as a part of Task 2. A graphical user interface has been implemented to provide access to the tools developed in the LIME project via a common front-end [5]. The graphical user interface was implemented as part of Task 2. A report on the approach to evaluate the LIME interface specication language and its associated tools [11]. The report is a deliverable for Task 3. A report describing an evaluation of the LIME Specication Language [10]. The report is a deliverable for Task 3. A report describing a controlled Experiment Comparing Inspection and Testing of Embedded Software [9]. The report is a deliverable for Task 3. A report evaluating the LIME testing tools and similar tools, specially JML tools [14]. The report is a deliverable for Task 3. 2 An Overview of Tasks and Objectives of the Project The project was divided into four tasks described in more detail below. Task 1: Design Methods and Languages, Task 2: Automated Validation Methods, Task 3: Research Drivers and Research Evaluation; and Task 4: Preparation of ARTEMIS proposal. In Task 1 the idea was to develop a lightweight interface specication method which is easy to integrate into a normal design ow where the system under validation is already (partially or fully) implemented in source code level. In Task 2 the goal was to develop validation techniques, in particular, automated testing methods for such specications. 7
8 Figure 1: Architecture of the LIME Interface Test Bench Task 3 comprised an evaluation of the state of the art in lightweight approaches for software validation. Finally, the objective of Task 4 was to create a proposal for the ARTEMIS call for an European project with similar goals as LIME. To get an overview of the tools developed in the project as part of Task 1 and 2, Figure 1 shows the outline of the tools. This toolset is called LIME Interface Test Bench (LimeTB). The starting point when using LimeTB is the system under validation, e.g. a software system composed of Java classes. Each class is augmented with a set of specications (in form of code annotations) that describe both (i) how the class interface should be used by its clients and (ii) how the class itself should behave. The specication language used by LimeTB was developed in Task 1. The specications do not need to completely cover the behavior of the class. In addition, (the methods in) the classes are not necessarily implemented at all, or are only partially implemented. Each specication in the classes is then translated into an observer, i.e., Java code that observes whether the specication is violated during the execution of the system. Together with a test case input (e.g. a sequence of user actions), the system code augmented with the observers can then be executed in a run-time environment resulting in an assertion violation and error trace if a specication was violated on that input. The test case inputs needed can be provided by the developers/testers of the system or an automatic test case generator can be applied. In Task 2 such a test case generator (LIME Concolic Tester) was developed and it integrates with the observers generated from the specications. 3 Task 1: Design Methods and Languages The goal of this task was to develop lightweight methods to support interface specications in an embedded system. The initial design was based on ideas from the hardware community such as the use of IEEE 1850 Property Specication Language (PSL), as well as Java/ESC and the Java Modeling Language (JML) from the soft- 8
9 Figure 2: The interaction model ware specication side. The aim was to ease the introduction of formal methods into a conventional design ow in a stepwise manner. 3.1 Task 1.1: Lightweight Interface Specication Method for Full Source Code The aim in this task was to design a lightweight behavioral interface specication method including use specications and pre/post conditions (assumptions/guarantees) with tentative deployment of a subset of the PSL language suitably modied for software use. The LIME interface specication language (LIME ISL) developed in the project is a lightweight formal method for dening behavioral interfaces. The approach is supported by implementations for Java and C developed in Task 2 to monitor whether the specied interface specications are violated. The core idea of the LIME interface specication language is to provide a declarative mechanism for dening how dierent software components can interact through interfaces in a manner that can be monitored at runtime. These interactions can be specied in two ways: by call specications (CS) which dene how components should be used and by return specications (RS) which dene how the components should respond. If a call specication is violated, the calling component can be determined to be incorrect and, respectively, if the called component does not satisfy its return specications, it is functioning incorrectly. This interaction model between components is illustrated in Fig. 2. The aim of the LIME ISL design was to enable a convenient way for the specication of behavioral aspects of interfaces in a manner that can be eciently supported by tools. We have extended the design by contract [27] approach to software development supported by approaches such as the Java Modeling Language (JML) [4] to behavioral aspects of interfaces. The idea is to divide the component interface to 9
10 two parts in an assume/guarantee fashion: (i) call specications (component environment assumptions) that specify requirements for the allowed call sequences to a software component and (ii) return specications (component behavior guarantees) that specify the allowed behaviors of the component instance. Another source of inspiration for the design of the LIME ISL has been the rise of standardized specication languages in the hardware design community such as IEEE Property Specication Language (PSL) [16]. One of the key features of PSL is the inclusion of both temporal logic LTL as well as regular expressions in the specication language provided for the user. Both the call and return specications can be expressed in several dierent ways: as past time linear temporal logic (LTL) formulas, as (safety) future LTL formulas, as regular expressions, and as nondeterministic nite automata. On the syntactical level the interface specications are annotations in Java and comments in a special syntax in the C code variant. The interface specications consists of a set of atomic propositions denitions and the actual call and return specications. Atomic propositions are used to make claims about the program execution and the state of the program. These atomic propositions are subdivided into three classes: value propositions, call propositions and exception propositions. There is also support for primitive data handling through the keyword #pre which makes it possible to reference an entry value in return specications after the actual method has been executed. This allows specications that describe how some value must change during execution of the observed method. The nal design of the LIME interface specication language can be found in [23] and a workshop paper describing the approach [21] has been presented at Runtime Verication (RV2009) workshop. We have developed an approach to generate LIME specications from UML protocol state machines and developed a tool support the approach. The supported input format is a UML 2.0 or 2.1 state machine represented in XMI 2.1. The tool produces LIME specications in the form of a nite automaton. This allows a developer to use the UML as an interface specication language and benet from the testing tools developed in Task 2. AAU has also evaluated the use of UML Sequence Diagrams in the context of the LIME project, but the results were not encouraging. This work is documented in the report [2] 3.2 Task 1.2: Extending the Method for Partially Implemented Systems One aim in Task 1 was to extend the interface specication method to cope with systems which are only partially implemented or even with system designs with no actual implementation. Additional goal in this task was to enhance the interface specication method with new techniques that allow better handling of dierent aspects in interface specications. The support for partially implemented systems was developed by extending the interface specication method with automated stub code generation. The main idea 10
11 in this approach is to use the interface specications to close a system from either top (call specications) or bottom (return specications) by generating stub code from the component interface. The stub code in the case of closing a system from top consists of a non-deterministic program whose call sequences to the underlying component that implements the interface is restricted to those allowed by the specication in a generate and test fashion. The approach for closing systems from below is similar, i.e., the stub code will return values nondeterministically that are restricted by the return specications. The restriction to valid call sequences and argument/return values is achieved by making a test verdict to be inconclusive if the stub code causes a specication to be violated. As randomly generated call sequences and return values will likely lead to many inconclusive test runs, the stub code approach is intended to be used mainly with the automated test case generator developed in Task 1.3 and Task 2.3. The use of the test case generator makes it possible to compute valid input arguments to the method calls and to make sure that the same call sequences are not tested repeatedly. The stub code generation is described in more detail in [23, 21]. To enhance the LIME interface specication language it was extended to support propositions on exception occurrence, as exceptions are commonly in a critical role in Java code and, thus, need to be supported in order to be able to properly specify the allowed behavior of the program. The extension allows specifying propositions to be used in monitoring which are true if and only if a certain kind of exception, as specied by the user, is thrown by the method being monitored. This proposition can then be used as part of conditions in any of the supported forms of specications, i.e., regular expression, PLTL and NFA specications. The full details on exception propositions are described in [23]. In order to provide better support to data aspects in the interface specication we have extended the UML to LIME approach described in Task 1.1 to support UML protocol state machines with state invariants. We have implemented tool support to translate UML protocol statemachines with invariants into LIME specications containing pre and postcondition specications. The tool can also generate JML specications and run the LIME and JML testing tools automatically. This was done to support Task 3.4. The applicability of the tool is demonstrated with examples ranging from simple to complex applications. We have also developed a plugin for a commercial UML modeling tool (MagicDraw) that integrates the specication generation tool and the testing tools. This plugin is an example on how the LIME project results can be integrated with existing UML modeling tools. This work is documented in the report [15] 3.3 Task 1.3: Enhancing the Method with Automated Test Case Generation The goal in this task was to design techniques for automated test case generation that can be used together with the interface specication method developed 11
12 in Task 1.1 and Task 1.2. The aim was to combine testing with symbolic model checking methods. The automated test case generation was designed to be based on concolic testing [7, 31]. In concolic testing a program is executed both concretely and symbolically at the same time. The main idea behind this approach is to rst execute the program under test with random concrete input values and then during execution to collect symbolic constraints about input values that would force the program to follow a dierent execution path (i.e., to follow a dierent outgoing branch at some branching statement). All the execution paths of a given program can be expressed as a symbolic execution tree where the nodes represent branching points in execution that have symbolic constraints associated to them. Concolic testing can be seen as a method to generate a symbolic execution tree and use it to systematically test dierent execution paths of a program. The input values needed to explore the dierent execution paths are obtained by solving the collected constraints using o-the-shelf SMT-solvers. The details on the test case generation using concolic techniques can be found from [18]. The concolic testing approach was also extended to take LIME interface specications into account when generating test cases. The approach here is based on computing a heuristic value of how close a specication is to being violated from the nite state automata of the runtime observers. This heuristic value is computed for each unexplored execution branch created by the LIME test generation tool and the execution branches that are the most likely to lead to a specication violation are explored rst. The computation of the heuristic values is based on sampling random walks on the nite state automata. More detailed description of computing the heuristic values can be found from [30]. 4 Task 2: Automated Validation Methods The focus of this task was to implement prototype tools to support the methods developed in Task Task 2.1: Prototype Tool Framework for Interface Specications The LIME Interface Monitoring Tool (LIMT) is the Java version of a monitoring tool for the LIME ISL developed in Task 1. It allows monitoring the specications at runtime to determine if some component violates the given specications. An architectural overview of the toolset is given in Fig. 1. The monitoring tool works by reading the specication annotations from the Java source les. The specications are then translated into deterministic nite state automata that function as observers. These automata are translated into runnable Java code and AspectJ ( is used to weave the code into the original program that is being tested. This results in an instrumented 12
13 runtime environment where the observers are executed at the timepoints discussed in the previous section. Spoon [28], the dk.brics.automaton ( package and SCheck [25] are adopted as third-party software. Spoon is used for analyzing the program and the dk.brics.automaton package is used for internal representation and manipulation of regular expression checkers. SCheck is used for converting future time LTL subformulas into nite state automata. The approach of [12] using synthesized code with history variables is used for past time subformulas, while for the future part the tool SCheck is used to encode informative bad prexes [25] of future LTL formulas to minimal DFA. The implementation allows the use of past-time subformulas LTL in future-time LTL formulas but not vice versa. More technical details of the implementation approach taken for Java can be found from [23, 22]. 4.2 Task 2.2: Adding Support for the C Programming Language The C code variant of the LIME interface specication language has also been implemented sharing much of the source code with the Java variant. The main dierences in the C language version to the Java version are: (i) comments in special syntax are used to dene the specications instead of Java annotations, (ii) instead of being part of an object creation in Java, in C monitor instances have to be explicitly associated to an interface, (iii) Doxygen tool ( is used (instead of Spoon for Java) to nd the interface specications from the C comments, (iv) AspeCt-oriented C (ACC, is used to weave the monitors into the C source code; (v) there is no support for Java specic features such as exceptions. The C variant, of course, generates the weaved monitoring code in C but is otherwise functionally identical to the Java version. More technical details of the implementation approach taken for C can be found from [23, 20]. 4.3 Task 2.3: Test Case Generator The automated test case generation method developed in Task 1.3 was implemented in tool called LIME Concolic Tester (LCT) that supports Java as the target programming language. Concolic execution of programs requires that the program under test is instrumented with additional code that allows the program to be symbolically executed. For the instrumentation the Soot optimization framework [32] was adopted as an external tool. To solve the constraints resulting from symbolic execution, support for Yices [6] and Boolector [3] was implemented. Due to licensing issues, the solvers are not included in the tool and must be downloaded separately. Typical Java Virtual Machines cause the following technical limitation in the instrumentation: core Java classes (e.g., java.lang.string and java.lang.integer) cannot be modied freely and therefore they cannot always be fully instrumented by LCT. 13
14 The reason for this limitation is that most Java Virtual Machines are very sensitive to modications in the core system classes (e.g., the load order of classes during bootstrapping may change due to instrumentation) and this can cause the JVM to crash. Furthermore, instrumenting the core classes means that the instrumented code that also uses core classes would use their rewritten versions which can cause complications. To solve this limitation custom versions of Integer, Short, Boolean and Byte classes were implemented so that they can be instrumented. The system under test is modied to use these custom classes instead of the original Java core classes. The instrumentation of other core classes is not currently supported and if such classes are used in the system under test, the test generator may fail to explore all possible execution paths. The supported subset of core classes is, however, sucient to make the test generation method work properly together with the monitoring tool. A more details description of the limitations regarding core classes can be found from [18]. The basic test case generation provided by LCT was extended by developing LIME JUnit Tools (LJUT) that provide the possibility to automatically generate test drivers to unit test methods and to generate JUnit test cases that allow replaying the unit tests even without LCT. 4.4 Enhancing the Usability of the Developed Tools The tools included in the LIME Interface Test Bench were primarily designed to be used from the command-line. To make the tools more accessible for new users, a graphic user interface was developed for the tools. The GUI was developed as a stand-alone application and therefore it does not force the developers to use any specic programming framework. The GUI allows the user to congure the LIME tools and to perform the basic tasks provided by the tools. To help the user of LimeTB to understand and debug the cause of specication violations, the LIME Interface Monitoring Tool was extended with tracer functionality. The generated observers write extensive information about their state to a log le during the execution of the instrumented program. This logging functionality is enabled by default, but can be optionally disabled during the compilation of the program either on a per-specication basis or completely. The log le can then be read with the provided tracer-utility, which is a command-line tool that has also been integrated into the graphical user interface. The tracer parses the log le and shows the user the execution of the program from the point of view of the observers, which will make nding the reason of a possible specication violation easier. 5 Task 3: Research Drivers and Research Evaluation The goal for task 3 was to evaluate and provide a feedback loop for the work performed in the other tasks. We have produced four reports [11, 10, 9, 14]. 14
15 5.1 Task 3.1 Selection of Case Studies The objective of this task was to organize the evaluation eort in the LIME project. We developed an evaluation criteria for the LIME specication language and LIME testing tools and introduced dierent software systems that are used in the evaluation. The initial goal was to select two case studies in cooperation with the companies that are participating in the project. However, we only obtained one case study from the industry partners. Based on the recommendations from the Steering Group and our experiences using LIME, we decided to add two more systems equipped with formal interface specications to be used in our evaluation: The Sun Java Card API and the JML contracts for this API created by Wojciech Mostowski and a collection of simple Java classes distributed with the JML tools. The results of this task are reported in [11]. 5.2 Task 3.2 Case Study Evaluation Using Standard Methods The objective of this task was to evaluate the case studies selected in Task 3.1 using standard methods such as software inspections and unit tests created manually. We carried out this task by conducting an experiment to compare which method nds more defects in a single session. In our study 22 graduate and undergraduate students performed each method on separate programs. We also tried to distinguish between merely nding a defect and also discovering the fault in the code that caused the defect. The results indicate that given a short amount of time for the task, inspectors nd signicantly more faults than testers. The results of this task are reported in [10]. 5.3 Task 3.3 and 3.4: Case Study Evaluation Using the Methods Developed in the LIME Project This task had two phases: evaluation of the LIME specication language and the evaluation of the LIME tools. The evaluation was performed by using the case studies from Task 3.1 and the same set of metrics as in Task 3.2 and comparing LIME to other approaches and tools with the same objectives. This task produced two reports. The rst report [9] describes our observations on using the LIME specication language to describe software interfaces in three case studies. We analyzed which software interfaces from the case studies can be described in the LIME specication language and provide some recommendations for the future development of LIME. We found that the LIME specication language could be used to specify many properties of the interfaces present in the case studies. However, we also produced 15
16 some recommendations on future extensions to the LIME language that can help increasing its applicability. The second report [14] contains a mutation testing experiment evaluating the performance (eciency, eectiveness and statement coverage) of several specicationbased tools. The tools studied include JML-JUnit, JET, ESC/Java2, UnitTesk, LIME Interface Monitoring Tool and LIME Concolic Tester. The evaluation revealed dierent issues in the LIME tools that were promptly xed. Although it is too early to perform a complete evaluation of the LIME Concolic tester, the results are encouraging. The test suite is available to evaluate the future development of the LIME tools. 6 Task 4: Preparation of ARTEMIS proposal The Reduced Certication Costs Using Trusted Multi-core Platforms (RECOMP) project proposal was submitted on time the 3rd for September. The proposed RECOMP research project will establish methods, tools and platforms for enabling cost-ecient certication and re-certication of safety-critical systems and mixed-criticality systems, i.e. systems containing safety-critical and non-safetycritical components. RECOMP will provide reference designs and platform architectures together with the required design methods and tools for achieving cost-eective certication and recertication of mixed-criticality, component based, multi-core systems. The aim of RECOMP is to dene a European standard reference technology for mixed-criticality multi-core systems supported by the European tool vendors participating in RE- COMP. The partners of the consortium cover several domains (automotive, industrial automation, lifts, avionics, health care and building automation), ensuring that the developed technology will be adoptable in several domain. The consortium also includes companies that will exploit the methodology for selling sub-contracting. The RECOMP project will bring clear benets in terms of cross-domain implementations of mixed-criticality systems in all domains addressed by project participants: automotive systems, aerospace systems, industrial control systems, lifts and transportation systems. RECOMP in Finland RECOMP has 7 participants from Finland: Abo Akademi, Metso, Space System Finland, the Helsinki University of Technology, Kone, Spinet and Vacon. Kone, Metso and Vacon are proposing the implementation of an application demonstrator for the RECOMP project. The total eligible costs for Finnish partners are around 4 million euro and represents 16% of the total project costs. The total funding requested from Tekes is around 1,6 million euro, and the total funding requested from the ARTEMIS JU is around 0,67 million euro. 16
17 RECOMP in numbers 41 participants from 8 countries: CZ, DK, ES, FI, FR, DE, IE, UK 31 companies: 9 small, 4 medium and 18 non-sme 10 Universities and research organisations Total eligible costs of euro Requested national funding of euro Requested ARTEMIS JU contribution of euro Total eort of person months Proposal of 406 pages including 188 pages of annexes 17
18 References [1] Emil Auer. Generation of LIME specications from UML protocol state machines. Master's thesis, Abo Akademi University, Department of Information Technologies, [2] Emil Auer and Ivan Porres. SM2LIME: A translation tool from UML state machines to LIME specications, LIME project deliverable. [3] Robert Brummayer and Armin Biere. Boolector: An ecient smt solver for bit-vectors and arrays. In Stefan Kowalewski and Anna Philippou, editors, TACAS, volume 5505 of Lecture Notes in Computer Science, pages 174{177. Springer, [4] Lilian Burdy, Yoonsik Cheon, David Cok, Michael D. Ernst, Joe Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll. An overview of JML tools and applications. Software Tools for Technology Transfer, 7(3):212{232, June [5] Xi Chen, Janne Kauttio, and Olli Saarikivi. A graphical user interface for LimeTB, Computer program in LimeTB software release. [6] Bruno Dutertre and Leonardo de Moura. A Fast Linear-Arithmetic Solver for DPLL(T). In Proceedings of the 18th Computer-Aided Verication conference, volume 4144 of LNCS, pages 81{94. Springer-Verlag, [7] Patrice Godefroid, Nils Klarlund, and Koushik Sen. DART: directed automated random testing. In PLDI, pages 213{223, [8] Sam Grnonblom. A controlled experiment comparing code reviews and testing of embedded software. Master's thesis, Abo Akademi University, Department of Information Technologies, [9] Sam Gronblom and Ivan Porres. A controlled experiment comparing inspection and testing of embedded software, LIME project deliverable. [10] Sam Gronblom and Ivan Porres. Preliminary evaluation of the LIME specication language, LIME project deliverable. [11] Sam Gronblom and Ivan Porres. Research drivers and research evaluation in the LIME project, LIME project deliverable. [12] Klaus Havelund and Grigore Rosu. Ecient monitoring of safety properties. Software Tools for Technology Transfer (STTT), 6(2):158{173, [13] Soren Hoglund. An empirical evaluation of specication-based unit testing tools. Master's thesis, Abo Akademi University, Department of Information Technologies, [14] Petter Holmstrom, Soren Hoglund, Leif Siren, and Ivan Porres. Evaluation of specication-based testing approaches, LIME project deliverable. 18
19 [15] Petter Holmstrom, Ye Liu, Mats Lovdahl, Irum Rauf, Johan Selanniemi, Leif Siren, and Ivan Porres. Generation of behavioral interface specications from UML protocol state machines with state invariants, LIME project deliverable. [16] IEEE-Commission. IEEE standard for property specication language (PSL). Technical report, IEEE, IEEE Std [17] Kari Kahkonen. Automated dynamic test generation for sequential Java programs. Master's thesis, Helsinki University of Technology, Department of Information and Computer Science, [18] Kari Kahkonen. Automated test generation for software components. Technical Report TKK-ICS-R26, Helsinki University of Technology, Department of Information and Computer Science, Espoo, Finland, December LIME project deliverable. [19] Kari Kahkonen. LIME Concolic Tester, Computer program in LimeTB software release. [20] Janne Kauttio. LIME-C { Rajapintamaarittelymenetelma C-kielisille ohjelmille. Bachelor's thesis, Helsinki University of Technology, Department of Information and Computer Science, [21] Kari Kahkonen, Jani Lampinen, Keijo Heljanko, and Ilkka Niemela. The LIME interface specication language and runtime monitoring tool. In Proceedings of the 9th Internatinal Workshop on Runtime Verication, volume 5779 of Lecture Notes in Computer Science, to appear. [22] Jani Lampinen. Interface specication methods for software components. Master's thesis, Helsinki University of Technology, Department of Information and Computer Science, [23] Jani Lampinen, Sami Liedes, Kari Kahkonen, Janne Kauttio, and Keijo Heljanko. Interface specication methods for software components. Technical Report TKK-ICS-R25, Helsinki University of Technology, Department of Information and Computer Science, Espoo, Finland, December LIME project deliverable. [24] Jani Lampinen, Sami Liedes, Janne Kauttio, Lauri Harph, Olli Saarikivi, and Kari Kahkonen. LIME Interface Monitoring Tool, Computer program in LimeTB software release. [25] Timo Latvala. Ecient model checking of safety properties. In Thomas Ball and Sriram K. Rajamani, editors, Model Checking Software, 10th International SPIN Workshop. Portland, OR, USA, May 9-10, 2003, Proceedings, volume 2648 of Lecture Notes in Computer Science, pages 74{88. Springer,
20 [26] Mats Lovdahl. Automatic generation of JML and LIME specications from UML protocol state machines. Master's thesis, Abo Akademi University, Department of Information Technologies, [27] Bertrand Meyer. Applying "design by contract". IEEE Computer, 25(10):40{51, [28] Renaud Pawlak, Carlos Noguera, and Nicolas Petitprez. Spoon: Program Analysis and Transformation in Java. Research Report RR-5901, INRIA, [29] Olli Saarikivi. Design and implementation of a heuristic for directing dynamic symbolic execution, A student project deliverable made in the LIME project. [30] Olli Saarikivi. Design and implementation of a heuristic for directing dynamic symbolic execution, LIME project deliverable. [31] Koushik Sen and Gul Agha. CUTE and jcute : Concolic Unit Testing and Explicit Path Model-Checking Tools. In 18th International Conference on Computer Aided Verication (CAV'06), volume 4144 of Lecture Notes in Computer Science, pages 419{423. Springer, [32] Raja Vallee-Rai, Phong Co, Etienne Gagnon, Laurie J. Hendren, Patrick Lam, and Vijay Sundaresan. Soot - a Java bytecode optimization framework. In Stephen A. MacKay and J. Howard Johnson, editors, CASCON, page 13. IBM,
The LIME Interface Specification Language and Runtime Monitoring Tool
The LIME Interface Specification Language and Runtime Monitoring Tool Kari Kähkönen, Jani Lampinen, Keijo Heljanko, and Ilkka Niemelä Helsinki University of Technology TKK Department of Information and
Experimental Comparison of Concolic and Random Testing for Java Card Applets
Experimental Comparison of Concolic and Random Testing for Java Card Applets Kari Kähkönen, Roland Kindermann, Keijo Heljanko, and Ilkka Niemelä Aalto University, Department of Information and Computer
AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS
TKK Reports in Information and Computer Science Espoo 2009 TKK-ICS-R26 AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS Kari Kähkönen ABTEKNILLINEN KORKEAKOULU TEKNISKA HÖGSKOLAN HELSINKI UNIVERSITY OF
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
0 0-10 5-30 8-39. Rover. ats gotorock getrock gotos. same time compatibility. Rock. withrover 8-39 TIME
Verication of plan models using UPPAAL Lina Khatib 1, Nicola Muscettola, and Klaus Havelund 2 NASA Ames Research Center, MS 269-2 Moett Field, CA 94035 1 QSS Group, Inc. 2 RECOM Technologies flina,mus,[email protected]
Model Checking based Software Verification
Model Checking based Software Verification 18.5-2006 Keijo Heljanko [email protected] Department of Computer Science and Engineering Helsinki University of Technology http://www.tcs.tkk.fi/~kepa/ 1/24
Environment Modeling for Automated Testing of Cloud Applications
Environment Modeling for Automated Testing of Cloud Applications Linghao Zhang, Tao Xie, Nikolai Tillmann, Peli de Halleux, Xiaoxing Ma, Jian Lv {lzhang25, txie}@ncsu.edu, {nikolait, jhalleux}@microsoft.com,
Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection
Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Martin Leucker Technische Universität München (joint work with Andreas Bauer, Christian Schallhart et. al) FLACOS
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.
Testing LTL Formula Translation into Büchi Automata
Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland
Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References
Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging
Chapter 1: Key Concepts of Programming and Software Engineering
Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development
Software testing. Objectives
Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating
A Scala DSL for Rete-based Runtime Verification
A Scala DSL for Rete-based Runtime Verification Klaus Havelund Jet Propulsion Laboratory California Institute of Technology, California, USA Abstract. Runtime verification (RV) consists in part of checking
Run-Time Monitoring of Goal-Oriented Requirements Specifications
Department of Computer Science University College London University of London Run-Time Monitoring of Goal-Oriented Requirements Specifications Andrew Ross Dingwall-Smith Submitted for the degree of Doctor
Verication by Finitary Abstraction Weizmann Institute of Sciences and Universite Joseph Fourier, Grenoble Fourth International Spin Workshop (SPIN'98) Paris 2.11.98 Joint work with: Y. Kesten Ben Gurion
Managing large sound databases using Mpeg7
Max Jacob 1 1 Institut de Recherche et Coordination Acoustique/Musique (IRCAM), place Igor Stravinsky 1, 75003, Paris, France Correspondence should be addressed to Max Jacob ([email protected]) ABSTRACT
DiPro - A Tool for Probabilistic Counterexample Generation
DiPro - A Tool for Probabilistic Counterexample Generation Husain Aljazzar, Florian Leitner-Fischer, Stefan Leue, and Dimitar Simeonov University of Konstanz, Germany Abstract. The computation of counterexamples
The next step in test automation: computer-generated tests
The next step in test automation: computer-generated tests Antti Kervinen Intel [email protected] Guest lecture for Software Testing and Quality Assurance Tampere University of Technology, Finland
Software Modeling and Verification
Software Modeling and Verification Alessandro Aldini DiSBeF - Sezione STI University of Urbino Carlo Bo Italy 3-4 February 2015 Algorithmic verification Correctness problem Is the software/hardware system
How To Test Automatically
Automated Model-Based Testing of Embedded Real-Time Systems Jan Peleska [email protected] University of Bremen Bieleschweig Workshop 7 2006-05-05 Outline Technologie-Zentrum Informatik Objectives Basic concepts
FoREnSiC An Automatic Debugging Environment for C Programs
FoREnSiC An Automatic Debugging Environment for C Programs Roderick Bloem 1, Rolf Drechsler 2, Görschwin Fey 2, Alexander Finder 2, Georg Hofferek 1, Robert Könighofer 1, Jaan Raik 3, Urmas Repinski 3,
Model-based Testing: Next Generation Functional Software Testing
Model-based Testing: Next Generation Functional Software Testing By Dr. Bruno Legeard Model-based testing (MBT) is an increasingly widely-used technique for automating the generation and execution of tests.
Model Driven Testing AGEDIS Architecture Interfaces and Tools
Model Driven Testing AGEDIS Architecture Interfaces and Tools Alan Hartman Kenneth Nagin IBM Haifa Research Laboratory Haifa University Campus Haifa 31905 ISRAEL {hartman, nagin}@il.ibm.com Page 1 of 11
Rigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,
UML-based Test Generation and Execution
UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA [email protected] ABSTRACT
Introduction to Automated Testing
Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases
SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE. Version A.4, January 2014 FOREWORD DOCUMENT CONVENTIONS
SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE Version A.4, January 2014 FOREWORD This document was written to provide software development projects with a template for generating a System
A Framework towards the Verication of Emergent Properties in Spatial Multi-Agent Systems
PROCEEDINGS OF THE WORKSHOP ON APPLICATIONS OF SOFTWARE AGENTS ISBN 978-86-7031-188-6, pp. 37-44, 2011 A Framework towards the Verication of Emergent Properties in Spatial Multi-Agent Systems Isidora Petreska
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing Domenico Amalfitano Anna Rita Fasolino Porfirio Tramontana Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy
Cedalion A Language Oriented Programming Language (Extended Abstract)
Cedalion A Language Oriented Programming Language (Extended Abstract) David H. Lorenz Boaz Rosenan The Open University of Israel Abstract Implementations of language oriented programming (LOP) are typically
Aspects for Testing Aspects?
Aspects for Testing Aspects? Dehla Sokenou, Stephan Herrmann Technische Universität Berlin Software Engineering Group Sekr. FR 5-6, Franklinstr. 28/29, D-10587 Berlin [dsokenou stephan]@cs.tu-berlin.de
Using Patterns and Composite Propositions to Automate the Generation of Complex LTL
University of Texas at El Paso DigitalCommons@UTEP Departmental Technical Reports (CS) Department of Computer Science 8-1-2007 Using Patterns and Composite Propositions to Automate the Generation of Complex
Software development process
OpenStax-CNX module: m14619 1 Software development process Trung Hung VO This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 2.0 Abstract A software development
Software Specification and Testing
Software Specification and Testing Using UML and OCL Jonathan Milley Faculty of Engineering and Applied Science MUN St. John s, Newfoundland Email: [email protected] Dr. Dennis K. Peters Faculty of Engineering
Model Checking of Software
Model Checking of Software Patrice Godefroid Bell Laboratories, Lucent Technologies SpecNCheck Page 1 August 2001 A Brief History of Model Checking Prehistory: transformational programs and theorem proving
Proceeding of the 6 th International Symposium on Artificial Intelligence and Robotics & Automation in Space: i-sairas 2001, Canadian Space Agency,
Proceeding of the 6 th International Symposium on Artificial Intelligence and Robotics & Automation in Space: i-sairas 2001, Canadian Space Agency, St-Hubert, Quebec, Canada, June 18-22, 2001. Java PathExplorer
The Course. http://www.cse.unsw.edu.au/~cs3153/
The Course http://www.cse.unsw.edu.au/~cs3153/ Lecturers Dr Peter Höfner NICTA L5 building Prof Rob van Glabbeek NICTA L5 building Dr Ralf Huuck NICTA ATP building 2 Plan/Schedule (1) Where and When Tuesday,
Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability
White Paper Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability What You Will Learn This document discusses application centric infrastructure
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
TEACHING MODEL CHECKING TO UNDERGRADUATES
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LV, Number 3, 2010 TEACHING MODEL CHECKING TO UNDERGRADUATES A.VESCAN AND M. FRENŢIU Abstract. The way program verification is taught in our faculty is firstly
Standard for Software Component Testing
Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document
Formal Verification by Model Checking
Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking
CS Master Level Courses and Areas COURSE DESCRIPTIONS. CSCI 521 Real-Time Systems. CSCI 522 High Performance Computing
CS Master Level Courses and Areas The graduate courses offered may change over time, in response to new developments in computer science and the interests of faculty and students; the list of graduate
615, GSB, University of Alberta, famr,sundari,hoover,[email protected]. Abstract
Software Process Improvement Model for a Small Organization: An Experience Report Amr Kamel, Sundari Voruganti, H. James Hoover and Paul G. Sorenson Dept. of Computing Science, 615, GSB, University of
Software Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
Dsc+Mock: A Test Case + Mock Class Generator in Support of Coding Against Interfaces
Dsc+Mock: A Test Case + Mock Class Generator in Support of Coding Against Interfaces Mainul Islam, Christoph Csallner Computer Science and Engineering Department University of Texas at Arlington Arlington,
How To Test A Web Based Application Automatically
A General Framework for Testing Web-Based Applications Saeed Abrishami, Mohsen Kahani Computer Engineering Department, Ferdowsi University of Mashhad [email protected] r, [email protected] Abstract Software
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
MetaGame: An Animation Tool for Model-Checking Games
MetaGame: An Animation Tool for Model-Checking Games Markus Müller-Olm 1 and Haiseung Yoo 2 1 FernUniversität in Hagen, Fachbereich Informatik, LG PI 5 Universitätsstr. 1, 58097 Hagen, Germany [email protected]
Common Criteria For Information Technology Security Evaluation
Security Characterisation and Integrity Assurance for Software Components and Component-Based Systems Jun Han and Yuliang Zheng Peninsula School of Computing and Information Technology Monash University,
System modeling. Budapest University of Technology and Economics Department of Measurement and Information Systems
System modeling Business process modeling how to do it right Partially based on Process Anti-Patterns: How to Avoid the Common Traps of Business Process Modeling, J Koehler, J Vanhatalo, IBM Zürich, 2007.
Going Interactive: Combining Ad-Hoc and Regression Testing
Going Interactive: Combining Ad-Hoc and Regression Testing Michael Kölling 1, Andrew Patterson 2 1 Mærsk Mc-Kinney Møller Institute, University of Southern Denmark, Denmark [email protected] 2 Deakin University,
Clustering and scheduling maintenance tasks over time
Clustering and scheduling maintenance tasks over time Per Kreuger 2008-04-29 SICS Technical Report T2008:09 Abstract We report results on a maintenance scheduling problem. The problem consists of allocating
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
A Framework of Model-Driven Web Application Testing
A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China
The ProB Animator and Model Checker for B
The ProB Animator and Model Checker for B A Tool Description Michael Leuschel and Michael Butler Department of Electronics and Computer Science University of Southampton Highfield, Southampton, SO17 1BJ,
WebSphere Business Modeler
Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison Tomi Janhunen 1, Ilkka Niemelä 1, Johannes Oetsch 2, Jörg Pührer 2, and Hans Tompits 2 1 Aalto University, Department
School of Computer Science
School of Computer Science Computer Science - Honours Level - 2014/15 October 2014 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
Design by Contract beyond class modelling
Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable
A Glossary of Project Management Terms
OpenStax-CNX module: m31434 1 A Glossary of Project Management Terms Merrie Barron, PMP, CSM Andrew R. Barron This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License
InvGen: An Efficient Invariant Generator
InvGen: An Efficient Invariant Generator Ashutosh Gupta and Andrey Rybalchenko Max Planck Institute for Software Systems (MPI-SWS) Abstract. In this paper we present InvGen, an automatic linear arithmetic
Automata-Based Verification of Temporal Properties on Running Programs Dimitra Giannakopoulou Klaus Havelund
Automata-Based Verification of Temporal Properties on Running Programs Dimitra Giannakopoulou Klaus Havelund RIACS Technical Report 01.21 August 2001 Presented at the 16 th IEEE International Conference
Model based testing tools. Olli Pekka Puolitaival
Model based testing tools Olli Pekka Puolitaival Index 1. Software testing evolution 2. model based testing (MBT): main idea 3. MBT: step by step 4. MBT: tools 5. Questions Software testing evolution model
The SPES Methodology Modeling- and Analysis Techniques
The SPES Methodology Modeling- and Analysis Techniques Dr. Wolfgang Böhm Technische Universität München [email protected] Agenda SPES_XT Project Overview Some Basic Notions The SPES Methodology SPES_XT
EE361: Digital Computer Organization Course Syllabus
EE361: Digital Computer Organization Course Syllabus Dr. Mohammad H. Awedh Spring 2014 Course Objectives Simply, a computer is a set of components (Processor, Memory and Storage, Input/Output Devices)
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor Klaus Krogmann, Steffen Becker University of Karlsruhe (TH) {krogmann, sbecker}@ipd.uka.de Abstract: The actual benefits
Model Driven Interoperability through Semantic Annotations using SoaML and ODM
Model Driven Interoperability through Semantic Annotations using SoaML and ODM JiuCheng Xu*, ZhaoYang Bai*, Arne J.Berre*, Odd Christer Brovig** *SINTEF, Pb. 124 Blindern, NO-0314 Oslo, Norway (e-mail:
A Business Process Services Portal
A Business Process Services Portal IBM Research Report RZ 3782 Cédric Favre 1, Zohar Feldman 3, Beat Gfeller 1, Thomas Gschwind 1, Jana Koehler 1, Jochen M. Küster 1, Oleksandr Maistrenko 1, Alexandru
GameTime: A Toolkit for Timing Analysis of Software
GameTime: A Toolkit for Timing Analysis of Software Sanjit A. Seshia and Jonathan Kotker EECS Department, UC Berkeley {sseshia,jamhoot}@eecs.berkeley.edu Abstract. Timing analysis is a key step in the
Unit-testing with JML
Métodos Formais em Engenharia de Software Unit-testing with JML José Carlos Bacelar Almeida Departamento de Informática Universidade do Minho MI/MEI 2008/2009 1 Talk Outline Unit Testing - software testing
Adapting C++ Exception Handling to an Extended COM Exception Model
Adapting C++ Exception Handling to an Extended COM Exception Model Bjørn Egil Hansen DNV AS, DT 990 Risk Management Software Palace House, 3 Cathedral Street, London SE1 9DE, UK [email protected]
Master of Science in Computer Science
Master of Science in Computer Science Background/Rationale The MSCS program aims to provide both breadth and depth of knowledge in the concepts and techniques related to the theory, design, implementation,
A Typing System for an Optimizing Multiple-Backend Tcl Compiler
The following paper was originally published in the Proceedings of the Fifth Annual Tcl/Tk Workshop Boston, Massachusetts, July 1997 A Typing System for an Optimizing Multiple-Backend Tcl Compiler Forest
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
Selbo 2 an Environment for Creating Electronic Content in Software Engineering
BULGARIAN ACADEMY OF SCIENCES CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 9, No 3 Sofia 2009 Selbo 2 an Environment for Creating Electronic Content in Software Engineering Damyan Mitev 1, Stanimir
Introducing Performance Engineering by means of Tools and Practical Exercises
Introducing Performance Engineering by means of Tools and Practical Exercises Alexander Ufimtsev, Trevor Parsons, Lucian M. Patcas, John Murphy and Liam Murphy Performance Engineering Laboratory, School
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be
