My research projects and funding
The SURF-MobileAppsData project will mine data about mobile apps that are available in app stores to support software engineers in the maintenance and evolution of these apps. In particular, the goal is to devise an analysis framework and a feedback-driven environment to help developers to shorten the development life cycle and to accommodate actual user needs. Hence, the main purpose of the project is to surf the large amount of data (such as user reviews or app ratings etc.) that characterizes any app in an app store with the aim of advancing the current state-of-the-art in mining mobile apps in several novel directions: by providing a mulit-level, multi-source feedback mechanism for developers and users; by devising means for multi-source interlinking of user requests and actual changes; and by better wiring up feature development and bug fixing thru user feedbacks.
Start/End: 01.09.2016 - 31.03.2021
Funding: SNSF, CHF 471'018
Co-PIs: Harald Gall, Sebastiano Panichella
Whiteboard - An e-Science Framework for Replication of Software Studies
The Whiteboard project aims to foster both direct and conceptual replicability of software studies and will additionally enable benchmarking of software projects across a large body of systems. The vision is to establish an e-science framework for software evolution analysts, that supports the process of designing, conducting, and sharing empirical studies and experiments. Besides addressing the needs of data scientists, it will also be highly useful for other software evolution analysts, such as software quality analysts in industry. We will focus on three research areas: 1) Replicability for Software Evolution Studies and Experiments; 2) Software Data Analysis Patterns; and 3) Software Evolution Benchmarking.
Start/End: 01.10.2014 - 30.09.2018
Funding: SNSF, CHF 438'097
PI: Harald Gall
ESSENTIALS - People-centric Essentials for Software Evolution
Software evolution research, and its conceptual offspring mining software repositories, have so far mostly focused on structured and semi-structured artifacts, especially source code and versioning data. To substantially extend these works, we will focus on the essence of software evolution that goes beyond sheer code or change analysis. We want to answer the higher-level question “What does a stakeholder in her respective working context need to know about a software part, with respect to its developers, its features, its changes, its issues, or its discussions?”. We call that the evolutionary essentials of a software part that tells a stakeholder the most relevant information in her working context. We focus on a key aspect that has been neglected so far: the people-centric dimension, in terms of the people who produce software, ranging from developers and testers, to project managers and quality analysts. Especially the presentation of information about evolving systems is challenging, as the sheer amount and diversity of the potentially available data is staggering. We propose to investigate methods, tools, and techniques that can mine the available information, combine and present it in novel ways, to provide people with the appropriate “essentials” about any kind of artifact, be it structured, unstructured, or human.
Start/End: 01.04.2014 - 31.03.2017
Funding: SNSF, CHF 581'686
Co-PIs: Harald Gall, Michele Lanza (USI)
MINCA - Models to Increase the Cost Awareness of Cloud Developers
MINCA - Models to Increase the Cost Awareness of Cloud Developers: One of the challenges of modern cloud application development is the management of deployment costs. Automated and semi-automated scaling, pay-per-use pricing, complex multi-factor billing models, and frequent changes in the market make predicting the actual costs of using a given (combination of) cloud services to host a given application so that it exhibits a given level of minimal performance (e.g., response time) difficult for developers. The primary contribution of MInCA will be an approach to model, predict and optimize the deployment costs of cloud applications, with a specific focus on (micro-)service-based applications. Central to our approach is the notion of a holistic cost model (HCM), which is a multi-view architectural model of the application that integrates modelling the dependencies between services, the deployment of the individual services onto cloud resources,and the application workload (e.g., what load is on what service at what times). We will use the HCM to foster developer awareness of the cost impact of their code changes (e.g., through appropriate visualizations in the Integrated Development Environment, IDE), to support What-If analysis ("What happens if the application gets 50% more users?"), and to enable application-wide deployment optimization (i.e., select optimal deployment options for each service depending on global state and available cloud services).
Duration: September 2016 - November 2019
Funding: SNSF, CHF 182.963 CHF
PI: Philipp Leitner
Managed Software Evolution
Enterprise software systems integrate many different components ranging from applications to legacy systems, middleware components or platforms, and to services. A managed evolution of such systems require appropriate abstraction models, continuous validation and monitoring of quality properties of components and services, as well as analysis techniques that investigate all sorts of accumulated data. Software systems exhibit a wealth of rich data to be analyzed for assessing and guiding their evolution: it ranges from requirements to architectural and design abstractions, the code base and its modification and change repositories, bug and issue tracking data, test data and test suites, execution trace data, and logs of the communication between different components. Since such data pervades requirements, architecture, design, implementation, configuration, testing, and deployment, we need to devise methods to deal with that allotrope.In this research module, we will focus on models, methods and technologies to manage the large-scale evolution of enterprise computing systems. The goal is to mine and integrate different static and dynamic data sources, build bridges between the different levels of abstraction from architecture and design to code and tests, and to develop means for effective enterprise software evolution support. We will focus on cross-model abstractions for requirements, analysis, and test evolution. The challenge will be to develop a cross-model (from architecture to code and test) and cross-role (for architects, developers or testers) integration to enable proactive steering of evolution both for static and dynamic system aspects. We will explore enterprise computing systems from a software evolution perspective and focus on models for managed evolution, their linkage across different abstraction levels (ranging from requirements to architecture, design, code and tests) as well as on the discovery of large-scale system evolution (anti-)patterns. Methods and technologies will be devised data analysis, evolution analysis and requirements evolution.
Start/End: 01.01.2009 - 31.01.2013
Funding: SNSF, CHF 361'995
Co-PIs: Harald Gall, Donald Kossmann (Microsoft), Martin Glinz
DevCloud - Towards Software Developer Targeted Cloud Benchmarketing and Cost Estimation
In cloud-based software development, applications are deployed to virtual machines using a predefined cloud instance type. These types differ in provided performance as well as costs. Software developers currently struggle with selecting the best (i.e., cost-optimal) instance types to deploy their applications. In DevCloud, we provide methods and tooling that enable cloud benchmarking for software developers. Our approach is based on application-specific performance models, which combine a statistical model of cloud instance performance as delivered by cloud benchmarking research, an architectural application model, and example load and usage patterns.
Duration: Jan 2016 - September 2016
Funding: Hasler Foundation, CHF 44.791 CHF
PIs: Harald Gall, Philipp Leitner
CloudWave researches agile development and delivery of adaptive cloud services, which dynamically adjust to changes in their environment so as to optimise service quality and resource utilization. CloudWave will deliver (1) an open architecture and standards-based reference implementation of an advanced cloud software stack, with novel capabilities for adaptation across all cloud layers; and (2) tools and methods for agile development of reliable and adaptable cloud services, facilitated by the new stack. University of Zurich's main interest in CloudWave lies in the idea of Feedback-Driven Development for cloud applications: an cloud-based software development approach, where developers exploit runtime analytics data to incrementally determine and evolve application features, extensions and optimizations, based on observed user needs.
Partners: IBM Israel - Science and Technology Ltd (IL - Coordinator), SAP AG (DE), Intel Performance Learning Solutions Limited (IE), Telecom Italia S.p.A (IT), Atos Spain SA (ES), Cloudmore OÜ (SE), University of Duisburg-Essen (DE), Universita Degli Studi di Messina (IT), Technion Israel Institute of Technology (IL), University of Zurich (CH)
Duration: Nov 2013 - Oct 2016
Funding: The European Commission's FP7 ICT Call 10 (Total: 10'331'392 EUR)
Autonomous Control for a Reliable Internet of Services (ACROSS)
Currently, we are witnessing a paradigm shift from the traditional information-oriented Internet into an Internet of Services (IoS). This transition opens up virtually unbounded possibilities for creating and deploying new services. Eventually, the ICT landscape will migrate into a global system where new services are essentially large-scale service chains, combining and integrating the functionality of (possibly huge) numbers of other services offered by third parties, including cloud services. Motivated by this, the aim of ACROSS is to create a European network of experts, from both academia and industry, aiming at the development of autonomous control methods and algorithms for a reliable and quality-aware IoS.
Duration: Nov 2013 - Oct 2017
Funding: European Cooperation in Science and Technology (COST)
Contact: Philipp Leitner
Personal Developer Analytics
Most developers nowadays face the problem that there are days when their development work goes well and days when they cannot seem to get anything done. Our aim is to create tools to help developers better reflect and improve on their development work and productivity.
SoSYA - Systems of Systems Analysis
Given today’s plentitude of software systems, we need to address the complexity of what is called software ecosystems or systems of systems. Such systems of systems and the associated knowledge are the most valuable asset of their owners: they typically form the very basis for the success of companies, organizations, or communities. They have become a reality of the current IT landscape, where companies and open source communities manage in parallel dozens or hundreds of projects belonging to the same product family or IT portfolio. The challenges in this context are not only an exploding amount of information, but also completely novel types of data not taken into account so far: systems have multi-dimensional dependency relationships between them. Indeed, managing the co-evolution of systems, application programming interfaces (APIs), services, and libraries is emerging as one of the next grand challenges of software engineering. We argue that there is a need for novel approaches to analyze systems of systems and to tackle the challenges that they pose.
The goal of this project SoSYA is to build on our previous work on distributed collaborative software analysis in the context of the predecessor project DiCoSA, and to devise theories, models, and prototypes for “systems of systems analysis.” In particular, we will address theories and models for systems of systems, algorithms and techniques for systems of systems analysis, and methods for tangible rendering of systems of systems.
Start/End: Oct 2010 - Sep 2013
Funding: SNSF, CHF 563'096
Principal investigators: Harald Gall, Michele Lanza (USI)
DiCoSA - Distributed Collaborative Software Analysis
The goal of the DiCoSA project is to devise a distributed and col laborative software analysis platform to allow for interoperability of software quality analysis tools across organisational boundaries. Such tools will adhere to specific meta-models and ontologies for their category of analysis and offer a common service interface that enables their composite use on the Internet. These distributed analysis services shall be widely accessible in an incrementally augmented software quality analysis portal, where organisations and research groups can share their tools.
Duration: Oct 2007 - Sep 2010
Funding: SNSF, CHF 318'523
PIs: Harald Gall, Michele Lanza (Univ. of Lugano)
The goal of this ProDoc in Enterprise Computing is to establish a graduate school that, in close collaboration with industry, prepares highly skilled professionals and researchers who (1) are familiar with the problems encountered in enterprise computing; (2) contribute to formalizing the problems and outlining comprehensive solutions; and (3) are well versed in the all the areas that are relevant to enterprise computing (with an emphasis on data management, distributed systems, operating systems and networking, and software engineering). The graduates of the program will then have the necessary background to lead new research in the area and formulate teaching plans more adequate to industrial needs, or to join the Swiss industry, thereby enhancing the expertise available in the Swiss IT market.
Duration: Oct 2008 - Sep 2011
Funding: SNSF, ProDoc Programme, CHF 107'750
Principal Investigators: Gustavo Alonso (ETHZ), Harald Gall, Nesime Tatbul (ETHZ)
EvoSpaces II - Virtual Collaborative Spaces for Software Evolution
The EvoSpaces II project will make a significant contribution to current software visualization: multi-dimensional software structures can be effectively navigated and analyzed by new means of metaphors and visualization. This project devises a collaborative multi-level and multi-user software analysis platform by means of visualization, interaction, and navigation both for single and multiple users to facilitate software comprehension and evolution tasks for large software systems.
Duration: Jan 2008 - Dec 2009
Principal investigators: Harald Gall, Michele Lanza (Univ. of Lugano), Philippe Dugerdil (Univ. of Applied Sciences, Geneva)
Funding: Hasler Foundation, Switzerland
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for SW Evolution: In the current information technology society we are relying more and more on software systems. Maintenance has been identified to be the primary factor of the total cost of large software systems (more than 90% of the total cost). One of the key difficulties encountered in software maintenance is given by the intrinsic complexity of those systems, whose size can easily reach the tens of millions of lines of source code. Software complexity is recognized as one of the major challenges to the development and maintenance of industrial size software projects.
To that respect, the key aspect of software is that it is a virtual product. In other words, it is difficult to grasp the full complexity of a system that one cannot see or touch. However, many attempts to visually represent the structure of software systems have been proposed, essentially through flat representations. However, the quantity of information that can be represented in 2D drawings is limited. Handling the complexity and observing the evolution of very large software systems needs the analysis of large complex data models and the creation of condensed views on the system. In the context of visualization, software metrics have been used to compute and enrich such condensed views. However, current techniques concentrate on visualizing data of one particular software release, providing insufficient support for visualizing data of several releases. The goal of this project is to exploit multi-dimensional navigation spaces to efficiently visualize evolving software systems.
Duration: Jan 2006 - Dec 2007
Principal investigators: Harald Gall, Michele Lanza (Univ. of Lugano), Philippe Dugerdil (Univ. of Applied Sciences, Geneva)
Funding: Hasler Foundation, Switzerland
ProMedServices - Proactive Software Service Improvement
The goal of ProMedServices (Proactive Software Service Improvement for Large-Scale Distributed Systems) is to extend and develop new techniques in software analysis and software service development and to prove their practical applicability in a large distributed system in a critical field. To achieve these goals, the project will formulate methods and develop techniques for detecting software decay. We will integrate expertise from areas of software evolution, distributed and mobile systems as well as service engineering to explore new ways for software service improvement on a large scale. Techniques from architecture reconstruction, refactoring, service engineering and testing will be combined in a software service evolution toolbox to provide a software architect with pro-active tools and processes to ensure and improve software service quality during software development.
Duration: Jan 2007 - Dec 2008
Principal investigators: Harald Gall (Project Leader), Martin Kropp (FHNW), Christian Lovis and Antoine Geissbühler (both from Geneva University Hospitals)
Funding: Hasler Foundation, Switzerland
NEPOMUK - The Social Semantic Desktop
NEPOMUK aims at empowering individual knowledge workers to better exploit their personal information space and to maintain fruitful communication and exchange within social networks across organizational boundaries. NEPOMUK brings together researchers, industrial software developers, and representative industrial users, to develop a comprehensive solution for extending the personal desktop into a collaboration environment which supports both the personal information management and the sharing and exchange across social and organizational relations. This solution is called the Social Semantic Desktop.
Duration: Jan 2006 - Dec 2009
Principal investigators: Harald Gall, Gerald Reif
Funding: EU IP - 6th Framework European Union Integrated Project
COSE - Controlling Software Evolution
The COSE project: In an information technology society that is increasingly relying on software, software productivity and quality continue to fall short of expectations: software systems suffer from signs of aging as they are adapted to changing requirements. The main reason for this problem is that software maintenance and software change is still undervalued in traditional software development processes. The only way to overcome or avoid the negative effects of software aging is by placing change in the center of the software development process. Without explicit and immediate support for change and evolution, software systems become more and more complex, fragile and unreliable. This negative spiral is rapidly shortening due to hardware and business innovations, changes in legislation and continuing internationalisation. We must therefore advance beyond the engineering metaphor of current software development, and provide more and better support for software change and evolution. The goal of this project is to investigate means to analyze and control the evolution of a software system at various levels.
We tackle these questions by exploiting and understanding the huge amounts of information which reside in versioning and bug tracking systems, but which seem to be largely ignored by software industry. We focus on large-scale software systems both from the open source and the industrial area.
Start/End: 01.07.2005 - 30.09.2007
Principal investigators: Harald Gall, Michele Lanza (Univ. of Lugano)
Funding: Swiss National Science Foundation (SNF), CHF 255'883
SCSS - Service-Centric Software Systems
Service-Centric Software Systems (SCSS) are software systems that are constructed from autonomous services and bring new challenges for software engineering. Flexible, adaptable and interoperable software services require the creation of new efficient methods, techniques and tools. This concerns subjects such as service life-cycle, service description, interoperability, service levels, and service evolution.
In this project we devise such service-centric technologies for this new kind of software architectures.
Duration: Nov 2006 - Dec 2009
Principal investigator: Harald Gall
The smart Soft-Ware-House
Software development managers are greatly limited in their abilities to control their projects due to limited kinds of information they have about their projects. They typically compute a variety of project management related measures such as cost per module, slippage towards milestones, critical path, etc. Sophisticated software project managers include additional measurements such as source code metrics (e.g., lines of code, program complexity and difficulty, mental effort, etc.) and evolution metrics (e.g., number of modifications and number of reported bugs, etc.). All these quantitative measures typically are listed in predefined project reports to assess the status-quo of a project. Though, these measures turned out to be valuable input they often obscure information. The basic reason lies in the abstractness of computed measures and in the complexity of underlying data making it difficult to grasp and interpret.
Addressing the issue of improving control of software projects we propose to develop a Soft-Ware-House that gathers all the software project information (including the actual code in all its iterations, project member interactions such as emails and built-in board postings, problem and modification report data, and all other documents available about the projects such as design documents) about multiple software development projects to allow both: OLAP-styled interactive data exploration1; and analytic processing with inferential algorithms (i.e., data mining).
Start/End: 01.09.2007 - 31.08.2009
Funding: SNSF, CHF 82'975
Co-PIs: Abraham Bernstein, Harald Gall
SVC Fundamental Programming Modules
The SVC Fundamental Programming Modules project will develop a blended learning basic programming course particularly targeted to courses where entry levels of students and learning objectives are quite different, directed both to informatics students and to students in other technical domains requiring programming skills. For this purpose, the course is conceived as a set of self-contained modules which can be used, according to the target students, at three different levels (beginners, intermediate and advanced). This allows also the instructor to individually assign modules (at different levels) from students with different entry requirements.
The project is realised by the new Faculty of informatics of the University of Lugano, by the Department of Informatics of the University of Zurich and by the Department of Innovative Technologies of SUPSI: the three partners bring complementary competences, especially concerning the programming language used to teach students; this will allow to develop also a set of language-specific modules illustrating the fundamental concepts. All three partners will enforce the modules in their regular course, for a total number of nearly 300 students. However, the course has a large use potential also in other Swiss universities and UAS, as well as in continuing education. Finally, didactical and technical support, as the whole implementation, will be ensured by the eLab USI-SUPSI.
Duration: Jan 2006 – Dec 2007
Principal investigators: Mehdi Jazayeri, Michele Lanza (Univ of Lugano), Harald Gall, Roberto Mastropietro (University of applied sciences of southern Switzerland)
Funding: Swiss National Science Foundation (SNF), Swiss Virtual Campus
Software Evolution Analysis project
The research project SEA (Software Evolution Analysis) addresses the importance of software evolution and reegineering of large-scale software systems. Gaining higher level evolutionary information about large software systems is a key challenge in dealing with increasing complexity and architectural deterioration. Modification reports and problem reports taken from systems such as CVS and Bugzilla contain an overwhelming amount of information about the reasons and effects of particular changes. Such reports can be analyzed to provide a clearer picture about the problems concerning a particular feature or a set of features. Hidden dependencies of structurally unrelated but over time logically coupled files exhibit a high potential to illustrate feature evolution and possible architectural deterioration.
Duration: Mar 2004 - Dec 2010
Principal investigators: Harald Gall, Martin Pinzger
ITEA project SERIOUS
The ITEA project SERIOUS (Software Evolution, Refactoring, Improvement of Operational & Usable Systems) aims at the break-through of turning the current practice of handcrafted evolution to methodologically sound techniques supported by industry-adoptable tools including corresponding development processes for the evolution of operational software-intensive systems. In the SERIOUS project the software evolution related issues are addressed which is currently hardly explored territory in software engineering.
Duration: 2005 - 2008
Principal investigators: Harald Gall, Martin Pinzger
ESF - RELEASE network
The goal of the ESF scientific network RELEASE (Research Links to Explore and Advance Software Evolution) is to facilitate interdisciplinary exchange of ideas and interaction on software evolution in a broad sense. In general, the focus of interest will be on guiding principles of, and better tools for software evolution. The goal will be to suitably link theory-based and empirical approaches, to enhance mutual exchange of ideas and to foster collaborative research amongst the leading European groups on these topics. The topics will naturally include the use of mathematical formalisms as a foundation for industrial tools and processes to support software evolution. This cross fertilisation between mathematics and computer science on the one hand, and between process aspects and technological aspects on the other hand, is intended to lead to a better understanding of software evolution as a whole, which should lead to better tool support for all aspects of software evolution.
Duration: Oct 2002 - Dec 2005
Funding: European Science Foundation (ESF)
PI: Harald Gall
EUREKA/ITEA project System Families
EUREKA System Families: System families are strategic assets, which can be used for European advancement. Prime export products are based on system families and, as the importance of technology increases, most of those products have become information intensive. The structuring of systems into families allows for sharing design effort and as such counters the impact of ever growing complexity. This makes it possible to sustain, even increase, the rate of product introduction. The companies participating in this consortium have investigated and developed technology for system families now for seven years and experiences gained so far are very significant. In particular, they were involved in the ITEA projects ESAPS, and CAFÉ, focussed on a similar subject. This has lead to a recognized European community on the subject of System Family Engineering. The FAMILIES project aims at growing the community, consolidating results into fact-based management for the practices of FAMILIES and its preceding projects, and to explore fields that were not covered in the previous projects, in order to complete the Framework.
Duration: 2003 - 2005
EUREKA/ITEA project CAFÉ
The CAFÉ project develops concepts for product family engineering, based on its core process, consisting of six core sub-processes, and intends to bring these concepts to maturity so that they can be applied in concrete projects by developing methods and procedures from these concepts. It is based on the same core process, with focus on the very early and late sub-processes, and the major activities shown at the arrows. The results of the CAFÉ project, encompassing the structure of the assets and the knowledge about methods and procedures, will be used for tools and concrete applications (upper right corner).
Duration: 2001 - 2003
EU FP5-IST project MOTION
MOTION (MObile Teamwork Infrastructure for Organisations Networking) was a successful European project aiming at the development and validation of an innovative multi-service business architecture to support teamwork and distributed working methods in largely distributed production environments. An emerging direction of manufacturing is leading to a growing need for geographically distributed product development: products are built up of components developed by units located in different cities or countries. MOTION addressed this important business area, and developed an innovative peer-to-peer teamwork service architecture that supports several key requirements for distributed business processes, including: efficient information sharing across a widely distributed enterprise environment; constant and timely update of the distributed knowledge base, with many different sites acting both as potential users as well as potential providers of information; shared access to different, integrated manufacturing engineering services, supporting both local activities as well as mobile working. Many essential parts of this technology have been published in conferences and journals. For more information see our publications page.
Duration: 2000 - 2002