Dynamic software updating: a systematic mapping study

IET SoftwareVolume 14, Issue 5 p. 468-481 Review ArticleOpen Access Dynamic software updating: a systematic mapping study Babiker Hussien Ahmed, Babiker Hussien Ahmed orcid.org/0000-0003-3756-112X Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this authorSai Peck Lee, Corresponding Author Sai Peck Lee saipeck@um.edu.my Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this authorMoon Ting Su, Moon Ting Su Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this authorAbubakar Zakari, Abubakar Zakari orcid.org/0000-0001-6488-0666 Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this author Babiker Hussien Ahmed, Babiker Hussien Ahmed orcid.org/0000-0003-3756-112X Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this authorSai Peck Lee, Corresponding Author Sai Peck Lee saipeck@um.edu.my Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this authorMoon Ting Su, Moon Ting Su Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this authorAbubakar Zakari, Abubakar Zakari orcid.org/0000-0001-6488-0666 Department of Software Engineering, Faculty of Computer Science and Information Technology, University of Malaya, 50603 Kuala Lumpur, MalaysiaSearch for more papers by this author First published: 02 September 2020 https://doi.org/10.1049/iet-sen.2019.0201Citations: 3AboutSectionsPDF ToolsRequest permissionExport citationAdd to favoritesTrack citation ShareShare Give accessShare full text accessShare full-text accessPlease review our Terms and Conditions of Use and check box below to share full-text version of article.I have read and accept the Wiley Online Library Terms and Conditions of UseShareable LinkUse the link below to share a full-text version of this article with your friends and colleagues. Learn more.Copy URL Share a linkShare onFacebookTwitterLinkedInRedditWechat Abstract Dynamic software updating (DSU) is shifting gears to modify software systems without a halt. Even though extensive research has been conducted on DSU, it is necessary to synthesise and map the results of recent studies on DSU for prospective research highlights. This study aims to highlight the current state-of-the-art, to recognise trends, and to identify existing open issues in DSU. A systematic mapping study (SMS) was conducted with a set of six research questions. A total of 1066 papers published from 2005 to 2019 were recorded. After a filtering process, 112 primary studies were selected and inspected. This study highlights the current state-of-the-art of DSU including approaches, tools, models, and techniques. Also, this study outlines application domains, research type, and contributions type facets in DSU. In addition, this study demonstrates benchmarks, datasets, evaluation metrics, and existing open issues for future research in DSU. The results of this investigation can be used to highlight current state-of-the-art of DSU, to show trends of DSU, and to demonstrate existing open issues in DSU. 1 Introduction Dynamic software updating (DSU) plays an important role in the maintenance and evolution of software systems [1-3 ]. Generally, DSU is a process of modifying running software systems without a termination [3-7 ]. Currently, there are growing appeals for DSU to support the continuous availability of the deployed software systems [8, 9 ]. Over time, extensive literature has developed on DSU [1, 10-13 ]. In short, DSU has been discussed by a great number of authors for decades [14, 15 ]. Furthermore, recent evidence highlights that DSU is one of the top-most features desired by developers and users [16 ]. Despite this interest, no one as far as we know has investigated DSU employing a systematic mapping method. For this study, it was of interest to investigate DSU using a systematic mapping study (SMS). Previous studies [17-20 ] have emphasised that SMS is a secondary study that aims to outline a research domain, to identify current trends, and to provide lights for future research in a research domain [17, 20 ]. In this investigation, an SMS was conducted with a set of six research questions (RQs), a total of 1066 studies published from 2005 to 2019 were identified, after a filtering process, a total of 112 primary studies were selected and inspected. It is interesting to note that, the results of this study cast a new light on aspects of DSU research topics involved in the design and execution of DSU. In short, this paper has the following contributions: Highlight the current state-of-the-art of DSU including approaches, tools, models, and techniques. Outline application domains, research type facets, and contributions type facets in DSU. Demonstrate benchmarks, datasets, evaluation metrics, algorithms, programming languages, and existing open issues for future research in DSU. This paper is organised as follows. Section 2 highlighted related work and motivation. Section 3 describes the research method. Section 4 presents the results and discussion. Section 5 presents the principal findings. Section 6 discusses the threats to the validity of this study. Section 7 presents the concluding remarks and future work. 2 Related work and motivation This section presents the related work and justifies the current need for a systematic mapping study in dynamic software updating. 2.1 Related work In this section, it was of interest to highlight the studies that have been conducted to review DSU [1, 10-13 ] as follows: DSU is an active research area [10 ], but its use in the industry is lacking, this motivated Ilvonen et al. [10 ] to review SWEBOK (IEEE's Guide to the Software Engineering Body of Knowledge) and investigated (Software Engineering Education Knowledge reference curricula) to find out how these guides acknowledge DSU techniques. Ilvonen et al. [10 ] found that although DSU is not mentioned explicitly in the reviewed guides, the need is well motivated and many DSU concepts are implicitly supported [10 ]. Seifzadeh et al. [11 ] developed a framework to review DSU studies. Seifzadeh et al. [11 ] discussed DSU techniques and evaluation metrics. Also, Gregersen et al. [12 ] compared three DSU systems developed for Java and investigated state-of-the-art of DSU in Java using selected target programs as benchmarks and discussed the implications [12 ]. Mugarza et al. [13 ] presented an analysis of existing DSU techniques and focused on DSU for increasing safety, security, and availability of the Industrial Internet of Things (IIoT) systems. Moreover, Miedes and Muñoz-Escoí [1 ] reviewed a set of DSU studies in a technical report. The study in [1 ] was focused on DSU for software maintenance [1 ]. 2.2 Need for an SMS Although several studies have reviewed DSU [1, 10-13 ], our research group has found none of the SMS published in the area. Conspicuously, a direct search in the web search engines for (‘systematic mapping study’ OR ‘systematic literature review’) AND ‘dynamic software updating’ has shown that no study has tried to investigate DSU in a systematic review (SR). An SR is ‘a secondary study that reviews primary studies with the aim of synthesising evidence related to a specific research’ [21 ]. In general, there are several forms of SR [18, 21 ] as follows: Systematic literature review (SLR): uses a well-defined methodology to identify, analyse and interpret available evidence related to a specific RQ in a way that is unbiased and to a degree repeatable [18, 21, 22 ]. Systematic mapping study (SMS): is a broad review of primary studies in a specific research area to identify available evidence in the domain [18, 21 ]. Tertiary review: is a systematic review of systematic reviews [18, 21 ]. The majority of prior research has applied SMS to gather and aggregate current evidence in a research area [23 ]. Also, ‘A very broad topic’ is one of the reasons for appointing an SMS over an SLR [18, 21 ]. Following that, and the inherent broadness of DSU, we selected to conduct an SMS on DSU instead of SLR. Furthermore, this research provides an exciting opportunity to advance our knowledge of DSU using an SMS in the domain. 3 Research method In this study, the well-known SMS method for software engineering established by Petersen et al. [17, 19 ], Kitchenham and Charters [18 ], and Budgen et al. [24 ] was utilised to conduct this investigation. As shown in Fig. 1, this study was conducted in three phases (i.e Planning, Execution, and Reporting) [17, 19, 20 ]. The Planning and Execution phases are highlighted in the following sub-sections, and the Reporting Phase is presented in Section 4. Fig. 1Open in figure viewerPowerPoint Systematic mapping study process [17, 19, 20 ] 3.1 SMS planning phase Previous studies have recommended using an SMS planning protocol [19, 25 ] for conducting SMS. Therefore, our research group has employed an SMS planning protocol. In fact, the SMS planning protocol useful to: Organise how the selected studies to answer the RQs [19, 25 ]. Guide the research objective and mark out how it should be fulfilled [19, 25 ]. In this investigation, the SMS planning protocol includes: (i) the research scope, objective and questions; (ii) the structure of the search string; (iii) primary studies selection process; (iv) data extraction and management strategy; and (v) synthesis methods. 3.1.1 Research scope, objective and questions This study aims to explore current state-of-the-art, to recognise trends, and to identify existing open issues in DSU. Our RQs and objectives are presented in Table 1. Table 1. Research questions and objectives # Research question Objective RQ 1 What approaches and tools existing in dynamic software updating? To identify existing dynamic software updating approaches and tools. RQ 2 What techniques and models existing in dynamic software updating ? To recognise existing dynamic software updating techniques and models. RQ 3 What programming languages and algorithms employed in dynamic software updating? To identify programming languages and algorithms employed in dynamic software updating. RQ 4 Which application domains have dynamic software updating been applied? To recognise current dynamic software updating application domains. RQ 5 What target programs, evaluation metrics, datasets, and open issues existing in dynamic software updating ? To identify target programs, evaluation metrics, datasets and open issues existing in dynamic software updating. RQ 6 What research type facets and contribution type facets focused on dynamic software updating studies? To identify research type facets being focused on DSU studies and contribution type facets they provided. 3.1.2 Structure of the search string As has been previously reported in the literature, a search string is required to be defined in an SMS to fetch the studies from the research inventory databases [18 ]. To define a search string, some authors have recommended structuring the SMS RQs based on PICO (Population, Intervention, Comparison, and Outcome) criteria [18, 19 ]. Conspicuously, PICO criteria are useful to find out the search keywords [18, 19 ], to formulate the search query strings [18, 19 ], and to sustain the consistency of search along with various data sources [18, 19 ]. For this study, PICO criteria were used to define the search string in Fig. 2 as follows: Population: Published studies on software. Fig. 2Open in figure viewerPowerPoint Defined search string Intervention: Dynamic software updating. Comparison: Not applied. Outcome: Published studies on DSU. 3.1.3 Primary studies selection process For this research, Fig. 3 shows the utilised primary studies selection process [18-20, 26-28 ]. For the primary studies selection process, several studies suggest utilising Inclusion and Exclusion Criteria (IC, EC) [17, 19 ] to support the choice of primary studies [17, 19, 20 ] and to sustain the final choice of primary studies [17, 19, 20 ]. As a result, Table 2 demonstrates the IC, EC for the current investigation. Fig. 3Open in figure viewerPowerPoint Primary studies selection process [18-20, 26-28 ] Table 2. Inclusion and exclusion criteria Exclusion criteria EC 1 The study does not address any part of dynamic software updating contribution. EC 2 The study does not include presentation analysis of results. EC 3 The study is not related to dynamic software updating. EC 4 The primary study is not published from 2005 to 2019. EC 5 The study is not written in the English language Inclusion criteria IC 1 The primary study must propose theory/guideline/lessons learnt/ advice for dynamic software updating. IC 2 The primary study must address the use of approach/technique/ method/ algorithm/ methodology/ metric/model/ language/ strategy to enhance or support dynamic software updating. IC 3 The primary study must propose a tool/ framework/prototype/ architecture/ platform/ process to enhance or support dynamic software updating. As shown in Table 2, a study will be excluded if it meets one of the defined execution criteria. If it is not excluded, and it meets one of the defined inclusion criteria, it will be included in the analysis. 3.1.4 Data extraction and management strategy In this analysis, data collection and management are organised as follows: (i) Data collection method: A data extraction form is introduced and utilised for data collection. The data extraction form is designed based on the RQs. It includes the following: Approaches and tools for RQ 1: o Approach : it explains how DSU would be carried out. o Tool : is any tool (DSU system) that is used or proposed to be used for DSU. Techniques and models for RQ 2: o Model : is abstracted to specify DSU [29 ]. o Technique: is a way of carrying out a DSU task, especially the execution or performance of a DSU procedure. Programming languages and algorithms for RQ 3: o Programming languages: is any programming language utilised or proposed to utilise DSU. o Algorithm : is an algorithm used in DSU or proposed to be utilised for DSU. Application domains for RQ 3: is any field utilising or proposed to utilise DSU. Evaluation metrics, target programs, datasets, and Open issues for RQ 5: o Evaluation metrics: is a measure used to assess implementing DSU [1 ]. o Target program: is a benchmark program that used to implement and assess DSU [6 ]. o Dataset : is a benchmark that includes target programs used to evaluate DSU [30 ]. o Open issue: is existing open research gap or problem discussed in DSU. Research type facets and contribution type facets for RQ 6: o Research type facet: is general and independent of a specific research area [17, 19, 31 ]. Examples of research type facets categories in Table 3. Table 3. Research type facets [17 ] Type General description validation research ‘Techniques investigated are novel and have not yet been implemented in practice. Techniques used are for example experiments, i.e. work done in the lab’ [17 ]. evaluation research ‘Techniques are implemented in practice, and an evaluation of the technique is conducted. That means, it is shown how the technique is implemented in practice (solution implementation) and what are the consequences of the implementation in terms of benefits and drawbacks (implementation evaluation). This also includes identifying problems in the industry’ [17 ]. solution proposal ‘A solution to a problem is proposed, the solution can be either novel or a significant extension of an existing technique. The potential benefits and the applicability of the solution are shown by a small example or a good line of argumentation’ [17 ]. philosophical papers ‘These papers sketch a new way of looking at existing things by structuring the field in the form of taxonomy or conceptual framework’ [17 ]. opinion papers ‘These papers express the personal opinion of somebody whether a certain technique is good or bad, or how things should have been done. They do not rely on related work and research methodologies’ [17 ]. experience papers ‘Experience papers explain on what and how something has been done in practice. It has to be the personal experience of the author’ [17 ]. o Contribution type facet: is referred to as the type of intervention being studied [17, 19, 20, 32 ]. (ii) Data management strategy: A number of authors recommended using software tools such as spreadsheets and reference management to manage SMS data [18, 19, 28 ]. Therefore, spreadsheets programs and EndNote [33 ] software tool were nominated to manage the data of this study. 3.1.5 Synthesis methods For this study, quantitative methods were nominated to synthesise the data through the following: (i) Counting the number of studies per year in each answer. (ii) Utilising a bubble plot chart [34 ] to report the frequencies of research trends in RQs [17, 20 ]. 3.2 SMS execution phase In this phase, our planning protocol was implemented, a classification scheme was utilised, and the data was extracted and managed as follows. 3.2.1 Primary studies selection process In this phase, our primary studies selection process was executed and we obtained the following results: (i) Selection of the data sources: A number of authors have recommended that the use of IEEE and ACM and two indexing databases are sufficient for SMS [19, 26, 27 ]. Accordingly, five databases were selected including ACM, IEEE Explore, Wiley, Springer link and Science directs. (ii) Formulation of queries: For each of the selected databases, a search string was formulated using the defined string in Fig. 2. The search strings of this study are presented in Table 4. Table 4. Search strings and selected databases Database Search string ACM acmdlTitle:( + Dynamic + Software + update) AND (Dynamic Software update). IEEE Explore (‘Document Title’: Dynamic Software Update OR ‘Abstract’: Dynamic Software Update). Science Direct TITLE (Dynamic Software update) or ABSTRACT (Dynamic Software Update). Springer link ‘"Dynamic Software Update OR Dynamic Software Updating OR Dynamic Software Updates"‘. Wiley Dynamic Software Update in Article Titles OR Dynamic Software Update in Abstract between years 2005 and 2019. (iii) Searching for studies: A total of 1066 studies published from 2005 to 2019 were recorded. The details of the recorded studies per database are displayed in Table 5. Table 5. Output of the process of the primary studies selection Database Activity Searching for studies Comprehensive analysis Decrement of the counters of the redundant studies Final selection and divergences Pre –intermediate selection Intermediate selection Excluded Selected Excluded Selected Excluded Selected Excluded Selected ACM 253 146 107 65 42 3 39 5 34 IEEE explore 450 297 153 96 57 3 54 9 45 Springer link 94 45 49 18 31 0 31 13 18 Science direct 204 171 33 7 26 0 26 16 10 Wiley 65 39 26 13 13 0 13 8 5 Total 1066 698 368 199 169 6 163 51 112 The bold values are indicates the total number of studies. The ‘underlined 112’ indicates the total number of the selected primary studies. (iv) Saving the data of the retrieved studies: The obtained 1066 studies were downloaded and adapted in EndNote software [33 ]. The records of the retrieved studies contain the year, source, title, and the author's fields. (v) Comprehensive analysis of the retrieved studies: In this investigation, we implemented the following: Pre-intermediate selection: As demonstrated in Table 2, EC 4 and EC 5 were used to exclude studies. Also, we read the title, abstract, introduction, and conclusion of the retrieved studies under EC1, EC 2 and EC 3. Intermediate selection: For each study, we read the title, abstract, introduction, and conclusion, and then select or reject following IC 3, IC 2, IC1, EC 2 and EC 1. (vi) Decrement of the counters of the redundant studies: In this activity, we implemented the following: The redundant titles were hunted using the sort feature in EndNote software [33 ]. For studies with redundant titles, we read the abstract, the introduction, and finally, one version was kept. (vii) Final selection and divergences: In this study, we read a total of 163 studies. Finally, 112 primary studies were selected for an SMS. In summary, we present the results of the implemented primary studies selection process in Table 5. 3.2.2 Classification scheme For this study, a classification scheme was utilised to classify and analyse the selected primary studies [17 ]. Most early studies, as well as current work, focus on implementing the SMS classification scheme using Keywording [17 ]. Keywording is reading the abstract, introduction, and conclusion of a paper to search for keywords. Fig. 4 shows the SMS classification scheme [17 ]. Fig. 4Open in figure viewerPowerPoint Classification scheme for systematic mapping study [17 ] Previous research suggests classifying the selected primary studies in facets during classification scheme to understand them at an abstract level [17 ]. Therefore, for this study, as a result, a set of 13 main facets were produced for DSU including approaches, tools, techniques, models, programming languages, algorithms, application domains, open issues, evaluation metrics, datasets, target programs, research type facets, and contribution type facets. Furthermore, as demonstrated in Fig. 5, for this analysis, we classified DSU techniques into four facets including update points [35 ], state transformation [36, 37 ], runtime [38 ], and safety [39 ]. Fig. 5Open in figure viewerPowerPoint Classification of dynamic software updating techniques for a systematic mapping study 3.2.3 Extraction and management of the SMS data For this study, the data of this SMS were collected from the selected primary studies through the data extraction forms as demonstrated in Section 3.1.4. Also, prior research suggests reviewing the data to ensure the extraction of accurate data [19, 31 ]. Therefore, in this analysis, more than one researcher was involved in the data collection and checking. In this study, a total of 12 data tables were created in a Spreadsheet to organise and analyse the data. The data tables are presented in Table 6. Table 6. Data tables and research questions RQ# Data table Target data RQ 1 approaches approaches tools tools (DSU systems) RQ 2 techniques techniques models models RQ 3 algorithms algorithms programming languages programming languages RQ 4 applications application domains RQ 5 open issues open issues evaluation metrics evaluation metrics datasets datasets target programs target programs RQ 6 research type and contribution type research type facets and contribution type facets 4 Results and discussion This section presents the results and discusses the answers to the research questions. RQ 1: What approaches and tools existing in dynamic software updating? In this study, we have identified 23 DSU approaches. Based on the number of primary studies for each approach, we list the top six most cited DSU approaches in Table 7. Table 7. Top six most cited DSU approaches Approach Primary studies customised java virtual machine [4, 16, 35, 37, 40-57 ] dynamic reconfiguration [5, 40, 43, 56, 58-72 ] dynamic patch [73-82 ] hot-swapping [30, 64, 69, 72, 83-86 ] multi version programming [3, 48, 60, 62, 83, 87-90 ] customised class loaders [38, 45, 46, 48, 52, 63, 89, 91 ] Also, number of authors have highlighted additional DSU approaches including dynamic replacement [22, 54, 66, 75, 86, 92, 93 ], dynamic instrumentation [52, 59, 60, 74, 84, 94 ], dynamic linking [37, 39, 53, 75, 83, 85 ], lust-in-time compilation [30, 44, 55, 58, 76, 95 ], wrapper [4, 40, 42, 44, 52 ], dynamic aspect-oriented [35, 41, 50, 96, 97 ], extension of features [98, 99 ], dynamic adaptation [43, 59 ], rolling update [84 ], object transformer [49 ], data-driven programming [92 ], distributed DSU [38 ], dynamic core library update [56 ], using run time to support DSU [92 ], procedure-oriented [30 ], micro-language-based [100 ], and dynamic rebinding [5 ]. To demonstrate an existing trend of DSU approaches, Fig. 6 is a bubble plot chart of DSU approaches by the publication years. In Fig. 6, the Y -axis represents the top six most cited approaches, the X -axis represents the publication years, and the intersection bubble is the reference numbers of the primary studies. The most interesting result is that multi-version programming, dynamic patch, and dynamic reconfiguration are continuing the most popular approaches in the domain. Fig. 6Open in figure viewerPowerPoint Bubble plot chart of the top six most cited dynamic software updating approaches by year In this exploration, we have identified a list of 55 tools (DSU systems). Based on the number of primary studies for each tool, we list the top ten most cited tools in Table 8. Table 8. Top ten most cited tools (DSU system) Tool Primary studies POLUS [4, 6, 29, 39, 41-44, 47, 48, 51, 74, 76, 79, 83, 96, 97, 101-106 ] Ginseng [6, 29, 37, 39, 42, 44, 47, 48, 51, 74, 77, 94, 95, 101-103, 105-109 ] UpStare [6, 37, 42, 44, 51, 74, 76, 94, 103, 105, 106, 108 ] Jvolve [4, 35, 37, 41, 44, 46-49, 51-53 ] Kitsune [6, 22, 37, 51, 74, 76, 90, 94, 102, 105, 108 ] OPUS [6, 29, 51, 76, 101, 104-106 ] DCE VM [41, 42, 45, 48, 49, 53 ] DUSC [42-44, 93, 103, 110 ] Javeleon [22, 45, 46, 48, 52, 91 ] Rubah [38, 46, 49, 56, 59, 111 ] In addition, number of studies have mentioned additional tools including Jrebel [42, 46, 48, 53, 91 ], LUCOS [22, 51, 76, 79, 94 ], Javelus [35, 40, 42, 44 ], JavAdaptor [16, 38, 46, 52 ], DVM [4, 42, 44, 52 ], HotSwap [16, 42, 50, 57 ], DynaMOS [51, 76, 78, 105 ], Dlpop [37, 39, 106 ], Mx [83, 88, 90 ], EcoDSU [106, 108 ], PROTEOS [51, 95 ], Ekiden [6, 105 ], lusagent [59, 84 ], DYMOS [22, 47 ], EmbedDSU [106, 112 ], UpgradeJ [4, 47 ], Prose [41, 57 ], REPLUS [76, 113 ], FASA [65, 106 ], and Adapt.net [59, 68 ]. Moreover, several investigations have also cited extra tools including Jikes RVM [4 ], ADSU [87 ], Jooflux [41 ], AspectJ [41 ], BSDiff [75 ], FastSwap [52 ], Podus [29 ], CURE [73 ], FiGA [46 ], DAS [22 ], Ksplice [37 ], Lasagne [52 ], Iguana/J [43 ], DUT [52 ], ISLUS [51 ], and JAC [52 ]. Furthermore, some authors have also mentioned other tools including LyRT [38 ], strong Update [74 ], MQTT [84 ], MUC [88 ], Tedsuto [111 ], Multics [22 ], uFlow [92 ], changeboxes [56 ], and KUPC [82 ]. RQ 2: What techniques and models existing in dynamic software updating? On the question of DSU techniques, as classified in Fig. 5, we identified update points, runtime, safety, and state transformation techniques. In this part, we present the results of DSU techniques as follows: (i) Update points techniques In this study, we have identified existing types of update points and techniques to nominate update points in DSU as follows: A. Existing types of update points A group of studies have presented 11 different types of update points including checkpoints [44, 49, 51, 74, 87, 114, 115 ], synchronisation points [3, 36, 47, 116 ], version-consistent points [35, 115 ], breakpoints [76 ], single join-points [96 ], injection points [43 ], scheduling points [5 ], rescue points [76 ], mapping points [76 ], writing object points [73 ], and version-consistent points [115 ]. B. Current techniques to nominate DSU update points A number of studies have demonstrated 15 techniques to recommend update points including automatic definition [35, 73 ], insert checkpoints [51, 74 ], enumerate potential points [104, 107 ], expressing update points in the code [117 ], pre-compiled at fixed points [104 ], bring the software to an update point [83 ], define update points implicitly [111 ], define update points dynamically [44 ], using collector and point filters [73 ], locating injection points [43 ], automatic recommendation [35 ], using continuation points [6 ], session typing [118 ], restrictions on runtime [118 ], and observing the heap state [39 ]. (ii) Runtime techniques In this examination, we have identified an existing code segment, data segment, stack segment, heap segment, and multithread dynamic updating techniques as follows: A. Code segment A number of investigations have presented five types of code segment techniques including indirection [4, 46, 47, 53, 55, 74, 77, 94, 99, 106, 119 ], injection [46, 74, 79, 91, 103, 120 ], rewriting [47, 50, 53, 74, 106 ], bytecode manipulation [41, 43, 55 ], and trampolines [4, 106 ]. B. Data segment A group of studies have demonstrated eight different types of data segment techniques includ