The document discusses several insights and lessons learned from analyzing mobile application software analytics data:
1) Mobile apps are generally smaller than traditional software systems but rely heavily on third-party libraries, which increases their inherent complexity.
2) An app's size and complexity tends to grow in correlation with increased usage of external library methods.
3) Inheritance is rarely used in mobile apps, which tend to have small class hierarchies on average.
4) Some developers ignore best practices like putting projects under version control early or maintaining connections between code and manifest files.
5) Guidelines around app structure are sometimes ignored, like having multiple main application entry points.
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]Roberto Minelli
We present Samoa, a visual web-based software analytics platform for mobile applications. It mines software repositories of apps and uses a set of visualization techniques to present the mined data. We describe Samoa, detail the analyses it supports, and describe a methodology to understand apps from a structural and historical perspective.
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?Vrije Universiteit Brussel
Modeling the power profile of mobile applications is a crucial activity to identify the causes behind energy leaks. To this aim, researchers have proposed hardware-based tools as well as model-based and software-based techniques to approximate the actual energy profile. However, all these solutions present their own advantages and disadvantages. Hardware-based tools are highly precise, but at the same time their use is bound to the acquisition of costly hardware components. Model-based tools require the calibration of parameters needed to correctly create a model on a specific hardware device. Software-based approaches do not need any hardware components, but they rely on battery measurements and, thus, they are hardware-assisted. These tools are cheaper and easier to use than hardware-based tools, but they are believed to be less precise. In this paper, we take a deeper look at the pros and cons of software-based solutions investigating to what extent their measurements depart from hardware-based solutions. To this aim, we propose a software- based tool named PETrA that we compare with the hardware- based Monsoon toolkit on 54 Android apps. The results show that PETrA performs similarly to M ONSOON despite not using any sophisticated hardware components. In fact, in all the apps the mean relative error with respect to M ONSOON is lower than 0.05. Moreover, for 95% of the analyzed methods the estimation error is within 5% of the actual values measured using the hardware-based toolkit.
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
This presentation is Imam Raza's tech talk on "Android" in Google Developer Group DevFest 2012 Event. In the event Mr. Imam Raza condemned recent blasphemy act of Google of not removing blasphemy video by saying "Shame on You". He also appreciated the efforts of minorities who stand with Muslim community on this issue.
He also read following Stanza from Allama Iqbal poem "Jawaab-e-Shikwa", in which Allah is answering to complains of Muslims to Him. In below stanza Allah is praising His prophet Mohammad (peace be upon him) and telling that this universe is made due His beloved prophet Mohammad (peace be upon him). In last part of stanza Allah tells Muslims that if they want to success in this world and there after then they have to make themselves loyal to Mohammad (peace be upon him).
ہو نہ یہ پھول تو بلبل کا ترنم بھی نہ ہو
چمن دہر میں کلیوں کا تبسم بھی نہ ہو
یہ نہ ساقی ہو تو پھر مے بھی نہ ہو،خم بھی نہ ہو
بزم توحید بھی دنیا میں نہ ہو، تم بھی نہ ہو
خیمہ افلاک کا استادة اسی نام سے ہے
نبض ہستی تپش امادة اسی نام سے ہے
دشت میں، دامن کہسارمیں،میدان میں ہے
بحر میں، موج کی ا غوش میں،طوفان میں ہے
چین کے شہر، مراقش کے بیابان میں ہے
اور پوشیدة مسلمان کے ایمان میں ہے
چشم اقوام یہ نظارة ابد تک دیکھے
رفعت شان رفعنالک ذکرک دیکھے
کی محمد سے وفا تو نے تو ہم تیرے ہیں
یہ جہاں چیز ہے کیا، لوح و قلم تیرے ہیں
Java For Mobile Devices – Building a client application for the Android platformIndicThreads
The iPhone revolutionized the world of mobile application development. However the iPhone’s proprietary hardware and software development environments are a roadblock to many.
Google’s Android platform with its promise of open standards for hardware and a free and familiar development environment make it a strong contender for competing with the iPhone platform.
After introducing the Android platform we will discuss the paradigms and constraints in building a mobile application. We then dissect a simple “social” Android application which uses a REST-based webservice to communicate. This will help us understand the core components of an Android application and the Android SDK functionality.
Java For Mobile Devices – Building a client application for the Android platformIndicThreads
The iPhone revolutionized the world of mobile application development. However the iPhone’s proprietary hardware and software development environments are a roadblock to many.
Google’s Android platform with its promise of open standards for hardware and a free and familiar development environment make it a strong contender for competing with the iPhone platform.
After introducing the Android platform we will discuss the paradigms and constraints in building a mobile application. We then dissect a simple “social” Android application which uses a REST-based webservice to communicate. This will help us understand the core components of an Android application and the Android SDK functionality.
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]Roberto Minelli
We present Samoa, a visual web-based software analytics platform for mobile applications. It mines software repositories of apps and uses a set of visualization techniques to present the mined data. We describe Samoa, detail the analyses it supports, and describe a methodology to understand apps from a structural and historical perspective.
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?Vrije Universiteit Brussel
Modeling the power profile of mobile applications is a crucial activity to identify the causes behind energy leaks. To this aim, researchers have proposed hardware-based tools as well as model-based and software-based techniques to approximate the actual energy profile. However, all these solutions present their own advantages and disadvantages. Hardware-based tools are highly precise, but at the same time their use is bound to the acquisition of costly hardware components. Model-based tools require the calibration of parameters needed to correctly create a model on a specific hardware device. Software-based approaches do not need any hardware components, but they rely on battery measurements and, thus, they are hardware-assisted. These tools are cheaper and easier to use than hardware-based tools, but they are believed to be less precise. In this paper, we take a deeper look at the pros and cons of software-based solutions investigating to what extent their measurements depart from hardware-based solutions. To this aim, we propose a software- based tool named PETrA that we compare with the hardware- based Monsoon toolkit on 54 Android apps. The results show that PETrA performs similarly to M ONSOON despite not using any sophisticated hardware components. In fact, in all the apps the mean relative error with respect to M ONSOON is lower than 0.05. Moreover, for 95% of the analyzed methods the estimation error is within 5% of the actual values measured using the hardware-based toolkit.
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
This presentation is Imam Raza's tech talk on "Android" in Google Developer Group DevFest 2012 Event. In the event Mr. Imam Raza condemned recent blasphemy act of Google of not removing blasphemy video by saying "Shame on You". He also appreciated the efforts of minorities who stand with Muslim community on this issue.
He also read following Stanza from Allama Iqbal poem "Jawaab-e-Shikwa", in which Allah is answering to complains of Muslims to Him. In below stanza Allah is praising His prophet Mohammad (peace be upon him) and telling that this universe is made due His beloved prophet Mohammad (peace be upon him). In last part of stanza Allah tells Muslims that if they want to success in this world and there after then they have to make themselves loyal to Mohammad (peace be upon him).
ہو نہ یہ پھول تو بلبل کا ترنم بھی نہ ہو
چمن دہر میں کلیوں کا تبسم بھی نہ ہو
یہ نہ ساقی ہو تو پھر مے بھی نہ ہو،خم بھی نہ ہو
بزم توحید بھی دنیا میں نہ ہو، تم بھی نہ ہو
خیمہ افلاک کا استادة اسی نام سے ہے
نبض ہستی تپش امادة اسی نام سے ہے
دشت میں، دامن کہسارمیں،میدان میں ہے
بحر میں، موج کی ا غوش میں،طوفان میں ہے
چین کے شہر، مراقش کے بیابان میں ہے
اور پوشیدة مسلمان کے ایمان میں ہے
چشم اقوام یہ نظارة ابد تک دیکھے
رفعت شان رفعنالک ذکرک دیکھے
کی محمد سے وفا تو نے تو ہم تیرے ہیں
یہ جہاں چیز ہے کیا، لوح و قلم تیرے ہیں
Java For Mobile Devices – Building a client application for the Android platformIndicThreads
The iPhone revolutionized the world of mobile application development. However the iPhone’s proprietary hardware and software development environments are a roadblock to many.
Google’s Android platform with its promise of open standards for hardware and a free and familiar development environment make it a strong contender for competing with the iPhone platform.
After introducing the Android platform we will discuss the paradigms and constraints in building a mobile application. We then dissect a simple “social” Android application which uses a REST-based webservice to communicate. This will help us understand the core components of an Android application and the Android SDK functionality.
Java For Mobile Devices – Building a client application for the Android platformIndicThreads
The iPhone revolutionized the world of mobile application development. However the iPhone’s proprietary hardware and software development environments are a roadblock to many.
Google’s Android platform with its promise of open standards for hardware and a free and familiar development environment make it a strong contender for competing with the iPhone platform.
After introducing the Android platform we will discuss the paradigms and constraints in building a mobile application. We then dissect a simple “social” Android application which uses a REST-based webservice to communicate. This will help us understand the core components of an Android application and the Android SDK functionality.
Liferay Italy Symposium 2015 Liferay Mobile SDK and Liferay ScreensDenis Signoretto
Liferay Italy Symposium 2015 Liferay Mobile SDK and Liferay Screens, Building and Android App with Liferay (Using Liferay as Mobile Backend and Screens for reusable mobile compoents)
Presentation by Saurabh Harit att he mobile security summit in johannesburg 2011.
This presentation is about security on the iPhone and Android platforms. The presentation begins with a discussion on decrypting iPhone apps and its implications. The Android security model is discussed. The presentation ends with a series of discussions on practical Android attacks.
Mobile apps & Server Apis, the weak link? par Emanuele PecorariOlivier DASINI
Mobile apps & Server Apis, the weak link ? Open discussion on the mobile apps, and server apis/webservices based on video's return on experience after the recent relaunch of its mobile apps.
http://fr.viadeo.com/en/profile/emanuele.pecorari
This slide deck covers the automated & manual static code discovery of Android Application using opensource tools, Reverse engineering of apk file and Secure code review
The new build mechanism replacing Ant for Android development is based on Gradle, the popular build tool from the Groovy ecosystem. Ken Kousen introduces you to Gradle for Android developers and shows how easy it is to integrate Gradle into Android projects. We’ll show the latest version of the Android Studio IDE to develop applications. Join Ken to discuss using the Android plugin for Gradle; adding dependencies and alternate repositories; creating custom tasks; implementing both unit and integration tests; using alternative build types, product flavors, and variants; and more. Leave with an appreciation and understanding of Gradle and how to use it in your development environment.
The comprehension of very large-scale software system evolution remains a challenging problem due to the sheer amount of time-based (i.e., a sequence of changes) data and its intrinsically complex nature (i.e., heterogeneous changes across the entire system source code). It is a necessary step for program comprehension, as systems are not simply created out of thin air in a bang, but are the sum of many changes over long periods of time, by various actors and due to various circumstances.
We present SYN, a web-based tool that uses versatile visualization and data processing techniques to create scalable depictions of ultra-scale software system evolution. SYN has been successfully applied on several systems versioned on GitHub, including the nearly 20-year history of the Linux operating system, which totals more than one million commits on more than 100k evolving files.
Software development is carried out using Integrated Development Environments (IDEs). An IDE is a collection of tools and facilities to support the most diverse software engineering activities such as writing code, debugging, and program comprehension. Each activity is composed of many basic events, such as clicking on a menu item, opening a new tab to browse the source code of a method, or adding a new statement in the body of a method. These events are generally known as interaction data.
In my Ph.D. dissertation, we proposed the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify the workflow of developers. To support this vision, we developed DFlow: a plugin for the Pharo IDE to model, record, and interpret interaction data. Pharo is a pure object-oriented programming language and environment that is very suitable for research. Besides I do not regret doing research inside a niche development environment, after my doctoral studies I felt the desire to transfer my knowledge to a more popular IDE. In this talk, I will describe my journey alongside CodeLounge that led from DFlow to Tako, an extension for Visual Studio Code that collects, aggregates, and visualizes interaction data.
More Related Content
Similar to Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR2013]
Liferay Italy Symposium 2015 Liferay Mobile SDK and Liferay ScreensDenis Signoretto
Liferay Italy Symposium 2015 Liferay Mobile SDK and Liferay Screens, Building and Android App with Liferay (Using Liferay as Mobile Backend and Screens for reusable mobile compoents)
Presentation by Saurabh Harit att he mobile security summit in johannesburg 2011.
This presentation is about security on the iPhone and Android platforms. The presentation begins with a discussion on decrypting iPhone apps and its implications. The Android security model is discussed. The presentation ends with a series of discussions on practical Android attacks.
Mobile apps & Server Apis, the weak link? par Emanuele PecorariOlivier DASINI
Mobile apps & Server Apis, the weak link ? Open discussion on the mobile apps, and server apis/webservices based on video's return on experience after the recent relaunch of its mobile apps.
http://fr.viadeo.com/en/profile/emanuele.pecorari
This slide deck covers the automated & manual static code discovery of Android Application using opensource tools, Reverse engineering of apk file and Secure code review
The new build mechanism replacing Ant for Android development is based on Gradle, the popular build tool from the Groovy ecosystem. Ken Kousen introduces you to Gradle for Android developers and shows how easy it is to integrate Gradle into Android projects. We’ll show the latest version of the Android Studio IDE to develop applications. Join Ken to discuss using the Android plugin for Gradle; adding dependencies and alternate repositories; creating custom tasks; implementing both unit and integration tests; using alternative build types, product flavors, and variants; and more. Leave with an appreciation and understanding of Gradle and how to use it in your development environment.
The comprehension of very large-scale software system evolution remains a challenging problem due to the sheer amount of time-based (i.e., a sequence of changes) data and its intrinsically complex nature (i.e., heterogeneous changes across the entire system source code). It is a necessary step for program comprehension, as systems are not simply created out of thin air in a bang, but are the sum of many changes over long periods of time, by various actors and due to various circumstances.
We present SYN, a web-based tool that uses versatile visualization and data processing techniques to create scalable depictions of ultra-scale software system evolution. SYN has been successfully applied on several systems versioned on GitHub, including the nearly 20-year history of the Linux operating system, which totals more than one million commits on more than 100k evolving files.
Software development is carried out using Integrated Development Environments (IDEs). An IDE is a collection of tools and facilities to support the most diverse software engineering activities such as writing code, debugging, and program comprehension. Each activity is composed of many basic events, such as clicking on a menu item, opening a new tab to browse the source code of a method, or adding a new statement in the body of a method. These events are generally known as interaction data.
In my Ph.D. dissertation, we proposed the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify the workflow of developers. To support this vision, we developed DFlow: a plugin for the Pharo IDE to model, record, and interpret interaction data. Pharo is a pure object-oriented programming language and environment that is very suitable for research. Besides I do not regret doing research inside a niche development environment, after my doctoral studies I felt the desire to transfer my knowledge to a more popular IDE. In this talk, I will describe my journey alongside CodeLounge that led from DFlow to Tako, an extension for Visual Studio Code that collects, aggregates, and visualizes interaction data.
Intervento in occasione del TEDxItalianGathering 2019 tenutosi a Trento dal 31 maggio al 2 giugno. La presentazione è un breve viaggio nel magico mondo dei traduttori TED: dai processi standard fino agli ultimi strumenti informatici realizzati a supporto del processo di sottotitolazione.
Intervento in occasione del TEDxItalianGathering 2018 tenutosi a Bovino, Foggia il 3 novembre. L'obiettivo era spiegare il processo di creazione di un "talk in stile TED ." Dalla scelta del tema a quella dei protagonisti, da un'idea astratta a un talk vero e proprio.
Slides used for my PhD dissertation defense (13 November 2017).
Thesis: “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.”
— Roberto Minelli, 2017
Abstract:
Nowadays, software development is largely carried out using Integrated Development Environments, or IDEs. An IDE is a collection of tools and facilities to support the most diverse software engineering activities, such as writing code, debugging, and program comprehension. The fact that they are integrated enables developers to find all the tools needed for the development in the same place. Each activity is composed of many basic events, such as clicking on a menu item in the IDE, opening a new user interface to browse the source code of a method, or adding a new statement in the body of a method. While working, developers generate thousands of these interactions, that we call fine-grained IDE interaction data. In essence, this data captures the behavior of developers inside the IDE, but it is largely neglected by modern development environments. We believe that this data is a valuable source of information that can be leveraged to enable retrospective analyses and to offer novel support to developers.
In this dissertation we propose the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify their workflow. We formulate our thesis as follows: Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE. For example, by monitoring how developers navigate source code, the IDE could suggest the program entities that are potentially relevant for a particular task.
Our research focuses on three main directions:
1. Modeling and Persisting Interaction Data.
2. Interpreting Interaction Data.
3. Supporting Developers with Interaction Data.
Dissertation Committee:
– Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research Advisor)
– Dr. Andrea Mocci, Università della Svizzera italiana, Switzerland (Research Co-Advisor)
– Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member)
– Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member)
– Prof. Serge Demeyer, University of Antwerp, Belgium (External Member)
– Prof. Radu Marinescu, University of Timisoara, Romania (External Member)
As part of their daily work, developers interact with Integrated Development Environments (IDE), generating thousands of events. Together with other aspects of development, this data also captures the modus operandi of the developer, including all the program entities she interacted with during a development session. This "working set" (or context) is leveraged by developers to create and maintain their mental model of the software system at hand. Understanding how developers navigate and interact with source code during a development session is an open question.
We present a novel visual approach to understand how working sets evolve during a development session. The visualization incrementally depicts all the program entities involved in a development session, the intensity of the developer activity on them, and the navigation paths that occurred between them. We visualized about a thousand development sessions, and categorized them according to their visual properties.
Taming the IDE with Fine-Grained Interaction Data Roberto Minelli
Integrated Development Environments (IDEs) lack effective support to browse complex relationships between source code elements. As a result, developers are often forced to exploit multiple user interface components at the same time, bringing the IDE into a complex, "chaotic" state. Keeping track of these relationships demands increased source code navigation and cognitive load, leading to productivity deficits documented in observational studies. Beyond small-scale studies, the amount and nature of the chaos experienced by developers in the wild is unclear, and more importantly it is unclear how to tame it.
Based on a dataset of fine-grained interaction data, we propose several metrics to characterize and quantify the ``level of chaos'' of an IDE. Our results suggest that developers spend, on average, more than 30\% of their time in a chaotic environment, and that this may affect their productivity. To support developers, we devise and evaluate simple strategies that automatically alter the UI of the IDE. We find that even simple strategies may considerably reduce the level of chaos both in terms of effective space occupancy and time spent in a chaotic environment.
A short presentation of Interaction-Aware Development Environments, an IDE that records and exploits the interactions of the developer to support her workflow.
The Plague Doctor: A Promising Cure for the Window PlagueRoberto Minelli
My slides for the presentation of our ERA paper at ICPC 2015 (International Conference on Program Comprehension).
Abstract–Modern Integrated Development Environments (IDEs) are often affected by the “window plague”, an overly crowded workspace with many open windows and tabs. The main cause is the lack of navigation support in IDEs, also due to the many—and not always obvious—complex relationships that exist between program entities. Researchers have shown that it is possible to mitigate the window plague by exploiting the data obtained by monitoring how developers interact with the user interface of the IDE. However, despite initial results the approach was never fully integrated in an IDE.
In our previous work, we implemented DFlow, an automatic interaction profiler that monitors all the fine-grained interactions of the developer with the IDE. Here we present a first prototype of the Plague Doctor, a tool that seamlessly detects the windows that are less likely to be used in the future and automatically closes them. We discuss our long term vision on how to fully exploit the interaction data recorded by DFlow to provide a more effective cure for the window plague.
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...Roberto Minelli
My slides for the presentation of our full technical paper at ICPC 2015 (International Conference on Program Comprehension).
Abstract–Developing software is a complex mental activity, requiring extensive technical knowledge and abstraction capabilities. The tangible part of development is the use of tools to read, inspect, edit, and manipulate source code, usually through an IDE (integrated development environment). Common claims about software development include that program comprehension takes up half of the time of a developer, or that certain UI (user interface) paradigms of IDEs offer insufficient support to developers. Such claims are often based on anecdotal evidence, throwing up the question of whether they can be corroborated on more solid grounds.
We present an in-depth analysis of how developers spend their time, based on a fine-grained IDE interaction dataset consisting of ca. 740 development sessions by 18 developers, amounting to 200 hours of development time and 5 million of IDE events. We propose an inference model of development activities to precisely measure the time spent in editing, navigating and searching for artifacts, interacting with the UI of the IDE, and performing corollary activities, such as inspection and debugging. We report several interesting findings which in part confirm and reinforce some common claims, but also disconfirm other beliefs about software development.
Free Hugs — Praising developers for their actions [ICSE2015]Roberto Minelli
My slides for the presentation of our vision at ICSE 2015 (International Conference on Software Engineering).
Abstract–Developing software is a complex, intrinsically intellectual, and therefore ephemeral activity, also due to the intangible nature of the end product, the source code. There is a thin red line between a productive development session, where a developer actually does something useful and productive, and a session where the developer essentially produces “fried air”, pieces of code whose quality and usefulness are doubtful at best. We believe that well-thought mechanisms of gamification built on fine-grained interaction information mined from the IDE can crystallize and reward good coding behavior.
We present our preliminary experience with the design and implementation of a micro-gamification layer built into an object-oriented IDE, which at the end of each development session not only helps the developer to understand what he actually produced, but also praises him in case the development session was productive. Building on this, we envision an environment where the IDE reflects on the deeds of the developers and by providing a historical view also helps to track and reward long-term growth in terms of development skills, not dissimilar from the mechanics of role-playing games.
Quantifying Program Comprehension with Interaction Data [QSIC2014]Roberto Minelli
It is common knowledge that program comprehension takes up a substantial part of software development. This “urban legend” is based on work that dates back decades, which throws up the question whether the advances in software development tools, techniques, and methodologies that have emerged since then may invalidate or confirm the claim.
We present an empirical investigation which goal is to confirm or reject the claim, based on interaction data which captures the user interface activities of developers. We use interaction data to empirically quantify the distribution of different developer activities during software development: In particular, we focus on estimating the role of program comprehension. In addition, we investigate if and how different developers and session types influence the duration of such activities. We analyze interaction data from two different contexts: One comes from the ECLIPSE IDE on Java source code development, while the other comes from the PHARO IDE on Smalltalk source code development. We found evidence that code navigation and editing occupies only a small fraction of the time of developers, while the vast majority of the time is spent on reading & understanding source code. In essence, the importance of program comprehension was significantly underestimated by previous research.
Integrated Development Environments (IDEs) have become the de facto standard vehicle to develop software systems. The user interface (UI) of an IDE offers a staggering amount of facilities to manipulate source code, such as inspectors, debuggers, recommenders, alternative viewers, etc.
It is unclear how developers use the UI of an IDE and whether such UIs actually give appropriate support to the developers.
We present a visual approach to understand and characterize development sessions from the UI perspective. The tool supporting our approach mines and processes the finest-grained UI-level events making up development sessions and presents them visually. We have collected, visualized, and analyzed hundreds of development sessions and report on our findings.
Visual Storytelling of Development Sessions [ICSME2014] Roberto Minelli
Most development activities, like program understanding, source code navigation and editing, are supported by Integrated Development Environments (IDEs). They provide different tools and user interfaces (UI) to interact with the source code, such as browsers, debuggers, and inspectors. It is uncertain how and when programmers use different UI elements of an IDE and to what extent they appropriately support development.
Previously we developed DFLOW, a tool that seamlessly records and processes interaction data. Our long-term goal is to assess to what extent the UIs of IDEs support the workflow of developers and whether they can be improved. As a first step we present our approach to analyze development sessions in the form of visual storytelling. We illustrate our initial catalogue of visualizations through two development stories.
Developers use Integrated Development Environments (IDEs) to maintain and evolve software systems. IDEs facilitate development activities such as navigating, reading, understanding, and writing source code. Development activities are composed of many basic events, such as browsing the source code of a method or editing the body of a method. We call these actions “interaction data”. We believe that collecting, processing, and exploiting these interactions at run-time can potentially augment the productivity of developers.
Our goal is to create self-adaptive IDEs: IDEs that collect, mine, and leverage the interactions of developers to better support the developers’ workflow. We envision a development environment that automatically and seamlessly adapts itself to support developers while maintaining and evolving software systems. To reach our goal, we will develop means to reshape the user interface of the IDE, interaction-based recommenders, and integrate live and adaptive visualizations inside the IDE.
As a first step towards our vision, we have developed DFlow, a tool that non-intrusively records all IDE interactions while a developer is programming. At the moment DFlow collects all the interactions between the developer and the IDE, and enables retrospective analysis by means of software visualizations.
Visualizing the Workflow of Developers [VISSOFT2013]Roberto Minelli
We present an approach to visualize the activities of developers within the IDE, implemented in a tool: DFlow. DFlow records all IDE interactions that occur during a development session and visualizes them through a web-based visualization platform.
Slides used at VISSOFT 2013 (http://icsm2013.tue.nl/VISSOFT)
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
A workshop hosted by the South African Journal of Science aimed at postgraduate students and early career researchers with little or no experience in writing and publishing journal articles.
Normal Labour/ Stages of Labour/ Mechanism of LabourWasim Ak
Normal labor is also termed spontaneous labor, defined as the natural physiological process through which the fetus, placenta, and membranes are expelled from the uterus through the birth canal at term (37 to 42 weeks
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
Executive Directors Chat Leveraging AI for Diversity, Equity, and InclusionTechSoup
Let’s explore the intersection of technology and equity in the final session of our DEI series. Discover how AI tools, like ChatGPT, can be used to support and enhance your nonprofit's DEI initiatives. Participants will gain insights into practical AI applications and get tips for leveraging technology to advance their DEI goals.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR2013]
1. Software Analytics for Mobile Applications
Insights & Lessons Learned
Roberto Minelli & Michele Lanza
REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
Università
della
Svizzera
italiana R E V E A L
8. $4.5 billions “Mobile application and its global impact”
R. Islam, R. Islam, and T. Mazumder [IJEST 2010].
in 2009
9. $4.5 billions “Mobile application and its global impact”
R. Islam, R. Islam, and T. Mazumder [IJEST 2010].
in 2009
“Mobile application sales to reach $17.5bn by 2012”
http://news.bbc.co.uk
$17.5in billions
2012
10. $4.5 billions “Mobile application and its global impact”
R. Islam, R. Islam, and T. Mazumder [IJEST 2010].
in 2009
“Mobile application sales to reach $17.5bn by 2012”
http://news.bbc.co.uk
“Global mobile application market (2010- 2015)”
Markets and Markets, August 2010.
$17.5in billions
2012
$25 billions in 2015
15. “Software evolution observations
based on product release history”
“Implications of evolution metrics
on software maintenance”
“Metrics and laws of software
evolution - the nineties view”
“Laws of software “Evolution in open source
evolution revisited” software: A case study”
1996 1997 1998 1999 2000 20
35. Metric Description
NOP The Number of Packages of a project.
NOC The Number of Classes defined by the user.
NOM The Number of Methods defined by the user.
LOC The number of (non-empty) Lines of Code.
CYCLO McCabe’s Cyclomatic Complexity.
CALLS The number of (distinct) Method Calls.
FANOUT The Number of Called Classes.
ANDC The Average Number of Derived Classes. The metric does not count interfaces.
The Average Hierarchy Height of a system. A class is a root class if it is not an
AHH
interface and not derived from user-defined classes.
The Number of Internal Calls, i.e., invocations of methods that implement
INTC
internal behavior
EXTC The Number of External Calls, i.e., invocations that refer to 3rd-party libraries.
NOCE The Number of Core Elements.
CORELOC The sum of LOC of core elements.
COMMITS The Number of Commits of an app.
CALLR The ratio between INTC and EXTC.
CORER The ratio between CoreLOC and LOC.
36. Metric Description
NOP The Number of Packages of a project.
NOC The Number of Classes defined by the user.
NOM The Number of Methods defined by the user.
LOC The number of (non-empty) Lines of Code.
CYCLO McCabe’s Cyclomatic Complexity.
CALLS The number of (distinct) Method Calls.
FANOUT The Number of Called Classes.
ANDC The Average Number of Derived Classes. The metric does not count interfaces.
The Average Hierarchy Height of a system. A class is a root class if it is not an
AHH
interface and not derived from user-defined classes.
The Number of Internal Calls, i.e., invocations of methods that implement
INTC
internal behavior
EXTC The Number of External Calls, i.e., invocations that refer to 3rd-party libraries.
NOCE The Number of Core Elements.
CORELOC The sum of LOC of core elements.
COMMITS The Number of Commits of an app.
CALLR The ratio between INTC and EXTC.
CORER The ratio between CoreLOC and LOC.
“Object-oriented Software Metrics” “Object-Oriented Metrics in Practice”
M. Lorenz and J. Kidd, 1994 M. Lanza and R. Marinescu, 2006
37. Metric Description
NOP The Number of Packages of a project.
NOC The Number of Classes defined by the user.
NOM The Number of Methods defined by the user.
LOC The number of (non-empty) Lines of Code.
CYCLO McCabe’s Cyclomatic Complexity.
CALLS The number of (distinct) Method Calls.
FANOUT The Number of Called Classes.
ANDC The Average Number of Derived Classes. The metric does not count interfaces.
The Average Hierarchy Height of a system. A class is a root class if it is not an
AHH
interface and not derived from user-defined classes.
The Number of Internal Calls, i.e., invocations of methods that implement
INTC
internal behavior
EXTC The Number of External Calls, i.e., invocations that refer to 3rd-party libraries.
NOCE The Number of Core Elements.
CORELOC The sum of LOC of core elements.
COMMITS The Number of Commits of an app.
CALLR The ratio between INTC and EXTC.
CORER The ratio between CoreLOC and LOC.
“Software Analytics for Mobile Applications”
Roberto Minelli, MSc Thesis, 2012
38. Catalogue o f c h a r a c t e r is t ic s
of apps
S A MO A
Software Analytics for
MObile Applications
“Software Analytics for Mobile Applications”
Roberto Minelli, MSc Thesis, 2012
40. Apps are smaller than traditional software systems.
Facts:
✴Average size is 5.6 kLOC.
✴Smallest app is <300LOC.
✴Largest app is ~20kLOC.
Implications:
✴Often apps have few functionalities,
thus a few classes are enough to build
them...
✴...but it seems they are not trivial to
comprehend and maintain.
41. Apps are inherently complex, mostly because they
rely on third-party libraries.
Facts:
✴External calls are about 2/3 of all
method invocations.
✴In some apps external calls are more
than 75% of the total.
Implications:
✴To comprehend apps, analysts must
understand the behavior of the 3rd
party libraries, complicating program
comprehension and maintenance.
42. The size and complexity of apps grow in correlation
with the addition of third-party method invocations.
Facts:
✴The correlation between number of
external calls and complexity
number is high (x = 0.82).
✴The correlation between number of
LOC and complexity number is also
high (x = 0.84).
Implications:
✴The growth of an app can be
connected with the usage of the
external libraries.
43. The use of inheritance is almost absent in apps.
Average Hierarchy Height (AHH) = 0.09
We studied breadth and depth of the inheritance...
Average Number of Derived Classes (ANDC) = 0.19
Facts:
✴The apps in our corpus have very small average values for
both these metrics.
✴Apps tend to be small, thus there is little potential for
inheritance.
Implications:
✴We suspect that if they evolve over a long time, they will
grow in size, according the Lehman’s software evolution laws.
44. Some apps contain the entire source code of third-
party libraries.
Facts:
✴In Java systems 3rd party libraries
are reused by referencing JARs.
✴In some apps developers directly
import the entire source code of 3rd
party libraries.
Implications:
✴Copying external code into a
system can have a series of legal
consequences.
45. Some developers use versioning systems only at
later stages of the development.
Facts:
✴It is a good practice to put software
projects under revision control early.
✴On average, the LOC of the first
(a)
revision represents ca. 1/3 of the LOC
at the end of the evolution.
✴The quality of any software analysis is
(b) (c)
connected to the quality of the
available data.
46. Some developers use versioning systems only at
later stages of the development.
Facts:
✴It is a good practice to put software
projects under revision control early.
“Initial add, corresponds to
On average, the LOC of the first
market version✴1.8”.
(a)
revision represents ca. 1/3 of the LOC
at the end of the evolution.
✴The quality of any software analysis is
(b) (c)
connected to the quality of the
available data.
47. Some developers use versioning systems only at
later stages of the development.
Facts:
✴It is a good practice to put software
projects under revision control early.
✴On average, the LOC of the first
(a)
revision represents ca. 1/3 of the LOC
at the end of the evolution.
✴The quality of any software analysis is
(b) (c)
connected to the quality of the
available data.
Implications:
✴Incomplete histories make retrospective software evolution
analysis difficult.
48. Developers often break the connection between
Android manifest and source code.
Facts:
✴As all software systems, apps are also
“core drop” made up of pieces which are not
source code.
✴The manifest file identifies core
elements of an app.
✴Developers must manually maintain
this file in sync with the source code.
49. Developers often break the connection between
Android manifest and source code.
Facts:
✴As all software systems, apps are also
made up of pieces which are not
source code.
✴The manifest file identifies core
“unbroke the app after the big
subpackage reshuffle of ’09:
elements of an app.
Updated manifest entries [...]”
✴Developers must manually maintain
this file in sync with the source code.
50. Developers often break the connection between
Android manifest and source code.
Facts:
✴As all software systems, apps are also
made up of pieces which are not
source code.
✴The manifest file identifies core
elements of an app.
✴Developers must manually maintain
this file in sync with the source code.
Implications:
✴We believe that the maintenance and understanding of such
pieces will become a concern.
“An empirical study of build maintenance effort”
S. McIntosh et al., [ICSE 2009]
51. Development guidelines are often ignored.
Facts:
✴Software systems should conform to
a set of sound guiding principles.
✴In Android, one of such guidelines is
that an app must have only one main
activity.
Implications:
✴Multiple main activities are multiple
entry points, complicating the
comprehension of apps.
“Default” main activity Activity Main activity Service
52. Some apps are only composed of the core.
Facts:
✴On average, CORELOC represent ca.
half of the size of an entire app.
✴In our corpus 25% of the apps have
more than 70% of CORELOC.
Implications:
✴Those apps violate basic design
guidelines (i.e., separation of
concerns and encapsulation).
✴“God activities”, like god classes, are
a maintenance problem.
“Object-Oriented Design Heuristics”
A. Riel, 1996.
53. ...for Mobile Apps are written in different
Software Analytics for Mobile Applications
Insights & Lessons Learned
Applications Languages...
C++
Java
Roberto Minelli & Michele Lanza
REVEAL @ Faculty of Informatics
University of Lugano, Switzerland Objective-C
C# C/C++, Java, etc.
Apps are software systems
aimed at smartphones, tablet ...and distributed via different
Università
della
Svizzera
italiana R E V E A L
PCs, and other handheld devices.
App Stores
$4.5 billions
in 2009
“Mobile application and its global impact”
R. Islam, R. Islam, and T. Mazumder [IJEST 2010].
“Mobile application sales to reach $17.5bn by 2012”
S A MO A
Software Analytics for MObile Applications
http://news.bbc.co.uk http://samoa.inf.usi.ch
“Global mobile application market (2010- 2015)”
Markets and Markets, August 2010.
$17.5in billions
2012
...thus maintenance
$25 billions in 2015 is critical!
Source Code Snapshot view Insights &
Lessons Learned
Evolution History view
Use of
3rd Party Libraries Ecosystem view
54. Apps are inherently complex, mostly because they The size and complexity of apps grow in correlation
Apps are smaller than traditional software systems. with the addition of third-party method invocations.
rely on third-party libraries.
Facts: Facts: Facts:
✴Average size is 5.6 kLOC. ✴External calls are about 2/3 of all ✴The correlation between number of
✴Smallest app is <300LOC. method invocations. external calls and complexity
✴Largest app is ~20kLOC. ✴In some apps external calls are more number is high (x = 0.82).
than 75% of the total. ✴The correlation between number of
Implications:
LOC and complexity number is also
✴Often apps have few functionalities, Implications: high (x = 0.84).
thus a few classes are enough to build ✴To comprehend apps, analysts must
them... understand the behavior of the 3rd Implications:
✴...but it seems they are not trivial to party libraries, complicating program ✴The growth of an app can be
comprehend and maintain. comprehension and maintenance. connected with the usage of the
external libraries.
Some apps contain the entire source code of third- Some developers use versioning systems only at
The use of inheritance is almost absent in apps. party libraries. later stages of the development.
Average Hierarchy Height (AHH) = 0.09 Facts: Facts:
✴In Java systems 3rd party libraries ✴It is a good practice to put software
We studied breadth and depth of the inheritance...
are reused by referencing JARs. projects under revision control early.
Average Number of Derived Classes (ANDC) = 0.19 ✴In some apps developers directly ✴On average, the LOC of the first
import the entire source code of 3rd revision represents ca. 1/3 of the LOC
(a)
Facts: party libraries. at the end of the evolution.
✴The apps in our corpus have very small average values for ✴The quality of any software analysis is
both these metrics. Implications: (b) (c)
connected to the quality of the
✴Apps tend to be small, thus there is little potential for ✴Copying external code into a
available data.
inheritance. system can have a series of legal
consequences.
Implications:
Implications:
✴We suspect that if they evolve over a long time, they will
✴Incomplete histories make retrospective software evolution
grow in size, according the Lehman’s software evolution laws.
analysis difficult.
Developers often break the connection between
Android manifest and source code. Development guidelines are often ignored. Some apps are only composed of the core.
Facts: Facts: Facts:
✴As all software systems, apps are also ✴Software systems should conform to ✴On average, CORELOC represent ca.
made up of pieces which are not a set of sound guiding principles. half of the size of an entire app.
source code. ✴In Android, one of such guidelines is ✴In our corpus 25% of the apps have
✴The manifest file identifies core that an app must have only one main more than 70% of CORELOC.
elements of an app. activity.
✴Developers must manually maintain
Implications:
Implications: ✴Those apps violate basic design
this file in sync with the source code.
✴Multiple main activities are multiple guidelines (i.e., separation of
Implications: entry points, complicating the concerns and encapsulation).
✴We believe that the maintenance and understanding of such comprehension of apps. ✴“God activities”, like god classes, are
pieces will become a concern. a maintenance problem.
“Object-Oriented Design Heuristics”
“An empirical study of build maintenance effort” A. Riel, 1996.
S. McIntosh et al., [ICSE 2009] “Default” main activity Activity Main activity Service