About Tomi Männistö

Professor, 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)

Cookbook for the systematic experimentation

The ESE research group has authored a cookbook for continuous experimentation based on the research in the N4S research program.

Continuous experimentation Cookbook – An introduction to systematic experimentation for software-intensive businesses provides an introduction to continuous experimentation, which is a systematic way to continuously test your product or service value and whether your business strategy is working.

An increasing number of companies are involved in building software-intensive products and services – hence the popular slogan “every business is a software business”. Software allows companies to disrupt existing markets because of its flexibility. This creates highly dynamic and competitive environments, imposing high risks to businesses. One risk is that the product or service is of only little or no value to customers, meaning the effort to develop it is wasted. In order to reduce such risks, you can adopt an experiment-driven development approach where you validate your product ideas before spending resources on fully developing them. Experiments allow you to test assumptions about what customers really want and react if the assumptions are wrong.

This book provides an introduction to continuous experimentation, which is a systematic way to continuously test your product or service value and whether your business strategy is working. With real case examples from Ericsson, Solita, Vaadin, and Bittium, the book not only gives you the concepts needed to start performing continuous experimentation, but also shows you how others have been doing it.

The cookbook was a deliverable in the N4S program.

A Roadmap to the Programmable World: Software Challenges in the IoT Era

The emergence of millions of remotely programmable devices in our surroundings
will pose signicant challenges for software developers. A roadmap from today’s cloud-centric, data-centric Internet of Things systems to the Programmable World highlights those challenges that haven’t received enough attention.

Author’s post-print version (pdf), which in is content equal to the fully formatted, published version available from IEEE:

Taivalsaari, Antero and Mikkonen, Tommi, 2017. A Roadmap to the Programmable World: Software Challenges in the IoT Era. Software, IEEE, 34(1), pp.72–80. doi:10.1109/MS.2017.26

 

Scientific Writing – Guide of the Empirical Software Engineering Research Group

We have written some instructions to help the students in scientific writing. Learning scientific writing provides the ability to express one’s thoughts with particular clarity and communicate them in a manner that seasoned scientists find easy to follow.

The guidelines are applicable for seminar reports, B.Sc. and M.Sc. theses and also when aiming to write your first scientific publication. The guide is intended for software engineering and related areas of research. They are not necessarily directly applicable to other fields, e.g., theoretical computer science.

Please, read the guide before starting your thesis work: Scientific Writing – Guide of the Empirical Software Engineering Research Group

BTW. From the ESE research group’s web pages, you can also find some thesis topics of interest to the research group, some provided by our industrial collaborators.