James Clause

ORCID: 0000-0003-2728-3840
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Green IT and Sustainability
  • Software Testing and Debugging Techniques
  • Software Engineering Research
  • Software Reliability and Analysis Research
  • Advanced Malware Detection Techniques
  • Software System Performance and Reliability
  • Parallel Computing and Optimization Techniques
  • Caching and Content Delivery
  • Security and Verification in Computing
  • Energy Harvesting in Wireless Networks
  • Data Quality and Management
  • Natural Language Processing Techniques
  • Cloud Computing and Resource Management
  • Computational Physics and Python Applications
  • Personal Information Management and User Behavior
  • Web Application Security Vulnerabilities
  • Mathematics, Computing, and Information Processing
  • IoT and Edge/Fog Computing
  • Innovative Human-Technology Interaction
  • Software Engineering Techniques and Practices
  • Distributed systems and fault tolerance
  • Peer-to-Peer Network Technologies
  • Diamond and Carbon-based Materials Research
  • Educational Technology and Assessment
  • Digital Games and Media

University of Delaware
2013-2023

Georgia Institute of Technology
2007-2011

University of Pittsburgh
2005

Dynamic taint analysis is gaining momentum. Techniques based on dynamic tainting have been successfully used in the context of application security, and now their use also being explored different areas, such as program understanding, software testing, debugging. Unfortunately, most existing approaches for are defined an ad-hoc manner, which makes it difficult to extend them, experiment with adapt them new contexts. Moreover, focused data-flow only do not consider due control flow, limits...

10.1145/1273463.1273490 article EN 2007-07-09

Reducing the energy usage of software is becoming more important in many environments, particular, battery-powered mobile devices, embedded systems and data centers. Recent empirical studies indicate that engineers can support goal reducing by making design implementation decisions ways take into consideration how such impact an application. However, large number possible choices lack feedback information available to necessitates some form automated decision-making support. This paper...

10.1145/2568225.2568297 article EN Proceedings of the 44th International Conference on Software Engineering 2014-05-20

The energy consumption of software is an increasing concern as the use mobile applications, embedded systems, and data center-based services expands. While research in green engineering correspondingly increasing, little known about current practices perspectives engineers field. This paper describes first empirical study how practitioners think when they write requirements, design, construct, test, maintain their software. We report findings from a quantitative, targeted survey 464 ABB,...

10.1145/2884781.2884810 article EN Proceedings of the 44th International Conference on Software Engineering 2016-05-13

Context: Code refactoring's benefits to understandability, maintainability and extensibility are well known enough that automated support for refactoring is now common in IDEs. However, the decision apply such transformations currently performed without regard impacts of refactorings on energy consumption. This primarily due a lack information tools provide relevant developers. Unfortunately, concerns about efficiency rapidly becoming high priority concern many environments, including...

10.1145/2652524.2652538 article EN 2014-09-05

It is difficult to fully assess the quality of software in- house, outside actual time and context in which it will execute after deployment. As a result, common for manifest field failures, failures that occur on user machines due untested behavior. Field are typically recreate investigate developer platforms, existing techniques based crash reporting provide only limited support this task. In paper, we present technique recording, reproducing, minimizing failing executions enables supports...

10.1109/icse.2007.10 article EN Proceedings/Proceedings - International Conference on Software Engineering 2007-05-01

As the use of computers has grown, so too concern about amount power they consume. Data centers, for example, are limited in scalability as struggle with soaring energy costs from many large companies relying on fast, reliable, and round-the-clock computing services. On large-scale clusters, like data even a small drop consumption can have effects. Across contexts, reducing consumed by become major focus. In this paper, we present new approach mapping software design to empirical results...

10.1109/greens.2012.6224257 article EN 2012-06-01

Most existing leak detection techniques for C and C++ applications only detect the existence of memory leaks. They do not provide any help fixing underlying management errors. In this paper, we present a new technique that detects leaks, but also points developers to locations where errors may be fixed. Our tracks pointers dynamically-allocated areas and, each area, records several pieces relevant information. This information is used identify in an execution leaks occur. To investigate our...

10.1145/1806799.1806874 article EN 2010-05-01

As the use of computers has grown, so too concern about amount power they consume. Data centers, for example, are limited in scalability as struggle with soaring energy costs from many large companies relying on fast, reliable, and round-the-clock computing services. On large-scale clusters, like data even a small drop consumption can have effects. Across contexts, reducing consumed by become major focus. In this paper, we present new approach mapping software design to empirical results...

10.5555/2663779.2663789 article EN 2012-06-03

Abstract Software piracy is an important concern for application developers. Such concerns are especially relevant in mobile development, where rates can be greater than 90%. The most common approach used by developers to prevent code obfuscation. However, the decision apply such transformations currently made without regard impacts of obfuscations on another area increasing developers, energy usage. Because both software and battery life concerns, must strike a balance between protecting...

10.1002/smr.1762 article EN Journal of Software Evolution and Process 2016-01-06

Programs written in languages that provide direct access tomemory through pointers often contain memory-related faults, which may cause non-deterministic failures and even security vulnerabilities. In this paper, we present a new technique based on dynamic tainting for protecting programs from illegal memory accesses. When is allocated, at runtime, our taints both the corresponding pointer using same taint mark. Taint marks are then suitably propagated while program executes checked every...

