1 Introduction

The existing software-intensive sector is shifting toward an adaptable and ever-changing business framework based on the creation of value, addressing the demands of a severely competitive and swiftly evolving industrial environment. Developing successful software applications necessitates end-users participation and comprehension of client objectives and behavioral trends. Customer involvement empowers organizations to enhance their products' efficacy by comprehending their customers' needs and requirements [1, 2]. Software engineers often encounter the challenge of managing ambiguity and ever-changing requirements. Agile methodologies provide a solution to combat the challenge of managing ambiguity and ever-changing requirements encountered by software engineers.

Furthermore, the Integration of continuous delivery has enabled the establishment of frequent feedback loops, which have contributed to improving the efficiency of the process. To effectively engage in continuous software engineering (CSE), it is imperative to maintain high code quality through reviews, deploy software frequently, and prioritize user input. Despite these advancements, no software process metamodeling approach currently fully addresses the continuous nature of software engineering [3]. In order to enhance and improve functionality, the perpetual practice of software engineering heavily relies on the acquisition of explicit feedback from users. Incremental feature release can be facilitated more efficiently by consistently monitoring usage, which provides a valuable data source. This is particularly crucial in perpetual software engineering, where explicit feedback from users is vital for improving functionality. Nonetheless, the challenge of effectively correlating observed usage statistics with the changes brought about by a given feature increment, and with that, to a specific feature, proves to be a significant obstacle [4, 5].

Businesses frequently need to improve and adjust their software development procedures to meet security requirements. The complexity of the evaluation protocols presents a challenging environment for professionals to anticipate and assess the amount of effort necessary for compliance assessments [6]. In the field of software quality engineering and security engineering, risks are typically evaluated manually. However, this method is subjective, non-deterministic, error-prone, and time-consuming. As a result, many risks are not explicitly evaluated, which prevents the potential benefits of risk assessment from being fully realized. Nonetheless, in current data-intensive contexts, such as the open Internet environment, continuous project management, or the Internet of Things, data is continuously generated in online, system, or development environments. This data can be leveraged to automatically assess and mitigate software and security threats [7, 8]. For over a decade, the industry has predominantly utilized ongoing procedures emphasizing automated software development processes. Although this method is commonly used, software development is fundamentally a process focused on people, highly collaborative, and requires creativity. Although automated processes have been widely used in the software development cycle, it is important to note that software development is a highly collaborative process that requires creativity and human intervention [9,10,11]. Software quality presents new problems in programmer development on a regular basis, including characteristics of both software development and system usage that have a substantial influence on software systems' performance [12]. Agile software development approaches have formed the foundation for most software projects in today's world in their many forms. Practically every organization uses the technique. Despite their ubiquity, software implementation failure rates have increased [13]. To be competitive, systems that rely heavily on software must constantly develop their methods. We illustrate the transition process from traditional methodologies to continuous software deployment using a conceptual model called the “Stairway to Heaven” [14]. Larger software development companies require efficient methods for assessing product quality and identifying areas for improvement [15].

The days of developing projects with just a compiler are long gone. Software engineering has become significantly more complicated and diverse in recent years, including several stacks, languages, and frameworks [16]. Continuously releasing product or service increments, such as new features and upgrades, to consumers is becoming more common in developing software-intensive goods and services. Instead of relying on up-front business studies, product and service developers must constantly learn what customers desire through direct user feedback and monitoring of usage behavior [10, 17]. Customer feedback is crucial for software developers as it provides valuable insights into product effectiveness and user satisfaction [18]. This iterative approach helps identify and fix issues, enhances functionality, and improves user experience. This user-centered approach ensures software development aligns with the target market, fostering user loyalty.

2 Methodology

A comprehensive literature study is carried out to analyze the contributions in the domain of Continuous software. A systematic literature review adopts a thorough and rigorous strategy for identifying and evaluating papers relevant to a certain matter of importance [19]. When doing a thorough analysis of the available literature, a variety of criteria that have been put forward by researchers [20, 21] should be followed. The present research implements the aforementioned concepts. The initial stage of the systematic review involves the identification of the criteria necessary to conduct the research. After this requirements assessment, the formulation of research questions has been assumed. The keywords for these research questions were developed with the research questions, so that the search procedure for identifying relevant articles would be more productive. Using logical “AND” and “OR” operators, these terms are then linked to generate queries to solve each research problem.

3 Research protocol

For carrying out this systematic analysis, a research protocol is established, which is responsible for selecting appropriate studies relevant to the topic of interest. Figure 1 shows the graphical representation of this review protocol. The detailed procedure of protocol is given in subheadings.

Fig. 1
figure 1

Selection of appropriate studies from libraries

3.1 Research domain selection

The domain selection process holds significant importance when embarking upon implementing a systematic review. The purpose of the research domain is established upon a thorough analysis of previous studies that have been scrutinized to facilitate the research activity. Diverse domains are thoroughly assessed, and subsequently, one that is deemed appropriate is chosen for further evaluation. Researchers are responsible for selecting a domain of their preference from an extensive array of domains, such as software engineering, networking, and architecting, to conduct their assessment.

