About Tomi Männistö

Professor, Software Engineering

New IST publication: Undulate: A framework for data-driven software engineering enabling soft computing

To see the paper (open access): https://doi.org/10.1016/j.infsof.2022.107039

Highlights

  • We constructed Undulate, a novel framework for systematically collecting data from software and business processes, storing the data in a dimensional database, thus creating a basis for data-driven software engineering.
  • We defined the general principles of how soft computing can be used to exercise automated control on and provide decision support for software engineering processes, such as continuous experimentation.
  • We extended and applied a multilevel modelling language to define key concepts in software experimentation to provide a scientifically rigorous conceptual basis for the Undulate framework.

Abstract

Context. Especially web-facing software systems enable the collection of usage data at a massive scale. At the same time, the scale and scope of software processes have grown substantively. Automated tools are needed to increase the speed and quality of controlling software processes. The usage data has great potential as a driver for software processes. However, research still lacks constructs for collecting, refining and utilising usage data in controlling software processes.

Objective. The objective of this paper is to introduce a framework for data-driven software engineering. The Undulate framework covers generating, collecting and utilising usage data from software processes and business processes supported by the software produced. In addition, we define the concepts and process of extreme continuous experimentation as an exemplar of a software engineering process.

Method. We derive requirements for the framework from the research literature, with a focus on papers inspired by practical problems. In addition, we apply a multilevel modelling language to describe the concepts related to extreme continuous experimentation.

Results. We introduce the Undulate framework and give requirements and provide an overview of the processes of collecting usage data, augmenting it with additional dimensional data, aggregating the data along the dimensions and computing different metrics based on the data and other metrics.

Conclusions. The paper represents significant steps inspired by previous research and practical insight towards standardised processes for data-driven software engineering, enabling the application of soft computing and other methods based on artificial intelligence.

ESEM in Helsinki, September 19–23, 2022

The 16th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM2022)
19-23 September 2022
Helsinki, Finland

The ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM) is the premier conference for presenting research results related to empirical software engineering. ESEM provides a stimulating forum where researchers and practitioners can present and discuss recent research results on a wide range of topics, in addition to exchanging ideas, experiences and challenging problems.
The theme for this year’s ESEM is “A new normal in Software Engineering!?”, which refers to the times we have after the pandemic. The theme essentially asks how the research, education or practice of Software Engineering may have changed for good. However, there is also the question of how much is new, or is it all just normal Software Engineering, perhaps something being applied more extensively? In addition to regular submissions, we encourage all kinds of contributions addressing the theme, be it vision papers, case reports, industrial experience reports, surveys, and so on.
Details on the topics of interest, the submission procedures, as well as all co-located events, are available at the conference website: https://conf.researchr.org/home/esem-2022

Important Dates

(All dates are end of the day, anywhere on earth)

Technical Papers and Emerging Results and Vision Papers

Abstract submission: April 25, 2022
Paper submission: May 2, 2022
Notification: June 17, 2022

Journal-First Track

Submission: July 7, 2022
Notification: August 15, 2022

Industry Forum

Submission: August 13, 2022
Notification: September 1, 2022

Registered Reports Track

Submission: June 30, 2022
Initial Reviews: July 26, 2022
Notification of Stage 1: August 25, 2022

Doctoral Symposium

Submission: June 22, 2022
Notifications: July 22, 2022

Conference Organization

General Chair

Casper Lassenius, Aalto University, Finland

Program Co-Chairs

Tayana Conte, Universidade Federal do Amazonas, Brazil
Tomi Männistö, University of Helsinki, Finland

Emerging Results and Vision Papers Co-Chairs

Paris Avgeriou, University of Groningen (RuG), Netherlands
Marco Kuhrmann, University of Passau, Germany

Journal First Chair

Dietmar Pfahl, University of Tartu, Estonia

Industry Talks Co-Chairs

Tommi Mikkonen, University of Jyväskylä
Niko Mäkitalo, University of Helsinki, Finland

Registered Reports Co-Chairs

Maria Teresa Baldassarre, University of Bari, Italy
Neil Ernst, University of Victoria, Canada

Doctoral Symposium Chair

Maria Paasivaara, LUT University, Finland & Aalto University, Finland

Proceedings Chair

Fernanda Madeiral, KTH Royal Institute of Technology (Sweden)l

Social Media and Publicity Co-Chairs

Adolfo Neto –  Universidade Tecnológica Federal do Paraná (UTFPR), Brazil
Nelly Condori Fernandez – University of A Coruña/ Vrije Universiteit Amsterdam, The Netherlands

