3,555 research outputs found

    Overcoming Language Dichotomies: Toward Effective Program Comprehension for Mobile App Development

    Full text link
    Mobile devices and platforms have become an established target for modern software developers due to performant hardware and a large and growing user base numbering in the billions. Despite their popularity, the software development process for mobile apps comes with a set of unique, domain-specific challenges rooted in program comprehension. Many of these challenges stem from developer difficulties in reasoning about different representations of a program, a phenomenon we define as a "language dichotomy". In this paper, we reflect upon the various language dichotomies that contribute to open problems in program comprehension and development for mobile apps. Furthermore, to help guide the research community towards effective solutions for these problems, we provide a roadmap of directions for future work.Comment: Invited Keynote Paper for the 26th IEEE/ACM International Conference on Program Comprehension (ICPC'18

    Automating Software Development for Mobile Computing Platforms

    Get PDF
    Mobile devices such as smartphones and tablets have become ubiquitous in today\u27s computing landscape. These devices have ushered in entirely new populations of users, and mobile operating systems are now outpacing more traditional desktop systems in terms of market share. The applications that run on these mobile devices (often referred to as apps ) have become a primary means of computing for millions of users and, as such, have garnered immense developer interest. These apps allow for unique, personal software experiences through touch-based UIs and a complex assortment of sensors. However, designing and implementing high quality mobile apps can be a difficult process. This is primarily due to challenges unique to mobile development including change-prone APIs and platform fragmentation, just to name a few. in this dissertation we develop techniques that aid developers in overcoming these challenges by automating and improving current software design and testing practices for mobile apps. More specifically, we first introduce a technique, called Gvt, that improves the quality of graphical user interfaces (GUIs) for mobile apps by automatically detecting instances where a GUI was not implemented to its intended specifications. Gvt does this by constructing hierarchal models of mobile GUIs from metadata associated with both graphical mock-ups (i.e., created by designers using photo-editing software) and running instances of the GUI from the corresponding implementation. Second, we develop an approach that completely automates prototyping of GUIs for mobile apps. This approach, called ReDraw, is able to transform an image of a mobile app GUI into runnable code by detecting discrete GUI-components using computer vision techniques, classifying these components into proper functional categories (e.g., button, dropdown menu) using a Convolutional Neural Network (CNN), and assembling these components into realistic code. Finally, we design a novel approach for automated testing of mobile apps, called CrashScope, that explores a given android app using systematic input generation with the intrinsic goal of triggering crashes. The GUI-based input generation engine is driven by a combination of static and dynamic analyses that create a model of an app\u27s GUI and targets common, empirically derived root causes of crashes in android apps. We illustrate that the techniques presented in this dissertation represent significant advancements in mobile development processes through a series of empirical investigations, user studies, and industrial case studies that demonstrate the effectiveness of these approaches and the benefit they provide developers

    Emergency Button Application - Android Systems

    Get PDF
    The investigation of emergency situations is a complex field of study which involves different perspectives. Individual‘s and public‘s safety is a very important issue, the established emergency response system is the main core of resolving these emergency situations, we are already familiar with the normal emergency reporting system like calling 911 or using emergency phones, But this project aims to create an application that can assist users in emergency situations and provide users with instant details of their location to send to family, friends, or authorities in panic & emergency situations, another option other than public emergency phone systems and other forms of reporting in emergency situations for an easier and friendlier approach, thus improving public safety. The methodology used to complete this application is agile software development methodology which is based on iterative & incremental development that is rapid & flexible. The tools for this project include Eclipse Indigo which is a popular platform to develop Android Applications with the aid of a variety of software tools in design and user friendly software development such as Android ADT tools. In conclusion, the application‘s is successfully developed and met its main objective which is to help users broadcast their message in an emergency situation whenever they need help and can‘t easily get it or find it but with today‘s world mobile software development, public safety shall be more personalized

    Augmented reality applied to language translation

    Get PDF
    Being a tourist in a foreign country is an adventure full of memories and experiences, but it can be truly challenging when it comes to communication. Finding yourself in an unknown place, where all the road signs and guidelines have such different characters, may end up in a dead end or with some unexpected results. Then, what if we could use a smartphone to read that restaurant menu? Or even find the right department in a mall? The applications are so many and the market is ready to invest and give opportunities to creative and economic ideas. The dissertation intends to explore the field of Augmented Reality, while helping the user to enrich his view with information. Giving the ability to look around, detect the text in the surroundings and read its translation in our own dialect, is a great step to overcome language issues. Moreover, using smartphones at anyone’s reach, or wearing smartglasses that are even less intrusive, gives a chance to engage a complex matter in a daily routine. This technology requires flexible, accurate and fast Optical Character Recognition and Translation systems, in an Internet of Things scenery. Quality and precision is a must, yet to be further developed and improved. Entering in a realtime digital data environment, will support great causes and aid the progress and evolution of many intervention areas

    Mobile Biometric Challenge Recording Interface

    Get PDF
    Autentimine arvutivĂ”rkudes on protsess, mis ĂŒritab kontrollida digitaalset identiteeti, kasutades paroole. Parooli olemasolu aitab tagada kasutaja autentsuse. Kasutajaid saab biomeetiriliselt kindlaks teha ka nende sĂ”rmejĂ€lje, hÀÀle vĂ”i nĂ€o jĂ€rgi kasutades kindlat riistvara ja parooli toimingu kinnitamiseks. Samas, juhul kui paljud kasutajad on seotud sedatĂŒĂŒpi autentimisega, vĂ”ib selline lahendus muutuda liiga aeglaseks ja suhteliselt kulukaks. SeetĂ”ttu vajab edukas biomeetriline autentimise sĂŒsteem pĂ”hjalikku lĂ€bimĂ”eldust paljude tegurite osas (PBworks, 2007). Minu magistritöö eesmĂ€rk on uurida erinevaid biomeetrilise autentimise meetodeid, luues kirjeldused mobiilseks kasutamiseks ning töötada vĂ€lja ja realiseerida vastav prototĂŒĂŒp. Kui biomeetrilise testi andmed on kogutud, nĂ€iteks video vĂ”i hale kaudu, siis saadud andmed lĂ€bivad töötluse, peale mida kasutatakse ainult unikaalset osa andmetest. See osa andmetest salvestatakse andmebaasi. Kuid, enne andmete kasutamist, tuleb telefonis rakendada mitmeid meetmeid. Biomeetria puhul kasutatakse kahte peamist stsenaariumit: kontrollimine ja isikuandmete tuvastamine. Kontrollimise puhul vĂ”rreldakse ainult ĂŒhte andmebaasi, mis on kirjeldatav kui ĂŒks-ĂŒhele vĂ”rdulus. Isikuandmete tuvastamisel kasutatakse ĂŒks-mitmele andmebaaside vĂ”rdlust. MĂ”lemal juhul peavad salvestatud andembaasid toetama vastavaid stsenaariume. Magistritöös valmis vastav kasutajaliides nĂ”utud omadustega.Mobile Biometric Challenge Recording Interface In computer network, authentication is the process of attempting to verify the digital identity using login passwords. Knowledge of the password is presumed to guarantee that the user is authentic. Likewise, Users may biometrically authenticate via their fingerprint, voice, face, or using provided hardware and password to confirm the operation. However, when many of users are involved this type of authentication is not suitable because this solution may become too slow and relatively expensive. In brief, successful distribution of a biometric authentication system needs careful deliberation of many factors (PBworks, 2007). My thesis core will be to study different biometric authentication techniques, derive requirements from these for a mobile interface, and implement and refine an interface prototype. When a biometric sample or trait is acquired, such as a video or a voice sample, the captured data goes through some amount of processing to prepare it for the extraction of a relatively small set of numbers, which represent the unique aspects of the data. This extracted set of data in record called a recording template. However, to prepare this recording optimally for biometric algorithms several measures already have to be taken on the phone. There are two basic usage scenarios for biometrics, known as verification and identification. Verification is the scenario where a newly created template is compared with only one other template in a database, which is described as an one-to-one comparison. The second biometric usage scenario is called identification, which is used when it is necessary to compare a newly created template too many enrolled templates, which is described as an one-to-many comparison

    Amulet: An Energy-Efficient, Multi-Application Wearable Platform

    Get PDF
    Wearable technology enables a range of exciting new applications in health, commerce, and beyond. For many important applications, wearables must have battery life measured in weeks or months, not hours and days as in most current devices. Our vision of wearable platforms aims for long battery life but with the flexibility and security to support multiple applications. To achieve long battery life with a workload comprising apps from multiple developers, these platforms must have robust mechanisms for app isolation and developer tools for optimizing resource usage.\r\n\r\nWe introduce the Amulet Platform for constrained wearable devices, which includes an ultra-low-power hardware architecture and a companion software framework, including a highly efficient event-driven programming model, low-power operating system, and developer tools for profiling ultra-low-power applications at compile time. We present the design and evaluation of our prototype Amulet hardware and software, and show how the framework enables developers to write energy-efficient applications. Our prototype has battery lifetime lasting weeks or even months, depending on the application, and our interactive resource-profiling tool predicts battery lifetime within 6-10% of the measured lifetime

    Topic driven testing

    Get PDF
    Modern interactive applications offer so many interaction opportunities that automated exploration and testing becomes practically impossible without some domain specific guidance towards relevant functionality. In this dissertation, we present a novel fundamental graphical user interface testing method called topic-driven testing. We mine the semantic meaning of interactive elements, guide testing, and identify core functionality of applications. The semantic interpretation is close to human understanding and allows us to learn specifications and transfer knowledge across multiple applications independent of the underlying device, platform, programming language, or technology stack—to the best of our knowledge a unique feature of our technique. Our tool ATTABOY is able to take an existing Web application test suite say from Amazon, execute it on ebay, and thus guide testing to relevant core functionality. Tested on different application domains such as eCommerce, news pages, mail clients, it can trans- fer on average sixty percent of the tested application behavior to new apps—without any human intervention. On top of that, topic-driven testing can go with even more vague instructions of how-to descriptions or use-case descriptions. Given an instruction, say “add item to shopping cart”, it tests the specified behavior in an application–both in a browser as well as in mobile apps. It thus improves state-of-the-art UI testing frame- works, creates change resilient UI tests, and lays the foundation for learning, transfer- ring, and enforcing common application behavior. The prototype is up to five times faster than existing random testing frameworks and tests functions that are hard to cover by non-trained approaches.Moderne interaktive Anwendungen bieten so viele Interaktionsmöglichkeiten, dass eine vollstĂ€ndige automatische Exploration und das Testen aller Szenarien praktisch unmöglich ist. Stattdessen muss die Testprozedur auf relevante KernfunktionalitĂ€t ausgerichtet werden. Diese Arbeit stellt ein neues fundamentales Testprinzip genannt thematisches Testen vor, das beliebige Anwendungen u ̈ber die graphische OberflĂ€che testet. Wir untersuchen die semantische Bedeutung von interagierbaren Elementen um die Kernfunktionenen von Anwendungen zu identifizieren und entsprechende Tests zu erzeugen. Statt typischen starren Testinstruktionen orientiert sich diese Art von Tests an menschlichen AnwendungsfĂ€llen in natĂŒrlicher Sprache. Dies erlaubt es, Software Spezifikationen zu erlernen und Wissen von einer Anwendung auf andere zu ĂŒbertragen unabhĂ€ngig von der Anwendungsart, der Programmiersprache, dem TestgerĂ€t oder der -Plattform. Nach unserem Kenntnisstand ist unser Ansatz der Erste dieser Art. Wir prĂ€sentieren ATTABOY, ein Programm, das eine existierende Testsammlung fĂŒr eine Webanwendung (z.B. fĂŒr Amazon) nimmt und in einer beliebigen anderen Anwendung (sagen wir ebay) ausfĂŒhrt. Dadurch werden Tests fĂŒr Kernfunktionen generiert. Bei der ersten AusfĂŒhrung auf Anwendungen aus den DomĂ€nen Online Shopping, Nachrichtenseiten und eMail, erzeugt der Prototyp sechzig Prozent der Tests automatisch. Ohne zusĂ€tzlichen manuellen Aufwand. DarĂŒber hinaus interpretiert themen- getriebenes Testen auch vage Anweisungen beispielsweise von How-to Anleitungen oder Anwendungsbeschreibungen. Eine Anweisung wie "FĂŒgen Sie das Produkt in den Warenkorb hinzu" testet das entsprechende Verhalten in der Anwendung. Sowohl im Browser, als auch in einer mobilen Anwendung. Die erzeugten Tests sind robuster und effektiver als vergleichbar erzeugte Tests. Der Prototyp testet die ZielfunktionalitĂ€t fĂŒnf mal schneller und testet dabei Funktionen die durch nicht spezialisierte AnsĂ€tze kaum zu erreichen sind

    On Supporting Android Software Developers And Testers

    Get PDF
    Users entrust mobile applications (apps) to help them with different tasks in their daily lives. However, for each app that helps to finish a given task, there are a plethora of other apps in popular marketplaces that offer similar or nearly identical functionality. This makes for a competitive market where users will tend to favor the highest quality apps in most cases. Given that users can easily get frustrated by apps which repeatedly exhibit bugs, failures, and crashes, it is imperative that developers promptly fix problems both before and after the release. However, implementing and maintaining high quality apps is difficult due to unique problems and constraints associated with the mobile development process such as fragmentation, quick feature changes, and agile software development. This dissertation presents an empirical study, as well as several approaches for developers, testers and designers to overcome some of these challenges during the software development life cycle. More specifically, first we perform an in-depth analysis of developers’ needs on automated testing techniques. This included surveying 102 contributors of open source Android projects about practices for testing their apps. The major findings from this survey illustrate that developers: (i) rely on usage models for designing test app cases, (ii) prefer expressive automated generated test cases organized around use cases, (iii) prefer manual testing over automation due to reproducibility issues, and (iv) do not perceive that code coverage is an important measure of test case quality. Based on the findings from the survey, this dissertation presents several approaches to support developers and testers of Android apps in their daily tasks. In particular, we present the first taxonomy of faults in Android apps. This taxonomy is derived from a manual analysis of 2,023 software artifacts extracted from six different sources (e.g., stackoverflow and bug reports). The taxonomy is divided into 14 categories containing 262 specific types. Then, we derived 38 Android-specific mutation operators from the taxonomy. Additionally, we implemented the infrastructure called MDroid+ that automatically introduces mutations in Android apps. Third, we present a practical automation for crowdsourced videos of mobile apps called V2S. This solution automatically translates video recordings of mobile executions into replayable user scenarios. V2S uses computer vision and adopts deep learning techniques to identify user interactions from video recordings that illustrate bugs or faulty behaviors in mobile apps. Last but not least, we present an approach that aims at supporting the maintenance process by facilitating the way users report bugs for Android apps. It comprises the interaction between an Android and a web app that assist the reporter by automatically collecting relevant information
    • 

    corecore