3.2 Analyzing research area

The first stage in conducting research study is choosing a specific topic. Selecting a research topic must be one’s personal or professional interests. According to experienced researchers, “a topic in which you are just genuinely interested in the start is likely to become a topic in which you have no interest and with which you will fail to create your best work [22].” Ideally, your study topic should be related to your professional and personal path and can contribute to achieving your professional goals. An in-depth assessment is conducted to find an appropriate research area to carry out research in that specific area to save effort and time. This step is mandatory to identify what researchers have done so far in that specific area.

3.3 Formulating research question

Studies from the previous ten years were reviewed to discover the problems related to continuous software development. Then research questions were formulated to address those domains and enable authors to accomplish the study's key objectives [23]. Table 1 presents the proposed research questions related to the continuous software engineering domain.

Table 1 Formulated research questions

3.4 Searching criteria

Following creating the research questions, the authors observed appropriate keywords for locating relevant resources for the proposed study. The following criteria are adopted for generating the search string. Search terms are retrieved from (i) main terms of formulated research questions, (ii) synonyms of main terms are pointed out, (iii) books, chapters, and publications were reviewed for making appropriate keywords, (iv) synonyms were linked by Boolean OR, (v) other terms (main terms) are concatenated with Boolean AND.

A query has been designed since a single term is inefficient for getting the best results. The keywords are merged using the logical operators “AND” and “OR” to get all relevant papers. The search query is as follows:

(“Continuous development” OR “continuous integration” OR “Continuous deployment”) AND (“software engineering” OR “Software development) AND (“tools” OR “Methods” OR “Approaches”) AND (“Impacts” OR “applications” OR “advantages”) AND (“Challenges” OR “Problems”) AND (“Phases” OR “stages”).

Searching with a single keyword may skip a relevant research article. To avoid this search query, formulation is necessary to get all relevant studies. Certain libraries that do not accept our formulated query syntax are manually searched with formulated keywords.

3.5 Online databases searching

To ensure consistency, a comprehensive assessment of the proposed study was conducted on six electronic repositories with the aim of collecting information from various scholarly contributions pertaining to the domain of continuous software engineering. The electronic repositories comprised of Science Direct, Hindawi, ACM, Wiley, Springer, and IEEE Xplore. The title, keywords, and abstracts of conference papers, journal articles, and book chapters were evaluated in order to execute the proposed inquiry. For engineering and computing research, selecting digital libraries like Science Direct, Hindawi, ACM, Wiley, Springer, and IEEE Xplore is a strategic option driven by a variety of crucial considerations. Specifically geared toward computing and engineering subjects, these libraries are well known for their wide-ranging range of scientific and technical literature. Because these platforms organize a wide variety of conference papers, journal articles, and book chapters pertinent to their field of study, researchers favor them. Additionally, the articles in these libraries are frequently subject to strict criteria of trustworthiness and quality, guaranteeing that scholars can rely on the accuracy of the data they access. Table 2 represents the number of articles in each library relevant to continuous software engineering. These studies are retrieved using search strings or manually by using keywords.

Table 2 Articles in each library

3.6 Selection of relevant article

For relevance, the entire texts of the selected articles were reviewed. Papers that do not meet specific criteria were excluded:

  1. 1.

    Research not written in the English language

  2. 2.

    Papers that did not include the phrases “Continuous” and “software engineering” or similar phrases in the title, introduction, or complete text and yet did not address the problems related to continuous software development.

  3. 3.

    Articles published before 2012.

  4. 4.

    Articles that highlight the continuous development but are not relevant to computer or software domain.

A total of 130 articles were retrieved after abstract and title-based selection. These articles are then thoroughly examined and screened to include the best and appropriate research studies and eliminate those that do not address the research question. All articles are reviewed library-wise and filtered out to answer any of the research questions. All libraries proceeded through the same screening procedure.

3.7 Quality of assessment

The assessment quality of selected studies was determined through a process of scoring or evaluation to determine their capacity to address predefined research inquiries. Corresponding concerns are addressed in Table 4. Each inquiry has two possible answers, namely 1 and 0. The overall score for each study is the sum of the answers to the respective questions. To establish the suggested study's validity, appropriate publications with a quality score of two or three were analyzed. These publications are capable of addressing at least two research inquiries. Based on the assessment quality, 66 articles were identified as being able to address at least two specified questions. Table 3 represents the scoring allotted to each article based on the answering research questions.

Table 3 Quality assessment of selected articles

The graphical figure of the quality of the assessment is presented. Appropriate studies according to the research aims are separated from other studies (Fig. 2).

Fig. 2
figure 2

The quality of the assessment figure

4 Results and discussion

The proposed research was carried out in order to address the specified research questions. The subsections reveal the intended research's results and discussions.

RQ1. What are the impacts of continuous integration in software development practices?

