17 research outputs found
Data-driven elicitation of quality requirements in agile companies
Quality Requirements (QRs) are a key artifact to ensure the quality and success of a software system. Despite its importance, QRs have not reached the same degree of attention as its functional counterparts, especially in the context of trending software development methodologies like Agile Software Development (ASD). Moreover, crucial information that can be obtained from data sources of a project under development (e.g. JIRA, github,…) are not fully exploited, or even neglected, in QR elicitation activities. In this work, we present a data-driven approach to semi-automatically generate and document QRs in the context of ASD. We define an architecture focusing on the process and the artefacts involved. We validate and iterate on such architecture by conducting workshops in four companies of different size and profile. Finally, we present the implementation of such architecture, considering the feedback and outcomes of the conducted workshops.Peer ReviewedPostprint (author's final draft
Degrees of tenant isolation for cloud-hosted software services : a cross-case analysis
A challenge, when implementing multi-tenancy
in a cloud-hosted software service, is how to ensure that the
performance and resource consumption of one tenant does
not adversely affect other tenants. Software designers and
architects must achieve an optimal degree of tenant isolation
for their chosen application requirements. The objective
of this research is to reveal the trade-offs, commonalities,
and differences to be considered when implementing
the required degree of tenant isolation. This research uses
a cross-case analysis of selected open source cloud-hosted
software engineering tools to empirically evaluate varying
degrees of isolation between tenants. Our research reveals
five commonalities across the case studies: disk space reduction,
use of locking, low cloud resource consumption,
customization and use of plug-in architecture, and choice of
multi-tenancy pattern. Two of these common factors compromise
tenant isolation. The degree of isolation is reduced
when there is no strategy to reduce disk space and customization
and plug-in architecture is not adopted. In contrast,
the degree of isolation improves when careful consideration
is given to how to handle a high workload, locking of
data and processes is used to prevent clashes between multiple
tenants and selection of appropriate multi-tenancy pattern. The research also revealed five case study differences:
size of generated data, cloud resource consumption, sensitivity
to workload changes, the effect of the software process,
client latency and bandwidth, and type of software process.
The degree of isolation is impaired, in our results, by
the large size of generated data, high resource consumption
by certain software processes, high or fluctuating workload,
low client latency, and bandwidth when transferring multiple
files between repositories. Additionally, this research
provides a novel explanatory framework for (i) mapping tenant
isolation to different software development processes,
cloud resources and layers of the cloud stack; and (ii) explaining
the different trade-offs to consider affecting tenant
isolation (i.e. resource sharing, the number of users/requests,
customizability, the size of generated data, the scope of control
of the cloud application stack and business constraints)
when implementing multi-tenant cloud-hosted software services.
This research suggests that software architects have
to pay attention to the trade-offs, commonalities, and differences
we identify to achieve their degree of tenant isolation
requirements
Optimal deployment of components of cloud-hosted application for guaranteeing multitenancy isolation
One of the challenges of deploying multitenant cloud-hosted
services that are designed to use (or be integrated with) several
components is how to implement the required degree
of isolation between the components when there is a change
in the workload. Achieving the highest degree of isolation
implies deploying a component exclusively for one tenant;
which leads to high resource consumption and running cost
per component. A low degree of isolation allows sharing of
resources which could possibly reduce cost, but with known
limitations of performance and security interference. This
paper presents a model-based algorithm together with four
variants of a metaheuristic that can be used with it, to provide
near-optimal solutions for deploying components of a
cloud-hosted application in a way that guarantees multitenancy
isolation. When the workload changes, the model based
algorithm solves an open multiclass QN model to
determine the average number of requests that can access
the components and then uses a metaheuristic to provide
near-optimal solutions for deploying the components. Performance
evaluation showed that the obtained solutions had
low variability and percent deviation when compared to the
reference/optimal solution. We also provide recommendations
and best practice guidelines for deploying components
in a way that guarantees the required degree of isolation
Data-driven elicitation of quality requirements in agile companies
Abstract
Quality Requirements (QRs) are a key artifact to ensure the quality and success of a software system. Despite its importance, QRs have not reached the same degree of attention as its functional counterparts, especially in the context of trending software development methodologies like Agile Software Development (ASD). Moreover, crucial information that can be obtained from data sources of a project under development (e.g. JIRA, github,…) are not fully exploited, or even neglected, in QR elicitation activities. In this work, we present a data-driven approach to semi-automatically generate and document QRs in the context of ASD. We define an architecture focusing on the process and the artefacts involved. We validate and iterate on such architecture by conducting workshops in four companies of different size and profile. Finally, we present the implementation of such architecture, considering the feedback and outcomes of the conducted workshops
Reconciling the Academic and Enterprise Perspectives of Design Thinking
Design Thinking has become popular in the management and innovation context but remains mostly misunderstood, as a result of broad interpretations and the lack of empirical research on the subject. This paper aims to reduce the gap between the academic and industrial perspectives on Design Thinking, by reviewing publications focused on three aspects: (1) studies aimed at defining the concept, (2) empirical case studies about its use or adoption, and (3) models or methods proposed to overcome its main challenges. The existing literature suggests that multiple definitions for Design Thinking coexist with some commonly understood design practices, both among designer and non-designer practitioners alike. The challenge most frequently mentioned is the clash of existing organizational structures with the flexibility and unpredictability of Design Thinking. This paper outlines two different approaches to address such challenge and proposes a definition that brings together the academic and enterprise perspectives of Design Thinking.Peer reviewe
Open Innovation through the Lens of Open Source Tools: A case study at Sony Mobile
Despite growing interest of Open Innovation (OI) in Software Engineering (SE), little is known about what triggers software organizations to adopt it and how this affects SE practices. OI can be realized in numerous of ways, including Open Source Software (OSS) involvement. Outcomes from OI are not restricted to product innovation but also include process innovation, e.g. improved SE practices and methods. This study explores the involvement of a software organization (Sony Mobile) in OSS communities from an OI perspective and what SE practices (requirements engineering and testing) have been adapted in relation to OI. It also highlights the innovative outcomes resulting from OI. An exploratory embedded case study investigates how Sony Mobile use and contribute to Jenkins and Gerrit; the two central OSS tools in their continuous integration tool chain. Quantitative analysis was performed on change log data from source code repositories in order to identify the top contributors and triangulated with the results from five semi-structured interviews to explore the nature of the commits. The findings of the case study include five major themes: i) The process of opening up towards the tool communities correlates in time with a general adoption of OSS in the organization. ii) Assets not seen as competitive advantage nor a source of revenue are made open to OSS communities, and gradually, the organization turns more open. iii) The requirements engineering process towards the community is informal and based on engagement. iv) The need for systematic and automated testing is still in its infancy, but the needs are identified. v) The innovation outcomes included free features and maintenance, and were believed to increase speed and quality in development. Adopting OI was a result of a paradigm shift of moving from Windows to Linux. This shift enabled Sony Mobile to utilize the Jenkins and Gerrit communities to make their internal development process better for its software developers and testers.open access</p