Software development is often considered to be difficult for engineering students. Nowadays, in m... more Software development is often considered to be difficult for engineering students. Nowadays, in many embedded systems, software portion is always expected to have the greater impact on the behavior of entire systems. Therefore, educators continue to face great challenges in getting students to be capable of conducting efficient software development. This paper presents our experiences of introducing both eclipse-based tools and advanced model-based design (MBD) methodology into a system-level Programming Tools course for senior electrical engineering and computer engineering students. Eclipse is an integrated software development environment from IBM. Recently, eclipse-based development tools have been employed by increasing number of software projects in both academy and industry. Many eclipse-based software tools support MBD, which is an emerging development methodology for complex embedded software. The novelty of our work is to introduce students the MBD process in combination w...
Secure memory access protection plays a critical role in making software systems resilient to mal... more Secure memory access protection plays a critical role in making software systems resilient to malicious security attacks. Run-time checking is one of the major strategies that provides safe memory accesses. However, in many security-critical applications, the performance overhead due to the extra computation at runtime is often unacceptable. In order to reduce this cost, we propose a new strategy that minimizes the number of runtime checks by efficiently integrating the results from static software verification. Our strategy applies a verification approach called SAT-based software bounded model checking (BMC) to detect memory access violations as well as to prove the absence of such violations within a given bound statically, followed by a runtime checking to synergistically and completely secure the memory accesses. Our method makes use of static verification in a fine-grained manner, in which redundant runtime checks can be avoided for those safe accesses. Furthermore, with BMC, our strategy can provide the error traces useful for debugging if the instance is proved unsafe.
The Matlab/Simulink language has become the standard formalism for modeling and implementing cont... more The Matlab/Simulink language has become the standard formalism for modeling and implementing control software in areas like avionics, automotive, railway, and process automation. Such software is often safety critical, and bugs have potentially disastrous consequences for people and material involved. We define a verification methodology to assess the correctness of Simulink programs by means of automated test-case generation. In the style of fault- and mutation-based testing, the coverage of a Simulink program by a test suite is defined in terms of the detection of injected faults. Using bounded model checking techniques, we are able to effectively and automatically compute test suites for given fault models. Several optimisations are discussed to make the approach practical for realistic Simulink programs and fault models, and to obtain accurate coverage measures.
Software development is often considered to be difficult for engineering students. Nowadays, in m... more Software development is often considered to be difficult for engineering students. Nowadays, in many embedded systems, software portion is always expected to have the greater impact on the behavior of entire systems. Therefore, educators continue to face great challenges in getting students to be capable of conducting efficient software development. This paper presents our experiences of introducing both eclipse-based tools and advanced model-based design (MBD) methodology into a system-level Programming Tools course for senior electrical engineering and computer engineering students. Eclipse is an integrated software development environment from IBM. Recently, eclipse-based development tools have been employed by increasing number of software projects in both academy and industry. Many eclipse-based software tools support MBD, which is an emerging development methodology for complex embedded software. The novelty of our work is to introduce students the MBD process in combination w...
Secure memory access protection plays a critical role in making software systems resilient to mal... more Secure memory access protection plays a critical role in making software systems resilient to malicious security attacks. Run-time checking is one of the major strategies that provides safe memory accesses. However, in many security-critical applications, the performance overhead due to the extra computation at runtime is often unacceptable. In order to reduce this cost, we propose a new strategy that minimizes the number of runtime checks by efficiently integrating the results from static software verification. Our strategy applies a verification approach called SAT-based software bounded model checking (BMC) to detect memory access violations as well as to prove the absence of such violations within a given bound statically, followed by a runtime checking to synergistically and completely secure the memory accesses. Our method makes use of static verification in a fine-grained manner, in which redundant runtime checks can be avoided for those safe accesses. Furthermore, with BMC, our strategy can provide the error traces useful for debugging if the instance is proved unsafe.
The Matlab/Simulink language has become the standard formalism for modeling and implementing cont... more The Matlab/Simulink language has become the standard formalism for modeling and implementing control software in areas like avionics, automotive, railway, and process automation. Such software is often safety critical, and bugs have potentially disastrous consequences for people and material involved. We define a verification methodology to assess the correctness of Simulink programs by means of automated test-case generation. In the style of fault- and mutation-based testing, the coverage of a Simulink program by a test suite is defined in terms of the detection of injected faults. Using bounded model checking techniques, we are able to effectively and automatically compute test suites for given fault models. Several optimisations are discussed to make the approach practical for realistic Simulink programs and fault models, and to obtain accurate coverage measures.
Uploads
Papers by Nannan He