
Paolo CiancariniUniversity of Bologna | UNIBO · Department of Computer Science and Engineering DISI
Paolo Ciancarini
PhD in Computer Science
About
364
Publications
52,670
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
4,930
Citations
Introduction
Additional affiliations
November 1992 - present
Publications
Publications (364)
Over the past 20 years agile methodologies revolutionized Information Technology, offering tremendous opportunities for the development of Software Engineering as an independent discipline. More specifically, agile methodologies contributed to enhancing the effectiveness and the speed of the production process as well as to improving the productivi...
Computational Thinking is a skill related to problem solving: it is the competence necessary for applying, assessing, producing an algorithmic solution, and implementing it. Agile values and principles are both an ethic framework and a practical reference for teams of contemporary software developers. We study the combination of Computational Think...
Introduction
Modern Code Review (MCR) is a multistage process where developers evaluate source code written by others to enhance the software quality. Despite the numerous studies conducted on the effects of MCR on software quality, the non-technical issues in the MCR process have not been extensively studied. This study aims to investigate the soc...
Storytelling has always been a crucial, perhaps constitutive part of our lives. All communities have told stories. In recent years, software development is becoming increasingly recognized as a creative process that has a lot in common with the process of writing or telling a story. Aim: The objectives of this paper are: (a) to review and aptly cla...
This paper explores the incorporation of Agile practices in our undergraduate courses leveraging the Essence approach, a meta-notation for describing software processes, roles, and best practices.
Exposing students and young developers to the Agile mindset and related methods is important to let them to cope with the challenges of modern software d...
During the fall 2020 we observed and tracked several student teams working remotely and independently to develop a non-trivial software product as the capstone project for a course of Software Engineering in our university. The teams used an integrated open-source development environment that we designed to be useful to support and measure Agile de...
Communication among humans consists of both verbal and non verbal components. The latter may sometimes express concepts or ideas not conveyable by the former. This is also true in Software Engineering. This paper first analyses theoretically the role of non verbal communication in software development teams, using the framework provided by distribu...
It has been more than two decades since the formulation of the values and principles for the enactment of Agile methods. Since then, the software development industry increasingly began using such methods, that are various. At the core of all Agile methods, however, lies an assumption: it is the interactions between people, not just processes and p...
During the 2020 pandemic a new modality for the capstone project in Software Engineering was introduced to our third-year students in Computer Science. They have been tasked with the development of a non trivial software product - a Twitter client capable of visual analytics - using some Agile practices, exploiting a Scrum-like process model, and u...
This volume constitutes selected papers presented at the First International Conference on Frontiers in Software Engineering, ICFSE 2021, hekd in Innopolis, Russia, in June 2021.
The 13 presented full papers were thoroughly reviewed and selected from 37 submissions. The papers present discussion on such topics as software engineering tools and en...
This paper reports on an observational analysis of how the current COVID-19 pandemic and the consequent move to home-based online work have affected the development of software. 50 software engineers and developers, mostly in their twenties, all with a university degree and working for 35 different companies, in the Russian IT city of Innopolis, ha...
Computational Thinking is a competence in computational problem solving. Cooperative Thinking (CooT) is an enhancement of Computational Thinking, supporting team-based computational problem solving. CooT is actually grounded on both Computational Thinking (CT) and Agile Values (AV) competencies, which focus respectively on the individual capability...
Social Robotics poses tough challenges to software designers who are required to take care of difficult architectural drivers like acceptability, trust of robots as well as to guarantee that robots establish a personalised interaction with their users. Moreover, in this context recurrent software design issues such as ensuring interoperability, imp...
Increasing development complexity in software applications raises major concerns about technical debt management, also in Open Source environments. A strategic management perspective provides organizations with an action map to pursue business’ targets with limited resources. This article presents the Strategic Technical Debt Management Model (STDM...
Tools are of paramount importance in automating software engineering tasks; although the Agile Manifesto prefers “individuals and their interactions over processes and tools”, some agile development activities make no exception and can be automated effectively and successfully. In process frameworks like Scrum or similar ones some activities are in...
Quality, architecture, and process are considered the keystones of software engineering. ISO defines them in three separate standards. However, their interaction has been scarcely studied, so far. The SQuAP model (Software Quality, Architecture, Process) describes twenty-eight main factors that impact on software quality in banking systems, and eac...
In this article, we discuss the outcomes of an experiment where we analysed whether and to what extent the introduction, in 2012, of the new research assessment exercise in Italy (a.k.a. Italian Scientific Habilitation) affected self-citation behaviours in the Italian research community. The Italian Scientific Habilitation attests to the scientific...
Computational Thinking has been introduced as a fundamental skill to acquire, just like basic skills like reading, writing, and numeracy. The reason is that Computational Thinking is one of the most important skills for XXI century citizens, in particular for programmers and scientists at large. Currently, Computer Science teaching practices focus...
SEDA 2018 was held at the premises of the Italian Defence General Secretariat (Segretariato Generale della Difesa) and the main military body actively supporting the conference was the Land Armament Directorate (Direzione Armamenti Terrestri). This is an important evolution of the Italian SEDA military community, as it shows that the interest for t...
This paper presents an empirical study aiming at understanding the modeling style and the overall semantic structure of Linked Open Data. We observe how classes, properties and individuals are used in practice. We also investigate how hierarchies of concepts are structured, and how much they are linked. In addition to discussing the results, this p...
Tools are of paramount importance in supporting software development methods, Agile ones included. In this paper, we aim to identify the most popular tools used by the Agile developers community, studying whether there are shared opinions or there are discrepancies, that could be related to cultural or geographical differences. The study is based o...
Quality, architecture, and process are considered the keystones of software engineering. ISO defines them in three separate standards. However, their interaction has been scarcely studied, so far. The SQuAP model (Software Quality, Architecture, Process) describes twenty-eight main factors that impact on software quality in banking systems, and eac...
Background:
The 2010 reform of the Italian university system introduced the National Scientific Habilitation (ASN) as a requirement for applying to permanent professor positions. Since the CVs of the 59,149 candidates and the results of their assessments have been made publicly available, the ASN constitutes an opportunity to perform analyses abou...
This paper presents an empirical study aiming at understanding the modeling style and the overall semantic structure of Linked Open Data. We observe how classes, properties and individuals are used in practice. We also investigate how hierarchies of concepts are structured, and how much they are linked. In addition to discussing the results, this p...
In this work, we discuss the result of an experiment that wants to track how authors use self-citations in their articles. In particular, we have analysed a subset of all the articles published between 1959 and 2016 in ScienceDirect written by the participants to the 2012-2013 Italian Scientific Habilitation so as to see if their citation habits ha...
Background. The 2010 reform of the Italian university system introduced the National Scientific Habilitation (ASN) as a requirement for applying to permanent professor positions. Since the CVs of the 59149 candidates and the results of their assessments have been made publicly available, the ASN constitutes an opportunity to perform analyses about...
Background. The 2010 reform of the Italian university system introduced the National Scientific Habilitation (ASN) as a requirement for applying to permanent professor positions. Since the CVs of the 59149 candidates and the results of their assessments have been made publicly available, the ASN constitutes an opportunity to perform analyses about...
This chapter describes success stories. The MANTIS architecture (Chapter 3)
was implemented for a number of use cases on real pilots, and the techniques
described in Chapters 4, 5, and 6 were experimented with in real settings.
Results on the techniques were already presented in previous chapters. This
chapter, on the other hand, describes the pilo...
Alternative metrics (aka altmetrics) are gaining increasing interest in the scientometrics community as they can capture both the volume and quality of attention that a research work receives online. Nevertheless, there is limited knowledge about their effectiveness as a mean for measuring the impact of research if compared to traditional citation-...
Information Systems Quality (ISQ) is a critical source of competitive advantages for organizations. In a scenario of increasing competition on digital services, ISQ is a competitive differentiation asset. In this regard, managing, maintaining, and evolving IT infrastructures have become a primary concern of organizations. Thus, a technical perspect...
This chapter explains how a mission critical Knowledge-Based System (KBS) has been designed and implemented within a real case study of a governamental organization. Moreover, the KBS has been developed using a novel agile software development methodology. Due to fast changing operational scenarios and volatile requirements, traditional procedural...
The Web and its Semantic extension (i.e. Linked Open Data) contain open global-scale knowledge and make it available to potentially intelligent machines that want to benefit from it. Nevertheless, most of Linked Open Data lack ontological distinctions and have sparse axiomatisation. For example, distinctions such as whether an entity is inherently...
Information Systems Quality (ISQ) is a critical source of competitive advantages for organizations. In a scenario of increasing competition on digital services, ISQ is a competitive differentiation asset. In this regard, managing, maintaining, and evolving IT infrastructures has become a primary concern of organizations. Thus, a technical perspecti...
Software Engineering aims at modeling, managing and implementing software development products and processes in a structured and supportable way, these aspects in the Defense & Security compartment assume high level of importance/criticism, where are required high reliability/quality levels, not comparable with commercial standards. DSSEA , The Ita...
Training computer scientists to address wicked problems means to focus respectively on the individual capability to think in a computational-oriented way (i.e., Computational Thinking), and on the social dimension of coding (i.e., Agile Values). In this study we propose the conceptual model of Cooperative Thinking, a new education construct of team...
Although Agile is a well established software development paradigm, major concerns arise when it comes to contracting issues between a software consumer and a software producer. How to contractualize the Agile production of software, especially for security & mission critical organizations, which typically outsource software projects, has been a ma...
Railway switches operate in harsh environmental conditions; still, their reliability requirements are high due to safety and economic factors. Once deployed, their maintenance depends on the data collected on their status, and the decisions on due corrective actions. The more regular this data collection and decision cycle is, the better confidence...
Non-functional requirements are the main drivers behind the design choices that shape a software architecture. Self-adaptive systems blur the boundary between design-time and run-time allowing the dynamic re-shaping of a running system to better accommodate changes in the execution context or in stakeholders' expectations. When these expectations a...
A main difference between pre-Web artificial intelligence and the current one is that the Web and its Semantic extension (i.e. Web of Data) contain open global-scale knowledge and make it available to potentially intelligent machines that may want to benefit from it. Nevertheless, most of the Web of Data lacks ontological distinctions and has a spa...
In the last 10 years CPUs have evolved focusing on performance improvements based on the introduction of multi-core architectures forcing developers to build software in a completely different way. Concurrent programming is now the main approach to improve performances in any software product. Unfortunately, this paradigm is prone to bugs which are...
Even if Agile is a well established software development paradigm, major concerns rise when it comes to contracting issues. How to contractualize the Agile production of software, especially for security and mission critical public organizations, is a major concern. In literature, little has been done, from a foundational point of view regarding th...
Complex and ephemeral software requirements, short time-to-market plans and fast changing information technologies have a deep impact on the design of software architectures, especially in Agile/DevOps projects where micro-services are integrated rapidly and incrementally. In this context, the ability to analyze new software requirements and unders...
ScholarlyData is the reference linked dataset of the Semantic Web community about papers, people, organisations, and events related to its academic conferences. In this paper we present an extension of such a linked dataset and its associated ontology (i.e. the conference ontology) in order to represent research impact indicators. The latter includ...
This book presents high-quality original contributions on new software engineering models, approaches, methods, and tools and their evaluation in the context of defence and security applications. In addition, important business and economic aspects are discussed, with a particular focus on cost/benefit analysis, new business models, organizational...
Antifragility is a rising issue in Software Engineering. Due to pervasiveness of software in a growing number of mission critical applications, traditional resilience and recovery systems may not be sufficient. Software has taken over many functionalities which are of vital interest in today and future world. We relay a lot on software applications...
Digital technologies and their applications are systematically altering established practices and making new ones emerge in different realms of society. Research in social sciences in general and management in particular is no exception, and several examples that span a variety of fields are coming into the spotlight not only from scholarly communi...
Scholarly publishing has seen an ever increasing interest in Linked Open Data (LOD). However, most of the existing datasets are designed as flat translation of legacy data sources into RDF. Although that is a crucial step to address, a lot of useful information is not expressed in RDF, and humans are still required to infer relevant knowledge by re...
Background Software systems are relying more and more on multi-core hardware requiring a parallel approach to address the problems and improve performances. Unfortunately, parallel development is error prone and many developers are not very experienced with this paradigm also because identifying, reproducing, and fixing bugs is often difficult. Obj...
This chapter describes our experience of adopting agile
project management
in a software development project in the defense context. Adopting an agile approach for both software development and the management of the consequent project is becoming increasingly more relevant in many domains, and the defense domain is no exception. However, this relev...
Un esperimento su base nazionale mette a confronto due metodologie di sviluppo di programmi radicalmente opposte. La scelta influenza significativamente il prodotto degli studenti, favorendo aspetti funzionali nel caso di Scrum e quelli non funzionali nel caso Waterfall. Non traspare un decisivo vantaggio didattico a favore dell'uno o l'altro metod...
The need of handling semantic heterogeneity of resources is a key problem of the Semantic Web. State of the art techniques for ontology matching are the key technology for addressing this issue. However, they only partially exploit the natural lan- guage descriptions of ontology entities and they are mostly unable to find correspondences between en...
This paper presents a novel approach to Linked Data exploration that uses Encyclopedic Knowledge Patterns (EKPs) as relevance criteria for selecting, organising, and visualising knowledge. EKP are discovered by mining the linking structure of Wikipedia and evaluated by means of a user-based study, which shows that they are cognitively sound as mode...
This book contains the best selected papers of two Satellite Events held at the 20th International Conference on Knowledge Engineering and Knowledge Management, EKAW 2016, in November 2016 in Bologna, Italy: The Second International Workshop on Educational Knowledge Management, EKM 2016, and the First Workshop: Detection, Representation and Managem...
The disruptive nature of the antifragile approach for open and complex systems is of greatest importance and needs to be systematized, especially for software systems. In fact, antifragile software design is becoming a research issue in the software engineering community. We got inspired by the Agile Manifesto which set an important reference point...
The Agile paradigm, as intended in the 2001 “Agile Manifesto,” brought a disruptive software development methodology. However, with regard to mission- and security-critical organizations, traditional Agile methodologies are quite ineffective because they do not clearly address issues of (1) quality and (2) security. Within the Italian Army General...
In this paper we present an approach to add self-adaptive features to software systems not initially designed to be self-adaptive. Rapid changes in users needs, available resources, and types of system faults are everyday concerns in operating complex systems. The ability to face these issues in a (semi-)automatic fashion is a welcome feature. MAPE...
Today’s software systems increasingly work in changing environments, where rapid modifications in user needs, resource variabilities and system faults require remarkable administrative efforts. In order to mitigate the costs
for governing these activities, software systems are expected to dynamically self-adapt. The problem of supporting auto-adapt...
Un esperimento su base nazionale mette a confronto due
metodologie di sviluppo di programmi radicalmente opposte. La scelta
influenza significativamente il prodotto degli studenti, favorendo aspetti
funzionali nel caso di Scrum e quelli non funzionali nel caso Waterfall.
Non traspare un decisivo vantaggio didattico a favore dell’uno o l’altro
metod...
Context: Empirical investigations regarding using Agile programming methodologies in high schools are scarce in the literature.
Objective: This paper evaluates (i) the performance, (ii) the code quality, and (iii) the satisfaction of both students and teachers in using Agile practices in education.
Method: this study includes an experiment, adminis...
Agile methods are now a mainstream production process and their proponents are no longer considered hackers or cowboy coders. Still, in embedded and safety critical domains there is somehow the expectation that the approach be "more" plan-based; at least, many of the current normatives seem to lean toward such approach. A definite change in attitud...
Software Cloning is the typical example where an interdisciplinary approach may bring additional elements into the community's discussion. In fact, little research has been done in its analysis from an Intellectual Propriety Rights (IPRs) perspective, even if it is a widely studied aspect of software engineering. An interdisciplinary approach is cr...
Even if reverse engineering is a well known and deeply investigated activity in software engineering, little research has been performed from an Intellectual Propriety Rights (IPRs) perspective. In this paper, we analyze some cases of reverse engineering in a IPR perspective; in particular, we survey the behavior of the major European court about r...