Moonjoo Kim
University of Pennsylvania
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Moonjoo Kim.
euromicro conference on real time systems | 1999
Moonjoo Kim; Mahesh Viswanathan; Hanêne Ben-Abdallah; Sampath Kannan; Insup Lee; Oleg Sokolsky
We describe the Monitoring and Checking (MaC) framework which provides assurance on the correctness of an execution of a real-time system at runtime. Monitoring is performed based on a formal specification of system requirements. MaC bridges the gap between formal specification, which analyzes designs rather than implementations, and testing, which validates implementations but lacks formality. An important aspect of the framework is a clear separation between implementation-dependent description of monitored objects and high-level requirements specification. Another salient feature is automatic instrumentation of executable code. The paper presents an overview of the framework, languages to express monitoring scripts and requirements, and a prototype implementation of MaC targeted at systems implemented in Java.
runtime verification | 2001
Moonjoo Kim; Sampath Kannan; Insup Lee; Oleg Sokolsky; Mahesh Viswanathan
Abstract We describe Java-MaC, a prototype implementation of the Monitoring and Checking (MaC) architecture for Java programs. The MaC architecture provides assurance about the correct execution of target programs at run-time. Monitoring and checking is performed based on a formal specification of system requirements. MaC bridges the gap between formal verification, which ensures the correctness of a design rather than an implementation, and testing, which only partially validates an implementation. Java-MaC provides a lightweight formal method solution as a viable complement to the current heavyweight formal methods. An important aspect of the architecture is the clear separation between monitoring implementation-dependent low-level behaviors and checking high-level behaviors against a formal requirements specification. Another salient feature is automatic instrumentation of executable codes. The paper presents an overview of the MaC architecture and a prototype implementation Java-MaC.
IEEE Transactions on Software Engineering | 2002
Karthikeyan Bhargavan; Carl A. Gunter; Moonjoo Kim; Insup Lee; Davor Obradovic; Oleg Sokolsky; Mahesh Viswanathan
Network protocols are often analyzed using simulations. We demonstrate how to extend such simulations to check propositions expressing safety properties of network event traces in an extended form of linear temporal logic. Our technique uses the INS simulator together with a component of the MaC system to provide a uniform framework. We demonstrate its effectiveness by analyzing simulations of the ad hoc on-demand distance vector (AODV) routing protocol for packet radio networks. Our analysis finds violations of significant properties and we discuss the faults that cause them. Novel aspects of our approach include modest integration costs with other simulation objectives such as performance evaluation, greatly increased flexibility in specifying properties to be checked and techniques for analyzing complex traces of alarms raised by the monitoring software.
Electronic Notes in Theoretical Computer Science | 2002
Moonjoo Kim; Insup Lee; Usa Sammapun; Jangwoo Shin; Oleg Sokolsky
The MaC system has been developed to provide assurance that a target program is running correctly with respect to formal requirements specification. This is achieved by monitoring and checking the execution of the target program at run-time. MaC bridges the gap between formal verification, which ensures the correctness of a design rather than an implementation, and testing, which only partially validates an implementation. One weakness of the MaC system is that it can detect property violations but cannot provide any feedback to the running system. To remedy this weakness, the MaC system has been extended with a feedback capability. The resulting system is called MaCS (Monitoring and Checking with Steering). The feedback component uses the information collected during monitoring and checking to steer the application back to a safe state after an error occurs. We present a case study where MaCS is used in a control system that keeps an inverted pendulum upright. MaCS detects faults in controllers and performs dynamic reconfiguration of the control system using steering.
runtime verification | 2002
Moonjoo Kim; Sampath Kannan; Insup Lee; Oleg Sokolsky; Mahesh Viswanathan
Abstract A run-time monitor shares computational resources, such as memory and CPU time, with the target program. Furthermore, heavy computation performed by a monitor for checking target programs execution with respect to requirement properties can be a bottleneck to the target programs execution. Therefore, computational characteristics of run-time monitoring cause a significant impact on the target programs execution. We investigate computational issues on run-time monitoring. The first issue is the power of run-time monitoring. In other words, we study the class of properties run-time monitoring can evaluate. The second issue is computational complexity of evaluating properties written in process algebraic language. Third, we discuss sound abstraction of the target programs execution, which does not change the result of property evaluation. This abstraction can be used as a technique to reduce monitoring overhead. Theoretical understanding obtained from these issues affects the implementation of Java-MaC, a toolset for the run-time monitoring and checking of Java programs. Finally, we demonstrate the abstraction-based overhead reduction technique implemented in Java-MaC through a case study.
workshop on object-oriented real-time dependable systems | 1999
Oleg Sokolsky; Sampath Kannan; Moonjoo Kim; Insup Lee; Mahesh Viswanathan
Presents an approach to enhance the fault tolerance of real-time systems through steering. Steering means external alteration of the systems behavior in response to a deviation from requirements. The steering technique is embedded into a framework of monitoring and checking (MaC). MaC allows the users to perform runtime analysis of the current execution of a system with respect to formally specified requirements. We describe our current and future work on steering, including the language to specify steering actions and system instrumentation that enables steering. A prototype implementation for the monitoring and steering of Java programs is also presented.
parallel and distributed processing techniques and applications | 1999
Insup Lee; Sampath Kannan; Moonjoo Kim; Oleg Sokolsky; Mahesh Viswanathan
Archive | 1998
Insup Lee; Hanêne Ben-Abdallah; Sampath Kannan; Moonjoo Kim; Oleg Sokolsky; Mahesh Viswanathan
Archive | 2001
Moonjoo Kim; Sampath Kannan; Insup Lee
international symposium on software testing and analysis | 2000
Karthikeyan Bhargavan; Carl A. Gunter; Moonjoo Kim; Insup Lee; Davor Obradovic; Oleg Sokolsky; Mahesh Viswanathan