80,721 research outputs found

    X-Klaim and Klava: Programming Mobile Code

    Get PDF
    AbstractHighly distributed networks have now become a common infrastructure for a new kind of wide-area distributed applications whose key design principle is network awareness, namely the ability to deal with dynamic changes of the network environment. Network-aware computing has called for new programming languages that exploit the mobility paradigm as the basic interaction mechanism. In this paper we present the Klaim (Kernel Language for Agent Interaction and Mobility) framework for programming mobile code applications, namely the X Klaim programming language and the Java-based run-time system Klava. In particular, we illustrate how Klava handles mobile code. Finally, an example is shown that is implemented using this framework

    User Interface Matters : Analysing the Complexity of Mobile Applications from a Visual Perspective

    Get PDF
    Product-centric techniques to analyze mobile applications leverage traditional source code analysis, size, market success, complexity, and others. Many of these techniques converge in the strategy of evaluating metrics taken from the source code that delivers the functionality of the software product. However, when following the Model-View-Controller (MVC) architecture, mobile applications are typically constructed by a compound of at least two programming languages, one to deliver the functionality and the other to describe the visual aspects. The latter is commonly left out from source code analysis, even though critical parts of the application are present in the graphic User Interface (UI). In this paper, we identify an opportunity to strengthen the product-centric mobile app analysis by incorporating UI metrics. This approach aims to enhance the expressiveness of source code metrics and deliver a more comprehensive analysis of the complexity, maintainability, and effort estimation of a mobile app. To introduce the concept, we present a case study realized using a block-based programming language to create mobile apps, in which we describe and calculate functional and UI metrics, discover commonalities and differences, discuss traits, and open tracks for further research.Peer reviewe

    Sidebar- Programming Commercial Robots

    Get PDF
    P. 125-132Manual systems require the user/programmer to directly enter the desired behaviour of the robot, usually using a graphical or text-based programming language, as shown in Fig. 1. Text-based systems are either controller-specific languages, generic procedural languages, or behavioural languages, which typically differ by the flexibility and method of expression of the system. Graphical languages [BKS02, BI01] use a graph, flow-chart or diagram based graphical interface to programming, sacrificing some flexibility and expressiveness for ease of use. The user/programmer has little or no direct control over the robot code in an automatic programming system, which may acquire the program by learning, programming by demonstration (PbD), or by instruction, as indicated in Fig. 2. Often automatic systems are used “online,” with a running robot, although a simulation can also be used. In this sidebar we will focus on the characteristics of commercial programming environments. Simple robots can be programmed directly using their own operating systems. More sophisticated robots include SDKs to simplify the programming of their robots. Mobile robots programming environments vs. industrial manipulators are also presente

    Persistent Contextual Values as Inter-Process Layers

    Full text link
    Mobile applications today often fail to be context aware when they also need to be customizable and efficient at run-time. Context-oriented programming allows programmers to develop applications that are more context aware. Its central construct, the so-called layer, however, is not customizable. We propose to use novel persistent contextual values for mobile development. Persistent contextual values automatically adapt their value to the context. Furthermore they provide access without overhead. Key-value configuration files contain the specification of contextual values and the persisted contextual values themselves. By modifying the configuration files, the contextual values can easily be customized for every context. From the specification, we generate code to simplify development. Our implementation, called Elektra, permits development in several languages including C++ and Java. In a benchmark we compare layer activations between threads and between applications. In a case study involving a web-server on a mobile embedded device the performance overhead is minimal, even with many context switches.Comment: 8 pages Mobile! 16, October 31, 2016, Amsterdam, Netherland

    Introduction of an Assistance System to Support Domain Experts in Programming Low-code to Leverage Industry 5.0

    Full text link
    The rapid technological leaps of Industry 4.0 increase the pressure and demands on humans working in automation, which is one of the main motivators of Industry 5.0. In particular, automation software development for mechatronic systems becomes increasingly challenging, as both domain knowledge and programming skills are required for high-quality, maintainable software. Especially for small companies from automation and robotics without dedicated software engineering departments, domain-specific low-code platforms become indispensable that enable domain experts to develop code intuitively using visual programming languages, e.g., for tasks such as retrofitting mobile machines. However, for extensive functionalities, visual programs may become overwhelming due to the scaling-up problem. In addition, the ever-shortening time-to-market increases the time pressure on programmers. Thus, an assistance system concept is introduced that can be implemented by low-code platform suppliers based on combining data mining and static code analysis. Domain experts are supported in developing low-code by targeted recommendations, metric-based complexity measurement, and reducing complexity by encapsulating functionalities. The concept is implemented for the industrial low-code platform HAWE eDesign to program hydraulic components in mobile machines, and its benefits are confirmed in a user study and an industrial expert workshop.Comment: 8 pages, https://ieeexplore.ieee.org/abstract/document/983945

    Comparative analysis of Java and Dart programming languages in terms of suitability for creating mobile applications

    Get PDF
    This paper presents the results of a comparative analysis of Java and Dart programming languages in terms of suitability for creating mobile applications. The research was carried out on two proprietary applications with identical functionalities, which were implemented in the analyzed languages. The analysis covers areas such as: CPU load, RAM consumption, battery consumption and program execution time. Additionally, on the basis of proprietary applications, the code structure, number of lines of code and community support were considered. The results of the analysis indicate that it is difficult to clearly determine which language is more efficient, so the choice between Java and Dart should be analytical and best suited to the requirements of a given application

    Case Study: Using AI-Assisted Code Generation In Mobile Teams

    Full text link
    The aim of this study is to evaluate the performance of AI-assisted programming in actual mobile development teams that are focused on native mobile languages like Kotlin and Swift. The extensive case study involves 16 participants and 2 technical reviewers, from a software development department designed to understand the impact of using LLMs trained for code generation in specific phases of the team, more specifically, technical onboarding and technical stack switch. The study uses technical problems dedicated to each phase and requests solutions from the participants with and without using AI-Code generators. It measures time, correctness, and technical integration using ReviewerScore, a metric specific to the paper and extracted from actual industry standards, the code reviewers of merge requests. The output is converted and analyzed together with feedback from the participants in an attempt to determine if using AI-assisted programming tools will have an impact on getting developers onboard in a project or helping them with a smooth transition between the two native development environments of mobile development, Android and iOS. The study was performed between May and June 2023 with members of the mobile department of a software development company based in Cluj-Napoca, with Romanian ownership and management.Comment: 8 pages, 10 figures, 1 table, ICCP conferenc

    Using a Dynamic Domain-Specific Modeling Language for the Model-Driven Development of Cross-Platform Mobile Applications

    Get PDF
    There has been a gradual but steady convergence of dynamic programming languages with modeling languages. One area that can benefit from this convergence is modeldriven development (MDD) especially in the domain of mobile application development. By using a dynamic language to construct a domain-specific modeling language (DSML), it is possible to create models that are executable, exhibit flexible type checking, and provide a smaller cognitive gap between business users, modelers and developers than more traditional model-driven approaches. Dynamic languages have found strong adoption by practitioners of Agile development processes. These processes often rely on developers to rapidly produce working code that meets business needs and to do so in an iterative and incremental way. Such methodologies tend to eschew “throwaway” artifacts and models as being wasteful except as a communication vehicle to produce executable code. These approaches are not readily supported with traditional heavyweight approaches to model-driven development such as the Object Management Group’s Model-Driven Architecture approach. This research asks whether it is possible for a domain-specific modeling language written in a dynamic programming language to define a cross-platform model that can produce native code and do so in a way that developer productivity and code quality are at least as effective as hand-written code produced using native tools. Using a prototype modeling tool, AXIOM (Agile eXecutable and Incremental Objectoriented Modeling), we examine this question through small- and mid-scale experiments and find that the AXIOM approach improved developer productivity by almost 400%, albeit only after some up-front investment. We also find that the generated code can be of equal if not better quality than the equivalent hand-written code. Finally, we find that there are significant challenges in the synthesis of a DSML that can be used to model applications across platforms as diverse as today’s mobile operating systems, which point to intriguing avenues of subsequent research
    corecore