Local Organizing Chair

Fabian Fagerholm, Aalto University, Finland

Conference Organizer

Mary-Ann Alfthan, Aalto University, Finland

Web Chair

Bettina Lehtelä, Aalto University, Finland

PROFESSOR OR ASSISTANT/ASSOCIATE PROFESSOR IN SOFTWARE ENGINEERING

The Department of Computer Science at the Faculty of Science of the University of Helsinki invites applications for a

PROFESSOR OR ASSISTANT/ASSOCIATE PROFESSOR IN SOFTWARE ENGINEERING

aiming to strengthen research areas in computer science at the university.

Position description
We are looking for a new professor or assistant/associate professor to carry out research into the field of software engineering.

The person to be chosen must have a strong scientific track record in the field of software engineering evidenced by publications in top tier forums of the field. The University of Helsinki and the Department of Computer Science offer excellent potential collaborators in the relevant areas, such as data science and other disciplines of different faculties of the university.

The appointee is expected to conduct research on an internationally high level. We expect a strong network of international and interdisciplinary cooperation and collaboration. In addition, strong record in empirical software engineering and particularly in close industrial collaboration is considered a significant advantage. The teaching area of the position is software engineering. The person chosen for the position is expected to teach and develop teaching particularly in the Master’s Programme in Computer Science and potentially also in the Bachelor Programme in Computer Science and the Bachelor’s Programme in Science. In addition, the appointee will participate in doctoral education at the Department of Computer Science, collaborate with other groups in the department, acquire research funding for their research group, and participate in the interaction between science and society at large.

More information: https://www2.helsinki.fi/en/open-positions/professor-or-assistantassociate-professor-in-software-engineering

Digital world needs architecting more than ever

The slogan of our Computer Science department is “Architects of the digital world” (cs.helsinki.fi). The meaning of this slogan can be understood and approached from different perspectives. In this blog post, we aim to do our part by addressing what architecting the digital world means from the viewpoint of software, and in particular, that of software engineering research, where the word (software) architecture has been partially reserved for technical interpretation.

The digital word – and software in it – is already around us. Many of the devices, such as cars, are almost mobile computers carrying massive amounts of software onboard for controlling their behavior; our surroundings, such as homes, are packed with devices that run software, for example, to enable connectivity to our mobile devices for telling how they are doing; many if not most services are being digitalized – or have a digital component; and even many of our social interactions takes place in the digital world. The increasing digitalization just keeps expanding all that. 

So where’s the architecture and architecting in all of the above? Briefly, in the blueprint that defines the DNA of the system as a whole. In the small scale, software is code created by software developers, with the assistance of software-based tools, frameworks, cloud environments, and so on. However, when things get big, complex, integrated, interoperable, or critical, conscious architecting is needed to give the whole a reasonable shape and to ensure the whole has desired properties. Often referred to as architecturally significant, such properties may include the protection of privacy, availability of services, modifiability of software to different uses, fault tolerance, energy efficiency, and so on, to mention some. Furthermore, as the modern systems and their software evolve throughout their lifespans, only future-proof architectural designs will keep the software systems sustainable. In software engineering research and practice, these are the kinds of concerns architects and architecture design methods aim at addressing. 

To elaborate, architecting means, first of all, understanding what is expected of the digital world. Designing and maintaining complex and large, often interconnected software systems of the digital world demand robust architecting. Architecting is then about making the important design decisions that give the digital world its shape and answers “how to position the load-bearing structures”. Architecting is also about risk management of those parts of the digital world that have not yet been realised. When planning something not yet existing, an architect needs to envision the technical solutions with the acceptably low risk of feasibility for meeting the expectations over the entire life cycle.

It seems inevitable that the future digital world will start shaping itself with little overall control or planning, when more and more systems are constructed that depend on each other in their operations. In this new context, the role of software engineering research is to try to understand where things may start cracking and crumbling – and then see what architectural solutions would be needed to solidify the digital world. This naturally requires understanding the expectation the society sets for the digital world. In addition to the expected needs, the digital world sets constraints on software systems. For example, as more and more regulated software systems become connected, the need for architecture work becomes more stringent. Architecture becomes the essential communication tool that enables risk managers and regulatory affairs professionals to effectively perform their duties in the area of safety, cybersecurity or privacy.

