Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Prototype of.

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Identifying Source.
Advertisements

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Evolutional Analysis.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extracting Code.
Android: Hello World Frank Xu Gannon University. Steps Configuration ▫Android SDK ▫Android Development Tools (ADT)  Eclipse plug-in ▫Android SDK and.
What’s That? : A Location Based Service Department of Computer Science and Engineering University of Minnesota Presented by: Don Eagan Chintan Patel
EventBook What – An Android based Mobile App. Using Social Networking APIs Who – Every mobile user specially targeted to the age group of 16 – 40 Why –
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
SMARTPHONE OPERATION SYSTEM MARKET IN U.S. Ryan (Jang-Hoon) Doo ISM 158.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Measuring Copying.
Federated Searching Pre-Conference Workshop - The federated searching cookbook Qin Zhu HP Labs Research Library February 18, 2007.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Where Does This.
Presentation By Deepak Katta
Android ADK based app for offer making based on location and activity reporting John Waters.
Location-Based API 1. 2 Location-Based Services or LBS allow software to obtain the phone's current location. This includes location obtained from the.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Chapter 1: Voilà! Meet the Android
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A lightweight.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Kinds of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Smart Phone Laboratory ECEN 489 Srinivas Shakkottai.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Criterion for.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Investigation.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A clone detection approach for a collection of similar.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Do Practitioners.
(1) WattDepot: A software ecosystem for energy data collection, storage, analysis, and visualization Robert S. Brewer, Philip M. Johnson Collaborative.
Cameron Smith, GIS Manager.  Introductions A Geographic Information System or GIS is a computer system that allows you to map, model, query, and analyze.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A Method to Detect License Inconsistencies for Large-
GEOREMINDERS ANDROID APPLICATION BY: ADRIENNE KECK.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Design and Implementation.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Applying Clone.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University How to extract.
Effective Testing and Debugging Methods and Its Supporting System with Program Deltas Makoto Matsushita, Masayoshi Teraguchi, and Katsuro Inoue Osaka University.
Creating an Example Android App in Android Studio Activity lifecycle & UI Resources.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University VerXCombo: An.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Development of.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Retrieving Similar Code Fragments based on Identifier.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 1 Towards an Assessment of the Quality of Refactoring.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Assertion with.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University July 21, 2008WODA.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Cage: A Keyword.
WEST VIRGINIA UNIVERSITY Lane Department of Computer Science and Electrical Engineering CROWDSOURCED TRAFFIC MAP Team Members: Faculty Mentor: David Williams.
PM-Appers! Presents: 5 Things to Consider When Searching for a Project Portfolio Management Application.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Classification.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Towards a Collection of Refactoring Patterns Based.
App reviews By Meghan Roles. Introduction I am going to be talking about 2 different apps. One app is called Tripomatic, which is a city guide, and the.
R&D Operation Best Practice for Start Up Start a Business And Change the world Alfred Boediman, Ph.D.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
ENGINEERING AND DESIGN MOBILE APPLICATION. ROAD MAP History of Software Engineering Introduction to Agile Programming Background on Mobile App Development.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Detection of License Inconsistencies in Free and.
| Mobile Accessibility Development Making an Accessible App Usable Scott McCormack.
Java Programming Fifth Edition Chapter 1 Creating Your First Java Classes.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Software Ingredients:
Android App Development Presented By, Handy Apps
Yasuhiro Hayase†, Yu Kashima‡, Yuki Manabe‡, Katsuro Inoue‡
System Design Basics IB Computer Science.
TriggerScope Towards Detecting Logic Bombs in Android Applications
Frequently asked questions about software engineering
Physical activities and activity tracker
Transact™ Mobile SDK Quickly bring capture-enabled mobile applications to market with open-ended backend integrations.
Android Topics UI Thread and Limited processing resources
Recommending Verbs for Rename Method using Association Rule Mining
Introduction to AppInventor
Presentation transcript:

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Prototype of Comparison Tool for Android Applications Based on Difference of API Calling Sequences Tetsuya Kanda, Yuki Manabe, Takashi Ishio, Makoto Matsushita, Katsuro Inoue Graduate School of Information Science and Technology, Osaka University, Japan

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Many Applications in the World Many applications are available –from Android Market –from Apple App Store... We focused on Android applications. Some applications have similar features –About 3,000 “calculator” applications in Android Market (May 2011) 2

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Similar Applications Screenshots of Android applications labeled “Map” in Google Code 3

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Similar Applications Screenshots of Android applications labeled “Map” in Google Code 4 What is the difference of these applications?

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Differences of the Applications Make comparison chart to clarify differences 5

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University How to Compare Applications 6 Trial use of applications –Can’t test ALL features in applications Users can’t test the feature they don’t know. –Takes a lot of time Reading documents –Some documents are too long to understand. –Some documents have too little information. –Some applications have no documents. Comparing source code

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Comparing source code Source code explains almost all behavior of the applications. Can’t compare directly –Almost all of source code will be extracted as differences. 7 + if (colIndex > -1) { + inReplyTo = mCursor.getString(colIndex); + if (inReplyTo != null && "null".equals(inReplyTo) == false) { + inReplyTo = String.format(Locale.getDefault(), getText(R.string.tweet_source_in_reply_to).toString(), inReplyTo); } - terp_handler = new Handler() { - public void handleMessage(Message m) { - switch (m.arg1) { - case -1: Comparing two twitter client applications

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Android A platform for mobile devices Android smartphones have many characteristic devices. –Wi-Fi adaptor –GPS –Touch panels –Gravity sensors –Cameras –etc… 8

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Display a map of current location Features Features and Devices Features correspond to devices. 9 Get current location Scroll Map GPS Touch panel Application Devices

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Display a map of current location Features Features, APIs and Devices Application controls devices by calling APIs. 10 Get current location Scroll Map GPS Touch panel Application Devices APIs for controlling a GPS device APIs for controlling a touch panel SDK

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Idea A feature calls APIs to control devices. An API calling sequence corresponds to a feature. –an API calling sequence: a sequence of method calls of API classes in a single method Compare APIs to compare features of applications –The difference of API calls represents the difference of features. 11

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Proposal Method Application s Applications with similar feature Phase1: Making a knowledge- base Knowledge -base Phase 2: Comparing applications Application X 1 Application X 1 Application X 2 Application X 2 Common- Feature X 1 -Feature X 2 -Feature Proposal method 12

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Proposal Method Application s Applications with similar feature Phase1: Making a knowledge- base Knowledge -base Phase 2: Comparing applications Application X 1 Application X 1 Application X 2 Application X 2 Common- Feature X 1 -Feature X 2 -Feature Proposal method 13

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Knowledge-base Mappings of API calling sequence and its feature name Example: 14 Feature nameAPI calling sequences Show Toast (pop-up message) android.widget.Toast.makeText android.widget.Toast.show Get Latitude and Longitude android.location.Location.getLatitude android.location.Location.getLongitude

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Making a Knowledge-base Knowledge- base A.m1() B.m2() C.m1() A.m1() B.m2() C.m1() Feature2 Extract API calls Filtering COMMON 15 Assign a feature name Applications Applications with similar feature 1.Collect applications with similar feature 2.Extract API calls appeared in two or more applications (COMMON) 3.Filter COMMON manually and assign a feature name (Removed)

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Making a Knowledge-base Knowledge- base A.m1() B.m2() C.m1() A.m1() B.m2() C.m1() Feature2 Extract API calls Filtering COMMON 16 Assign a feature name Applications Applications with similar feature (Removed) 1.Collect applications with similar feature 2.Extract API calls appeared in two or more applications (COMMON) 3.Filter COMMON manually and assign a feature name

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extract API Calls Each method is translated into an API calling. Extract only Android API calls We define Android API as: –Whose fully qualified names start with “android” or “com.google.android” Ignore control statement 17

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Example of extracting API Calls 18 public void onClick(View v) { String s = str.substring(2); Intent intent=new Intent(this,com.example.edit.class); startActivity(intent); } android.content.Intent.android.content.Intent android.app.Activity.startActivity Source Code API Calling Sequence

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Making a Knowledge-base Knowledge- base A.m1() B.m2() C.m1() A.m1() B.m2() C.m1() Feature2 Extract API calls Filtering COMMON 19 Assign a feature name Applications Applications with similar feature 1.Collect applications with similar feature 2.Extract API calls commonly appeared (COMMON) 3.Filter COMMON manually and assign a feature name (Removed)

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Filtering(1/2) 20 Manually remove API calling sequences that are not explaining a specific feature Criteria: –Control or get information using devices –Showing notification (dialog) –Using Intent (call for another application) Feature nameAPI calling sequences ??? android.widget.TextView.setText android.view.View.setVisibility ??? android.location.Location.getLatitude android.location.Location.getLongitude

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Filtering(2/2) 21 Manually remove API calling sequences that are not explaining a specific feature Criteria: –Control or get information using devices –Showing notification (dialog) –Using Intent (call for another application) Feature nameAPI calling sequences ??? android.widget.TextView.setText android.view.View.setVisibility Get Latitude and Longitude android.location.Location.getLatitude android.location.Location.getLongitude

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Proposal Method Application s Applications with similar feature Phase1: Making a knowledge- base Knowledge -base Phase 2: Comparing applications Application X 1 Application X 1 Application X 2 Application X 2 Common- Feature X 1 -Feature X 2 -Feature Proposal method 22

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Comparing Applications 23 A.m1() B.m2() D.m2() B.m3() Application X 1 Application X 2 A.m1() B.m2() B.m3() C.m1() D.m4() DIFF-X1 COMMON DIFF-X2 Common- Feature X 1 -Feature X 2 -Feature Extract API calls Knowledge -base API Calling Sequences Compare Check

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Comparing Applications 24 A.m1() B.m2() D.m2() B.m3() Application X 1 Application X 2 A.m1() B.m2() B.m3() C.m1() D.m4() DIFF-X1 COMMON DIFF-X2 Common- Feature X 1 -Feature X 2 -Feature Extract API calls Knowledge -base API Calling Sequences Compare Check

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Compare API Calling Sequences (1/3) 25 API calling sequence from Application X 1 A.m1() B.m2() B.m3() C.m1() D.m4() B.m3() A.m1() B.m2() D.m2() B.m3() API calling sequence from Application X 2

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Compare API Calling Sequences (2/3) 26 A.m1() B.m2() API calling sequence from Application X 1 COMMON A.m1() B.m2() B.m3() C.m1() D.m4() B.m3() A.m1() B.m2() D.m2() B.m3() Compare API calling sequence from Application X 2

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Compare API Calling Sequences (3/3) 27 A.m1() B.m2() B.m3() C.m1() D.m4() D.m2() B.m3() API calling sequence from Application X 1 DIFF-X1 COMMON B.m3() A.m1() B.m2() B.m3() C.m1() D.m4() B.m3() A.m1() B.m2() D.m2() B.m3() Compare DIFF-X2 API calling sequence from Application X 2

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Compare Two Applications 28 A.m1() B.m2() D.m2() B.m3() Application X 1 Application X 2 A.m1() B.m2() B.m3() C.m1() D.m4() DIFF-X1 COMMON DIFF-X2 Common- Feature X 1 -Feature X 2 -Feature Extract API calls Knowledge -base API Calling Sequences Compare Check

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Check with a Knowledge-base 29 D.m2() B.m3() Knowledge- base B.m2() B.m3() C.m1() D.m4() A.m1() B.m2() A.m1() B.m2() D.m2() B.m3() B.m2() B.m3() C.m1() Feature1 Feature2 Feature3 COMMON DIFF-X1 DIFF-X2 A.m1() B.m3() B.m2() Match Not Match

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Prototype Tool : Startup Window 30 Select target applications

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Prototype Tool : Showing Result 31 Select one Feature name and API calling sequence Information about each API calling sequence Extracted Common-feature Extracted X 1 -feature Extracted X 2 -feature

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Case Study Goal : To answer the following questions –RQ1 Does an API calling sequence correspond to a feature of an application? –RQ2 Is our prototype tool able to clarify differences of two applications? Target : –11 applications labeled “MAP” in Google code 32

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Process 1.Make a knowledge-base with 6 applications 2.Check rest 5 applications with the knowledge-base 3.Compare two applications using our prototype tool 33 For making a knowledge-base

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Process 1.Make a knowledge-base with 6 applications 2.Check rest 5 applications with the knowledge-base 3.Compare two applications using our prototype tool 34 Check with the knowledge-base

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Process 1.Make a knowledge-base with 6 applications 2.Check rest 5 applications with the knowledge-base 3.Compare two applications using our prototype tool 35 Compare using our prototype tool

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Knowledge-base Feature nameAPI calling sequences Alert Dialogandroid.app.AlertDialog.Builder. android.app.AlertDialog.Builder.setTitle Get Latitude and Longitude android.location.Location.getLatitude android.location.Location.getLongitude Show Toast (pop-up message) android.widget.Toast.makeText android.widget.Toast.show Set Latitude and Longitude android.location.Location.setLatitude android.location.Location.setLongitude Submenuandroid.view.Menu.addSubMenu android.view.SubMenu.setIcon API Calling sequences are stored into a knowledge-base.

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Result (1/4) 37

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Result (2/4) 38 All five applications have “Alert Dialog” Feature

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Result (3/4) 39 Application 2 doesn’t have “Get Latitude and Longitude” feature

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Result (4/4) 40 API calling sequence shows the features of applications

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Output of the Tool (1/3) 41 App 2App 4

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Output of the Tool (2/3) 42 App 2App 4 Both applications have “Alert Dialog” Feature

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Output of the Tool (3/3) 43 App 2App 4 Information about each API calling sequence GeoActivity.java Class: GeoActivity Method: onCreate Line: 56 GeoActivity.java Class: GeoActivity Method: onCreate Line: 56

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Conclusion and Future Work Conclusion: –A prototype tool to compare two Android applications using API calling sequences –Performed a case study –API calling sequences are usable for comparing applications Future work: –Support to give an appropriate name to a sequence of API calls 44 Portions of this presentation are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.