SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Overview

       1.         Find out why software engineering is important

                                                  Merodroid
1
                     ■         see some software engineering failures

       2.         Get acquainted with –
                     ■         the Chair of Software Engineering
                                ■ the research A Search Engine for
                                ■
                                      Android Software Components
                                    the people
                                ■ the teaching


                                    Colin Atkinson, Marcus Kessel, Marcus Schumacher

                                    droidcon. 2012, Berlin




    Software Engineering
    Prof. Dr. Colin Atkinson                                       1
Outline

      ■          About Us
2
      ■          Motivation
      ■          Search Android Components with Merodroid
                  ■ What is Merodroid?
                    ■          Core Features
      ■          How does it work?
                  ■ Indexing of Android Software Artifacts
                    ■          Analysis and Recognition
      ■          Demo
      ■          Conclusion
      ■          Appendix




    Software Engineering
    Prof. Dr. Colin Atkinson                              2
About Us

      ■          Chair of Software Engineering, Prof.
3                Colin Atkinson, at the University of
                 Mannheim [1]

                                                                Prof. Dr. Colin Atkinson
      ■          Research Areas
                  ■ Software Reuse
                    ■          Model-Driven Development
                    ■          Component/Service Oriented
                               Development
                                                                M.Sc. Wirtschaftsinformatik
                                                                Marcus Kessel

      ■          Search Driven Development – current
                 research project
                  ■ Merobase – Software Component
                      Finder
                                                                Dipl. Informatik
                                                                Marcus Schumacher
    Software Engineering
    Prof. Dr. Colin Atkinson                                3
Motivation

      ■          Fast-growing market of mobile devices, mainly smartphones and internet
4                tablets
                  ■ Lots of mobile applications already exist (~375.000 in Android Market,
                       February 2012 [2])
                    ■          High demand for new mobile applications (e.g. provide all kind of
                               functionality as “apps”)
      ■          Developer perspective
                  ■ Redundant work ..
                    ■          Tired of reinventing the wheel for every new app
      ■          Organizational perspective
                  ■ Reduce the effort and save money at application development


      ■          Component Reuse



    Software Engineering
    Prof. Dr. Colin Atkinson                                  4
Our Approach: Search-Driven Development

      ■          Search-Driven Development
5
                  ■ Semantic component retrieval
                    ■          Special query language and constraints to retrieve
                               potential reuse candidates
      ■           Merobase
                  ■ General search engine for software components
      ■           Merodroid
                  ■ Component search engine based on Merobase
                      adjusted to the needs of Android application
                      developers
                    ■          Specifics of Android application development
                                ■ Project layout, resources,
                                  AndroidManifest.xml
                                ■ Special component types
                                ■ …


    Software Engineering
    Prof. Dr. Colin Atkinson                                   5
Core Features (1)

      ■          App queries
6
                  ■ Browse all components of an “app”
                    ■          Includes additional information sources (AndroidManifest.xml, Android
                               Market information, …)

       ■          Component queries
                   ■ Query for specific Android application
                      components
                                ■ activity, fragment, service, content
                                  provider, broadcast receiver
                    ■          Interface/method signature search
                    ■          Keyword search
                    ■          Constraints (restrict result set)

      ■          Combined queries: app + component + constraints


    Software Engineering
    Prof. Dr. Colin Atkinson                                       6
Core Features (2)

      ■          Create queries by
7
                  ■ Using a graphical wizard
                    ■          Hand
      ■          Component details
                  ■ Source and component type
                    ■          Tree-like view of methods and fields
                    ■          Metrics
                    ■          Documentation (JavaDoc)
                    ■          Intent filter and capabilities defined in AndroidManifest.xml
                    ■          Android Market information (if available)
      ■          Unrelated Android components
                  ■ Usual Java classes
      ■          Publish your own components


    Software Engineering
    Prof. Dr. Colin Atkinson                                   7
Indexing Android Software Artifacts (1)

8

                     Crawling Process

                                              Recognition                Index
                                                             Parsing &
                                Crawling       of artifact
                                                              Linking
                                                  type


                    Analysis: Recognition & Data Mining Process

                                              Recognition
                               Iterate over       of         Linking     Index
                                   index      components




    Software Engineering
    Prof. Dr. Colin Atkinson                            8
Indexing Android Software Artifacts (2)

      ■          Supported Android software artifacts