To summarize: The expectations that are architecturally significant, i.e., fundamental in the design and thus hard to change if wrong and that enable or prohibit the expected properties of the digital world, include for example:

  • When and how should the software protect the privacy of personal data, particularly when pieces of data are combined from distinct sources?
  • How to make the public sector software systems interoperable, open and cost efficient – with some open and crowd sourced architecting?
  • How to control the risks related to systems critical to society or individual human life, taking into account their various intertwined dependencies (e.g., banking systems currently used also for general-purpose user identification purposes)?
  • How to take into account the sustainability goals of the future digital world (e.g., electricity consumption)?
  • How to design software systems in which artificial intelligence, including machine learning, can be embedded in an understandable, trustworthy, transparent, and testable manner? 

This is where the architects of the digital world are needed – to help make the architectural decisions regarding the software that runs the world. This is not only about technical issues and possibilities but also about understanding the contexts of use, decisions about policies that constrain technical solutions, incentives for collaboration for common benefit, or ensuring that the voice of minorities is also heard. It is therefore in the interest of the society that the architectural decisions of important services and systems of the digital world and their justifications are transparent and open to scrutiny. 

As a research group in software engineering and architectural topics in particular, these are issues we envision to encounter on our journey when living up to the slogan of the department: “Architects of the digital world”. 

– the ESE Team

Doctoral defence on Continuous Experimentation in Software Engineering

Sezin Yaman from ESE research group will have a public examination of her Phd thesis titled: “Initiating the Transition towards Continuous Experimentation : Empirical Studies with Software Development Teams and Practitioners”. The opponent will be Professor Brian Fitzgerald, University of Limerick. The public event will take place in Room 302, Athena Building, University of Helsinki, on the 25th of October, 2019 at 12 o’clock noon.

See:
https://hy.etapahtuma.fi/flamma-2019/fi?id=56765#.XadD_sRS9hE

https://helda.helsinki.fi/handle/10138/305855

Continuous and collaborative technology transfer: Software engineering research with real-time industry impact

We have co-authored a top tier paper on research collaboration and experiences between academia and industry in Finland. The paper: Continuous and collaborative technology transfer: Software engineering research with real-time industry impact is available online (freely until March 31, 2018) from the web site of Information and Software Technology.

Summary:

Traditional technology transfer models rely on the assumption that innovations are created in academia, after which they are transferred to industry using a sequential flow of activities. This model is outdated in contemporary software engineering research that is done in close collaboration between academia and industry and in large consortia rather than on a one-on-one basis. In the new setup, research can be viewed as continuous co-experimentation, where industry and academia closely collaborate and iteratively and jointly discover problems and develop, test, and improve solutions.

Research questions:

  • How can high-quality, ambitious software engineering research in a collaborative setup be conducted quickly and on a large scale?
  • How can real-time business feedback to continuously improve candidate solutions be gained?

The proposed model has been created, refined, and evaluated in two large, national Finnish software research programs. For this paper, we conducted thematic interviews with representatives of four companies who participated in these programs.

 

The fundamental change is in the mindset of the participants from technology push by academia to technology pull by companies, resulting in co-creation. Furthermore, continuous cooperation between participants enables solutions to evolve in rapid cycles and forms a scalable model of interaction between research institutes and companies.

The multifaceted nature of software engineering research calls for numerous approaches. In particular, when working with human-related topics such as company culture and development methods, many discoveries result from seamless collaboration between companies and research institutes.

 

Regulated Software Meets DevOps

Our paper published in the top tier journal Information and Software Technology on DevOps and regulated software development.

Highlights:

  • Research on DevOps and regulated software development is scarce.
  • Standards for regulated development limit the use of DevOps practices.
  • DevOps tools could help with strict tracing requirements if further developed.
  • DevOps should automate documentation and template generation where applicable.
  • Standards should provide templates that the tools can implement.

Visual abstract:

Publication details Regulated Software Meets DevOps. The paper in pdf  is available online from the publisher’s web site.

Summer Interns in OpenReq project

We are looking for research assistants as summer workers in the research project OpenReq.

Task: Java backend programming as the main objective but can also include Jira plugin development. In addition, other tasks also relevant related to OpenReq project. The tasks will be agreed based on the knowledge and interests of the applicant. Possibility to experiment modern technologies, such as AI  and NLP, with practical problems. We will have people available at office during the summer to support and guide the work.

Skills needed: Basic knowledge of Java, and data structures and algorithms. Knowledge of and interest in software and requirements engineering is a benefit.

Contact: Mikko Raatikainen or Prof. Tomi Männistö, firstname.lastname@helsinki.fi

