10 research outputs found
Pin++: An Object-oriented Framework for Writing Pintools
This paper presents a framework named Pin++. Pin++ is an object-oriented framework that uses template metaprogramming to implement Pintools, which are analysis tools for the dynamic binary instrumentation tool named Pin. The goal of Pin++ is to simplify programming a Pintool and promote reuse of its components across different Pintools. Our results show that Pintools implemented using Pin++ can have a 54% reduction in complexity, increase its modularity, and up to 60% reduction in instrumentation overhead
CORBA-JS: An Open-Standards Framework for Distributed Object Computing over the Web
poster abstractDistributed object computing (DOC) is a well-established software engineering paradigm for implementing distributed real-time and embedded (DRE) systems, such as real-time monitoring systems. Likewise, CORBA is a well-established DOC open-standard used in DRE systems. Due to many technological limitations, DOC was traditionally unavailable in Web-based applications (i.e., stateful applications that communicate over HTTP, and are accessible via a Web browser) without the use of proprietary, custom technologies. The problem with using proprietary, custom technology is it creates fragmentation in the solution space where some solutions are not available to all end-users (e.g., Web sites that only work within a certain Web browser because of the used technology).
With the advent of HTML5 and WebSockets, which is an open-standard for enabling two-way communication over HTTP, DOC now has the necessary technological foundations to be realized within Web applications without the use of proprietary, custom technologies. To date, however, no researchers have attempted to apply DOC over HTTP using well-established DOC open-standards, such as CORBA. This research therefore is an initial investigation into implementing CORBA atop of HTML5 and WebSockets. As part of this research, we are investigating the challenges in realizing the solution, and proposing ways to improve the target programming languages and CORBA specification. Doing so will enable developers to create feature-rich real-time Web applications that improve upon current state-of-the-art approaches, e.g., Asynchronous XML and JavaScript (AJAX), that are resource intensive (e.g., use a lot of CPU, network bandwidth, and memory) and hard to program
Qualitative and Quantitative Evaluation of Static Code Analysis Tools
poster abstractStatic code analysis (SCA) is a methodology of detecting errors in programs without actually compiling
the source code to binary format and executing it on a machine. The main goal of a SCA tool is to aid
developers in quickly identifying errors that can jeopardize the security and integrity of the program. With
the vast array of SCA tools available, each specializing in particular languages, error types, and detection
methodologies, choosing the optimal tool(s) can be a daunting task for any software developer, or
organization. This, however, is not a problem associated only with SCA tools, but applies to any
application domain where many tools exist and a selection of a subset of these tools is needed for
effectively tackling a given problem.
To address this fundamental challenge with selecting the most appropriate SCA tool for a particular
problem, this research is performing a comprehensive study of different available SCA tool, both
commercial and open-source. The end goal of this study is to not only evaluate how different SCA tools
perform with respect to locating specific errors in source code (i.e., the quality of the tool), but to model
the behavior of each SCA tool using quantitative metrics gathered from the source code, such as source
lines of code (SLOC), cyclometic complexity, and function points. The behavioral model can then be
used to prescreen existing (and new) source code, and select the most appropriate SCA tool, or set of SCA
tools, that can identify the most errors in the source code undergoing analysis