ACM SIGSOFT Software Engineering Notes: Vol. 44, No. 1. 2019

Full Citation in the ACM Digital Library

SESSION: Columns

Passages

In every larger-scale endeavor, or at least in most larger-scale endeavors, there comes a time to evaluate progress, solicit opinion, ask your public, survey your customers -- in short, to find out if what you are doing is actually worth doing. In some cases, this step may be omitted, or the results ignored: it is possible that if Herman Melville had shown people Moby Dick when he was half-done with it, everyone except Nathaniel Hawthorne would have said "Er, we're not sure what this is all about. Where's the nice adventure of Omoo? Just what are you up to, Sir?" He should not have therefore ditched the manuscript and gone on to something else; also, Nathaniel Hawthorne gets 50,000 votes. However, in general, you (and I) are not Melville writing Moby Dick. Scientific projects tend to publish some papers before they are "complete" and if these are universally derided and rejected, or receive no citations, it is often the case that they are doing nothing of much interest. There are exceptions, but they are rarer, perhaps, than we might think. Most things that are ignored are ignored for a good reason.

What Do We Mean When We Talk about Artificial Intelligence?: (Part 1)

This is a good time as any to address the more philosophical questions of what software is and how we use it, in particular software used as a replacement for human intelligence-AI. My intent in this and in the next few columns is to address some of the fundamentals, that is, the science of AI or what should be nailed-down before software engineering begins. You get more traction when you design on a solid science base of knowledge. A simple analogy, for example-one might not choose to labor over a not-quite-working perpetual-motion machine if one were aware of the second law of thermodynamics. Then again, there is no equivalent "law of human intelligence," so people keep trying.

Risks to the Public