Context: OpenReq (openreq.eu) is an EU Horizon 2020 framework project that aims to provide better requirements engineering to your organization. We are driving for improvements in the areas of requirements identification, classification and decision making support. The improvements we are looking for can be achieved through improved processes, methods and tools. OpenReq is also looking at hot topics like Artificial Intelligence methods to help with managing requirements and requirement extraction from natural language like social media posts.

In Finnish see also the UH news item: Tulossa: Älykäs ja yhteisöllinen ohjelmistojen vaatimusmäärittely.

The project involves four academic partners: HITEC University of Hamburg (GER), Universitat Politecnica de Catalunya (ESP), Technical University of Graz (AUT), and University of Helsinki. Other five industrial partners participate in OPENREQ: The Qt Company (FIN), SIEMENS (AUT), ENG Engineering(ITA), vogella (GER), and Wind Tre S.p.a. (ITA).

The thesis is carried out in the Empirical Software Engineering Research Group

MSc Thesis in OpenReq research project

MSc Thesis in a research project (funded): Designing and implementing an intelligent product release assistant system that utilises Choco solver for inference about diagnosis and repair.

Problem: The release problem concerns assigning requirements to a set of releases in which the requirements are planned to be implemented. The requirements are defined in different requirements management systems such as Doors or Jira. The requirements have properties, such as priority and effort, as well as interdependencies, such as one requirement requires or excludes another one. These properties must be taken into account when making the decision about the releases, but the release problem is also a negotiation process between stakeholders. We currently have basic functionalities to represent the problem in a declarative manner and to assist in making deductions using Choco solver as the inference engine. However, there is a need for defining and demonstrating more sophisticated inference. In particular, several releases need to be taken into account, conflicting properties and stakeholder concerns need to be negotiated, and explanations for resolving inconsistencies need to be generated for stakeholders.

Starting date: December 2017 – February 2018.

Objective (in addition to the thesis): Demonstration of the prototype implementation in the OpenReq meetings latest in May/June.

Required knowledge / keywords: Java, Spring Boot, CSP, Choco. The working language of the project is English.

Contact & Applications: Mikko Raatikainen or Prof. Tomi Männistö, firstname.lastname@helsinki.fi

Context: OpenReq (openreq.eu) is an EU Horizon 2020 framework project that aims to provide better requirements engineering to your organization. We are driving for improvements in the areas of requirements identification, classification and decision making support. The improvements we are looking for can be achieved through improved processes, methods and tools. OpenReq is also looking at hot topics like Artificial Intelligence methods to help with managing requirements and requirement extraction from natural language like social media posts.

The project involves four academic partners: HITEC University of Hamburg (GER), Universitat Politecnica de Catalunya (ESP), Technical University of Graz (AUT), and University of Helsinki. Other five industrial partners participate in OPENREQ: The Qt Company (FIN), SIEMENS (AUT), ENG Engineering(ITA), vogella (GER), and Wind Tre S.p.a. (ITA).

The thesis is carried out in the Empirical Software Engineering Research Group

Brave New Programmable World

Today, most of us in the industrialised world use at least two computers – a phone and a laptop. Many of us have a third device, a tablet, and more devices such as health monitoring and entertainment systems are being taken to use. Even cars are becoming powerful computing platforms that can be harnessed to serve our increasing needs for apps and data to consume.

Unfortunately, our practices, methods and techniques are not a good fit for such cornucopia of computers. We still treat them more like pets that each requires constant attention rather than accepting their new role as cattle, where no individual plays a defining role in our life. Therefore, new approaches are needed to harness the true power of computers around us to practical use. So-called liquid software is an attempt to build applications that from the end-user perspective flow from one computer to another, offering seamless computation experiences. This initiative is somewhat new, with the 2nd international workshop on liquid software being hosted in Rome, Italy, as a part of the International Conference on Web Engineering.

In addition to the techniques that will help us design software for numerous devices, another dimension to consider is what all these computers mean for humanity. What implications will the increasingly intelligent environment of the brave new programmable world have on our behaviour and actions as humans, as well as to what extent we should consider computers as part of our society are interesting questions for future research. Obviously, such work should be joint endeavour, executed by philosophers, social scientists and software engineers all together.

This blog post repeats the core message Tommi Mikkonen delivered in his inaugural presentation on May 31, 2017.

Tommi Mikkosen tervetuliaisluento (video of Tommi Mikkonen’s inaugural lecture, in Finnish)