Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
This work implements multiple language acquisition hypotheses in the form of software. The Input Hypotheses by Krashen [19] are applied in the form of a Google Chrome browser extension. The language acquisition hypotheses are explored and... more
This work implements multiple language acquisition hypotheses in the form of software. The Input Hypotheses by Krashen [19] are applied in the form of a Google Chrome browser extension. The language acquisition hypotheses are explored and used to extract functional requirements to create a new language learning tool. The resulting tool presents such features as personalized learning, translating phrases in context in-place inside web pages, and supporting more than 100 languages.
The preliminary task of a project consists of the definition of the scenarios that will guide further development work and validate the results. In this paper, we present an approach for the systematic generation of validation scenarios... more
The preliminary task of a project consists of the definition of the scenarios that will guide further development work and validate the results. In this paper, we present an approach for the systematic generation of validation scenarios using a specifically developed taxonomy and combinatorial testing. We applied this approach to our research project for the development of the energy-efficiency evaluation framework named Innometrics. We described in detail all steps for taxonomy creation, generation of abstract validation scenarios, and identification of relevant industrial and academic case studies. We created the taxonomy of the target computer systems and then elaborated test cases using combinatorial testing. The classification criteria were the type of the system, its purpose, enabling hardware components and connectivity technologies, basic design patterns, programming language, and development lifecycle. The combinatorial testing results in 13 cases for one-way test coverage, which was considered enough to create a comprehensive test suite. We defined the case study for each particular scenario. These case studies represent the real industrial, educational, and open-source software development projects that will be used in further work on the Innometrics project.
The purpose of this research is to elaborate relative set of scenarios for validation of developing framework for energy efficiency assessment of the software systems based on variety of approaches, including statistics, data mining and... more
The purpose of this research is to elaborate relative set of scenarios for validation of developing framework for energy efficiency assessment of the software systems based on variety of approaches, including statistics, data mining and computational intelligence. The technical tasks of the project cannot be conducted without considering specific contexts. For these reasons, the preliminary task consists of the definition of a set of scenarios that will constitute the framework for guiding the work. The combinatorial testing approach was applied to the issue of scenario generation. For this purpose the mobile application taxonomy was developed based on literature analysis. ACTS tool was used to perform automated combinatorial testing. 13 scenarios were generated based on selected parameters of mobile applications classification. The resulted set provide a reliable coverage of defined parameters so it should be considered as representative. The scenarios obtained at this step should be considered as a blueprint for selecting case studies in industrial or academic software developing projects. The idea of applying the combinatorial testing approach to scenario generation issue can be applied in vary number of research projects related to software engineering area.
Increasing amount of data the organizations worldwide have at their disposal lead to the need to structure, organize and present the information obtained from it. That is because, in today's rapid-changing business environment, managers... more
Increasing amount of data the organizations worldwide have at their disposal lead to the need to structure, organize and present the information obtained from it. That is because, in today's rapid-changing business environment, managers and executives need to be able to gain crucial insights about the ongoing project in as little time as possible. Recently, energy efficiency has become a greater field of research, and companies started concentrating on monitoring energy-related metrics. In addition, many of them have built their own internal tools (dash-boards) to do just this. However, one of the major drawbacks of building specialized tools is the lack of adaptability. That is, they are often tailored to only one person (e.g. CEO), or a small group of them (e.g. board of directors, managers). Furthermore, the combination of metrics that is displayed to them does not change over time. This is a problem because most likely there exists a better metric combination that would allow users to get the crucial insights faster. To fill this gap, our ongoing research focuses on making the dashboards adaptable to multiple roles within the organization while optimizing for a certain goal. In some scenarios the dashboard's goal may be to detect defects, in others it may be to generate the most profit. As our primary research interest is to amplify energy efficiency, we have chosen that to be our dashboard's goal. Our previous work suggests that in order to handle compound metrics at scale it is needed to represent the dashboard as a complex system. This paper presents the design and the architecture of our proposed solution syn-ergizing the notions from complexity theory, software architecture and user experience (UX) design.
Business decisions are often made based on metrics gathered from software engineering processes. There are two questions that are important to answer. First-if the accuracy of the metrics had been known, would the same business decision... more
Business decisions are often made based on metrics gathered from software engineering processes. There are two questions that are important to answer. First-if the accuracy of the metrics had been known, would the same business decision have been made? The Efron Bootstrap is a computer intensive approach to determine accuracy of metrics from small data sets. Reference has been made in the literature of several applications of Efron Bootstrap's Statistical Approach to determine the accuracy of metrics in the context of Software Engineering. However, there is extremely limited reference to whether the Efron Bootstrap actually provides an accurate determination of the errors associated with various common software metrics. We have found accurate Efron Bootstrap estimates for mean and median 90%confidence ranges, gross under estimates for variance errors and consistent overestimates of errors for skewness and kurtosis. The accuracy of estimates of correlation error ranges depends on the data set being analyzed.
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... more
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, have been surveyed. Their personal perception of the variation of productivity due to the move to online work was recorded, together with the tools that they employed and the processes that were in place before and during the quarantine. This observational nature of the results evidences some reduction in the perceived productivity, especially concentrated in people without previous experience of remote work and without a suitable development environment available at home; moreover, such reduction tends to affect more agile processes rather than non structured processes, and appears to be mitigated by the adoption of suitable communication mechanisms and tools.
Software systems are the enabling technology for the development of sustainable systems. However, such devices consume power both from the client side and from the server side. This scenario poses to software engineering a new challenge... more
Software systems are the enabling technology for the development of sustainable systems. However, such devices consume power both from the client side and from the server side. This scenario poses to software engineering a new challenge that concerns the development of software for sustainable systems i.e. systems that explicitly characterize the resources under control, that dynamically evolve to maintain an acceptable consumption of resources making the best possible trade-off with user needs and that are opportunistic and proactive in taking actions that can optimize future resource consumption based on context and past experiences. This paper outlines a research agenda in this area.
Nel lavoro si presenta uno strumento, DIEL (Dynamic Interactive E- Learning system), uno spazio virtuale di apprendimento concepito per permettere a studenti e docenti di utilizzare modelli di interazione sincroni ed asincroni, e di... more
Nel lavoro si presenta uno strumento, DIEL (Dynamic Interactive E- Learning system), uno spazio virtuale di apprendimento concepito per permettere a studenti e docenti di utilizzare modelli di interazione sincroni ed asincroni, e di potersi concentrare appieno sugli aspetti legati all'apprendimento supportati da una tecnologia duttile e flessibile alle esigenze didattiche. Verrà inoltre presentato un caso di studio per meglio
Research Interests:
XP/Agile education and training remains a challenge from the perspective of determining relevant content; identifying effective methods for delivery; and maintaining the focus and motivation of students. This panel brings together... more
XP/Agile education and training remains a challenge from the perspective of determining relevant content; identifying effective methods for delivery; and maintaining the focus and motivation of students. This panel brings together academic and industry professionals to share their perspectives and experiences.
Welcome to the first international workshop on Beyond Code: No Code (BCNC). We are happy to be part of the no-code movement and we hope to shed some light on the applications of no-code in the field of software engineering. We aim to... more
Welcome to the first international workshop on Beyond Code: No Code (BCNC). We are happy to be part of the no-code movement and we hope to shed some light on the applications of no-code in the field of software engineering. We aim to promote academic research into this topic and help shape the future of no-code tools. This workshop is hosted at the SPLASH 2021 conference, 17-22 October 2021, Chicago, Illinois, USA.
This open access book provides information how to choose and collect the appropriate metrics for a software project in an organization. There are several kinds of metrics, based on the analysis of source code and developed for different... more
This open access book provides information how to choose and collect the appropriate metrics for a software project in an organization. There are several kinds of metrics, based on the analysis of source code and developed for different programming paradigms such as structured programming and object-oriented programming (OOP). This way, the book follows three main objectives: (i) to identify existing and easily-collectible measures, if possible in the early phases of software development, for predicting and modeling both the traditional attributes of software systems and attributes specifically related to their efficient use of resources, and to create new metrics for such purposes; (ii) to describe ways to collect these measures during the entire lifecycle of a system, using minimally-invasive monitoring of design-time processes, and consolidate them into conceptual frameworks able to support model building by using a variety of approaches, including statistics, data mining and computational intelligence; and (iii) to present models and tools to support design time evolution of systems based on design-time measures and to empirically validate them.
The book provides researchers and advanced professionals with methods for understanding the full implications of alternative choices and their relative attractiveness in terms of enhancing system resilience. It also explores the simultaneous use of multiple models that reflect different system interpretations or stakeholder perspectives.
This open access book describes the development of Innopolis, a young Russian university established in 2012 to focus on teaching excellence in computer science, engineering, and robotics. It reports on the problems that were faced in the... more
This open access book describes the development of Innopolis, a young Russian university established in 2012 to focus on teaching excellence in computer science, engineering, and robotics. It reports on the problems that were faced in the first decade of its development, and the adopted solutions. It shows how the key aspects for the development of the faculty, the curricula, the university structure, and the challenge of internationalization have been successfully addressed by the university management and professors, and how the solutions are scalable for other newly founded research organizations.
The book is divided in five parts: “The Beginning” describes the very early days in general, from the foundation and start-up of the university with the related processes. “The People” reports on the initial hiring of the faculty members, the selection of students, and the curriculum development. “The Activities” provide information about the creation of the single research institutions and labs, and their relation to industry. “The Future” gives an outlook on the planned internationalization and faculty strategy. Eventually, “A Visual Journey” shows a selection of photographs illustrating highlights of the whole process and the current achievements.
The processes and the components described built the basis for the development of Innopolis, and many of them still have a big impact on its present and its future. The fewer mistakes are made at the beginning, the higher the probability to fully achieve the initial goals.
Il libro, rivolto principalmente ai manager della Pubblica Amministrazione (PA), affronta tutte le principali problematiche connesse allo sviluppo software nel contesto della PA, con particolare attenzione per le Forze Armate. In questo... more
Il libro, rivolto principalmente ai manager della Pubblica Amministrazione (PA), affronta tutte le principali problematiche connesse allo sviluppo software nel contesto della PA, con particolare attenzione per le Forze Armate. In questo settore assumono particolare rilevanza gli aspetti contrattualistici, la qualità del servizio a lungo termine (si pensi al service level agreement), le dipendenze in termini di infrastruttura tecnologica (con maggiori rigidità rispetto al settore privato) e gli obblighi di riuso delle soluzioni per economizzare. Prendendo avvio da un'attenta analisi degli aspetti contrattualistici, gli autori seguono un percorso che copre successivamente tutte le fasi del processo di sviluppo software. Processo di sviluppo che viene presentato tenendo conto delle caratteristiche distintive e delle specificità di applicazione che gli ambienti della Pubblica Amministrazione richiedono. Si presentano quindi modelli di sviluppo pianificati e agili, facilmente adattabili al contesto di riferimento, con particolare attenzione per lo sviluppo di componenti open source, architetturali e di sicurezza. Nella parte finale vengono proposti casi di studio concreti che contribuiscono a fornire ulteriori spunti di riflessione e approfondimento.
This book illustrates how goal-oriented, automated measurement can be used to create Lean organizations and to facilitate the development of Lean software, while also demonstrating the practical implementation of Lean software development... more
This book illustrates how goal-oriented, automated measurement can be used to create Lean organizations and to facilitate the development of Lean software, while also demonstrating the practical implementation of Lean software development by combining tried and trusted tools.