Continuous integration (CI) significantly improves software development by promoting regular code merges into a shared repository, enabling early error identification and resolution. It speeds up the development process, improves code quality through automated testing and review, and fosters collaboration between developers through simple tasks and transparent reviews. CI also provides fast feedback, builds confidence, simplifies deployment, and unifies security controls, leading to improved efficiency, collaboration, and reliability, ultimately enabling faster delivery of high-quality software. According to researchers and industry practitioners, performance testing must be included in agile development processes in a timely and efficient manner. On the other hand, existing approaches are fragmented and unintegrated, failing to account for the diverse capabilities of users producing polyglot distributed software and their requirement to automate performance practices as they are integrated throughout the lifecycle without slowing it down [52]. Table 4 represents the impact of continuous software practice.

Table 4 Impacts of continuous software development

RQ2. What are the different tools used for enhancing the software developmental process by utilizing continuous integration?

Continuous integration (CI) tools are crucial for enhancing software development processes by automating code integration, testing, and deployment tasks. Tools like Jenkins, CircleCI, GitLab, TeamCity, Bamboo, CruiseControl, and Buddy offer CI/CD capabilities, scalability, and compatibility with various technologies. These tools can enhance productivity and efficiency, potentially allowing for personalized implementation of tools and processes for software engineers. These tools can include e-learning platforms, online documentation, development environments, and collaboration platforms. Customization of individual development processes, techniques, and tools, considering their unique characteristics, has been shown to increase efficiency, according to a previous study [83]. The evolution of sophisticated tools and libraries has integrated into intricate toolchains, enabling multiple development stages and smooth migration. Advanced frameworks have been created to support distributed and component-based development, addressing the increasing complexity of software development and reducing time and cost. These frameworks have been designed to streamline the process [85].

Continuous software development is increasingly prevalent in software engineering, leading to the development of new toolchains to manage complexities. Containers are lightweight applications, offering advantages over virtual machines (VMs) in system resource utilization. Continuous integration (CI) is a process initiated automatically, including code creation, compilation, unit testing, and validation. Its high execution frequency ensures a quick feedback loop for engineers [74, 77, 86]. Table 5 lists various tools used for continuous software development. Table 5 shows the various tools used for carrying out continuous software development.

Table 5 Tools used for continuous development

RQ3. Discuss various challenges faced in adopting continuous integration for software development

Continuous integration (CI) in software development offers numerous benefits but also presents challenges. It requires adapting workflows, which may lead to resistance from the development team. CI can expose defects or bugs, requiring rigorous testing and hindering early progress. Setting up a CI environment is a technical challenge, with automated tests requiring significant time and resources. Coordination between teams can be complex due to time zones and communication barriers. Scaling CI for large projects can be challenging, and automated processes can introduce security vulnerabilities. Despite these challenges, CI offers significant benefits for software development, particularly in Lean, agile, and DevOps methodologies [48]. These challenges pertain to the construction and configuration of builds, system architecture, seamless Integration, comprehensive testing, timely release, and complex human and organizational resource management issues [29]. Table 6 represents various challenges faced by adopting continuous software practice to software development.

Table 6 Challenges in adopting continuous integration

RQ4. Which phases of software engineering are completed via continuous integration? Software system evolves via many life cycles, and throughout each iteration, there are certain periods of commencement, development, and climax for defining requirements. As a result, this framework distinguishes between the requirements that must be created at the beginning of an iteration, those that must be developed throughout an iteration, and those that must be refactored at the end of each iteration [48]. Even the development and progression procedures of software systems and communication infrastructures necessitate persistent observation, oversight, and refinement [76]. The basic principle of continuous software engineering is a well-designed and well-established engineering process that carefully outlines all developmental initiatives, assignments, and outcomes. Formalized models that are methodically altered from one action to the next contain the outcomes of every activity [76]. Continuous software engineering and DevOps go beyond agile software development and not just focus on incremental or scheduled releases. This approach is being advocated as a means to increase productivity, reduce the risk of failure, enhance visibility, feedback, and quality, and provide value more expeditiously by employing continuous delivery and deployment methodologies. Rather than focusing solely on incremental or scheduled releases, continuous software engineering, and DevOps extend beyond agile software development. This approach has been supported to increase productivity, reduce the risk of failure, enhance visibility, feedback, and quality, and provide value more expeditiously by employing continuous delivery and deployment methodologies [68, 90]. Table 7 discusses all the phases covered by the continuous software life cycle.

Table 7 Continuous software phases

5 Conclusion

With the rapid increase in technology, the software engineering discipline is also facing undeniable change. In comparison with other scientific sectors, much research is conducted within corporations to create new potential software solutions to enhance the business operation of organizations. The software industry is increasingly confronted with the necessity for rapid and continuous system deployment. Continuous software development strives to enhance application development by digitizing the entire software development process. CSE utilizes iterative developmental approaches to compete with a rapidly changing market. The creation of software-intensive products and services is increasingly characterized by the continuous release of product or service increments, such as new features and upgrades, to users. The four objectives of the provided SLR—the influence of continuous software engineering, the tools used to improve software processes, the difficulties organizations experience in implementing CSE and identifying many phases of software engineering encompassed by continuous conception are all highlighted. The research study will support scholars, innovators, researchers, and institutions working in the field of software engineering to create and employ optimal resources for improving software development procedures.