10.1145/1321631.1321673 article EN 2007-11-05

Most existing automated debugging techniques focus on reducing the amount of code to be inspected and tend ignore an important component software failures: inputs that cause failure manifest. In this paper, we present a new technique based dynamic tainting for automatically identifying subsets program's are relevant failure. The (1) marks program when they enter application, (2) tracks them as propagate during execution, (3) identifies, observed failure, subset potentially To investigate...

10.1145/1572272.1572301 article EN 2009-07-19

Writing oracles is challenging. As a result, developers often create that check too little, resulting in tests are unable to detect failures, or much, brittle and difficult maintain. In this paper we present new technique for automatically analyzing test oracles. The based on dynamic tainting detects both assertions—assertions depend values derived from uncontrolled inputs—and unused inputs—inputs provided by the not checked an assertion. We also presented OraclePolish, implementation of can...

10.1145/2635868.2635917 article EN 2014-11-04

Software piracy is an important concern for application developers. Such concerns are especially relevant in mobile development, where rates can approach 90%. The most commonly used by developers preventing code obfuscation. However, the decision to apply such transformations currently made without regard impacts of obfuscations on another area increasing developers: energy consumption. Because both software and battery life concerns, must strike a balance between protecting their...

10.1109/icsme.2014.35 article EN 2014-09-01

In situ testing techniques have become an important means of ensuring the reliability embedded systems after they are deployed in field. However, these do not help testers optimize energy consumption their test suites, which can needlessly waste limited battery power systems. this work, we extend prior for suite minimization such a way as to allow generate energy-efficient, minimized suites with only minimal modifications existing work flow. We perform extensive empirical evaluation our...

10.1145/2610384.2610414 article EN 2014-07-11

Producing reliable and robust software has become one of the most important development concerns in recent years. Testing is a process by which quality can be assured through collection information. While testing improve reliability, current tools typically are inflexible have high over-heads, making it challenging to test large projects. In this paper, we describe new scalable flexible framework for programs with novel demand-driven approach based on execution paths implement coverage. This...

10.1145/1062455.1062496 article EN 2005-01-01

Privacy and security concerns have adversely affected the usefulness of many types techniques that leverage information gathered from deployed applications. To address this issue, we present an approach for automatically anonymizing failure-inducing inputs builds on a previously developed technique. Given input I causes failure f, our generates anonymized I′ is different but still f. can thus be sent to developers enable them debug f without having know I. We implemented in prototype tool,...

10.1145/1985793.1985797 article EN 2011-05-21

During maintenance, developers often need to understand the purpose of a test. One most potentially useful sources information for understanding test is its name. Ideally, names are descriptive in that they accurately summarize both scenario and expected outcome Despite benefits being descriptive, fall short this goal. In paper we present new approach automatically generating existing bodies. Using combination natural-language program analysis text generation, technique creates test's...

10.1145/2970276.2970342 article EN 2016-08-25

Existing specification-based testing techniques require specifications that either do not exist or are too difficult to create. As a result, they often fall short of their goal helping developers test expected behaviors. In this paper we present novel, natural language-based approach exploits the descriptive nature names generate templates. Similar how modern IDEs simplify development by providing templates for common constructs such as loops, can save time and lower cognitive barrier...

10.1109/ase.2015.68 article EN 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE) 2015-11-01

As the use of computers has grown, so too concern about amount power that they consume. Data centers, for example, are limited in scalability as struggle with soaring energy costs many large companies rely on fast, reliable, and round-the-clock computing services. On large-scale clusters, like data even a small drop consumption can have effects. Across contexts, reducing consumed by become major focus. In this paper, we present new approach tool mapping software design to describe how such...

10.1109/energytech.2012.6304705 article EN IEEE Energytech 2012-05-01

Programs written in languages allowing direct access to memory through pointers often contain memory-related faults, which cause nondeterministic failures and security vulnerabilities. We present a new dynamic tainting technique detect illegal accesses. When is allocated, at runtime, we taint both the corresponding pointer using same mark. Taint marks are then propagated checked every time address m accessed p; if associated differ, an reported. To allow always-on checking low overhead,...

10.1109/tc.2010.215 article EN IEEE Transactions on Computers 2010-11-09

Changing UI colors is an effective approach for reducing app energy usage devices with OLED displays. Unfortunately, even when care taken to ensure that visual properties of the user interface (UI) are maintained (e.g., contrast ratios between text and background elements), such changes often compromise aesthetics application. In this paper, we investigate whether indistinguishable changes, less likely aesthetics, can also result in significant savings. To answer question, performed...

10.1109/mobilesoft.2017.17 article EN 2017-05-01

Software engineers make decisions about the design of software they are creating on a daily basis. These may impact application in terms efficiency, usability, flexibility, etc. Different competing therefore often evaluated their projected quality metrics prior to implementation. Recently energy has become concern for systems, ranging from mobile devices large data centers. Additionally, it been recognized that executing computing device can have significant device's consumption. This raises...

10.5555/2662693.2662697 article EN 2013-05-20
Coming Soon ...