In order to be successful, a Lean orientation of software development has to go hand in hand with a company’s overall business strategy. To achieve this, two interrelated aspects require special attention: measurement and experience management. In this book, Janes and Succi provide the necessary knowledge to establish “Lean software company thinking,” while also exploiting the latest approaches to software measurement. A comprehensive, company-wide measurement approach is exactly what companies need in order to align their activities to the demands of their stakeholders, to their business strategy, etc. With the automatic, non-invasive measurement approach proposed in this book, even small and medium-sized enterprises that do not have the resources to introduce heavyweight processes will be able to make their software development processes considerably more Lean.

The book is divided into three parts. Part I, “Motivation for Lean Software Development,” explains just what “Lean Production” means, why it can be advantageous to apply Lean concepts to software engineering, and which existing approaches are best suited to achieving this. Part II, “The Pillars of Lean Software Development,” presents the tools needed to achieve Lean software development: Non-invasive Measurement, the Goal Question Metric approach, and the Experience Factory. Finally, Part III, “Lean Software Development in Action,” shows how different tools can be combined to enable Lean Thinking in software development.

The book primarily addresses the needs of all those working in the field of software engineering who want to understand how to establish an efficient and effective software development process. This group includes developers, managers, and students pursuing an M.Sc. degree in software engineering.
Software product lines aim at achieving scope economies through synergetic development of software products. Diverse benefits like cost reduction, decreased time-tomarket, and quality improvement can be expected from reuse of... more
Software product lines aim at achieving scope economies through synergetic development of software products. Diverse benefits like cost reduction, decreased time-tomarket, and quality improvement can be expected from reuse of domain-specific software assets. But also nontechnical benefits can be expected as result of network externalities, product branding, and sharing organizational costs.
Strategic Software Production With Domain-Oriented Reuse is the first-ever book that presents a systematic approach to creating and positioning reusable software components and products. It is a resource that guides readers through all... more
Strategic Software Production With Domain-Oriented Reuse is the first-ever book that presents a systematic approach to creating and positioning reusable software components and products. It is a resource that guides readers through all phases of domain analysis and engineering, showing how commonality and variability analysis are used in studying the market, coordinating with competitors, engineering new products, and minimizing risks.
Government agencies and public organizations often consider adopting open source software (OSS) for reasons of transparency, cost, citizen access, and greater efficiency in communication and delivering services. Adopting Open Source... more
Government agencies and public organizations often consider adopting open source software (OSS) for reasons of transparency, cost, citizen access, and greater efficiency in communication and delivering services. Adopting Open Source Software offers five richly detailed real-world case studies of OSS adoption by public organizations. The authors analyze the cases and develop an overarching, conceptual framework to clarify the various enablers and inhibitors of OSS adoption in the public sector.
This volume is a collection of research papers in the area of the implementation of logic programming systems. It will be of immediate interest to practitioners who seek an understanding of how to efficiently manage memory, generate fast... more
This volume is a collection of research papers in the area of the implementation of logic programming systems. It will be of immediate interest to practitioners who seek an understanding of how to efficiently manage memory, generate fast code, perform sophisticated static analyses, and design high-performance runtime features. A major theme throughout the book is how to effectively leverage host implementation systems and technologies to implement target systems.
Abstract After a careful analysis of the development process in Engisud, in this document XPAME, an XP-based Agile methodology for Engisud, is proposed. XPAME has been thought to meet the several critical issues gathered from interviews... more
Abstract After a careful analysis of the development process in Engisud, in this document XPAME, an XP-based Agile methodology for Engisud, is proposed. XPAME has been thought to meet the several critical issues gathered from interviews of the main representatives of functional, technical and development areas of Engisud.
This book constitutes the refereed proceedings of the 4th International Conference on Extreme Programming and Agile Processes in Software Engineering, XP 2003, held in Genova, Italy in May 2003. The 33 revised full papers presented... more
This book constitutes the refereed proceedings of the 4th International Conference on Extreme Programming and Agile Processes in Software Engineering, XP 2003, held in Genova, Italy in May 2003. The 33 revised full papers presented together with experience reports, research reports, abstracts from an educational symposium and a PhD symposium, as well as panel statements were carefully reviewed and selected for inclusion in the book.
Abstract The analysis of commonalities and differences between agile technology and open source software development is needed to understand how advancement approaches have evolved and whether they produce concrete benefits in terms of... more
Abstract The analysis of commonalities and differences between agile technology and open source software development is needed to understand how advancement approaches have evolved and whether they produce concrete benefits in terms of software quality and customer satisfaction. Agile Technologies in Open Source Development explores the overlap between open source and agile technologies, providing valuable strategies for advancement in software.
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... more
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 social problems in the MCR process and to find possible ways to prevent them and improve the overall quality of the MCR process.Methodology: To achieve the research objectives, we applied the grounded theory research shaped by GQM approach to collect data on the attitudes of developers from different teams toward MCR. We conducted interviews with 25 software developers from 13 companies to obtain the information necessary to investigate how social interactions affect the code reviewing process.Results: Our findings show that interpersonal relationships within the team can have significant consequences on the MCR process. We also received a list of possible strategies to overcome these problems.Discussion: Our study provides a new perspective on the non-technical issues in the MCR process, which has not been extensively studied before. The findings of this study can help software development teams to address the social problems in the MCR process and improve the overall quality of their software products.Conclusion: This study provides valuable insights into the non-technical issues in the MCR process and the possible ways to prevent them. The findings of this study can help software development teams to improve the MCR process and the quality of their software products. Future research could explore the effectiveness of the identified strategies in addressing the social problems in the MCR process.
Over the past 20 years agile methodologies revolutionized Information Technology, oering tremendous opportunities for the development of Software Engineering as an independent discipline. More specifically, agile methodologies contributed... more
Over the past 20 years agile methodologies revolutionized Information
Technology, oering tremendous opportunities for the development of Software Engineering as an independent discipline. More specifically, agile methodologies contributed to enhancing the eectiveness and the speed of the production process as well as to improving the productivity and motivations of software developers organized in high performing teams. The agile philosophy can be and has been applied in dierent contexts and across several domains. This work analyses the relationship between Agile methodologies used by software engineers and the practices pursued by musicians in their daily lives. Our findings suggests that collaborative, strongly planned software development life cycle models (such as Waterfall, V-model, iterative, and Spiral) are not adequate models to describe the daily practices of musical composers. This is because their work requires a lot of flexibility, which such models intrinsically lack, because they are oriented to ensuring some form of monitorable progress. Interestingly, our findings also show that nine out of 12 Agile Principles are consciously or unconsciously followed by musicians in their practices. This suggests that there are some deep connections between these two prima facie dierent fields, which are both very creative. Even though our findings await replication, possibly with larger statistical samples, they contribute to open up a new strand of research in the field.
Task prioritization is one of the most researched areas in software development. Given the huge number of papers written on the topic, it might be challenging for IT practitioners-software developers, and IT project managers-to find the... more
Task prioritization is one of the most researched areas in software development. Given the huge number of papers written on the topic, it might be challenging for IT practitioners-software developers, and IT project managers-to find the most appropriate tools or methods developed to date to deal with this important issue. The main goal of this work is therefore to review the current state of research and practice on task prioritization in the Software Engineering domain and to individuate the most effective ranking tools and techniques used in the industry. For this purpose, we conducted a systematic literature review guided and inspired by the Preferred Reporting Items for Systematic Reviews and Meta-Analyses, otherwise known as the PRISMA statement. Based on our analysis, we can make a number of important observations for the field. Firstly, we found that most of the task prioritization approaches developed to date involve a specific type of prioritization strategy-bug prioritization. Secondly, the most recent works we review investigate task prioritization in terms of "pull request prioritization" and "issue prioritization," (and we speculate that the number of such works will significantly increase due to the explosion of version control and issue management software systems). Thirdly, we remark that the most frequently used metrics for measuring the quality of a prioritization model are f-score, precision, recall, and accuracy.
This paper presents action research to analyze an approach for assessment of the alleged agile transformation. This approach was implemented at AK Bars Digital Technologies, an IT spin-off of one of the largest banks in Russia using the... more
This paper presents action research to analyze an approach for assessment of the alleged agile transformation. This approach was implemented at AK Bars Digital Technologies, an IT spin-off of one of the largest banks in Russia using the Scaled Agile Framework. The approach is based on the Goal-Question-Metric approach, non-invasive measurement collection, and systemic analysis. It uses data from several different sources, including interviews, code repositories, user ratings in the play stores, and templates for agile assessment. The effectiveness of the approach is subjectively validated by the adoption of the proposed recommendations by the banks' senior management. Details are provided on the approach, the required effort from the side of both those assessing and of the people being assessed and the results. The final part of the paper is devoted to the discussion of its generalizability and the plan for future experimentation and refinement.
This paper presents action research to analyze an approach for assessment of the alleged agile transformation. This approach was implemented at AK Bars Digital Technologies, an IT spin-off of one of the largest banks in Russia using the... more
This paper presents action research to analyze an approach for assessment of the alleged agile transformation. This approach was implemented at AK Bars Digital Technologies, an IT spin-off of one of the largest banks in Russia using the Scaled Agile Framework. The approach is based on the Goal-Question-Metric approach, non-invasive measurement collection, and systemic analysis. It uses data from several different sources, including interviews, code repositories, user ratings in the play stores, and templates for agile assessment. The effectiveness of the approach is subjectively validated by the adoption of the proposed recommendations by the banks' senior management. Details are provided on the approach, the required effort from the side of both those assessing and of the people being assessed and the results. The final part of the paper is devoted to the discussion of its generalizability and the plan for future experimentation and refinement.
Software repositories contain a wealth of information about the aspects related to software development process. For this reason, many studies analyze software repositories using methods of data analytics with a focus on clustering.... more
Software repositories contain a wealth of information about the aspects related to software development process. For this reason, many studies analyze software repositories using methods of data analytics with a focus on clustering. Software repository clustering has been applied in studying software ecosystems such as GitHub, defect and technical debt prediction, software remodularization. Although some interesting insights have been reported, the considered studies exhibited some limitations. The limitations are associated with the use of individual clustering methods and manifesting in the shortcomings of the obtained results. In this study, to alleviate the existing limitations we engage multiple cluster validity indices applied to multiple clustering methods and carry out consensus clustering. To our knowledge, this study is the first to apply the consensus clustering approach to analyze software repositories and one of the few to apply the consensus clustering to software metrics. Intensive experimental studies are reported for software repository metrics data consisting of a number of software repositories each described by software metrics. We revealed seven clusters of software repositories and relate them to developers’ activity. It is advocated that the proposed clustering environment could be useful for facilitating the decision making process for business investors and open-source community with the help of the Gartner’s hype cycle.
The coronavirus D-19 (Covid-19) pandemic has shaken almost every country in the world: as we stand, 6,3 million deaths from the infection have already been recorded, 167,000 and 380,000 of which are in Italy and the Russian Federation,... more
The coronavirus D-19 (Covid-19) pandemic has shaken almost every country in the world: as we stand, 6,3 million deaths from the infection have already been recorded, 167,000 and 380,000 of which are in Italy and the Russian Federation, respectively. In the first wave of the pandemic, Italy suffered an abnormally high death toll. A detailed analysis of available epidemiological data suggests that that rate was shockingly high in the Northern regions and in Lombardy, in particular, whilst in the southern region the situation was less dire. This inexplicably high mortality rate in conditions of a very well-developed health care system such as the one in Lombardy recognized as one of the best in Italy certainly cries for a convincing explanation. In 1976, the small city of Seveso, Lombardy, experienced a release of dioxin into the atmosphere after a massive technogenic accident. The immediate effects of the industrial disaster did not become apparent until a surge in the number of tumors in the affected population in the subsequent years. In this paper, we endeavor to prove our hypothesis that the release of dioxin was a negative cofactor that contributed to a worsening of the clinical course of COVID-19 in Lombardy.
We are currently witnessing the rise of a new economy-the API economy-in which businesses are able to gain significant business value by exposing (parts of) their business assets as APIs. It is a new phenomenon that enables innovation by... more
We are currently witnessing the rise of a new economy-the API economy-in which businesses are able to gain significant business value by exposing (parts of) their business assets as APIs. It is a new phenomenon that enables innovation by third parties and levels the playing field for businesses of different sizes and degrees of influence. It allows new products and services to be delivered in extremely short time frames and companies to reach markets and users that would normally be too costly or impossible to tap into otherwise. API economy. An economy in which companies expose their (internal) business assets or services in the form of (Web) APIs to third parties with the goal of unlocking additional business value.
Developing features based solely on requirement documents and specifications has been a traditional way of building software. This paper provides a different approach by combining the notions from Artificial Intelligence (AI)-Evolutionary... more
Developing features based solely on requirement documents and specifications has been a traditional way of building software. This paper provides a different approach by combining the notions from Artificial Intelligence (AI)-Evolutionary Algorithms (EA) and Complexity Theory. It represents the software to be build-a dashboard-as a Complex System, and metrics inside of them as agents that are interacting in a non-linear fashion. Furthermore, the paper suggests different visualization techniques required to represent such complex relationships.
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... more
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 distributed cognition as a conceptual palette and as a point of reference. Then, it presents an empirical investigation involving 38 IT professionals from Russia, sharing their experiences in communicating and interacting when developing software artifacts. The results of this empirical investigation are consistent with many of the ideas underlying a distributed approach to cognition. In addition, our findings provide valuable insights to make communication more effective in software development teams, while defining a new framework for follow-up studies.
This paper reviews the research work done in the last 11 years in the area of green computing and analyzes the associated hypotheses, which are then structured in taxonomy and explored to pave the way for a comprehensive view of future... more
This paper reviews the research work done in the last 11 years in the area of green computing and analyzes the associated hypotheses, which are then structured in taxonomy and explored to pave the way for a comprehensive view of future research in the area. With the help of the taxonomy, we can understand which of the problems needs more attention. For example, when there is a small number of studies related to a problem, research needs to be conducted on this topic, while a huge number of studies could raise contradictory results that can be aggregated to a unified answer with a meta-analysis. Among the hypotheses generated, one can choose to investigate the hypotheses with a sufficient number of papers.
Context. Tailoring mechanisms allow performance dashboards to vary their appearance as a response to changing requirements (e.g., adapting to multiple users or multiple domains). Objective. We analyze existing research on tailored... more
Context. Tailoring mechanisms allow performance dashboards to vary their appearance as a response to changing requirements (e.g., adapting to multiple users or multiple domains). Objective. We analyze existing research on tailored dashboards and investigate different proposed approaches. Methodology. We performed a systematic literature review. Our search processes yielded a total of 1,764 papers, out of which we screened 1,243 and ultimately used six for data collection. Results. Tailored dashboards, while being introduced almost thirty years ago, did not receive much research attention. However, the area is expanding in recent years and we observed common patterns in novel tailoring mechanisms. Since none of the existing solutions have been running for extended periods of time in real-world scenarios, this lack of empirical data is a likely cause of vaguely described research designs and important practical issues being overlooked. Implications. Based on our findings we propose types of tailoring mechanisms taking into account the timing and nature of recommendations. This classification is grounded in empirical data and serves as a step ahead to a more unifying way of looking at tailoring capabilities in the context of dashboards. Finally, we outline a set of recommendations for future research, as well as a series of steps to follow to make studies more attractive to practitioners.
Mobile devices performance and uptime heavily depend on energy consumed at the hardware and software level. Hence implementation of efficient algorithms has become a crucial aspect for increasing the performance of such systems and... more
Mobile devices performance and uptime heavily depend on energy consumed at the hardware and software level. Hence implementation of efficient algorithms has become a crucial aspect for increasing the performance of such systems and battery life for mobile devices. Sorting algorithms are implicitly the building block of many program implementation. Over the past years, researchers have spent more time optimizing hardware components to reduce their energy consumption. However, it has not been so clear which sorting algorithm is more energy efficient. In this study, we conduct a meta-analytical comparison of the energy consumed by the two most common sorting algorithms namely quick sort and merge sort. Our study mainly focused on energy consumption for mobile devices and embedded systems. For our meta-analysis and literature review, we took into consideration studies published not more than 20 years ago. The meta-analytical results show that there is no significant difference between both algorithms in terms of energy efficiency.
This study proposes an approach to the construction of granular models directly based on information granules expressed both in input and output spaces. Associating these information granules, the constructed granular models come in the... more
This study proposes an approach to the construction of granular models directly based on information granules expressed both in input and output spaces. Associating these information granules, the constructed granular models come in the framework of three layers networks: input granules, an inference scheme and output granules. The proposed approach consists of two stages. First, an augmented principle of justifiable granularity is proposed and applied to construct information granules in an input space. This principle constructs information granules not only through establishing a sound balance between two criteria, i.e., coverage and specificity, but also by optimizing those information granules on the basis of their homogeneity assessed with respect to data localized in output space. At the second stage, we propose an inference scheme by analyzing a location of an input datum in relation with the already formed information granules in an input space. The computed relation can be quantified as membership grades, thus yielding aggregation results involving information granules in an output space. The performance of the proposed granular model is supported by the mechanisms of granular computing and the principle of justifiable granularity. Experimental studies concerning synthetic and publicly available data are performed and some comparative analysis involving rule-based models is given.
With this Systematic Literature Review (SLR), we aim to discover technologies to construct a Goal-Question-Metrics (GQM) based metrics recommender for software developers. Since such a system has not yet been described in the literature,... more
With this Systematic Literature Review (SLR), we aim to discover technologies to construct a Goal-Question-Metrics (GQM) based metrics recommender for software developers. Since such a system has not yet been described in the literature, we decided to analyse the technologies used in three main components of recommender systems-data sets, algorithms, and recommendations-independently. Methods: To achieve our goal we performed-following the best norms in our discipline-a systematic literature review (SLR). We first identified, through searches aptly performed, 422 potentially relevant papers, from which we selected-after applying inclusion and exclusion criteria-30 papers, which we eventually included in our final log. Results: Systems with textual data set preprocess information in nearly the same way and the majority use similarity scores to create recommendations. Systems with GQM-based algorithms consist of questionnaires and require users to explicitly answer questions to produce suggestions. With respect to the recommendations of reviewed systems, they range from application programming interfaces (APIs) to requirements, but no system presently recommends metrics. Conclusion: In our SLR we: (a) identified a sequence of the most popular steps for preprocessing in recommender systems; (b) proposed an optimisation strategy for such steps; (c) found out that the most promising approach includes both ranking and classification; and (d) established that there are no recommendation systems developed to date to process metrics. INDEX TERMS Goal question metrics model, recommender systems, text processing.
Software development is a complex process that requires skills in mathematics and physics. Moreover, it usually includes collaboration with other people. To get a precise understanding of the way such a process is organized, we need to... more
Software development is a complex process that requires skills in mathematics and physics. Moreover, it usually includes collaboration with other people. To get a precise understanding of the way such a process is organized, we need to understand its essence. Technical knowledge is crucially important for any developer; however, another important characteristic of any software engineer is creativity. In this article, we look at one particular artistic practice [filmmaking] that involves both these latter characteristics to determine whether insights from such a practice can be applied in the IT industry and vice versa.
Modeling and understanding users interests has become an essential part of our daily lives. A variety of business processes and a growing number of companies employ various tools to such an end. The outcomes of these identification... more
Modeling and understanding users interests has become an essential part of our daily lives. A variety of business processes and a growing number of companies employ various tools to such an end. The outcomes of these identification strategies are beneficial for both companies and users: the former are more likely to offer services to those customers who really need them, while the latter are more likely to get the service they desire. Several works have been carried out in the area of user interests identification. As a result, it might not be easy for researchers, developers, and users to orient themselves in the field; that is, to find the tools and methods that they most need, to identify ripe areas for further investigations, and to propose the development and adoption of new research plans. In this study, to overcome these potential shortcomings, we performed a systematic literature review on user interests identification. We used as input data browsing tab titles. Our goal here is to offer a service to the readership, which is capable of systematically guiding and reliably orienting researchers, developers, and users in this very vast domain. Our findings demonstrate that the majority of the research carried out in the field gathers data from either social networks (such as Twitter, Instagram and Facebook) or from search engines, leaving open the question of what to do when such data is not available.
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... more
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 classify current principles and approaches that describe software development as a form of storytelling; (b) to describe and understand the heuristic function of storytelling in software development; and (c) to discuss and single out the principles of storytelling that may play a role, hence constitute significant improvements to the practices of software developers. Method: To achieve these goals and objectives we conducted a systematic literature review of relevant scientific papers and subsequently analyzed them by means of a textual narrative synthesis. Results: More specifically, we retrieved, screened and examined 51 relevant publications. The synthesis we conducted allowed us to understand and better visualize the many interesting correspondences and analogies between those two seemingly different processes, namely storytelling and software development. In particular, in our work, we focused on describing and analyzing how certain principles underlying storytelling can be adapted and applied in current practices of software engineering. Conclusion: This paper presents and re-elaborates in a critical fashion and from a different angle a substantial body of knowledge and research recently carried out in the software development literature.
With the growing need for software-driven devices in modern life, the pervasive necessity of energy efficiency is also rising dramatically. Considering the importance of energy-efficient software in the IT-sphere, many companies started... more
With the growing need for software-driven devices in modern life, the pervasive necessity of energy efficiency is also rising dramatically. Considering the importance of energy-efficient software in the IT-sphere, many companies started to search and uncover ways for minimizing energy loss. We study the software development process in terms of energy consumption. This depends on various factors that have to be monitored continuously. In this paper, we propose the Innometrics framework for monitoring the software development process and analyzing the profiles of energy consumption by user devices. The motivating idea of the project is to provide crucial insights and to clarify which development activities are the main drivers behind the energy consumption.
Hard drive failure prediction is still a relevant problem today. A number of statistical and machine learning techniques were proposed to improve failure forecasting accuracy after SMART was introduced. SMART is a diagnostics tool that... more
Hard drive failure prediction is still a relevant problem today. A number of statistical and machine learning techniques were proposed to improve failure forecasting accuracy after SMART was introduced. SMART is a diagnostics tool that aims at providing forehand failure warnings. Failure prediction methods can be viewed as a part of reliability analysis-the field that was studied intensively for decades. However, in some situations available techniques cannot be applied due to a simple reason-information at hand is not always sufficient for reliable prediction. SMART's goal is to provide meaningful information that can signify problems with the health condition of a hard drive and failure prediction techniques can leverage this data to provide timely and reliable warnings. To find the best failure forecasting algorithm and evaluate the possibility of its widespread deployment, we review existing datasets with SMART attributes, methods for feature selection for hard drive failure prediction. Reference to this paper should be made as follows: Garcia, M., Ivanov, V., Kozar, A., Litvinov, S., Reznik, A., Romanov, V. and Succi, G. (2018) 'Review of techniques for predicting hard drive failure with SMART attributes', Int. (December 1993). He has passed the habilitation certification as professional engineering both in Italy and in Canada and he has consulted for several organizations worldwide. He has taught a variety of academic and industrial courses throughout his career in software engineering, programming languages, and mobile, distributed, and centralized operating systems. His research interests are in empirical software engineering, open source, mobile and energy aware systems, software reuse, and software product lines. He is the author of 5 and editor of 12 books and over than 370 publications.
Network externalities are the effects on the value of a product that can be ascribed to the presence of a network of users of such product. They play an essential role in the business success of any product. The authors think that such... more
Network externalities are the effects on the value of a product that can be ascribed to the presence of a network of users of such product. They play an essential role in the business success of any product. The authors think that such role is even larger in the software industry, where (a) documentation and effective training often lack, and (b) consumers regard as major benefits interoperability and compatibility, because of the ever increasing need to share information and reprocess it over and over again with different tools. However, only few studies exist on this topic. Network externalities are caused by choices operated at different level of the design of a product: data format, GUI metaphors, keyboard sequences, API, and so on. Understanding and planning their presence in a product is difficult. However, the ability of manipulating them properly provides a clear competitive advantage. This paper reviews briefly the literature on network externalities, outlines a graphic notation to represent them, and applies such notation to describe an exemplar case, that of Microsoft Word 97. The study of the network externalities of Microsoft Word 97 evidences the several different kinds of externalities present in it. The authors focus their considerations on the data format, the API, and the human-computer interaction paradigm.
(TN) ITALY research interests are in software engineering, more particularly in software re-usc. 1. Introd uction The current situation of crisis in the software sector has led to the definition of many models that try to formally define... more
(TN) ITALY research interests are in software engineering, more particularly in software re-usc. 1. Introd uction The current situation of crisis in the software sector has led to the definition of many models that try to formally define the software development process in order to improve it and obtain higher quality software at lower costs. Some of these studies (such as [27], [28], [39], [42], [44] and [45]) consider the whole development process, while some others prefer to focus their attention on a single phase of the process itself. Many of these works regard the earlier steps of the software life-cycle, i.e. the analysis of the user's expectations, the definition of the product's requirements, the design of the architecture and the production of the code, bl1t the most interesting ones in the context of this paper are the ones related to the later stages of the process during which the software resulting from the previous steps IS modified. For example, in [1] and in [26] Boyle and Muralidharan consider a series of transformations which allow to get to a FORTRAN program starting fJ'om a LISP version of the same program, passing through an intermediate version using an extended FORTRAN language allowing the use of recursion. Freak, in [9), deals with the. conversion from FORTRAN to Pascal, while Loveman, in [2), discusses a set of rules to transfom1 a program written in an Algol-like language in order to get Abstract: The software crisis has led to sevcral models that describc whole or parts of the software development pn)teSs. This paper introduces a model which formally describes thc later stages of this cycle where the code is modified. The code is treated as a simple string without any semantic or syntactic meaning. A set of operations to manipulate strings is defined, then five operators describing the more usual changcs undergone by the code are introduced. A set of properties which allows to reduce the number of transformations nc:eded to pass from a version of the code to another one is introduced. Then the operators are extended in order to grant their Il1vertibility and their inverse versions are defined. Finally a tool which implements the changes described by the operators, keeps trace of the transformations and allows to navigate through the versions of the code, is described.
A proper characterization of the process of servicing requests for modifications in software systems and identification of the domain-specific aspects of this process are extremely important for software companies since service requests... more
A proper characterization of the process of servicing requests for modifications in software systems and identification of the domain-specific aspects of this process are extremely important for software companies since service requests often consume lots of resources. A set of methods and criteria for modeling the servicing process is reviewed in this paper and the results of an extensive empirical investigation based on two commercial applications are presented.
The relationship between amount of reuse, quality, and productivity was studied using four sets of C and C++ modules collected from industrial organizations. The data domains are: text retrieval, user interface, distributed repository,... more
The relationship between amount of reuse, quality, and productivity was studied using four sets of C and C++ modules collected from industrial organizations. The data domains are: text retrieval, user interface, distributed repository, medical records. Reuse in this paper is ad hoc, black box, compositional code reuse. The data generally show that more reuse results in higher quality, but are ambiguous regarding the relationship between amount of reuse and productivity.
UPGRADE Vol. VI, No. 3, June 2005 33© Novática Libre Software as A Field of Study Keywords: Agile Methods, Extreme Programming, Libre Software. 1 Introduction Agile Methods (AMs) have grown very popular in the last few years [3] and so... more
UPGRADE Vol. VI, No. 3, June 2005 33© Novática Libre Software as A Field of Study Keywords: Agile Methods, Extreme Programming, Libre Software. 1 Introduction Agile Methods (AMs) have grown very popular in the last few years [3] and so has Libre Software [1][8]. Even if these approaches to software development seem very different, they present many commonalities, as evidenced by Koch [11].
Abstract Introducing software reuse at a corporate wide level represents one of the most promising means of addressing rising costs plaguing the software industry. A series of mechanisms are needed for shortening development cycles and... more
Abstract Introducing software reuse at a corporate wide level represents one of the most promising means of addressing rising costs plaguing the software industry. A series of mechanisms are needed for shortening development cycles and providing reliable software of high quality which will be more maintainable and flexible for future extensions.
This paper investigates the relationships among logic languages, software reusability and software portability, with the perspective that if these three, almost orthogonal topics become synergistic, they will have an extremely positive... more
This paper investigates the relationships among logic languages, software reusability and software portability, with the perspective that if these three, almost orthogonal topics become synergistic, they will have an extremely positive impact on the software development process. More speci® cally, the discussion aims to demonstrate both that logic programs are more reusable and portable, even in extreme situations, and that, however, some problems still limit the e ective application of such reusable and portable logic paradigm.
Abstract Compatibility has a great importance in many markets and particularly in software. Users consider compatibility valuable as it allows them to interact with other users using compatible products. The set of users using a product... more
Abstract Compatibility has a great importance in many markets and particularly in software. Users consider compatibility valuable as it allows them to interact with other users using compatible products. The set of users using a product is the installed base of that product. Network externalities are the effects of higher enjoyment of a product as a consequence of the product's large installed base (Katz and Shapiro, 1992; Rohlfs, 1974).
Abstract. The area of software metrics is constantly changing. New measures are proposed every day and tools for data collection and analysis have to be updated frequently in order to handle changes. A possible approach to reduce the... more
Abstract. The area of software metrics is constantly changing. New measures are proposed every day and tools for data collection and analysis have to be updated frequently in order to handle changes. A possible approach to reduce the number of changes and their complexity is the use of an intermediate layer able to decouple the extraction and the analysis of the information. In this way, researchers do not have to deal with language parsing concepts such as declarations, class specifiers, and base clauses.
Abstract Software reuse can be very useful in increasing the productivity and the quality level of a company, but appropriate classification and retrieval tools have to be provided in order to exploit its pros. The classic classification... more
Abstract Software reuse can be very useful in increasing the productivity and the quality level of a company, but appropriate classification and retrieval tools have to be provided in order to exploit its pros. The classic classification and retrieval methods based upon a controlled, fixed vocabulary are not very flexible and can be unsatisfactory in many cases, especially when the specification are not fully defined.
Abstract The commonly available software metrics-extraction tools for C/C++ depend on commercial preprocessors to preprocess the source file before being input into the analyzers. The following paper introduces a Java compiler generator... more
Abstract The commonly available software metrics-extraction tools for C/C++ depend on commercial preprocessors to preprocess the source file before being input into the analyzers. The following paper introduces a Java compiler generator called JavaCC and the application of the generator to develop a Java-based preprocessor for C/C++.
Software product lines are one of the most promising fields in software engineering. They aim at the synergistic construction of software products. A successful introduction of software product lines requires three essential ingredients:... more
Software product lines are one of the most promising fields in software engineering. They aim at the synergistic construction of software products. A successful introduction of software product lines requires three essential ingredients: a business analysis of the overall advantages that can come from product lines, the definition of a systematic process for product lines development, and the definition of general models, in a standard format, which can guide the development process.
Abstract This article discusses whether using warnings generated by the GNU C++ compiler can be used effectively to identify source code files that are likely to be error prone. We analyze five industrial projects written in C++ and... more
Abstract This article discusses whether using warnings generated by the GNU C++ compiler can be used effectively to identify source code files that are likely to be error prone. We analyze five industrial projects written in C++ and belonging to the telecommunication domain. We find a significant positive correlation between the number of compiler warnings and the number of source files changes.
The object-oriented metrics suite proposed by Chidamber and Kemerer (CK) is a measurement approach towards improved object-oriented design and development practices. However, existing studies evidence traces of collinearity between some... more
The object-oriented metrics suite proposed by Chidamber and Kemerer (CK) is a measurement approach towards improved object-oriented design and development practices. However, existing studies evidence traces of collinearity between some of the metrics and low ranges of other metrics, two facts which may endanger the validity of models based on the CK suite.
Abstract The paper presents the results of a survey performed in 23 Agile companies. The survey focuses on the identification of the non-agile practices used in the organization of their development process. Even if the companies... more
Abstract The paper presents the results of a survey performed in 23 Agile companies. The survey focuses on the identification of the non-agile practices used in the organization of their development process. Even if the companies considered in the study are using Agile approaches to develop their products, the organization and the planning of the work is deeply affected by the approaches used in Plan-Based companies.
The implementation of the subset abstract machine active memory on the CM2 is described. The subset abstract machine (SAM) is a data parallel abstract machine used to implement the subset equational language (SEL). A milestone toward the... more
The implementation of the subset abstract machine active memory on the CM2 is described. The subset abstract machine (SAM) is a data parallel abstract machine used to implement the subset equational language (SEL). A milestone toward the full implementation of the SAM on the CM is the implementation of the active memory, viz. the part of the SAM which is used both to store sets and to perform (data) parallel operation on them.
Abstract The study introduces a new class of fuzzy neurons and fuzzy neural networks exploiting a model of a generalized multivalued exclusive-OR (XOR) operation. The proposed neural architecture is useful in an algebraic representation... more
Abstract The study introduces a new class of fuzzy neurons and fuzzy neural networks exploiting a model of a generalized multivalued exclusive-OR (XOR) operation. The proposed neural architecture is useful in an algebraic representation (description) of fuzzy functions regarded as mappings between unit hypercubes, say [0, 1] n→[0, 1] m. Some underlying properties of the fXOR neurons are discussed and a detailed learning algorithm is given along with a number of illustrative numeric examples.
IEEE 830 standard for software requirements specification). In fact, while the interface for higher level components is simply a protocol for concepts with a low degree of formalization (used mostly by humans to develop further products... more
IEEE 830 standard for software requirements specification). In fact, while the interface for higher level components is simply a protocol for concepts with a low degree of formalization (used mostly by humans to develop further products and are expressed using a natural language), it becomes more important as the level of abstraction of the component decreases and the component itself is used mostly by a computer. In this situation a standardized interface is absolutely necessary.
The growing availability of COTS (commercial-off-the-shelf) components in the software market has concretized the possibility of building whole systems based on components. In this multitude, a recurrent problem is the location and... more
The growing availability of COTS (commercial-off-the-shelf) components in the software market has concretized the possibility of building whole systems based on components. In this multitude, a recurrent problem is the location and selection of the components that best fit the requirements. Commercial repositories that offer search mechanisms have reduced these difficulties: system integrators can rely on a wider variety of components and can focus better on the composition of systems.