9
                  ■ Application projects (incl. resources)
                    ■          APK, Dalvik Executable
                    ■          Single classes (source & binary)
      ■          Java classes are analyzed and indexed
                  ■ Fields, methods, inheritance hierarchy, dependencies …
      ■          AndroidManifest.xml
                  ■ Additional information source
                    ■          Capabilities of components (intent filter)
      ■          Recognition of components
                  ■ Android (application) components (e.g. activity) are tagged
                    ■          Tagged components are linked with additional information from
                               AndroidManifest.xml
                                ■ E.g. Intent filter declarations


    Software Engineering
    Prof. Dr. Colin Atkinson                                        9
Android Component Recognition

       ■          Analysis of inheritance hierarchy of classes represented by the data model
10                (tree traversal)
       ■          Interfaces/classes of key components are known from the Android API
       ■          Interfaces/classes can be easily configured for later extensibility (e.g.
                  Android API changes)
       ■          For instance, any Activity implementation has to inherit from the class
                  android.app.Activity




     Software Engineering
     Prof. Dr. Colin Atkinson                           10
Demo

11




     Software Engineering
     Prof. Dr. Colin Atkinson   11
Conclusion

       ■          Merodroid – Android Component Finder
12
                   ■ Software component search engine adjusted to the needs of Android
                      Application developers
                     ■          Powerful query language
                     ■          Links several information sources (components, AndroidManifest.xml,
                                Android Market ..)
       ■          Public web service available at merodroid.com
                   ■ Search for Android application projects & components crawled from
                        open source repositories
       ■          Future work
                   ■ Eclipse plugin (http://code-conjurer.org)
                     ■          Test-driven development support (query components by using JUnit
                                tests/TestSheets)




     Software Engineering
     Prof. Dr. Colin Atkinson                                12
Questions

13


                                Thank you for listening!




     Software Engineering
     Prof. Dr. Colin Atkinson               13
Literature

       ■          [1] Chair of Software Engineering, University of Mannheim,
14                http://swt.informatik.uni-mannheim.de/
       ■          [2] AppBrain, Android Statistics, http://www.appbrain.com/stats/number-of-
                  android-apps (02/20/2012)




     Software Engineering
     Prof. Dr. Colin Atkinson                         14
Appendix: Query Samples
           Description                     Query                        Result
15         Find app by id                  packageId:com.example.       All related components
                                           app¹
           Find Android application        android:activity or          All Activities
           component                       android:service or           All Services
                                           android:fragment or          All Fragments
                                           android:provider or          All ContentProviders
                                           android:receiver or          All BroadcastReceivers
           Find all Activities of app ..   packageId:com.example.       All Activities of app ..
                                           app¹ android:activity
           Find all Activities             android:activity             List of all Activities supporting
           supporting mime-type:           mimetype:image/jpeg          specified mime-type (known from
           image/jpeg                                                   manifest)
           Find all Activities             packageId:com.example.       List of all Activities supporting
           supporting mime-type:           app¹ android:activity        specified mime type in app ..
           image/jpeg in app ..            mimetype:image/jpeg

           Find Activity by name           android:activity Sudoku      List of all Activities containing
                                                                        „Sudoku“ as name


      ¹ Unique package id known from AndroidManifest.xml (also widely used in several app markets as identifier)

     Software Engineering
     Prof. Dr. Colin Atkinson                              15

Weitere ähnliche Inhalte

Ähnlich wie droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim

Context-Awareness on Software Artifacts in Distributed Software Development: ...
Context-Awareness on Software Artifacts in Distributed Software Development: ...Context-Awareness on Software Artifacts in Distributed Software Development: ...
Context-Awareness on Software Artifacts in Distributed Software Development: ...Rafael Vivian
 
Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...MOCA Platform
 
Android Technology
Android TechnologyAndroid Technology
Android TechnologyR
 
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat DasNull Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat Dasnullowaspmumbai
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecurityTao Xie
 
Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...
Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...
Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...Yandex
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Softwaredgarijo
 
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...Kevin Moran
 
Android OS and its Features
Android OS and its FeaturesAndroid OS and its Features
Android OS and its FeaturesHarshad Lokhande
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine JonesJisc RDM
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
Webinar–Is Your Software Security Supply Chain a Security Blind Spot?
Webinar–Is Your Software Security Supply Chain a Security Blind Spot?Webinar–Is Your Software Security Supply Chain a Security Blind Spot?
Webinar–Is Your Software Security Supply Chain a Security Blind Spot?Synopsys Software Integrity Group
 
Android App Developement
Android App DevelopementAndroid App Developement
Android App DevelopementAayush Gupta
 

Ähnlich wie droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim (20)

Context-Awareness on Software Artifacts in Distributed Software Development: ...
Context-Awareness on Software Artifacts in Distributed Software Development: ...Context-Awareness on Software Artifacts in Distributed Software Development: ...
Context-Awareness on Software Artifacts in Distributed Software Development: ...
 
Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...
 
Unit1
Unit1Unit1
Unit1
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Android Technology
Android TechnologyAndroid Technology
Android Technology
 
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat DasNull Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
 
Bai giang-se-13jan14
Bai giang-se-13jan14Bai giang-se-13jan14
Bai giang-se-13jan14
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
 
Mini Project- Internet Security Mechanisms
Mini Project- Internet Security MechanismsMini Project- Internet Security Mechanisms
Mini Project- Internet Security Mechanisms
 
Agile AppSec DevOps
Agile AppSec DevOpsAgile AppSec DevOps
Agile AppSec DevOps
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
 
Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...
Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...
Николай Бьернер «Program Analysis and Testing using Efficient Satisfiability ...
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
 
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
Discovering Flaws in Security-Focused Static Analysis Tools for Android using...
 
Android OS and its Features
Android OS and its FeaturesAndroid OS and its Features
Android OS and its Features
 
Android the future
Android  the futureAndroid  the future
Android the future
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine Jones
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
Webinar–Is Your Software Security Supply Chain a Security Blind Spot?
Webinar–Is Your Software Security Supply Chain a Security Blind Spot?Webinar–Is Your Software Security Supply Chain a Security Blind Spot?
Webinar–Is Your Software Security Supply Chain a Security Blind Spot?
 
Android App Developement
Android App DevelopementAndroid App Developement
Android App Developement
 

Mehr von Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google castDroidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 

Mehr von Droidcon Berlin (20)

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 

Kürzlich hochgeladen

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 

Kürzlich hochgeladen (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

droidcon 2012: Merodroid – A Search-Engine for Android Software Components, Marcus Kessel, University Mannheim

  • 1. Overview 1. Find out why software engineering is important Merodroid 1 ■ see some software engineering failures 2. Get acquainted with – ■ the Chair of Software Engineering ■ the research A Search Engine for ■ Android Software Components the people ■ the teaching Colin Atkinson, Marcus Kessel, Marcus Schumacher droidcon. 2012, Berlin Software Engineering Prof. Dr. Colin Atkinson 1
  • 2. Outline ■ About Us 2 ■ Motivation ■ Search Android Components with Merodroid ■ What is Merodroid? ■ Core Features ■ How does it work? ■ Indexing of Android Software Artifacts ■ Analysis and Recognition ■ Demo ■ Conclusion ■ Appendix Software Engineering Prof. Dr. Colin Atkinson 2
  • 3. About Us ■ Chair of Software Engineering, Prof. 3 Colin Atkinson, at the University of Mannheim [1] Prof. Dr. Colin Atkinson ■ Research Areas ■ Software Reuse ■ Model-Driven Development ■ Component/Service Oriented Development M.Sc. Wirtschaftsinformatik Marcus Kessel ■ Search Driven Development – current research project ■ Merobase – Software Component Finder Dipl. Informatik Marcus Schumacher Software Engineering Prof. Dr. Colin Atkinson 3
  • 4. Motivation ■ Fast-growing market of mobile devices, mainly smartphones and internet 4 tablets ■ Lots of mobile applications already exist (~375.000 in Android Market, February 2012 [2]) ■ High demand for new mobile applications (e.g. provide all kind of functionality as “apps”) ■ Developer perspective ■ Redundant work .. ■ Tired of reinventing the wheel for every new app ■ Organizational perspective ■ Reduce the effort and save money at application development ■ Component Reuse Software Engineering Prof. Dr. Colin Atkinson 4
  • 5. Our Approach: Search-Driven Development ■ Search-Driven Development 5 ■ Semantic component retrieval ■ Special query language and constraints to retrieve potential reuse candidates ■ Merobase ■ General search engine for software components ■ Merodroid ■ Component search engine based on Merobase adjusted to the needs of Android application developers ■ Specifics of Android application development ■ Project layout, resources, AndroidManifest.xml ■ Special component types ■ … Software Engineering Prof. Dr. Colin Atkinson 5
  • 6. Core Features (1) ■ App queries 6 ■ Browse all components of an “app” ■ Includes additional information sources (AndroidManifest.xml, Android Market information, …) ■ Component queries ■ Query for specific Android application components ■ activity, fragment, service, content provider, broadcast receiver ■ Interface/method signature search ■ Keyword search ■ Constraints (restrict result set) ■ Combined queries: app + component + constraints Software Engineering Prof. Dr. Colin Atkinson 6
  • 7. Core Features (2) ■ Create queries by 7 ■ Using a graphical wizard ■ Hand ■ Component details ■ Source and component type ■ Tree-like view of methods and fields ■ Metrics ■ Documentation (JavaDoc) ■ Intent filter and capabilities defined in AndroidManifest.xml ■ Android Market information (if available) ■ Unrelated Android components ■ Usual Java classes ■ Publish your own components Software Engineering Prof. Dr. Colin Atkinson 7
  • 8. Indexing Android Software Artifacts (1) 8 Crawling Process Recognition Index Parsing & Crawling of artifact Linking type Analysis: Recognition & Data Mining Process Recognition Iterate over of Linking Index index components Software Engineering Prof. Dr. Colin Atkinson 8
  • 9. Indexing Android Software Artifacts (2) ■ Supported Android software artifacts 9 ■ Application projects (incl. resources) ■ APK, Dalvik Executable ■ Single classes (source & binary) ■ Java classes are analyzed and indexed ■ Fields, methods, inheritance hierarchy, dependencies … ■ AndroidManifest.xml ■ Additional information source ■ Capabilities of components (intent filter) ■ Recognition of components ■ Android (application) components (e.g. activity) are tagged ■ Tagged components are linked with additional information from AndroidManifest.xml ■ E.g. Intent filter declarations Software Engineering Prof. Dr. Colin Atkinson 9
  • 10. Android Component Recognition ■ Analysis of inheritance hierarchy of classes represented by the data model 10 (tree traversal) ■ Interfaces/classes of key components are known from the Android API ■ Interfaces/classes can be easily configured for later extensibility (e.g. Android API changes) ■ For instance, any Activity implementation has to inherit from the class android.app.Activity Software Engineering Prof. Dr. Colin Atkinson 10
  • 11. Demo 11 Software Engineering Prof. Dr. Colin Atkinson 11
  • 12. Conclusion ■ Merodroid – Android Component Finder 12 ■ Software component search engine adjusted to the needs of Android Application developers ■ Powerful query language ■ Links several information sources (components, AndroidManifest.xml, Android Market ..) ■ Public web service available at merodroid.com ■ Search for Android application projects & components crawled from open source repositories ■ Future work ■ Eclipse plugin (http://code-conjurer.org) ■ Test-driven development support (query components by using JUnit tests/TestSheets) Software Engineering Prof. Dr. Colin Atkinson 12
  • 13. Questions 13 Thank you for listening! Software Engineering Prof. Dr. Colin Atkinson 13
  • 14. Literature ■ [1] Chair of Software Engineering, University of Mannheim, 14 http://swt.informatik.uni-mannheim.de/ ■ [2] AppBrain, Android Statistics, http://www.appbrain.com/stats/number-of- android-apps (02/20/2012) Software Engineering Prof. Dr. Colin Atkinson 14
  • 15. Appendix: Query Samples Description Query Result 15 Find app by id packageId:com.example. All related components app¹ Find Android application android:activity or All Activities component android:service or All Services android:fragment or All Fragments android:provider or All ContentProviders android:receiver or All BroadcastReceivers Find all Activities of app .. packageId:com.example. All Activities of app .. app¹ android:activity Find all Activities android:activity List of all Activities supporting supporting mime-type: mimetype:image/jpeg specified mime-type (known from image/jpeg manifest) Find all Activities packageId:com.example. List of all Activities supporting supporting mime-type: app¹ android:activity specified mime type in app .. image/jpeg in app .. mimetype:image/jpeg Find Activity by name android:activity Sudoku List of all Activities containing „Sudoku“ as name ¹ Unique package id known from AndroidManifest.xml (also widely used in several app markets as identifier) Software Engineering Prof. Dr. Colin Atkinson 15