
Mikko Raatikainen- Doctor of Science
- University Researcher at University of Helsinki
Mikko Raatikainen
- Doctor of Science
- University Researcher at University of Helsinki
About
85
Publications
39,431
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,109
Citations
Current institution
Publications
Publications (85)
Machine learning (ML) has reached technological maturity, and its applications are now becoming pervasive across diverse industries. Simultaneously, demands from society and authorities have become increasingly complex and stringent, requiring transparency and evidence for trustworthiness. While emerging MLOps practices streamline the development a...
Deep neural networks bear substantial cloud computational loads and often surpass client devices' capabilities. Research has concentrated on reducing the inference burden of convolutional neural networks processing images. Unstructured pruning, which leads to sparse matrices requiring specialized hardware, has been extensively studied. However, neu...
Cloud computing and deep learning, the recent big trends in the software industry, have enabled small companies to scale their business up rapidly. However, this growth is not without a cost – deep learning models are related to the heaviest workloads in cloud data centers. When the business grows, the monetary cost of deep learning in the cloud gr...
As software is becoming a central element in our lives, more and more stakeholders have concerns. Unlike today, when developers stop their coding activities to satisfy these stakeholder concerns, we propose dealing with them as part of the coding workflow, the central element of programmers' daily duties. This can be achieved by extending the appro...
Issue trackers, such as Jira, have become the prevalent collaborative tools in software engineering for managing issues, such as requirements, development tasks, and software bugs. However, issue trackers inherently focus on the lifecycle of single issues, although issues have and express dependencies on other issues that constitute issue dependenc...
To an increasing degree, data is a driving force for digitization, and hence also a key asset for numerous companies. In many businesses, various sources of data exist, which are isolated from one another in different domains, across a heterogeneous application landscape. Well-known centralized solution technologies, such as data warehouses and dat...
Machine learning (ML) provides us with numerous opportunities, allowing ML systems to adapt to new situations and contexts. At the same time, this adaptability raises uncertainties concerning the run-time product quality or dependability, such as reliability and security, of these systems. Systems can be tested and monitored, but this does not prov...
Machine learning (ML) provides us with numerous opportunities, allowing ML systems to adapt to new situations and contexts. At the same time, this adaptability raises uncertainties concerning the run-time product quality or dependability, such as reliability and security, of these systems. Systems can be tested and monitored, but this does not prov...
Application Programming Interfaces (APIs) have become prevalent in today’s software systems and services. APIs are basically a technical means to realize the co-operation between software systems or services. While there are several guidelines for API development, the actually applied practices and challenges are less clear. To better understand th...
Context: Artificial intelligence (AI) has made its way into everyday activities, particularly through new techniques such as machine learning (ML). These techniques are implementable with little domain knowledge. This, combined with the difficulty of testing AI systems with traditional methods, has made system trustworthiness a pressing issue. Obje...
Context
Artificial intelligence (AI) has made its way into everyday activities, particularly through new techniques such as machine learning (ML). These techniques are implementable with little domain knowledge. This, combined with the difficulty of testing AI systems with traditional methods, has made system trustworthiness a pressing issue.
Obje...
Increasingly common open data and open application programming interfaces (APIs) together with the progress of data science -- such as artificial intelligence (AI) and especially machine learning (ML) -- create opportunities to build novel services by combining data from different sources. In this experience report, we describe our firsthand experi...
Requirements Engineering in open source projects such as Eclipse faces the challenge of having to prioritize requirements for individual contributors in a more or less unobtrusive fashion. In contrast to conventional industrial software development projects, contributors in open source platforms can decide on their own which requirements to impleme...
Issue trackers, such as Jira, have become the prevalent collaborative tools in software engineering for managing issues, such as requirements, development tasks, and software bugs. However, issue trackers inherently focus on the life-cycle of single issues although issues have and express dependencies on other issues that constitute an issue depend...
Artificial intelligence (AI) and machine learning (ML) is becoming commonplace in numerous fields. As they are often embedded in the context of larger software systems, issues that are faced with software systems in general are also applicable to AI/ML. In this paper, we address ML systems and their characteristics in the light of software maintena...
Managing software projects gets more and more complicated with an increasing project and product size. To cope with this complexity, many organizations use issue tracking systems, where tasks, bugs, and requirements are stored as issues. Unfortunately, managing software projects might remain chaotic even when using issue trackers. Particularly for...
Today’s dominant design for the Internet of Things (IoT) is a Cloud-based system, where devices transfer their data to a back-end and in return receive instructions on how to act. This view is challenged when delays caused by communication with the back-end become an obstacle for IoT applications with, for example, stringent timing constraints. In...
From the point of view of the software framework owner, attracting new and supporting existing application developers is crucial for the long-term success of the framework. This mixed-methods study explores the factors that support developers in adopting and continuously using a framework. Data was collected from two sources: interviews with experi...
Context: A software product line is a means to develop a set of products in which variability is a central phenomenon captured in variability models. The field of SPLs and variability have been topics of extensive research over the few past decades. Objective: This research characterizes systematic reviews (SRs) in the field, studies how SRs analyz...
Background: Requirement engineering is often considered a critical activity in system development projects. The increasing complexity of software as well as number and heterogeneity of stakeholders motivate the development of methods and tools for improving large-scale requirement engineering. Aims: The empirical study presented in this paper aim t...
Ontology integration addresses the problem of reconciling into one single semantic framework different knowledge chunks defined according to its own ontology. This field has been subject of analysis and many consolidated theoretical results are available. Still, in practice, ontology integration is difficult in heterogeneous information systems (HI...
The requirements for a system have many dependencies that can be expressed in the individual requirements managed in an issue tracker or a requirements management system. However, managing the entire body of requirements taking into account all complex dependencies is not well supported. We describe how a feature model based configurator can be use...
Background: Requirement engineering is often considered a critical activity in system development projects. The increasing complexity of software, as well as number and heterogeneity of stakeholders, motivate the development of methods and tools for improving large-scale requirement engineering. Aims: The empirical study presented in this paper aim...
Software companies face high pressure to develop innovative products and services at increasing speed. However, a traditional new product development (NPD) process is not always a sufficient means for doing this. We report experiences from an explorative multiple case study covering eight cases from four companies of different sizes and business ch...
Within software product lines, customers may have different quality needs. To produce products with purposefully different quality attributes, several challenges must be addressed. First, one must be able to distinguish product quality attributes to the customers in a meaningful way. Second, one must create the desired quality attribute differences...
Software variability modelling (SVM) has become a central concern in software product lines – especially configurable software product lines (CSPL) require rigorous SVM. Dynamic SPLs, service oriented SPLs, and autonomous or pervasive systems are examples where CSPLs are applied. Knowledge-based configuration (KBC) is an established way to address...
Over the past several years, companies have had to change to meet the threat
of accelerating competition coming from startups and other global industry
players. Digitalization is the name of the times, and many companies are
evaluating what to do in order to stay in the game.
Our answer to this question is to use internal startups as an innovation...
A swift execution from idea to market has become a key competitive advantage for software companies to enable them to survive and grow in turbulent business environments. To combat this challenge, companies are using hackathons. A hackathon is a highly engaging, continuous event in which people in small groups produce working software prototypes in...
In a software product line, security may need to be varied. Consequently, security variability must be managed both from the customer and product line architecture point of view. We utilize design science to build an artifact and a generalized design theory for representing and configuring security and functional variability from the requirements t...
In the software product line research, product variants typically differ by their
functionality and quality attributes are not purposefully varied. The goal is to study purposeful performance variability in software product lines, in particular, the motivation to vary performance, and the strategy for realizing performance variability in the produc...
This paper investigates how software development teams and their products can be influenced by the use of service design tools. More specifically, a case study incorporating LEGO® SERIOUS PLAY® workshops was conducted in collaboration with Steeri Oy, a company that develops customer relationship software. Two workshops were held with two different...
An increasing number of services is mainly provided through digital channels and thus, implemented as software. Nevertheless, many companies struggle with developing digital services that are considered valuable by the users. Recently, service design has emerged as an approach to design better customer experience for services. We describe our exper...
Software ecosystems are increasingly involving multiple companies to collaboratively propose value for an end user. When planning a joint solution however, there are challenges for companies. In this paper , we study the experience of joint solution planning in three different kinds of ecosystem settings, highlighting the nature of collaboration an...
Finding a suitable time for a meeting is a common practi- cal problem. The existing software solutions either cannot be used across heterogeneous calendar systems and organi- zations, or require manual effort and waiting. We employ design science to study how meetings can be scheduled over organizational and calendar system boundaries; the schedu-...
Feature models are a wide-spread approach used for ex-pressing variability in software product lines. Answer set programming (ASP) is nowadays an increasingly popular approach to configuration knowledge representation. In this paper, we study the similarities between feature modeling and configuration knowledge representation with ASP. We define th...
The industrial organizations involved in developing and maintaining nuclear power plants need to comply with the requirements coming from the legislative regulation. In the newly renewed Finnish guidelines, there are over 6500 such requirements, which are not always easy to interpret. The industrial stakeholders particularly find the situation high...
Software architecture evaluation is an essential part of architecture management and a means to uncover problems and increase confidence in the capability of the software architecture in fulfilling the most critical requirements. Architecture evaluation is typically carried out at an early stage of a software development. However, development effor...
Engineering large software-based systems in safety-critical
domains is a challenging task despite extensive research
on the topic. The software technologies and development
processes are established, and basic safety principles are well
known. However, demonstrating the safety of a software-based
automation system remains a key challenge, particula...
The success of software ecosystems highly depends on the variety and quality of end-user applications. Therefore, attracting third-party developers and facilitating application development is crucial. Platform boundary resources enable third-party developers to create the applications. Thus, the platform boundary resources expose and extend the pla...
Nowadays, smart devices have excellent computing power and connectivity and at the same time are used for various purposes. This creates the possibility for complex, cooperative multi-device programs. However, current programming paradigms are not tailored for such a setting. This paper tackles the problem by introducing a new paradigm: an action-o...
Mobile devices are becoming the primary access point for users
for various services and mobile cloud computing has emerged as a means of
utilizing the advantages of cloud computing within mobile devices. Cloud
computing, in general, hides the location of services, regardless of whether
they are provided by the mobile devices or by backend services....
A hackathon (hacking marathon) is an event to innovate and develop prototypes, typically lasting at most a few days. Despite several innovations having been reported resulting from hackathons and the increasing popularity of hackathons, results about, organizing of, and experiences regarding hackathons have been scarcely reported. We studied a hack...
Online social media services, such as Facebook and Twitter,
have set new standards on how people interact with
each other online, share their everyday activities, and media
services. While current mobile services supporting social interaction
are typically primarily for remote communication,
similar services can be introduced to co-located social i...
In the context of mobile devices, services from several devices can be composed. Such composable services may include data and device resources, such as microphones or cameras. The services can be composed to create collaborative composite services, such as video streaming. The mobility of the devices makes the service compositions inherently dynam...
Typically, products in a software product line differ by their functionality, and quality attributes are not intentionally varied. Why, how, and which quality attributes to vary has remained an open issue. A systematically conducted literature review on quality attribute variability is presented, where primary studies are selected by reading all co...
Variability in software architectures, and especially dynamic variability in software architectures, calls for tool support. The complexity involved in the variability means that tools should be able to efficiently derive architectures at runtime. Our contribution is to offer concepts and an expository instantiation of Configurator-as-a-Service (Ca...
Mobile devices have become a commodity: we use several devices for various purposes. Although we carry only some of our devices with us, we still want to access content originating from any device. To overcome this issue, device users often upload content into a hosting service available in the cloud. However, cloud-based hosting can alienate the c...
Although cloud computing has established itself as a novel paradigm, mobile devices have unique characteristics and capabilities that are not inherently made part of a cloud. This paper presents the notion of a mobile device cloud: mobile devices become active members in the cloud, sharing content, resources, and services with each other. We discus...
Requirements of a system are gathered from various stakeholders, but especially in safety critical application domains, such as the nuclear energy domain, public authorities also impose requirements. Major parts of requirements are often written in natural language. Despite being widely applied and a convenient means, natural language requirements...
The successful practices of requirements engineering vary between application domains and are characterized by the nature of the application domain. One relatively peculiar application domain is the nuclear energy domain, which is characterized by the long life cycle of power plant operation and construction project, strict control of safety, and c...
Currently users own and use many network-connected devices such as laptop, smart phone, or tablet. The user creates content using the default applications in these devices. One approach is to share and ubiquitously access the contents through a social media. Nevertheless, the contents residing in these devices should be available from anywhere, wit...
Feature modeling has enjoyed success as a widely used variability modeling method in companies utilizing product lines. A number of different feature modeling methods have been proposed with expanded notational concepts and ability to model various dependencies among features. Despite popular usage and relatively simple concepts, different feature...
SAFIR2010. The Finnish Research Programme on Safety 2007-2010. Final Report. Puska, Eija Karita & Suolanen, Vesa. VTT Research Notes 2571, 109 - 117 Requirements specify the expected characteristics of a system. Requirements engineering is an activity that defines and manages requirements in upgrades and new-builds of nuclear power plants. In the V...
The emergence of open, composable Internet services and mashups means that services cannot be composed in a centralised man- ner. Despite this, cross-cutting constraints might exist between services, stemming from, e.g., security. Especially when used with mobile devices, these service compositions need to be constructed at runtime. This pa- per pr...
Software product families and agile development have emerged as a popular means in software engineering. In this position paper, we discuss how development management in agile methods can be integrated with software product family structure modeling. The integration aims towards improving software product family development governance by providing...
Agile methods have gained popularity in the software industry. A backlog, which is, roughly, a prioritized list of things to be done, is used as a means of management of development. However, one particular challenge is that a backlog does not provide in- formation beyond isolated backlog items, e.g., especially that of composed entities, such as t...
Software variability modeling is a complex task. To manage this complexity, we introduce an approach called Svamp. The main contribution of Svamp is to model con- cepts through ontologies and offer tool support for captur- ing functional and quality variability in software product family architectures. Variability description languages are defined...
Agile methods have gained popularity in the software industry. A prioritized list referred to as a backlog is used as a means to manage development. The challenges in development management are, e.g., that a backlog does not provide a view to dependencies such as a feature requiring another feature or consequences of changes are not visible. We des...
In service oriented computing (SOC), applications are constructed by composing existing services. Not all compositions, however, are correct or meaningful. For example, an application needs to follow steps in a process in a meaningful order. We study feasibility of using product configuration technology in the composition of an application based on...
Extreme Programming (XP) avoids up-front design by concentrating only on current needs in environments of uncertain requirements. Software architecture design approaches produce architectures to match functional and quality requirements before detailed design and implementation. The approaches seem to be in tension with respect to the role of up-fr...
Predicting the properties of a component composition has been studied in component-based engineering. However, most studies do not address how to find a component composition that satisfies given functional and nonfunctional requirements. This paper proposes that configurable products and configurators can be used for solving this task. The propose...
Software products often need to vary in terms of func- tionality, but also in terms of quality attributes. We describe KumbangSec, which in an approach for modelling func- tional and security variability applying different architec- tural viewpoints. KumbangSec builds on an existing vari- ability modelling method, Kumbang, by extending it with secu...
Service oriented computing develops applications by composing services; in software product families applications are developed by reusing existing assets. Hence, the approaches seem to have several similarities although there are also differences. In this position paper, we discuss modeling in these two approaches. We conclude with directions for...
Variability is the ability of a system to be effciently extended, changed, customized, or configured for use in a particular context. Several methods of modeling variability have been reported. However, tool support is also needed to take full advantage of models. We describe a prototype tool called Kumbang Modeler. Kumbang Modeler enables modeling...
Abstract. Software product families provide an ecient means of reuse between a set of related products. However, software product families are often solely associated with intra-organisational reuse. This paper presents a case study of Fathammer, a small company developing games for dierent mobile devices. Reuse at Fathammer takes place at mul- t...
Software variability has received research attention. However, only a few studies address the issue of quality attribute variability within software product families. This paper describes the ongoing research on quality attribute variability within a software product family architecture. We motivate the research topic by identifying three different...
Configurable software product families are a subclass of software product families that are customized in a product individual derivation process without design or programming. This article presents results on analyzing two such families and their derivation processes found in a descriptive case study on software product families. Some characterist...
Software product families (SPF) are becoming more commonplace in many industrial organizations due to the increasing variability requirements. One major challenge with SPFs is to understand the challenges companies are facing as well as solutions they have tried out. Feasible tools for gathering such knowledge are qualitative research methods that...
A configurable software product family allows the deployment of individual products without customer-specific design or programming
effort. Despite the fact that such software product families have recently gained research interest, there are only few empirical
studies on them. This paper presents some results of a descriptive case study undertaken...
In service oriented computing (SOC), applications are con-structed by composing existing services. However, all compositions of components are not correct or meaningful even if they are syntactically correct. For example, an application needs to follow steps in a process in a meaningful order. We study feasibility to use product congura-tion in the...