And 108 more

Source Code Authorship Attribution (SCAA) has become very important for the functioning of our societies. For example, it is central in copyright and plagiarism issues, for detecting authors of malware, and even in recruitment and... more
Source Code Authorship Attribution (SCAA) has become very important for the functioning of our societies. For example, it is central in copyright and plagiarism issues, for detecting authors of malware, and even in recruitment and selection processes. The goal of this review is to analyze existing approaches to SCAA, compare them, and identify the most common feature types and architectures of neural networks underlying them. We identified the most common taxonomy of the feature types in SCAA. These are: a. lexical, b. layout, and c. structural. We also found that the combination of the lexical (most language agnostic) and structural (most language dependent) features usually provides the most accurate results.
A programmers mind and mental state are valuable ingredients in software development process. Burnouts and stress are the biggest challenges software developers face in the current age. These challenges has been increasing at a fast rate... more
A programmers mind and mental state are valuable ingredients in software development process. Burnouts and stress are the biggest challenges software developers face in the current age. These challenges has been increasing at a fast rate together with the demand in more reliable software products. Various ways to relieve stress have been adopted and some of them result in autonomous sensory meridian response (ASMR). In this study we present a systematic literature review (SLR) focused on understanding the impact of ASMR in software development related activities and how it can be identified from brain waves using electroencephalography (EEG). From the SLR, we found that there exist a positive correlation between an ASMR therapy and alleviating state anxiety, which also it is suggested that ASMR may involve atypical attention processing. Secondly, the identification of specific brain signals patterns when a person is experiencing ASMR is possible using EEG. However a specific effect on software development related activities and software product is not presented in a scientific literature. Lastly, we found out that there is a need to conduct experiments focused on understanding the effect ASMR has on software development and programmers productivity or creativity. As a result, this work serves as a bases for conducting experiments focused in analyzing the mental states evoked by ASMR and the impact in the software engineering domain.
The use of biological signals to understand software development has become more popular in the last few years but poses new challenges with respect to the overall experimental settings. In this paper we present such challenges and the... more
The use of biological signals to understand software development has become more popular in the last few years but poses new challenges with respect to the overall experimental settings. In this paper we present such challenges and the approach we took to overcome them. We illustrate our approach by evaluating two programming situations: pair programming and programming with music. The subjects involved in the experimentation are mostly students, however, in the largest case we involved graduate students coming from industry with at least three years of working experience. The results in general support the validity of this approach and encourage to go further in this research line. Moreover, as a byproduct, the analysis of pair programming confirms, from a biological perspective, early hypotheses that pair programming induces higher level of concentration.
Software systems are the enabling technology for the development of sustainable systems. However, such devices consume power both from the client side and from the server side. This scenario poses to software engineering a new challenge... more
Software systems are the enabling technology for the development of sustainable systems. However, such devices consume power both from the client side and from the server side. This scenario poses to software engineering a new challenge that concerns the development of software for sustainable systems i.e. systems that explicitly characterize the resources under control, that dynamically evolve to maintain an acceptable consumption of resources making the best possible tradeoff with user needs and that are opportunistic and proactive in taking actions that can optimize future resource consumption based on context and past experiences. This paper outlines a research agenda in this area.
Examined is a structured play testing methodology based on an observational study to evaluate if a board game has intuitive features, and what features of design a user will find to be confusing. By presenting a game with only the... more
Examined is a structured play testing methodology based on an observational study to evaluate if a board game has intuitive features, and what features of design a user will find to be confusing. By presenting a game with only the elements of the game to a set of users and performing an observational study of play, mechanics, objects, and themes. The rules booklets should only be used as a method of teaching a player as a last resort and place intuitive embeddings into the parts of the game itself. We examine a small set of games via the process as an initial proof of concept. Observational studies of intuitive features will enable games designers to ensure a swift transition from unsealing the game's container to enjoying playing.
Increasing amount of data the organizations worldwide have at their disposal lead to the need to structure, organize and present the information obtained from it. That is because, in today's rapid-changing business environment, managers... more
Increasing amount of data the organizations worldwide have at their disposal lead to the need to structure, organize and present the information obtained from it. That is because, in today's rapid-changing business environment, managers and executives need to be able to gain crucial insights about the ongoing project in as little time as possible. Recently, energy efficiency has become a greater field of research, and companies started concentrating on monitoring energy-related metrics. In addition, many of them have built their own internal tools (dashboards) to do just this. However, one of the major drawbacks of building specialized tools is the lack of adaptability. That is, they are often tailored to only one person (e.g. CEO), or a small group of them (e.g. board of directors, managers). Furthermore, the combination of metrics that is displayed to them does not change over time. This is a problem because most likely there exists a better metric combination that would allow users to get the crucial insights faster. To fill this gap, our ongoing research focuses on making the dashboards adaptable to multiple roles within the organization while optimizing for a certain goal. In some scenarios the dashboard's goal may be to detect defects, in others it may be to generate the most profit. As our primary research interest is to amplify energy efficiency, we have chosen that to be our dashboard's goal. Our previous work suggests that in order to handle compound metrics at scale it is needed to represent the dashboard as a complex system. This paper presents the design and the architecture of our proposed solution synergizing the notions from complexity theory, software architecture and user experience (UX) design.
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... more
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, have been surveyed. Their personal perception of the variation of productivity due to the move to online work was recorded, together with the tools that they employed and the processes that were in place before and during the quarantine. This observational nature of the results evidences some reduction in the perceived productivity, especially concentrated in people without previous experience of remote work and without a suitable development environment available at home; moreover, such reduction tends to affect more agile processes rather than non structured processes, and appears to be mitigated by the adoption of suitable communication mechanisms and tools.
The goal of this research project was to apply the ideas from Gregory Bateson's book "Steps To An Ecology Of Mind" to the software development process. In our work, we focused on three fundamental aspects: a) the process to follow, b) the... more
The goal of this research project was to apply the ideas from Gregory Bateson's book "Steps To An Ecology Of Mind" to the software development process. In our work, we focused on three fundamental aspects: a) the process to follow, b) the product being built, c) the structure of the team and its organization. While reading the book, we identified the general concepts of the human brain work and drew parallels between the situations described in the book and the conditions that people face during software development. We conducted an anonymous survey among software developers and made sure that many selected ideas could be used to improve the software development process.
Automatically prioritizing software development tasks extracted from codes could provide significant technical and organizational advantages. Tools exist for the automatic extraction of tasks, but they still lack the ability to capture... more
Automatically prioritizing software development tasks extracted from codes could provide significant technical and organizational advantages. Tools exist for the automatic extraction of tasks, but they still lack the ability to capture their mutual dependencies; hence, the capability to prioritize them. Solving this important puzzle is the goal of the presented industrial challenge.
Simple detection of bugs, defects or anomalies during software development is not enough-it is necessary to apply corrective actions to eliminate them. To find out whether an anomaly exists in any software, we can measure the quality... more
Simple detection of bugs, defects or anomalies during software development is not enough-it is necessary to apply corrective actions to eliminate them. To find out whether an anomaly exists in any software, we can measure the quality attributes using software metrics. The main goal of this paper was to find out and explain how to meaningfully attribute metrics to useful corrective actions.
Agile methods were originally introduced for small sized, colocated teams. Their successful products immediately brought up the issue of adapting the methods also for large and distributed organizations engaged in projects to build major,... more
Agile methods were originally introduced for small sized, colocated teams. Their successful products immediately brought up the issue of adapting the methods also for large and distributed organizations engaged in projects to build major, complex products. Currently the most popular multi-teams agile method is the Scaled Agile Framework (SAFe) which, however, is subject to criticism: it appears to be quite demanding and expensive in terms of human resource and project management practices. Moreover, SAFe allegedly goes against some of the principles of agility. This research attempts to gather a deeper understanding of the matter first reviewing and analysing the studies published on this topic via a multivocal literature review and then with an extended empirical investigation on the matters that appear most controversial via the direct analysis of the work of 25 respondents from 17 different companies located in eight countries. Thus, the originality of this research is in the systemic assessment of the "level of flexibility" of SAFe, highlighting the challenges of adopting this framework as it relates to decision making, structure, and the technical and managerial competencies of the company. The results show that SAFe can be an effective and adequate approach if the company is ready to invest a significant effort and resources into it both in the form of providing time for SAFe to be properly absorbed and specific training for individuals.
For years, brain activity, stress level during programming and painting have been analyzed separately. As the world gets more digital and human life gets more dependent on technology, it has become more important to analyse the... more
For years, brain activity, stress level during programming and painting have been analyzed separately. As the world gets more digital and human life gets more dependent on technology, it has become more important to analyse the relationship between programming, software developers' brain activity, creative practices (i.e painting) and stress level. In this paper, we present the results of a systematic literature review whereby the research questions are centred around analysing the relationship between stress levels and brain activity when a person is painting or writing a piece of software. The search for relevant studies was done on google scholar and IEEE Xplore. The results of our review show that: (1) EEG can be used to accurately measure stress levels, (2) there is limited research in the analysis of stress level pattern of the stress level when people paint depending on different situations and styles of painting. In light of the systematic literature review result, using EEG we plan to conduct experiments to measure the stress level when a person is painting a picture or programming.
In this paper we present the method and tool for linking the analysis of a software at the development stage with the efficiency of the developed product during operation mode from the energy consumption perspective. The purpose of the... more
In this paper we present the method and tool for linking the analysis of a software at the development stage with the efficiency of the developed product during operation mode from the energy consumption perspective. The purpose of the method is to recognize the bottlenecks of a program and provide recommendations for improving the structure and run-time behavior of the software. The developed tool consists of two subsystems: first is responsible for static analysis of the code and relevant software metrics, second performs analysis of the power consumption of the application. Analysis of the outputs of both components allows us to create a close-loop system for continuous analysis and optimization of the developing software product.
The generalization of knowledge is a necessary part of every scientific field. Meta-analysis is already advocated as a tool for generalization in different areas such as medicine, psychology, business, and this process is already... more
The generalization of knowledge is a necessary part of every scientific field. Meta-analysis is already advocated as a tool for generalization in different areas such as medicine, psychology, business, and this process is already standardized for them. Software engineering started using meta-analysis as a tool for aggregating results from families of experiments, but not so long for generalization of results coming from different studies, and for this purpose, the metaanalytical approach is not yet clarified. In this paper, we attempt to systematize the application of meta-analysis as a secondary study to the software engineering field suggesting our preliminary protocol. To see the reliability of the proposed protocol we conducted several studies using it. Following even uniform protocol with these studies, we identified the issues preventing the wide usage of meta-analysis in software engineering and proposed our solutions for them.
This paper provides a highly opinionated and biased vision and a two-stage plan with guidelines to reach a new era of software development, where anyone can create software without bothering to write code. Moreover, this paper explores in... more
This paper provides a highly opinionated and biased vision and a two-stage plan with guidelines to reach a new era of software development, where anyone can create software without bothering to write code. Moreover, this paper explores in depth the first of these stages, which consists of creating a no-code tool based on six principles: configuration driven development, APIs, open-source, cross-platform, cloud computing, and design systems. An examination of each principle is presented and a case is made for why such a combination of principles would lay the foundation for future development efforts [28]. Possible enquiries are addressed and a path is laid out for future works.
This research analyzes the top-performing software applications to identify the Pareto distribution of the features and accordingly proposes the use of no-code tools to increase the efficiency of software developers.
Programmers are the most important part of software production and individual developers are hard to substitute. The essential part of the knowledge intensive development process is the developers mind state. Understanding the mental... more
Programmers are the most important part of software production and individual developers are hard to substitute. The essential part of the knowledge intensive development process is the developers mind state. Understanding the mental states of software developers has become a main interest of software production companies since it is the most valuable resource for software development. However the main challenge in analysing the software developers mental states is that most precise equipment, such as fMRI, is extremely expensive and not portable. Thus, fMRI approximation from EEG readings tools such as MNE, have been developed over the years. The idea of recreating the fMRI based on EEG signal is the main motivation for the current work. This research explains how we used this tool in our studies.
Text classification is a crucial method for Intelligent and AI based systems as the amount of text data increases from year to year. As sentiment analysis which is a prominent technique used by many companies and governments to understand... more
Text classification is a crucial method for Intelligent and AI based systems as the amount of text data increases from year to year. As sentiment analysis which is a prominent technique used by many companies and governments to understand the societies, it has become important to select the efficient and accurate text analysis algorithm to be used the text classification system. In this paper we present a meta-analytical study aimed at comparing two text classification machine learning algorithms namely KNN and SVM in terms of F-score. In addition to the meta-analytical study, our study presents a literature review for machine learning based text classification algorithms. For the meta-analysis, random and fixed models were used. The results of the meta-analysis using 95%-CI proved that there is no significant f1 performance difference between KNN and SVM in text classification tasks.
Our goal was to read the book "Guitar zero: The new musician and the science of learning" and find out whether any of the ideas that were presented in this book could be applied to the software development process. After a thorough and... more
Our goal was to read the book "Guitar zero: The new musician and the science of learning" and find out whether any of the ideas that were presented in this book could be applied to the software development process. After a thorough and comprehensive analysis, we singled out six fundamental musical practices that could be adopted by teams of software engineers to improve their development process. For two of them-team code reviews and personal sprint goal-we performed preliminary experiments, which were aimed at gathering feedback about the usefulness of such practices for software developers.
Modern Code Reviewing has shown to be an effective mechanism to identify bugs in the code; however, given their intrinsic subjectivity, they can be significantly affected by human factors such as interpersonal relationships. This paper... more
Modern Code Reviewing has shown to be an effective mechanism to identify bugs in the code; however, given their intrinsic subjectivity, they can be significantly affected by human factors such as interpersonal relationships. This paper focuses on exploring such issues, with specific attention to social iterations and personal factors. Future work includes experimental evaluations to verify the research hypothesis related to improving the quality of the process under the study.
In recent years, the use of biological signals to understand the operations of software engineers has emerged, although with a limited understanding of its successful application. This paper provides primary evidence that biological... more
In recent years, the use of biological signals to understand the operations of software engineers has emerged, although with a limited understanding of its successful application. This paper provides primary evidence that biological signals obtained by electroencephalography (EEG) may provide valuable information from the perspective of software engineers, who then decode the adequacy, consistency, and efficiency of their work. The experimentation with 20 different professional male software engineers has been completed. Two natural situations have been investigated: pair programming and programming with (without) music. The early findings show the methodology's effectiveness.
Ample research has been carried out in the area of collusion, plagiarism and e-learning. Collusion is a form of active cheating where two or more parties secretly or illegally corporate. Collusion is at the root of common knowledge... more
Ample research has been carried out in the area of collusion, plagiarism and e-learning. Collusion is a form of active cheating where two or more parties secretly or illegally corporate. Collusion is at the root of common knowledge plagiarism. While plagiarism requires two or more entities to compare, collusion can be determined in isolation. It is also possible that collusion do not lead to positive plagiarism checks. It is therefore the aims of this preliminary study to: (i) identify the factors responsible for collusion in e-learning (ii) determine the prominent factor that is representative of collusion and (iii) through user behaviour including, but not limited to, application switching time, determine collusion. We claim that user computer activities and application processes can help understand user behaviour during assessment task. It is on this premise that we develop a machine learning model to predict collusion through user behaviour during assessment task.
Complex problems involve a concerted effort by the software team and can absorb vital resources, but our understanding of how the software team forms and succeeds has been minimal. It is not possible to explain the relationships between... more
Complex problems involve a concerted effort by the software team and can absorb vital resources, but our understanding of how the software team forms and succeeds has been minimal. It is not possible to explain the relationships between team achievement and scale, concentration, and especially team expertise by confounding elements, such as age group, additional participation from other individuals who are not in the team, or by team structures. This generates a need to understand software teams using systemic theory. This position paper presents the efforts we have undertaken to study the impact of systemic factors on software development teams and how systemic theory can be used to understand software teams. Our approach looks at the effect of psychological and sociological systemic variables on software teams to identify a way to represent software teams as systems.
One of the most critical aspects of Software Development Process is the Requirements Engineering process and defining the correct and understandable requirements in Agile methodology. Hence, Requirements Engineering in agile directly... more
One of the most critical aspects of Software Development Process is the Requirements Engineering process and defining the correct and understandable requirements in Agile methodology. Hence, Requirements Engineering in agile directly effect the overall project success. This paper demonstrates a research study about the usage of Agile methods in the set of industrial companies located in Russia. The survey gives insights about different aspects of the method: communication challenges and issues arising during the Software Requirements Engineering phase in particular the challenges in the communication with the customers. To investigate these issues the paper presents an analysis of the state of the art done with the help of the research survey. The results of the interview sessions are summarized and the set of suggestions to overcome the challenges are proposed. 30 representatives from 20 different companies who are mainly Product owners and Product Managers participated in the survey. As the results indicate, the communication is always a key challenge for the companies. The analysis of particular qualities of the communication field in the context of rapidly changing Software Development environment helped to define the outcomes related to the customer communication.
An intelligent tool for type annotations in Python would increase the productivity of developers. Python is a dynamic programming language, and predicting types using static analysis is difficult. Existing techniques for type prediction... more
An intelligent tool for type annotations in Python would increase the productivity of developers. Python is a dynamic programming language, and predicting types using static analysis is difficult. Existing techniques for type prediction use deep learning models originated in the area of Natural Language Processing. These models depend on the quality of embeddings for source code tokens. We compared approaches for pretraining embeddings for source code. Specifically, we compared FastText embeddings to embeddings trained with Graph Neural Networks (GNN). Our experiments showed that GNN embeddings outperformed FastText embeddings on the task of type prediction. Moreover, they seem to encode complementary information since the prediction quality increases when both types of embeddings are used.
Machine learning (ML) is making its way into the source code analysis. Most of the time, this happens with the help of Natural Language Processing (NLP) techniques. However, NLP techniques often represent their input as a sequence of... more
Machine learning (ML) is making its way into the source code analysis. Most of the time, this happens with the help of Natural Language Processing (NLP) techniques. However, NLP techniques often represent their input as a sequence of tokens. This assumption is reasonable when processing text because the words related to the same object usually follow each other. However, in source code, this assumption can be inadequate simply because of the source code execution nature. Graphs can be much more adequate for representing source code. They can capture the dependency structure of a program. Due to the recent advances in the area of machine learning on graphs, researchers started to explore the graph-based representation of software in the scope of machine learning applications. There is no single way to represent a program in the form of a graph. For this reason, researchers explored different alternatives, such as function call graphs (FCG), data flow graphs (DFG), control flow graphs (CFG), or their mixtures. In this survey, we overview approaches for representing software as graphs and how these representations help to solve machine learning tasks.
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... more
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 plans, that allows for successful product delivery and projects productivity. Hence, Agile methods typically focus on how groups of individuals with different but often complementary skill-sets can mutually interact or self-organise to build high-performing teams capable of developing, testing, and delivering software valuable for the users and stakeholders. The validation of such methodologies in the software development industry nevertheless requires a careful analysis of the potential challenges and impediments that agile teams may encounter during their collaboration; so, a practical investigation over the root causes of these potential issues. Our aim in this paper is twofold. Firstly, we want to gather all currently defined root causes of interaction issues and impediments in agile teams. Secondly, we intend to review and systematically analyse the most common of them in order to build appropriate mitigation strategies, which-we hope-will contribute to decreasing their potential occurrences in future works.
This paper shows some views on the mathematical structure of the diffusion of the Coronavirus (COVID-19), often claimed to have a positive exponential structure. However, we find that the exponential growth rate is past the inflection... more
This paper shows some views on the mathematical structure of the diffusion of the Coronavirus (COVID-19), often claimed to have a positive exponential structure. However, we find that the exponential growth rate is past the inflection point and that growth is much slower than this implication. It presents conclusions on the future expected outcome of the current situation-not only in terms of diffusion of the disease but also for the hysteria that have been created around it.
A recurrent concern of instructors and managers in learning and industrial sectors is how to organise the working environment to increase the productivity in tasks such as programming and software testing. Evidence of the increasing... more
A recurrent concern of instructors and managers in learning and industrial sectors is how to organise the working environment to increase the productivity in tasks such as programming and software testing. Evidence of the increasing interest from different domains in this topic is the growing amount of research that has been published on physical factors (e.g., product, personnel, project and process), programming tasks (e.g., tests, questionnaires, programming, testing and debugging), and assessment methods (e.g., time, software metrics and academic grading). The objective of this paper is to survey the literature and to enable one to gain valuable insights into the relevance of physical factors to improve programming efficiency, especially in a learning environment. This study also makes recommendations on the techniques that can provide further experience for learners before joining the industrial sector. Finally , this survey suggests research directions, including an analysis of the correlation between physical factors and measurable productivity.
Organizations nowadays have plenty number of choices to improve their software processes with the help of several third party software process evaluation applications. Basically for any kind of evaluation method, the software process... more
Organizations nowadays have plenty number of choices to improve their software processes with the help of several third party software process evaluation applications. Basically for any kind of evaluation method, the software process metrics should be measured. Mainly it can be organized in different ways, as far as metrics collection from developers devices is also not an easy task. This paper introduces our proposed framework to track and analyze the software development process, which gives important insights into the process and the product. In addition, integration of the external third-party agents for development management tools like Trello and SonarQube. The detailed architecture of the framework and it's agent relations are given with the precise metrics lists that are retrieved from the mentioned data sources.
Are we really writing software? What do software writers have in common with other professional writers? What can we software developers learn from professional writers? This paper proposes a reflection on such topics using as a reference... more
Are we really writing software? What do software writers have in common with other professional writers? What can we software developers learn from professional writers? This paper proposes a reflection on such topics using as a reference the book "Six Memos for the Next Millennium", a posthumous essay by the Italian novelist, editor, and literary critic Italo Calvino. A comparison is drawn between such work and the current principles ruling how software should be written and developed, and a claim is made that this is an area worth further exploration. CCS Concepts: • Software and its engineering → Software design engineering; Requirements analysis.
Utilizing biological signals to understand software developers activities has been emerging in recent years, still with limited understanding of its effective applicability. This paper provides preliminary evidence that biological signals... more
Utilizing biological signals to understand software developers activities has been emerging in recent years, still with limited understanding of its effective applicability. This paper provides preliminary evidence that biological signals collected via electroencephalography (EEG) can provide useful information on the state of mind of software developers , that, then, translates in understanding the effectiveness, quality, and productivity of their work. The experimentation has been done with 20 differently skilled male programmers. Two common situations have been assessed: pair programming and programming with music. The preliminary outcomes evidence the usefulness of the approach.
Nowadays, Computer Science tightly entered all spheres of human activity. To improve quality and speed of development process, it is important to help programmers improve their working conditions. This paper proposes a vision on exploring... more
Nowadays, Computer Science tightly entered all spheres of human activity. To improve quality and speed of development process, it is important to help programmers improve their working conditions. This paper proposes a vision on exploring this issue and presents in conjunction a factor that has been claimed multiple time to affect the effectiveness of software production, concentration and attention of software developers. We choose to focus on developers brain activity and features that can be extracted from it. CCS CONCEPTS • Software and its engineering → Collaboration in software development.
The paper demonstrates the Windows data collector development process with the built back-end from the requirements gathering stage till the implementation and testing phase. Each phase throughout the development life cycle of the system... more
The paper demonstrates the Windows data collector development process with the built back-end from the requirements gathering stage till the implementation and testing phase. Each phase throughout the development life cycle of the system is defined in details. The whole system idea and the objectives behind developing this kind of framework is described in earlier papers that creates the importance of introducing the background before reading this paper. The detailed information about the data collector features that are provided and their appropriate testing types, documentation are demonstrated thoroughly. Besides , the process of development includes both design and overall system architecture description.
Agile methodologies are used for improving productivity and quality of development originally created for small teams. However , now they are expanding to larger organizations, for which "scaled up" approaches have been proposed. This... more
Agile methodologies are used for improving productivity and quality of development originally created for small teams. However , now they are expanding to larger organizations, for which "scaled up" approaches have been proposed. This study presents the preliminary outcomes from a survey on the effects of the Scaled Agile Framework (SAFe), which is considered the most used of such approaches. The apparent advantages and limitations are discussed along with the lines for future research.
Developers are indeed the most important resource in software production, and the individual developers are hard to substitute. The core of the work of the developers of knowledge intensive systems is in their mind, and this now a growing... more
Developers are indeed the most important resource in software production, and the individual developers are hard to substitute. The core of the work of the developers of knowledge intensive systems is in their mind, and this now a growing interest in understanding how to detect and model the state of their mind. Such analysis would enable to determine and model the optimal situation to develop in terms, for instance, of speed of development, minimization of errors, etc., and, to the extent possible, to recreate or to get close to such situation while organizing the work, the processes, the tools, and so on. Furthermore, on the basis of such modeling, tools could be developed to supply the developers what they need in terms of information, instruments, feedback. The problem of performing such analysis is that the most refined equipment to model the work of the mind, like the fMRI, is very expensive and not movable. However, a tool, MNE, has been developed who is able to recreate accurate approximations using EEG of the data coming from an accurate wearable device that would come from the fMRI. This is a major enabler of the research in this area and in this paper details on why to select it and how to use it are provided. Moreover, first-hand information about its usage is supplied.
The current situation when using tight time frames and frequently changing requirements when creating software dictates the need to create a system for monitoring energy consumption at any stage of production of a software product. At the... more
The current situation when using tight time frames and frequently changing requirements when creating software dictates the need to create a system for monitoring energy consumption at any stage of production of a software product. At the first stage, we need to evaluate the state-of-the-art on this topic. To this goal, we conducted a systematic literature review. During the review more than 500 studies were observed and 124 of them were selected for detailed analysis. Among these papers, 169 metrics were derived and assessed from the point of their applicability within invasive software development process analysis. The study demonstrates the relevance of the questions posed and shows the immaturity of the area. There is no evolutionary study and the possibility of assessment at any stage of the development of a software product. The data show the importance and relevance of technical work and the importance of its further development. 1. Introduction Given the sharp growth of IT systems and their impact on worldwide energy consumption, energy efficiency is becoming a real concern. It is estimated that the energy consumption of the ICT sector will reach 433 GW in 2020, meaning more than 14.5% of worldwide power consumption [1]. Therefore, it is essential to have precise figures of the current energy consumption of computer and mobile devices and how much of this is due to the software running on them, to understand how to reduce their power consumption and design future energy efficient equipment. In order to provide a novelty approach on the energy efficiency assessment of the software product, we decide to focus on the development process analysis and related software metrics. For the data collection process, we will use non-invasive tools for monitoring the process of software development. A set of metrics for measuring software (source code), and the development process can be adjusted [2]. The toolkit integrates with major software development environment and office applications, so developers are not distracted from the main workflow. This technology has been successfully tested for problem analysis methodologies pair programming on software quality [3]. The project aims at building and validating a quantitative framework to guide the development and the evolution of sustainable software systems using a variety of metrics collected throughout the life-cycle of software systems, optimizing the performances of the systems under a variety of relevant factors, including efficient use of resources [4]. At the first stage of the project the metrics which describe, interpret and measure the value of resources software components of adaptive systems throughout their life cycle (design, implementation, operation) should be defined. These metrics will correlate with specific monitored resources, architectural elements and the behaviour of the system as a whole. To define a proper
The InnoMetrics project aims at building and validating a quantitative framework to assess and guide the software development teams using process metrics collected non-invasively throughout the life-cycle of software systems, from the... more
The InnoMetrics project aims at building and validating a quantitative framework to assess and guide the software development teams using process metrics collected non-invasively throughout the life-cycle of software systems, from the initial concept to the deployment, execution, and maintenance taking into consideration energy concerns, which play a pivotal role in the success of applications and infrastructures. In this paper, we report the early experience we have in its development together with the data of developers' activities that we have obtained so far, including running processes and applications, user actions in browser or IDE and associated energy consumption.
Given the emerging importance of individual biophysical data for understanding software development activities, an internship was organized to provide the students with first hand experience on the collection of such data. The specific... more
Given the emerging importance of individual biophysical data for understanding software development activities, an internship was organized to provide the students with first hand experience on the collection of such data. The specific goal of the internship was to offer students the possibility to collect, analyse, understand, and draw conclusions from EEG signals. The overall internship spanned about 3 months and involved about 17 students. The results have been very positive in terms of the specific knowledge gained by each student and also of the value of the collected data. In this paper we detail the structure of the internship, the tasks carried out, the challenges faced, and how such challenges have been overcome.
The paper is devoted to the development of the data collectors for Windows OS and MacOS. The purpose of these plugins is to collect the process metrics from the user's device and send it to the back-end for further processing. The overall... more
The paper is devoted to the development of the data collectors for Windows OS and MacOS. The purpose of these plugins is to collect the process metrics from the user's device and send it to the back-end for further processing. The overall open source framework is aimed at energy efficiency analysis of the developing software products. The development presented here as a sequence of the life cycle stages, including requirements analysis, design, implementation and testing. Specifics of the implementation for each targeted operating system are given.
InnoMetrics is the system that aims at collecting software development process metrics in a non-invasive way to access and optimize the development process and its efficiency. This paper demonstrates the development and analysis of energy... more
InnoMetrics is the system that aims at collecting software development process metrics in a non-invasive way to access and optimize the development process and its efficiency. This paper demonstrates the development and analysis of energy consumption of MacOS systems based on the software process measurement data. It represents the experience of the development of MacOS system collector and Transfer, in addition to the user interface and early analysis of energy consumption metrics calculations.
Several development processes recommend strongly user participation and involvement in requirement acquisition. However, there are very few studies detailing the empirical results of direct user involvement in large industrial software... more
Several development processes recommend strongly user participation and involvement in requirement acquisition. However, there are very few studies detailing the empirical results of direct user involvement in large industrial software development products. In this paper we report the outcomes of a novel approach taken by the Software House of one of major Russian banks (Ak Bars Bank) on how to improve the development process by directly involving end customers in the requirement elicitation phase of mobile, energy efficient applications. We observe that such involvement in a form of a workshop has led to improvement of requirements collection and higher levels of user satisfaction.
Any source code can be represented as a graph. This kind of representation allows capturing the interaction between the elements of a program, such as functions, variables, etc. Modeling these interactions can enable us to infer the... more
Any source code can be represented as a graph. This kind of representation allows capturing the interaction between the elements of a program, such as functions, variables, etc. Modeling these interactions can enable us to infer the purpose of a code snippet, a function, or even an entire program. Lately, more and more work appear, where source code is represented in the form of a graph. One of the difficulties in evaluating the usefulness of such representation is the lack of a proper dataset and an evaluation metric. Our contribution is in preparing a dataset that represents programs written in Python and Java source codes in the form of dependency and function call graphs. In this dataset, multiple projects are analyzed and united into a single graph. The nodes of the graph represent the functions, variables, classes, methods, interfaces, etc. Nodes for functions carry information about how these functions are constructed internally, and where they are called from. Such graphs enable training hierarchical vector representations for source code. Moreover, some functions come with textual descriptions (docstrings), which allows learning useful tasks such as API search and generation of documentation.
Researchers have largely identified that interactions and communications pose major challenges in software development, especially when extracting requirements. However, they have not appreciated the sources and the depth of them, thus... more
Researchers have largely identified that interactions and communications pose major challenges in software development, especially when extracting requirements. However, they have not appreciated the sources and the depth of them, thus approaching them with mechanisms that have not (fully) achieved the desired objectives. In this position, we claim that such challenges can be explained using three major theories coming from social sciences: the theory of verbal and nonverbal communication, systemic theory, and democratic theory. We also argue that some of the successful practices of agile methods can be explained in terms of these theories. Finally, we stipulate that a full appreciation of these theories can result in a significant leap forward in the discipline, identifying new mechanisms that can help to overcome the mentioned challenges, understanding fully what we are doing and why.
This paper presents a review of an innovative course on "Advanced Statistics" for a master program in data science. The prerequisites for this course include fundamental knowledge in Mathematics , Computer Science, and Economics. The... more
This paper presents a review of an innovative course on "Advanced Statistics" for a master program in data science. The prerequisites for this course include fundamental knowledge in Mathematics , Computer Science, and Economics. The expected learning outcome is centered on the ability to model empirical investigations in terms of hypotheses to prove via suitable statistical tests. The paper contains general goals, description of the content, description of the structure of each week, description of the evaluations, and overall outcomes from students of the course.
Teaching is always a challenging task, especially in the current fast-paced and changing world. Universities curricula and instructional practices should take into account growing and changing demands of both industry and students... more
Teaching is always a challenging task, especially in the current fast-paced and changing world. Universities curricula and instructional practices should take into account growing and changing demands of both industry and students themselves. Given all these factors, a Lean Software Development course for third year BS has been developed and continues to evolve at Innopolis University, Russia. In the course, lean methods are used both for teaching lean software development skill, and for teaching Lean via other, not directly related to programming, collab-orative tasks, i.e. writing a research paper. Besides, lean methodology is used by the course development team for course design. As a result, this approach helps not only to develop the theoretical and practical skills that students can apply in various spheres of life but also to engage the students and to maintain their attention throughout the course without any overload.
In this paper, the survey, dedicated to the usage of software systems in a software development process, is analysed. The survey was conducted among the students of Innopolis University. Based on the result of the survey, the following... more
In this paper, the survey, dedicated to the usage of software systems in a software development process, is analysed. The survey was conducted among the students of Innopolis University. Based on the result of the survey, the following conclusions were made: (1) Windows, macOS and Linux-based operating systems have almost equal share of usage among future software developers (2) the most popular IDE is IntelliJ IDEA, however, to the end of the studying process students the diversity of IDEs usage increases (3) the mostly used code management system by far is Github, with almost 100% share (4) Trello and Jira are the most popular project management software for lightweight and complex industrial projects respectively. The obtained results will be used for the prioritization of the development of integration agents for InnoMetrics project, as well as for the adaptation of a studying process in academic institutions to make it more relevant to the given trends and for the market analysis of software engineering environment.
This paper presents a review of the Open Source development process from the point of view of the involvement of the developers in the production process. The study focuses on how developers contribute to projects in terms of involvement,... more
This paper presents a review of the Open Source development process from the point of view of the involvement of the developers in the production process. The study focuses on how developers contribute to projects in terms of involvement, size and kind of their contribution. Data have been collected from different kinds of open source projects and the results show that the general behavior is the same, even if projects and people are different.
In this study we were able to gather a substantial quantity of detailed responses from a group of individuals and companies that are broadly quite similar to those found in several of the major world centers of technological innovation.... more
In this study we were able to gather a substantial quantity of detailed responses from a group of individuals and companies that are broadly quite similar to those found in several of the major world centers of technological innovation. As such, our analysis of the results provides some tantalizing hints to organizational and methodological challenges and practices of a broad range of groups. One intriguing suggestion is that while "traditional" and well defined Agile groups function according to the standards established to support those approaches, Quasi-Agile groups do not. Instead, Quasi-Agile groups seem to pursue the goals of Agile using measures and underlying approaches more similar to traditional methods. One might expect that such a discordance to affect the effectiveness of a group's efforts.

