Context-Aware UI Component Reuse for Web Service Development Environments ] Kerstin Klemisch, Mba CONTEXT-AWAREUICOMPONENTREUSEFORWEB SERVICEDEVELOPMENTENVIRONMENTS

Total Page:16

File Type:pdf, Size:1020Kb

Context-Aware UI Component Reuse for Web Service Development Environments ] Kerstin Klemisch, Mba CONTEXT-AWAREUICOMPONENTREUSEFORWEB SERVICEDEVELOPMENTENVIRONMENTS CONTEXT-AWAREUICOMPONENTREUSEFORWEB SERVICEDEVELOPMENTENVIRONMENTS kerstin klemisch, mba supervisor: prof. boualem benatallah co-supervisor: ingo weber, phd PhD Thesis School of Computer Science and Engineering Faculty of Engineering March 2015 [ Context-aware UI Component Reuse for Web Service Development Environments ] kerstin klemisch, mba CONTEXT-AWAREUICOMPONENTREUSEFORWEB SERVICEDEVELOPMENTENVIRONMENTS [ Context-aware UI Component Reuse for Web Service Development Environments ] Kerstin Klemisch, MBA: Context-aware UI component Reuse for Web Service Devel- opment Environments, PhD Thesis, c March 2015 [ Context-aware UI Component Reuse for Web Service Development Environments ] Remember, we all stumble, every one of us. That’s why it’s a comfort to go hand in hand. — Emily Kimbrough Dedicated to my family, Oliver, Wolfgang, Edith, Saskia, Sven and Britta. [ Context-aware UI Component Reuse for Web Service Development Environments ] ABSTRACT Adapting user interfaces (UIs) to various contexts, such as for the exploding number of different devices, or specific business processes in different compa- nies, has become a major challenge for UI developers. The support offered by current development environments for UI adaptation is limited, as is the sup- port for the efficient creation of UIs in web service-based applications. Even with sophisticated UI development environments, UI developers still encounter many repetitive, time-consuming tasks during the UI development process. In this thesis, we describe an approach where – based on a given context – a complete user interface is suggested. The suggestions are created by a rule- based recommender system, which combines web service-bound UI elements with other UI building blocks. Rules for the UI Layout, Theme (the style sheet), Binding of UI building blocks to web services and Composition of UI components are established, and saved in a knowledge base for later reuse. Rules are created automatically based on the creation or modification of UIs. The approach has been implemented, as well as evaluated by simulating the development of 115 SAP UI screens. v [ Context-aware UI Component Reuse for Web Service Development Environments ] The most important property of a program is whether it accomplishes the intention of its user — C.A.R. Hoare ACKNOWLEDGMENTS This dissertation represents a culmination of efforts, and has been made possible by the assistance and support of various parties. I would like to extend a warm and sincere thank-you to my supervisors Prof. Boualem Benatallah and Dr. Ingo Weber, for their valuable feedback, immense knowledge, inspiration, guidance, constant support and advice. My sincere thanks also goes my thesis panel, Prof. Paul Compton, UNSW, for his helpful advice, particularly in regards to RDR technologies, and Prof. Fethi Rabhi and Dr. Srikumar Venugopal, School of Computer Science and Engineer- ing, UNSW, for their encouragement, helpful questions and insightful comments. I’m thankful to SAP Research, the University of New South Wales and Smart Services CRC Sydney for having given me the great opportunity to write a PhD thesis in collaboration with the IT industry. Furthermore, I thank my fellow PhD students Van Hai Ho and Basem Suleiman, who have assisted me during my thesis, and for being great friends. A big thank you also goes to Jan-Felix Schwartz, who assisted me during the creation of the prototype for this work, and Patrick de Guzman, who imple- mented a second prototype based on our approach for his honours thesis. I would like to express my gratitude to Lyn Campbell-Anderson, Daniel Cic- ciarelli, Helen Conran, Vicki Korb, Leanne Mavridis, Bev McMasters, and Terry Southwell, who performed a final review of my thesis. Last but not least, I would like to thank my husband, my friends and my family for their constant support and encouragement throughout this journey. vi [ Context-aware UI Component Reuse for Web Service Development Environments ] CONTENTS 1 introduction1 1.1 Background 1 1.2 Problem Statement 3 1.3 Contributions Overview 3 1.4 Thesis Organisation 4 2 background and related work6 2.1 Web Services 6 2.1.1 Web Service Definition 6 2.1.2 Service Interfaces 7 2.1.3 APIs and API platforms 9 2.1.4 Web APIs and Mashups 11 2.1.5 GUI Development for Web Services 12 2.1.6 Web Services – Discussion 14 2.2 UI Development 14 2.2.1 UI Components 15 2.2.2 UI Creation with Java Swing and Java NetBeans IDE 15 2.2.3 UI Creation in Microsoft Visual Studio 20 2.2.4 UIs at SAP Business ByDesign 25 2.2.5 UI Development with Bootstrap 30 2.2.6 UI Development with DukeScript 32 2.2.7 UI Development – Discussion 34 2.3 Code Reuse and Code Search 36 2.3.1 Code Reuse 36 2.3.2 Question & Answer Sites 39 2.3.3 Code Reuse and Code Search – Discussion 40 2.4 UI Patterns 41 2.4.1 Defining UI Patterns 41 2.4.2 Elements of Interaction Design Patterns 42 2.4.3 Reasons for using Patterns 43 2.4.4 UI Pattern Examples 44 2.4.5 Parties contributing to UI Patterns 45 2.4.6 The Pattern Approach at SAP 46 2.4.7 UI Patterns and their Usage in UI development 53 2.4.8 UI Patterns – Discussion 54 vii [ Context-aware UI Component Reuse for Web Service Development Environments ] contents viii 2.5 UI and Context 54 2.5.1 Examples of Context requiring UI Adaptation 55 2.5.2 GUI Development and Context-Awareness 58 2.5.3 UI and Context – Discussion 61 2.6 Background and Related Work - Discussion 62 3 ui development knowledge, concepts and representation 65 3.1 Representing UI Components 65 3.2 Representing UI Recommendation Rules 66 3.2.1 Rule Conditions 67 3.2.2 Rule Conclusions 67 3.2.3 Data Structures for Rules 70 3.3 UI Development Knowledge, Concepts and Representation - Dis- cussion 74 4 ui knowledge acquisition 75 4.1 Context and UI Repository in the UI Recommender System 76 4.2 Investigation of SAP CRM User Interfaces 77 4.3 Rule Specification 80 4.4 Incremental UI Knowledge Acquisition 82 4.5 Confidence Score 83 4.6 Evolution of Rules 84 4.7 UI Knowledge Acquisition - Discussion 85 5 system architecture, implementation & knowledge base content 86 5.1 Deciding on a Knowledge Base Rule Paradigm 86 5.2 Prototypical Implementation of UISE 87 5.3 Class Structure for UISE 91 5.3.1 Classes forming the Rule Condition 92 5.3.2 Classes forming the Rule Conclusion 93 5.4 Knowledge Base Content Elicitation for UISE 96 5.4.1 Elicitation of the Device Hierarchy for UISE 96 5.4.2 Elicitation of the Business Scenario Hierarchy for UISE 103 5.5 Cross Platform & Context Web Services - WST 104 5.5.1 Design for WST 104 5.5.2 System Architecture and Implementation for WST 110 5.6 System Architecture and Implementation - Discussion 111 6 evaluation 112 6.1 Evaluation of UISE 112 6.1.1 Evaluation Objectives and Settings - UISE 112 [ Context-aware UI Component Reuse for Web Service Development Environments ] contents ix 6.1.2 Evaluation Results - UISE 114 6.2 Evaluation of WST 116 6.2.1 Goal of the Evaluation - WST 116 6.2.2 Evaluation Environment - WST 116 6.2.3 Evaluation Search by Keywords - WST 116 6.2.4 Experiment 1 Results - WST 118 6.2.5 Experiment 2 Results - WST 118 6.2.6 Experiment 3 Results - WST 122 6.3 Evaluation - Discussion 123 7 conclusion 128 7.1 Challenges 128 7.2 Summary 129 7.3 Future Research 129 a appendix 131 a.1 Examples for SAP CRM UIs and UI Elements 131 a.1.1 Sales Order Management UIs 131 a.1.2 Sales Order Management UI Elements 134 a.1.3 Service Order Management UIs 145 a.1.4 Service Order Management UI Elements 145 a.1.5 Contract Management UIs 164 a.1.6 Contract Management UI Elements 164 a.1.7 Examples of CRM UIs and UI Elements - Discussion 174 [ Context-aware UI Component Reuse for Web Service Development Environments ] LISTOFFIGURES Figure 2.1 Consumer Mashup: Housingmaps.com 11 Figure 2.2 Data Mashup: RSOE EDIS 12 Figure 2.3 Enterprise Mashup: Staff Allocation Mashup seen on www.jackbe.com 13 Figure 2.4 Hierarchy of UI Components 16 Figure 2.5 UI Pattern Palette in NetBeans IDE 17 Figure 2.6 NetBeans IDE Design View 17 Figure 2.7 NetBeans IDE Source View 18 Figure 2.8 NetBeans IDE Property Editor 19 Figure 2.9 Simple UI Patterns in NetBeans IDE 19 Figure 2.10 Registering Events in NetBeans IDE 20 Figure 2.11 Simple Controls in Visual Studio 21 Figure 2.12 Data Grid View in Visual Studio 2008 22 Figure 2.13 Month Calendar Pattern in Visual Studio 2008 22 Figure 2.14 Examples of Controls and Shapes in Expression Blend [51] 23 Figure 2.15 Blend for HTML [93] 24 Figure 2.16 Silverlight Custom Button in Expression Blend [116] 24 Figure 2.17 Patterns in the SAP UI Designer 26 Figure 2.18 Defining the Data Model in the UI Designer 26 Figure 2.19 Data Binding 27 Figure 2.20 Adding the Hierarchical Extension to the Data Model 27 Figure 2.21 Sales Order Management in SAP Business ByDesign- Min- imum Layout 28 Figure 2.22 Sales Order Management in SAP Business ByDesign - Max- imum Layout 29 Figure 2.23 Hiding Fields or displaying additional ones in SAP Busi- ness ByDesign 29 Figure 2.24 Commercial Bootstrap Themes available on WrapBootstrap 31 Figure 2.25 Free Bootstrap Themes available on BootsWatch 31 Figure 2.26 Labels belonging to a Bootstrap Theme 32 Figure 2.27 Carousel UI Component in Bootstrap 32 Figure 2.28 Setting up a Project in DukeScript 33 Figure 2.29 Deploying the Project for NetBeans 34 x [ Context-aware UI Component Reuse for Web Service Development Environments ] List of Figures xi Figure 2.30 “Hello World” Program for HTML and Java NetBeans 35 Figure 2.31 Choosing the Target Platform 36 Figure 2.32 Tag Cloud (www.flickr.com), as shown on [109] 45 Figure
Recommended publications
  • Programming Documentation
    Flying Samurai { Programming documentation Jan Beneˇs,Osk´arElek, Marek Hanes, J´anZahornadsk´y June 3, 2010 \We make war that we may live in peace." | Aristotle Contents 1 Introduction 1 2 About the project 2 2.1 Team..................................................2 2.2 Externists . .3 2.3 Review of specification . .5 2.4 Hardware requirements . .6 2.5 Comparison with similar software . .6 2.6 Timeline . .7 2.7 Future of the project . .8 2.8 Known bugs . .9 2.9 Some statistics . 10 3 Building the project 11 3.1 Setting up the environment . 11 3.2 Building from sources . 11 4 Programming documentation 12 4.1 Architecture . 13 4.2 Multi-threading model . 15 4.2.1 Threads and their purpose . 15 4.2.2 Synchronization . 15 4.2.3 Messages and heartbeat . 16 4.2.4 Reader and Writer . 16 4.2.5 Structures . 17 4.2.6 Swap and swap chain . 18 4.2.7 Messages in detail . 19 4.3 Menu ................................................. 21 4.3.1 Concepts . 21 4.3.2 Implementation . 21 4.3.3 Handlers and actions . 21 4.4 Game logic . 23 4.4.1 Logical entities . 23 4.4.2 Mission . 24 4.4.3 Career . 26 4.5 Graphics . 27 4.5.1 Scene graph . 28 4.5.2 Airplane meshes . 29 4.5.3 Terrain . 33 4.5.4 Static terrain geometry . 36 4.5.5 HUD and debugging graphics . 38 4.5.6 Special effects . 39 4.5.7 Camera . 40 4.5.8 GUID . 40 4.6 Physics . 41 4.6.1 Introduction .
    [Show full text]
  • Jeffrey Scudder Google Inc. March 28, 2007 Google Spreadsheets Automation Using Web Services
    Jeffrey Scudder Google Inc. March 28, 2007 Google Spreadsheets Automation using Web Services Jeffrey Scudder Google Inc. March 28, 2007 2 Overview What is Google Spreadsheets? • Short Demo What is the Google Spreadsheets Data API? • Motivations (Why an API?) • Protocol design • Atom Publishing Protocols • GData • List feed deconstructed How do I use the Google Spreadsheets Data API? • Authentication • Longer Demo Questions 3 What is Google Spreadsheets? Let’s take a look 4 What is Google Spreadsheets? Why not ask why • Spreadsheets fits well with our mission… – “Organize My Information… and… – Make it Accessible and Useful… – With whomever I choose (and nobody else, thanks)” • In other words…. – Do-it-yourself Content Creation – Accepted/Familiar Interface of Spreadsheets and Documents – Accessibility from anywhere (…connected) – Easy-to-use Collaboration – Do-it-yourself Community Creation 5 What is the Google Spreadsheets Data API? Motivations • Foster development of specific-use apps • Allow users to create new UIs • To extend features offered • To integrate with 3rd party products • To offer new vertical applications 6 What is the Google Spreadsheets Data API? Protocol design based on existing open standards • Deciding on design principles – Use a RESTful approach – Reuse open standards – Reuse design from other Google APIs • The end result – REST web service based on GData – Data is in Atom XML and protocol based on the Atom Publishing Protocol (APP) – GData is based on Atom and APP and adds authentication, query semantics, and more
    [Show full text]
  • Query Expansion Based on Crowd Knowledge for Code Search
    IEEE TRANSACTIONS ON SERVICES COMPUTING, VOL. 9, NO. X, XXXXX 2016 1 Query Expansion Based on Crowd Knowledge for Code Search Liming Nie, He Jiang, Zhilei Ren, Zeyi Sun, and Xiaochen Li Abstract—As code search is a frequent developer activity in software development practices, improving the performance of code search is a critical task. In the text retrieval based search techniques employed in the code search, the term mismatch problem is a critical language issue for retrieval effectiveness. By reformulating the queries, query expansion provides effective ways to solve the term mismatch problem. In this paper, we propose Query Expansion based on Crowd Knowledge (QECK), a novel technique to improve the performance of code search algorithms. QECK identifies software-specific expansion words from the high quality pseudo relevance feedback question and answer pairs on Stack Overflow to automatically generate the expansion queries. Furthermore, we incorporate QECK in the classic Rocchio’s model, and propose QECK based code search method QECKRocchio. We conduct three experiments to evaluate our QECK technique and investigate QECKRocchio in a large-scale corpus containing real-world code snippets and a question and answer pair collection. The results show that QECK improves the performance of three code search algorithms by up to 64 percent in Precision, and 35 percent in NDCG. Meanwhile, compared with the state-of-the-art query expansion method, the improvement of QECKRocchio is 22 percent in Precision, and 16 percent in NDCG. Index Terms—Code search, crowd knowledge, query expansion, information retrieval, question & answer pair Ç 1INTRODUCTION ODE search is a frequent developer activity in software Obviously, it is not an easy task to formulate a good query, Cdevelopment practices, which has been a part of soft- which depends greatly on the experience of the developer and ware development for decades [47].
    [Show full text]
  • Google Cheat Sheets [.Pdf]
    GOOGLE | CHEAT SHEET Key for skill required Novice This two page Google Cheat Sheet lists all Google services and tools as to understand the Intermediate well as background information. The Cheat Sheet offers a great reference underlying concepts to grasp of basic to advance Google query building concepts and ideas. Expert CHEAT SHEET GOOGLE SERVICES Google domains google.co.kr Google Company Information google.ae google.kz Public (NASDAQ: GOOG) and google.com.af google.li (LSE: GGEA) Google AdSense https://www.google.com/adsense/ google.com.ag google.lk google.off.ai google.co.ls Founded Google AdWords https://adwords.google.com/ google.am google.lt Menlo Park, California (1998) Google Analytics http://google.com/analytics/ google.com.ar google.lu google.as google.lv Location Google Answers http://answers.google.com/ google.at google.com.ly Mountain View, California, USA Google Base http://base.google.com/ google.com.au google.mn google.az google.ms Key people Google Blog Search http://blogsearch.google.com/ google.ba google.com.mt Eric E. Schmidt Google Bookmarks http://www.google.com/bookmarks/ google.com.bd google.mu Sergey Brin google.be google.mw Larry E. Page Google Books Search http://books.google.com/ google.bg google.com.mx George Reyes Google Calendar http://google.com/calendar/ google.com.bh google.com.my google.bi google.com.na Revenue Google Catalogs http://catalogs.google.com/ google.com.bo google.com.nf $6.138 Billion USD (2005) Google Code http://code.google.com/ google.com.br google.com.ni google.bs google.nl Net Income Google Code Search http://www.google.com/codesearch/ google.co.bw google.no $1.465 Billion USD (2005) Google Deskbar http://deskbar.google.com/ google.com.bz google.com.np google.ca google.nr Employees Google Desktop http://desktop.google.com/ google.cd google.nu 5,680 (2005) Google Directory http://www.google.com/dirhp google.cg google.co.nz google.ch google.com.om Contact Address Google Earth http://earth.google.com/ google.ci google.com.pa 2400 E.
    [Show full text]
  • Opensocialに見る Googleのオープン戦略 G オ 戦略
    OpenSocialに見る Googleのオオ戦略ープン戦略 Seasar Conference 2008 Autumn よういちろう(TANAKA Yoichiro) (C) 2008 Yoichiro Tanaka. All rights reserved. 08.9.6 1 Seasar Conference 2008 Autumn Self‐introduction • 田中 洋郎洋一郎(TANAKA Yoichiro) – Mash up Award 3rd 3部門同時受賞 – Google API Expert(OpenSocial) 天使やカイザー と呼ばれて 検索 (C) 2008 Yoichiro Tanaka. All rights reserved. 08.9.6 2 Seasar Conference 2008 Autumn Agenda • Impression of Google • What’s OpenSocial? • Process to open • Google now (C) 2008 Yoichiro Tanaka. All rights reserved. 08.9.6 3 Seasar Conference 2008 Autumn Agenda • Impression of Google • What’s OpenSocial? • Process to open • Google now (C) 2008 Yoichiro Tanaka. All rights reserved. 08.9.6 4 Seasar Conference 2008 Autumn Services produced by Google http://www.google.co.jp/intl/ja/options/ (C) 2008 Yoichiro Tanaka. All rights reserved. 08.9.6 5 Seasar Conference 2008 Autumn APIs & Developer Tools Android Google Web Toolkit Blogger Data API Chromium Feedbunner APIs Gadgets API Gmail Atom Feeds Google Account Google AdSense API Google AdSense for Audio Authentication API Google AdWords API Google AJAX APIs Google AJAX Feed API Google AJAX LAnguage API Google AJAX Search API Google Analytics Google App Engine Google Apps APIs Google Base Data API Google Book Search APIs Google Calendar APIs and Google Chart API Google Checkout API Google Code Search Google Code Search Data Tools API GlGoogle Custom ShSearch API GlGoogle Contacts Data API GlGoogle Coupon FdFeeds GlGoogle DkDesktop GdGadget GlGoogle DkDesktop ShSearch API APIs Google Documents List Google
    [Show full text]
  • Multiplatformní GUI Toolkity GTK+ a Qt
    Multiplatformní GUI toolkity GTK+ a Qt Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI GUI toolkit (widget toolkit) (1) = programová knihovna (nebo kolekce knihoven) implementující prvky GUI = widgety (tlačítka, seznamy, menu, posuvník, bary, dialog, okno atd.) a umožňující tvorbu GUI (grafického uživatelského rozhraní) aplikace vlastní jednotný nebo nativní (pro platformu/systém) vzhled widgetů, možnost stylování nízkoúrovňové (Xt a Xlib v X Windows System a libwayland ve Waylandu na unixových systémech, GDI Windows API, Quartz a Carbon v Apple Mac OS) a vysokoúrovňové (MFC, WTL, WPF a Windows Forms v MS Windows, Cocoa v Apple Mac OS X, Motif/Lesstif, Xaw a XForms na unixových systémech) multiplatformní = pro více platforem (MS Windows, GNU/Linux, Apple Mac OS X, mobilní) nebo platformově nezávislé (Java) – aplikace může být také (většinou) událostmi řízené programování (event-driven programming) – toolkit v hlavní smyčce zachytává události (uživatelské od myši nebo klávesnice, od časovače, systému, aplikace samotné atd.) a umožňuje implementaci vlastních obsluh (even handler, callback function), objektově orientované programování (objekty = widgety aj.) – nevyžaduje OO programovací jazyk! Jan Outrata (Univerzita Palackého v Olomouci) Multiplatformní GUI toolkity duben 2015 1 / 10 GUI toolkit (widget toolkit) (2) language binding = API (aplikační programové rozhraní) toolkitu v jiném prog. jazyce než původní API a toolkit samotný GUI designer/builder = WYSIWYG nástroj pro tvorbu GUI s využitím toolkitu, hierarchicky skládáním prvků, z uloženého XML pak generuje kód nebo GUI vytvoří za běhu aplikace nekomerční (GNU (L)GPL, MIT, open source) i komerční licence např. GTK+ (C), Qt (C++), wxWidgets (C++), FLTK (C++), CEGUI (C++), Swing/JFC (Java), SWT (Java), JavaFX (Java), Tcl/Tk (Tcl), XUL (XML) aj.
    [Show full text]
  • 5G Simulation Framework
    Master of Science Thesis in Electrical Engineering Department of Electrical Engineering, Linköping University, 2018 5G Simulation Framework Junior Asante and Joel Olsson Master of Science Thesis in Electrical Engineering 5G Simulation Framework Junior Asante and Joel Olsson LiTH-ISY-EX--18/5149--SE Supervisor: Ema Becirovic isy, Linköping University Henrik André-Jönsson Ericsson AB Examiner: Danyo Danev isy, Linköping University Division of Communication Systems Department of Electrical Engineering Linköping University SE-581 83 Linköping, Sweden Copyright © 2018 Junior Asante and Joel Olsson Abstract From the first generation, 1G, to the fourth generation, 4G, the development and technological advancements in telecommunications network systems have been remarkable. Faster and better connections have opened up for new markets, ideas and possibilities, to that extent that there now is a demand that surpasses the sup- ply. Despite all these advancements made in the mobile communications field most of the concept of how the technology works and its infrastructure has re- mained the same. This however, is about to change with the introduction of the fifth generation (5G) mobile communication. With the introduction of 5G much of the technology introduced will be differ- ent from that of previous generations. This change extends to include the entire infrastructure of the mobile communications system. With these major changes, many of the tools available today for telecommunications network evaluation do not really suffice to include the 5G network standard. For this reason, there is a need to develop a new kind of tool that will be able to include the changes brought by this new network standard. In this thesis a simulation framework adapted for the next generation telecom- munication standard 5G is set to be developed.
    [Show full text]
  • Leveraging Social Coding Websites DISSERTATION Submitted in Partial
    UNIVERSITY OF CALIFORNIA, IRVINE Beyond Similar Code: Leveraging Social Coding Websites DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Software Engineering by Di Yang Dissertation Committee: Professor Cristina V. Lopes, Chair Professor James A. Jones Professor Sam Malek 2019 c 2019 Di Yang DEDICATION To my loving husband, Zikang. ii TABLE OF CONTENTS Page LIST OF FIGURES vi LIST OF TABLES viii ACKNOWLEDGMENTS ix CURRICULUM VITAE x ABSTRACT OF THE DISSERTATION xiv 1 Introduction 1 1.1 Overview . .1 1.1.1 Background . .1 1.1.2 Research Questions . .2 1.2 Thesis Statement . .3 1.3 Methodology and Key Findings . .3 2 Usability Analysis of Stack Overflow Code Snippets 6 2.1 Introduction . .6 2.2 Related Work . .9 2.3 Usability Rates . 11 2.3.1 Snippets Processing . 12 2.3.2 Findings . 15 2.3.3 Error Messages . 18 2.3.4 Heuristic Repairs for Java and C# Snippets . 19 2.4 Qualitative Analysis . 24 2.5 Google Search Results . 27 2.6 Conclusion . 30 3 File-level Duplication Analysis of GitHub 32 3.1 Introduction . 33 3.2 Related Work . 37 3.3 Analysis Pipeline . 40 3.3.1 Tokenization . 40 3.3.2 Database . 41 iii 3.3.3 SourcererCC . 42 3.4 Corpus . 43 3.5 Quantitative Analysis . 45 3.5.1 File-Level Analysis . 45 3.5.2 File-Level Analysis Excluding Small Files . 47 3.6 Mixed Method Analysis . 48 3.6.1 Most Duplicated Non-Trivial Files . 49 3.6.2 File Duplication at Different Levels .
    [Show full text]
  • List of Search Engines
    A blog network is a group of blogs that are connected to each other in a network. A blog network can either be a group of loosely connected blogs, or a group of blogs that are owned by the same company. The purpose of such a network is usually to promote the other blogs in the same network and therefore increase the advertising revenue generated from online advertising on the blogs.[1] List of search engines From Wikipedia, the free encyclopedia For knowing popular web search engines see, see Most popular Internet search engines. This is a list of search engines, including web search engines, selection-based search engines, metasearch engines, desktop search tools, and web portals and vertical market websites that have a search facility for online databases. Contents 1 By content/topic o 1.1 General o 1.2 P2P search engines o 1.3 Metasearch engines o 1.4 Geographically limited scope o 1.5 Semantic o 1.6 Accountancy o 1.7 Business o 1.8 Computers o 1.9 Enterprise o 1.10 Fashion o 1.11 Food/Recipes o 1.12 Genealogy o 1.13 Mobile/Handheld o 1.14 Job o 1.15 Legal o 1.16 Medical o 1.17 News o 1.18 People o 1.19 Real estate / property o 1.20 Television o 1.21 Video Games 2 By information type o 2.1 Forum o 2.2 Blog o 2.3 Multimedia o 2.4 Source code o 2.5 BitTorrent o 2.6 Email o 2.7 Maps o 2.8 Price o 2.9 Question and answer .
    [Show full text]
  • Curriculum Vitae
    Mikkel Kirkgaard Nielsen Tjaereborg Stationsvej 1, 1. sal • 6731 Tjaereborg, Denmark • +45 28139066 • [email protected] Updated 2021-03-23 Profile Software developer and architect with a hardware background, possessing relaxed attitude, analytical and communicative skills. Always striving for technical perfection but has a well developed commercial sense. Broad experience within the field of embedded software on numerous hardware platforms, operating systems and programming languages. Core competency lies in the intersection between hardware and software. Also experienced with development, operation and administration of back-end web-based server applications, solutions and deployments. Pitches generic, configurable and modular architectures in the pursuit of attaining flexible and reusable system components. Dedicated and fierce solution hunter when faced with a problem that needs to be solved. Advocating standardisation and cooperation on a technical level wherever possible. Firm believer in open and collaborative development as practioned in the FOSS (Free & Open Source Software) communities. Family status Single, living with my oldest daughter Two daughters born 2001+2005 Born 1977-01-17 Education Aalborg Universitet Esbjerg (Esbjerg, Denmark) B.Sc. E.E., Bachelor of Science in Electronic and Electrical Engineering, Digital Signal Processing (DSP) 1997 – 2001 Aarhus Akademi (Aarhus, Denmark) High School (stx, studenterkursus) 1996 – 1997 Esbjerg Gymnasium (Esbjerg, Denmark) High School (stx, gymnasium) 1993 – 1996 Blåbjerggårdskolen (Esbjerg, Denmark) Primary school, 0th–5th + 9th grade 1983 – 1989 1992 – 1993 Nuussuup Atuarfia (Nuuk, Greenland) Primary school, 5th-8th grade 1989 – 1992 Skills Embedded software development Serial based communication (RS232/RS485/TTL/SPI/I2C/CAN/USB/Modbus RTU) Device drivers (proprietary operating systems/Linux kernel) MCU interrupt routines Concurrent and realtime programming Generic middleware layers GUI programming (Ultimate++, Ogre, CEGUI, wxWidget) Mikkel Kirkgaard Nielsen Tjaereborg Stationsvej 1, 1.
    [Show full text]
  • Portfolio: a Search Engine for Finding Functions and Their Usages
    Portfolio: A Search Engine for Finding Functions and Their Usages Collin McMillan Mark Grechanik Denys Poshyvanyk Qing Xie, Chen Fu College of William & Mary Accenture and UIC College of William & Mary Accenture Technology Lab Williamsburg, VA 23185 Chicago, IL 60601 Williamsburg, VA 23185 Chicago, IL 60601 [email protected] [email protected] [email protected] [email protected] ABSTRACT Consider the situation where a programmer wants to accomplish In this demonstration, we present a code search system called Port- the complete task of editing and saving a PDF file. He or she may edit save pdf file folio that retrieves and visualizes relevant functions and their us- enter the query “ ” into a search engine. ages. We will show how chains of relevant functions and their us- Existing source code search engines would return some functions ages can be visualized to users in response to their queries. that create PDF files, some functions that write data in the PDF file format, and some functions that manipulate PDF files. Typi- Categories and Subject Descriptors cally, programmers investigate these functions to determine which D.2.13 [Reusable Libraries]: Reusable Libraries of them are relevant and to determine how to compose the concepts in these functions into complete tasks. Unfortunately, the results General Terms from existing engines do not show to programmers how isolated Algorithms, Experimentation functions interact in the context of other functions, despite the fact Keywords that the programmer wants to see the code for the whole task of how to edit PDF data and save it. A search engine can support pro- source code search engines, information retrieval grammers efficiently if it incorporates in its user ranking how these 1.
    [Show full text]
  • Panorama of GUI Toolkits on Haiku
    Panorama of GUI toolkits on Haiku From ncurses to Qt5 François Revol [email protected] Haiku ● Free Software rewrite of BeOS ● An Operating System for the desktop ● A lot of POSIX – But we don't claim to be Unix® ● Some more funny things – Typed & indexable xattrs Native GUI ● InterfaceKit – C++ API (similar to Qt) – BMessage objects ● Multithreaded – 1 message loop / window + 1 app main thread ● Few bindings – yab (yabasic port) Toolkit Pros/Cons ✔ More apps, less work ✗ Never completely ✔ More potential users native ✔ More devs? ✗ No Scripting support ✗ hey Foo get Frame ✔ It can be done right of View … ✗ Screen reader… ✗ Less incentive for native apps Toolkit usage in Debian GNU/Linux ● for t in $(debtags cat | tr ' ,' '\n\n' | grep uitoolkit:: | sort | uniq); do echo -en "$t\t"; debtags search $t | wc -l; ● done Whatever TODO uitoolkit::athena 92 means uitoolkit::fltk 25 uitoolkit::glut 23 ● uitoolkit::gnustep 41 Probably not the best uitoolkit::gtk 2024 metric anyway uitoolkit::motif 53 uitoolkit::ncurses 757 uitoolkit::qt 965 uitoolkit::sdl 488 uitoolkit::tk 135 uitoolkit::TODO 52 uitoolkit::wxwidgets 117 uitoolkit::xlib 254 ncurses █████ ● So what, it's a toolkit � ● Works not too bad hdialog ████▒ ● Native implementation of [x]dialog ● Some missing features ● Shanty is a similar app (Zenity clone) SDL 1.2 █████ ● Of course! SDL 2 █████ ● What Else?™ nativefiledialog █████ ● Native file selectors for Win32, GTK+3, OSX ● Ported during GCI 2014 ● For use with SDL/SDL2/… LibreOffice (VCL) █▒▒▒▒ ● Visual Class Libraries ● LibreOffice / OpenOffice's own GUI toolkit – Is it used anywhere else? IUP █▒▒▒▒ ● Multi-platform GUI toolkit – GTK+, Motif and Windows – “Bindings for C, Lua and LED – Uses native interface elements – Simplicity of its API” ● WIP port by Adrien Destugues (PulkoMandy) wxWidget ▒▒▒▒▒ ● Is this still in use? ● Oh, I need it for KiCAD! ● Port started long ago, nothing usable yet.
    [Show full text]