Edited by PGN (Risks Forum Moderator, with contribu- tions by others as indicated. Opinions are individual rather than organizational, with usual disclaimers implied. We ad- dress problems relating to software, hardware, people, and other circumstances relevant to computer systems. Ref- erences (R i j) to the online Risks Forum denote RISKS vol i number j. Cited RISKS items generally identify contributors and sources, together with URLs. Official RISKS archives are available at www.risks.org, with nice html formatting and search engine courtesy of Lindsay Mar- shall at Newcastle:; http://catless.ncl.ac.uk/Risks/i.j.html (also ftp://www.sri.com/risks). CACM Inside Risks: http://www.csl.sri.com/neumann/insiderisks.html

Engineering Multi-Agent Systems: State of Affairs and the Road Ahead

The continuous integration of software-intensive systems together with the ever-increasing computing power offer a breeding ground for intelligent agents and multi-agent systems (MAS) more than ever before. Over the past two decades, a wide variety of languages, models, techniques and methodologies have been proposed to engineer agents and MAS. Despite this substantial body of knowledge and expertise, the systematic engineering of large-scale and open MAS still poses many challenges. Researchers and engineers still face fundamental questions regarding theories, architectures, languages, processes, and platforms for designing, implementing, running, maintaining, and evolving MAS. This paper reports on the results of the 6th International Workshop on Engineering Multi-Agent Systems (EMAS 2018, 14th-15th of July, 2018, Stockholm, Sweden), where participants discussed the issues above focusing on the state of affairs and the road ahead for researchers and engineers in this area.

PROMPT - Master Courses for Professional SoftwareDevelopers

PROMPT [1] is an educational initiative in cooperation with several academic parties and leading industrial companies and organizations. Together, the parties offer advanced level courses in software engineering in a web-based format, tailored to fit professional engineers and software developers who need to be able to combine full-time work and studies. The long-term goal of PROMPT is to guarantee the supply of advanced software competencies and innovativeness in industry. The courses are free of charge within Europe, cover typically 7.5 university credits and are run over a whole semester, at a pace of 25% of full-time. All courses are developed in close cooperation with the Swedish industry and trade organizations.

Summary of the 5th International Workshop on Requirements Engineering and Testing (RET 2018)

The RET (Requirements Engineering and Testing) workshop series provides a meeting point for researchers and practitioners from the two separate elds of Requirements Engineering (RE) and Testing. The goal is to improve the connection and alignment of these two areas through an exchange of ideas, challenges, practices, experiences and results. The long term aim is to build a community and a body of knowledge within the intersection of RE and Testing, i.e. RET. The 5th workshop was held in colocation with ICSE 2018 in Gothenburg, Sweden. The workshop continued in the same interactive vein as the predecessors. We introduced a new format for the presentations in which the paper authors had the opportunity to interact extensively with the audience. Each author was supported by a member of the organization committee to prepare either an extensive demo, collect more data in form of a questionnaire or perform a hands-on tutorial. We named this new format \X-ray session". In order to create an RET knowledge base, this cross-cutting area elicits contributions from both RE and Testing, and from both researchers and practitioners. A range of papers were presented from short positions papers to full research papers that cover connections between the two elds. The workshop attracted 27 participants and the positive feedback on the new format encourages us to organize the workshop the next year again.

SESSION: WORKSHOP, CONFERENCES & WEBINARS

Evolution of Generic Programming in OOPLs

Generic Programming enables program constructs to be reused in a variety of situations. In programming languages, idea of generic programming is being opted through a variety of generic mechanisms. Generic mechanisms are either directly applied to pre-existing language constructs or it provides its own components for generic implementation. In this paper, we present such generic mechanisms in an organized way such that it appears as "one mechanism intensify other". Our aim is to exhibit generic evolution among mainstream object oriented programming languages (OOPLs). Hence, we analyze such approaches for better expressiveness and type-safety of generic programming as they evolved in OOPLs. This brief review article will help developers and researchers to precisely understand the generic mechanism in mainstream OOPLs.

Envisioning an Intelligent Collaborative Integrated Development Environment

Abstract Programming editors have evolved over the years. However, we still lack an environment that can allow on-the-fly collaboration between multiple programmers. We envision Incide, an integrated development environment that allows a synergistic collaboration environment by using program synthesis technology to combine partial solutions from multiple programmers attempting to solve the (same) problem into one concrete solution. This solution is then communicated to the editor of each programmer as patches along with personalization on syntactic elements like choice of programming language constructs and variable names. We believe that such editors will improve productivity on complex solutions by bringing a discipline into combining the intuition and intellect of multiple programmers.

Engineering Multi-Agent Systems: State of Affairs and the Road Ahead

The continuous integration of software-intensive systems together with the ever-increasing computing power offer a breeding ground for intelligent agents and multi-agent systems (MAS) more than ever before. Over the past two decades, a wide variety of languages, models, techniques and methodologies have been proposed to engineer agents and MAS. Despite this substantial body of knowledge and expertise, the systematic engineering of large-scale and open MAS still poses many challenges. Researchers and engineers still face fundamental questions regarding theories, architectures, languages, processes, and platforms for designing, implementing, running, maintaining, and evolving MAS. This paper reports on the results of the 6th International Workshop on Engineering Multi-Agent Systems (EMAS 2018, 14th-15th of July, 2018, Stockholm, Sweden), where participants discussed the issues above focusing on the state of affairs and the road ahead for researchers and engineers in this area.

PROMPT -- Master Courses for Professional Software Developers

PROMPT [1] is an educational initiative in cooperation with several academic parties and leading industrial companies and organizations. Together, the parties offer advanced level courses in software engineering in a web-based format, tailored to fit professional engineers and software developers who need to be able to combine full-time work and studies. The long-term goal of PROMPT is to guarantee the supply of advanced software competencies and innovativeness in industry. The courses are free of charge within Europe, cover typically 7.5 university credits and are run over a whole semester, at a pace of 25% of full-time. All courses are developed in close cooperation with the Swedish industry and trade organizations.

Summary of the 5th International Workshop on Requirements Engineering and Testing (RET 2018)

The RET (Requirements Engineering and Testing) workshop series provides a meeting point for researchers and practitioners from the two separate fields of Requirements Engineering (RE) and Testing. The goal is to improve the connection and alignment of these two areas through an exchange of ideas, challenges, practices, experiences and results. The long term aim is to build a community and a body of knowledge within the intersection of RE and Testing, i.e. RET. The 5th workshop was held in colocation with ICSE 2018 in Gothenburg, Sweden. The workshop continued in the same interactive vein as the predecessors. We introduced a new format for the presentations in which the paper authors had the opportunity to interact extensively with the audience. Each author was supported by a member of the organization committee to prepare either an extensive demo, collect more data in form of a questionnaire or perform a hands-on tutorial. We named this new format \X-ray session". In order to create an RET knowledge base, this crosscutting area elicits contributions from both RE and Testing, and from both researchers and practitioners. A range of papers were presented from short positions papers to full research papers that cover connections between the two fields. The workshop attracted 27 participants and the positive feedback on the new format encourages us to organize the workshop the next year again.

Microtasking Software Failure Resolution: Early Results

Open source software development enabled distributed teams of programmers to contribute to large software systems that became standards in the operation of government and business. Crowdsourcing went further by enabling contributions in the form of small and independent tasks. This allowed teams to scale from dozens to hundreds of people. While crowdsourcing established as industry practice in the areas of software testing, it is challenging for source code related tasks, e.g., software debugging. One of the reasons is that the complex dependencies in the source code can make many tasks difficult to partition and sequence, and later aggregate their outcomes. I am investigating these problems in the context of failure resolution tasks. A failure resolution task consists of inspecting the source code with the objective to identify and explain the root-cause of a software failure. My approach partitions code inspection into questions that are automatically instantiated from templates. I present here my research plan and the early results of experiments on the efficacy, efficiency, and scalability of my approach.

Assessing Programming Language Impact on Software Development Productivity Based on Mining OSS Repositories

This study is to investigate the impact of high-level, generalpurpose, programming languages on software development productivity and quality. In particular, a comparison is to be made between scripting languages and traditionally compiled, system programming ones to examine differences, if any. The data obtained for the research is from open source repositories gathered from Github. The results are going to be based on the analysis of possibly the largest open source dataset through examining a population of 15,000 projects and by including a sample of 4349 projects, where a main language can be identified. The investigation, so far, has revealed considerable differences in productivity between the two language groups.

Using Natural Language Processing and Graph Mining to Explore Inter- Related Requirements in Software Artefacts

Software development is prone to software faults due to the involvement of multiple stakeholders especially during the fuzzy phases (requirements and design). Software inspections are commonly used in industry to detect and fix problems in requirements and design artifacts thereby mitigating the fault propagation to later phases. The requirements documented in natural language (NL) are prone to contain faults because of different vocabularies among stakeholders. This research employs various NL processing with semantic analysis (SA) and mining solutions from graph theory to NL requirements to develop inter-related requirements (IRRs) that can help identify requirements that may need similar fixes. Additionally, our approach aims at aiding requirements' engineers with fault-prone regions both pre and post inspection. Pre-inspection, our approach using IRRs help removing redundant and extraneous faults within related requirements while post-inspection, it aids engineers analyse the impact of a change in one requirement on another related requirements. So, this research aims at developing a graph of inter-related requirements using natural language processing and semantic analysis approaches on a given requirements document that can be used to aid various decisions pre and post-inspections.

Model-in-the-Loop Testing for Cyber Physical Systems

Context: Nowadays, there is of high interest to use automated testing, not only because it optimizes the manual testing by reducing the needed time and cost, but also because manual testing is more likely to produce errors. Increasing the safety of software controlled complex systems, that use many distributed electronic controlled units, requires extensive testing. In model based testing, the test specification is derived from the system requirements and a model that describes selected functional and nonfunctional aspects of the system under test.