And 283 more

The software systems worldwide increase in a density on a daily basis. The success in nowadays competitive market requires sustainable and quality software product. Controversially to the quantity of software products, the quality and... more
The software systems worldwide increase in a density on a daily basis. The success in nowadays competitive market requires sustainable and quality software product. Controversially to the quantity of software products, the quality and cost of the software are tend to depend on several aspects. However, they are not fully inculcated yet as a fundamentally essential. The full control over the software quality requires software metrics to be introduced. By effective usage of software quality metrics one can monitor the software development process, minimize the cost, track the resource usage and maintain the expected results. This paper reviews the late phases and the existing software quality models to track software process quality metrics in these late phases. And based on the summarized studies we describe our system architecture in the way to evaluate the software quality with embedded external systems. This paper find outs additional metrics we can measure with the help of our framework.
Abstract An informed introduction to AMs requires the ability to determine whether and when AMs are better than traditional software development methodologies. The risk is that AMs are considered just like another tool. Altogether to... more
Abstract An informed introduction to AMs requires the ability to determine whether and when AMs are better than traditional software development methodologies. The risk is that AMs are considered just like another tool. Altogether to accredit AMs we need to show the qualified evidence of their effectiveness, performance, productivity, in the different contexts where they can be introduced.
Abstract Values are ideals that that a group of people embrace. They can be positive or negative, for example empowerment or control. These values are implicit in the personality or culture of a company. Values are often emotive; they... more
Abstract Values are ideals that that a group of people embrace. They can be positive or negative, for example empowerment or control. These values are implicit in the personality or culture of a company. Values are often emotive; they represent driving forces behind people. The word principle stems from the Latin for leader or emperor, however in this context we mean it as a general law or essence, for instance principles of modern physics.
Abstract The four main statements shared by all AMs are listed in the so-called Agile Manifesto: 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over... more
Abstract The four main statements shared by all AMs are listed in the so-called Agile Manifesto: 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a plan In this section, we review these statements to determine the extent to which they apply to OSS.
Agile Methods (AMs) are a set of development techniques designed to address some problems of modern software development (ie, projects over budget and over schedule). Such methods do not pretend to be useful in any kind of software... more
Agile Methods (AMs) are a set of development techniques designed to address some problems of modern software development (ie, projects over budget and over schedule). Such methods do not pretend to be useful in any kind of software project or to be the solution to reduce costs and increase quality of any product.
Supporting Electronic Commerce of Software Products 331 Chapter XVIII Supporting Electronic Commerce of Software Products Through Pay-Per-Use Rental of Downloadable Tools Giancarlo Succi and Raymond Wong University of Alberta, Canada Eric... more
Supporting Electronic Commerce of Software Products 331 Chapter XVIII Supporting Electronic Commerce of Software Products Through Pay-Per-Use Rental of Downloadable Tools Giancarlo Succi and Raymond Wong University of Alberta, Canada Eric Liu University of Calgary, Canada Carlo Bonamico and Tullio Vernazza DIST-University di Genova, Italy Luigi Benedicenti University of Regina, Italy The Internet supports the development of software tools that can be downloaded on demand by users, software tools on-demand.
Abstract: Collecting, understanding, and managing requirements is a critical aspect in all development methods. This is true for Agile Methods as well. In particular, several agile practices deal with requirements in order to implement... more
Abstract: Collecting, understanding, and managing requirements is a critical aspect in all development methods. This is true for Agile Methods as well. In particular, several agile practices deal with requirements in order to implement them correctly and satisfy the needs of the customer. These practices focus on a continuous interaction with the customer to address the requirements evolution over time, prioritize them, and deliver the most valuable functionalities first.
Abstract The introduction of a GNU/Linux-based desktop system in a large company is often problematic. In literature, several crucial issues represent such a burden, which is often cost effective for SMEs and public administrations. Some... more
Abstract The introduction of a GNU/Linux-based desktop system in a large company is often problematic. In literature, several crucial issues represent such a burden, which is often cost effective for SMEs and public administrations. Some of these are technical issues; the others are related to the training costs for the employees.
Abstract. Programming languages using set as the core data collection have two interesting features: first lots of people have experience, from many different fields, in representing problems as relations between sets and then sets are a... more
Abstract. Programming languages using set as the core data collection have two interesting features: first lots of people have experience, from many different fields, in representing problems as relations between sets and then sets are a suit structure for exploiting data parallelism. This paper presents a technique for implementing sets in a Logic Programming System. It is based on hash-tables and is aimed to a Subset Abstract Machine for the Subset Equational Language.
Abstract Agile Methods (AMs) are very recent but many of their basic principles are rather old, inherited from the lean production pioneered in the '60s at Toyota for the production of cars. Moreover, many practices on which AMs are based... more
Abstract Agile Methods (AMs) are very recent but many of their basic principles are rather old, inherited from the lean production pioneered in the '60s at Toyota for the production of cars. Moreover, many practices on which AMs are based have a long tradition in software development. For instance, unit testing has been used since the '60s. However, one of the major achievements of AMs is the integration of all these well established principles and practices with some others more recent such as pair programming.
Abstract Tools support is extremely important in Agile development. As described in the previous chapters, the Agile development is based on the identification and the subsequent reduction of activities that do not provide value to the... more
Abstract Tools support is extremely important in Agile development. As described in the previous chapters, the Agile development is based on the identification and the subsequent reduction of activities that do not provide value to the customer and the ability to change the code without including new and undetected bugs in the code.
Abstract The evaluation of software is a critical task for corporations that are planning to use OSS components. The amount of OSS available is vast and often its quality is not appropriate to adoption for real business processes.... more
Abstract The evaluation of software is a critical task for corporations that are planning to use OSS components. The amount of OSS available is vast and often its quality is not appropriate to adoption for real business processes. Therefore, companies have to analyze the available solutions and chose the software that meets their functional needs and quality standards.
Abstract Although the situation in the software industry is improved in the last years, the percentage of software project cancelled 18%, or challenged (late, over budget, and with less than the required features) 53% is still high1.... more
Abstract Although the situation in the software industry is improved in the last years, the percentage of software project cancelled 18%, or challenged (late, over budget, and with less than the required features) 53% is still high1. Researchers and practitioners are looking for the magic solution or the silver bullet that will allow software companies to overcome the software crisis (Brooks, 1987). New development approaches like AMs and OSD models are some of the solutions identified (Feller & Fitzgerald, 2002; Abrahamsson et al., 2003).
Adoption of Open Source Processes in Large Enterprises (9781599046815): Barbara Russo, Marco Scotto, Alberto Sillitti, Giancarlo Succi: Book Chapters.
Abstract In the early '90s, the IBM Consulting Group hired Alistair Cockburn to build a methodology for object-oriented development. Cockburn investigated a large number of software projects and asked to each team to identify the main... more
Abstract In the early '90s, the IBM Consulting Group hired Alistair Cockburn to build a methodology for object-oriented development. Cockburn investigated a large number of software projects and asked to each team to identify the main reasons for their own success. Cockburn has defined Crystal (Cockburn, 2004) as a family of AMs, because he believed that different kinds of projects require different development methodologies.
Abstract The learning abilities and high transparency are the two important and highly desirable features of any model of software quality. The transparency and user-centricity of quantitative models of software engineering are of... more
Abstract The learning abilities and high transparency are the two important and highly desirable features of any model of software quality. The transparency and user-centricity of quantitative models of software engineering are of paramount relevancy as they help us gain a better and more comprehensive insight into the revealed relationships characteristic to software quality and software processes. In this study, we are concerned with logic-driven architectures of logic models based on fuzzy multiplexers (fMUXs).
Abstract In this chapter, we propose an analysis of the approaches and methods available for the automated extraction of knowledge from event flows. We specifically focus on the reconstruction of processes from automatically generated... more
Abstract In this chapter, we propose an analysis of the approaches and methods available for the automated extraction of knowledge from event flows. We specifically focus on the reconstruction of processes from automatically generated events logs. In this context, we consider that knowledge can be directly gathered by means of the reconstruction of business process models.
This chapter presents Gertrude, a methodology for business process modeling. Gertrude uses Object Orientation, and conjugates it with Activity Based Costing. The methodology is simple, easy to use and understand, and concise. It accounts... more
This chapter presents Gertrude, a methodology for business process modeling. Gertrude uses Object Orientation, and conjugates it with Activity Based Costing. The methodology is simple, easy to use and understand, and concise. It accounts for what-if analysis, and variation in the perception of the firm. It can serve as enabler for a BPR process, or monitor a continuous improvement in the production process. It is the basis for corporate experience capitalization
ABSTRACT The chapter discusses the adoption and assimilation process of open source software as a new form of information technology. Specifically, the case reports a general positive attitude towards the widely used technology, the... more
ABSTRACT The chapter discusses the adoption and assimilation process of open source software as a new form of information technology. Specifically, the case reports a general positive attitude towards the widely used technology, the OpenOffice. org suite for office automation. Nevertheless, it shows the difficulties of the first early adopters to lead the innovation process and push other users.