84 research outputs found

    Understanding the performance of interactive applications

    Get PDF
    Many if not most computer systems are used by human users. The performance of such interactive systems ultimately affects those users. Thus, when measuring, understanding, and improving system performance, it makes sense to consider the human user's perspective. Essentially, the performance of interactive applications is determined by the perceptible lag in handling user requests. So, when characterizing the runtime of an interactive application we need a new approach that focuses on the perceptible lags rather than on overall and general performance characteristics. Such a new characterization approach should enable a new way to profile and improve the performance of interactive applications. Imagine a way that would seek out these perceptible lags and then investigate the causes of these lags. Performance analysts could simply optimize responsible parts of the software, thus eliminating perceptible lag for interactive applications. Unfortunately, existing profiling approaches either incur significant overhead that makes them impractical for an interactive scenario, or they lack the ability to provide insight into the causes of long latencies. An effective approach for interactive applications has to fulfill several requirements such as an accurate view of the causes of performance problems and insignificant perturbation of the interactive application. We propose a new profiling approach that helps developers to understand and improve the perceptible performance of interactive applications and satisfies the above needs

    Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile App Testing

    Full text link
    Mobile app development involves a unique set of challenges including device fragmentation and rapidly evolving platforms, making testing a difficult task. The design space for a comprehensive mobile testing strategy includes features, inputs, potential contextual app states, and large combinations of devices and underlying platforms. Therefore, automated testing is an essential activity of the development process. However, current state of the art of automated testing tools for mobile apps poses limitations that has driven a preference for manual testing in practice. As of today, there is no comprehensive automated solution for mobile testing that overcomes fundamental issues such as automated oracles, history awareness in test cases, or automated evolution of test cases. In this perspective paper we survey the current state of the art in terms of the frameworks, tools, and services available to developers to aid in mobile testing, highlighting present shortcomings. Next, we provide commentary on current key challenges that restrict the possibility of a comprehensive, effective, and practical automated testing solution. Finally, we offer our vision of a comprehensive mobile app testing framework, complete with research agenda, that is succinctly summarized along three principles: Continuous, Evolutionary and Large-scale (CEL).Comment: 12 pages, accepted to the Proceedings of 33rd IEEE International Conference on Software Maintenance and Evolution (ICSME'17

    Component-Based Tools for Educational Simulations

    Get PDF
    e-Learning is an effective medium for delivering knowledge and skills. In spite of improvements in electronic delivery technologies, e-Learning is still a long way away from offering anything close to efficient and effective learning environments. To improve e-Learning experiences, much literature supports simulation based e-Learning. This thesis begins identifying various types of simulation models and their features that induce experiential learning. We focus on designing and constructing an easy-to-use Discrete Event Simulation (DES) tool for building engaging and informative interactive DES models that allow learners to control the models’ parameters and visualizations through runtime interactions. DES has long been used to support analysis and design of complex systems but its potential to enhance learning has not yet been fully utilized. We first present an application framework and its resulting classes for better structuring DES models. However, importing relevant classes, establishing relationships between their objects and representing lifecycles of various types of active objects in a language that does not support concurrency demand a significant cognitive workload. To improve this situation, we utilize two design patterns to ease model structuring and logic representation (both in time and space) through a drag and drop component approach. The patterns are the Delegation Event Model, used for linking between components and delegating tasks of executing and updating active objects’ lifecycles, and the MVC (Model-View-Controller) pattern, used for connecting the components to their graphical instrumentations and GUIs. Components implementing both design patterns support the process-oriented approach, can easily be tailored to store model states and visualizations, and can be extended to design higher level models through hierarchical simulation development. Evaluating this approach with both teachers and learners using ActionScript as an implementation language in the Flash environment shows that the resulting components not only help model designers with few programming skills to construct DES models, but they also allow learners to conduct various experiments through interactive GUIs and observe the impact of changes to model behaviour through a range of engaging visualizations. Such interactions can motivate learners and make their learning an enjoyable experience

    Java, Java, Java: Object-Oriented Problem Solving

    Get PDF
    Open Access Textbook from Open Textbook Library: Java, Java, Java, 3e was previously published by Pearson Education, Inc. The first edition (2000) and the second edition (2003) were published by Prentice-Hall. In 2010 Pearson Education, Inc. reassigned the copyright to the authors, and we are happy now to be able to make the book available under an open source license. This PDF edition of the book is available under a Creative Commons Attribution 4.0 International License, which allows the book to be used, modified, and shared with attribution: (https://creativecommons.org/licenses/by/4.0/). – Ralph Morelli and Ralph Walde – Hartford, CT – December 30, 201

    Applications of wireless sensor technologies in construction

    Get PDF
    The construction industry is characterised by a number of problems in crucial fields such as health, safety and logistics. Since these problems affect the progress of construction projects, the construction industry has attempted to introduce the use of innovative information and communication technologies on the construction site. Specific technologies which find applicability on the construction site are wireless sensors, and especially radio-frequency identification (RFID) technology. RFID tagging is a technology capable of tracking items. The technology has been applied on the construction site for various applications, such as asset tracking. There are many problems related to health, safety and logistics on the construction site which could be resolved using RFID technology. In the health and safety field, the problems which exist are the monitoring of dangerous areas on the construction site, such as large excavation areas, the collisions between workers and vehicles, between vehicles and equipment and between vehicles, the detection of hazardous substances on the construction site when the construction work has been completed and the collection of hazard notifications from specific areas of the construction site as feedback for the prevention of future accidents. In the logistics field, the tracking of a material during its delivery on the construction site, its transportation to specific subcontractors and its future utilisation as well as the monitoring of the rate of use of materials on the construction site, the checking of the sequence of steel members and the monitoring of the temperature of porous materials are issues which can be realised using RFID technology. In order to facilitate the use of RFID technology for the specific health, safety and logistics problems, a system has been developed. The operation of this system is based on the combined use of hardware and software elements. The hardware elements of the developed system are a wireless local area network, RFID readers and tags. Its software elements are a software development kit based on which, a number of graphical user interfaces have been created for the interaction of the users with the REID tags, and Notepad files which store data collected from REID tags through the graphical user interfaces. Each of the graphical user interfaces is designed in such a way so that it corresponds to the requirements of the health, safety or logistics situation in which it is used. The proposed system has been tested on a simulated construction site by a group of experts and a number of findings have been produced. Specifically, the testing of the proposed system showed that RFID technology can connect the different stages which characterise the construction supply chain. In addition, it showed the capability of the technology to be integrated with construction processes. The testing of the system also revealed the barriers and the enablers to the use of RFID technology in the construction industry. An example of such a barrier is the unwillingness of the people of the construction industry to quit traditional techniques in favour of a new technology. Enablers which enhance the use of RFID technology in the construction industry are the lack of complexity which characterises the operation of RFID tagging and the relatively low cost of RFID tags. In general, RFID technology is an innovative sensor technology which can help the construction industry through its asset tracking ability. However, further research should be done on the improvement of RFID technology on specific characteristics, such as its inability to provide location coordinates and the resilience of the electromagnetic signal emitted by the RFID reader when there are metallic objects around the reader

    Bridging the Gap between Machine and Language using First-Class Building Blocks

    Get PDF
    High-performance virtual machines (VMs) are increasingly reused for programming languages for which they were not initially designed. Unfortunately, VMs are usually tailored to specific languages, offer only a very limited interface to running applications, and are closed to extensions. As a consequence, extensions required to support new languages often entail the construction of custom VMs, thus impacting reuse, compatibility and performance. Short of building a custom VM, the language designer has to choose between the expressiveness and the performance of the language. In this dissertation we argue that the best way to open the VM is to eliminate it. We present Pinocchio, a natively compiled Smalltalk, in which we identify and reify three basic building blocks for object-oriented languages. First we define a protocol for message passing similar to calling conventions, independent of the actual message lookup mechanism. The lookup is provided by a self-supporting runtime library written in Smalltalk and compiled to native code. Since it unifies the meta- and base-level we obtain a metaobject protocol (MOP). Then we decouple the language-level manipulation of state from the machine-level implementation by extending the structural reflective model of the language with object layouts, layout scopes and slots. Finally we reify behavior using AST nodes and first-class interpreters separate from the low-level language implementation. We describe the implementations of all three first-class building blocks. For each of the blocks we provide a series of examples illustrating how they enable typical extensions to the runtime, and we provide benchmarks validating the practicality of the approaches

    Bridging the Gap between Machine and Language using First-Class Building Blocks

    Get PDF
    High-performance virtual machines (VMs) are increasingly reused for programming languages for which they were not initially designed. Unfortunately, VMs are usually tailored to specific languages, offer only a very limited interface to running applications, and are closed to extensions. As a consequence, extensions required to support new languages often entail the construction of custom VMs, thus impacting reuse, compatibility and performance. Short of building a custom VM, the language designer has to choose between the expressiveness and the performance of the language. In this dissertation we argue that the best way to open the VM is to eliminate it. We present Pinocchio, a natively compiled Smalltalk, in which we identify and reify three basic building blocks for object-oriented languages. First we define a protocol for message passing similar to calling conventions, independent of the actual message lookup mechanism. The lookup is provided by a self-supporting runtime library written in Smalltalk and compiled to native code. Since it unifies the meta- and base-level we obtain a metaobject protocol (MOP). Then we decouple the language-level manipulation of state from the machine-level implementation by extending the structural reflective model of the language with object layouts, layout scopes and slots. Finally we reify behavior using AST nodes and first-class interpreters separate from the low-level language implementation. We describe the implementations of all three first-class building blocks. For each of the blocks we provide a series of examples illustrating how they enable typical extensions to the runtime, and we provide benchmarks validating the practicality of the approaches

    Migration of Applications across Object-Oriented APIs

    Get PDF
    Software developers often encapsulate reusable code as Application Programming Interfaces (APIs). The co-evolution of applications and APIs may motivate an API migration: the replacement of application dependencies to an original API by dependencies to an alternative API that provides similar functionality and abstractions. In this dissertation, we investigate issues associated with API migration in object-oriented systems, with special focus on wrapping approaches. We present two studies and a set of developer interviews that elicit issues in the process and techniques used in API migration in practice. The results suggest that the most pressing issues relate to discovery and specification of differences between APIs, and to assessment of migration correctness. This dissertation introduces techniques and a method to address these issues. We propose the use of design patterns to support the specification of API wrappers. API wrapping design patterns encode solutions to common wrapping design problems. We present an initial catalog of such patterns that were abstracted from programming idioms found in existing API wrappers. We introduce the concept of compliance testing for API migration, a form of automated testing. Compliance testing supports the discovery of behavioral differences between a wrapper and its corresponding original API, as well as assessment of wrapper correctness. Compliance testing uses API contracts and assertion tunings to explicitly capture and enforce the notion of a “good enough” wrapper that is informal in practice. We present the Koloo method for wrapper-based API migration. The method prescribes practical steps to use compliance testing as a means to elicit the requirements for the API migration, and to assess its correctness. Koloo fits within the iterative, sample-driven general API migration process usually followed by developers in practice. We evaluate the Koloo method in an empirical study. The subjects cover the domains of XML processing, GUI programming and bytecode engineering. The results provide evidence that Koloo is superior to alternative methods in driving the development of a wrapper that is tailored for the application under migration. The results also show that API contracts help driving the evolution of the wrapper, and assertion tuning is necessary to relax the semantics of strict equality contracts, and useful to compromise on features that are difficult to emulate perfectly. Finally, we validate that the proposed design patterns are used in practical wrappers

    Quantifying and Predicting the Influence of Execution Platform on Software Component Performance

    Get PDF
    The performance of software components depends on several factors, including the execution platform on which the software components run. To simplify cross-platform performance prediction in relocation and sizing scenarios, a novel approach is introduced in this thesis which separates the application performance profile from the platform performance profile. The approach is evaluated using transparent instrumentation of Java applications and with automated benchmarks for Java Virtual Machines
    • 

    corecore