DeepAI AI Chat
Log In Sign Up

SEAT: A Taxonomy to Characterize Automation in Software Engineering

by   Shipra Sharma, et al.

Reducing cost and time required to build high quality software is a major goal for software developers. Building tools and techniques that can help achieve such a goal is the chief aim for Automated Software Engineering (ASE) researchers. However, in order to be effective an ASE researcher or professional must understand the characteristics of both successful and not-so-successful ASE tools, and the constituent techniques employed by such ASE tools. In this paper we present such a characterization of ASE tools and major constituent techniques from different areas of computer science and engineering that have been employed by such ASE tools. To develop the characterization we carried out an extensive systematic literature review over about 1175 ASE research articles. One of our key goal was to identify useful relationships among ASE tools, their constituent techniques and the software development life cycle activities that these tools targeted. In terms of changes in popularity of constituent techniques with time we did not observe any clear trend. We organized the results of our characterization as a taxonomy called SEAT (Software Engineering Automation Taxonomy). A salient feature of SEAT is that it focuses on automation of activities from all phases of SDLC. Such a taxonomy, among other applications, shall enable synthesizing new automation tools for different SDLC activities. Recomposing existing systems to achieve better features will also be possible. Further, the taxonomy has been realized as a graph database using neo4j(an open source graph database), which can be queried using an SQL like language. The graph database allowed us to uncover hidden relationships by way of exhaustive search for connections and paths between different nodes (i.e. concepts). We demonstrate the efficacy of SEAT by discussing few practical use cases.


page 1

page 2

page 3

page 4


Building a Sustainable Structure for Research Software Engineering Activities

The profile of research software engineering has been greatly enhanced b...

Game Development Software Engineering Process Life Cycle: A Systematic Review

Software game is a kind of application that is used not only for enterta...

What helped, and what did not? An Evaluation of the Strategies to Improve Continuous Integration

Continuous integration (CI) is a widely used practice in modern software...

Software engineering and the SP theory of intelligence

This paper describes a novel approach to software engineering derived fr...

Cognition in Software Engineering: A Taxonomy and Survey of a Half-Century of Research

Cognition plays a fundamental role in most software engineering activiti...

Human Error Management in Requirements Engineering: Should We Fix the People, the Processes, or the Environment?

Context: Software development is human-centric and vulnerable to human e...

Data Engineering for Data Analytics: A Classification of the Issues, and Case Studies

Consider the situation where a data analyst wishes to carry out an analy...