2.2.1. Protective Behavior Changes Since COVID-19

This scale measured to what extent middle school students changed their behaviors since the emergence of the COVID-19 pandemic. Participants were asked if they had/were "decreased outdoor activities", "reduced frequency of social gatherings", "more careful about cleanliness", and "increased time at home". This measurement consisted of four items which were rated on a five-point Likert-type scale. Response options for all items ranged from 1 (strongly disagree) to 5 (strongly agree). All responses were summed with higher scores indicating greater behavioral changes since COVID-19. Cronbach's α of behavioral changes since COVID-19 was 0.70 in this study (*M* = 16.85; *SD* = 2.82; ranging from 4 to 20).


Meet the editor

Dr. Jean-Claude Assaf is a lecturer at the Faculty of Sciences and the Faculty of Engineering at Saint Joseph University, and Lebanese University. He has won several national and international awards including the Lebanese Industrial Research Achievements (LIRA) award. His expertise lies in mycology and microbiology, particularly mycotoxins detoxification, lactic acid bacteria, and biofilms. Dr. Assaf is the owner of

different industrial patents related to mycotoxins detoxification using novel adsorbents and machines. He has edited two books and edited, reviewed, and published numerous articles in international peer-reviewed journals.


Liliana Favre

*Universidad Nacional del Centro de la Provincia de Buenos Aires Comisión de Investigaciones Científicas de la Provincia de Buenos Aires Argentina*

#### **1. Introduction**

24 Will-be-set-by-IN-TECH

54 Reverse Engineering – Recent Advances and Applications

Miller, S. P., Tribble, A. C., Whalen, M. W. & Heimdahl, M. P. (2004). Proving the shalls early

Moore, M. M. (1996). Rule-based detection for reverse engineering user interfaces, *Proceedings of the Third Working Conference on Reverse Engineering, pages 42-8, Monterey, CA* . Müller, H. A., Jahnke, J. H., Smith, D. B., Storey, M.-A., Tilley, S. R. & Wong, K. (2000).

Myers, B. A. (1991). Separating application code from toolkits: Eliminating the spaghetti of

Paiva, A. C. R., Faria, J. C. P. & Mendes, P. M. C. (eds) (2007). *Reverse Engineered Formal Models*

SC4, I. S.-C. (1994). Draft International ISO DIS 9241-11 Standard, International Organization

Stamelos, I., Angelis, L., Oikonomou, A. & Bleris, G. L. (2002). Code quality analysis in open

Stoll, P., John, B. E., Bass, L. & Golden, E. (2008). Preparing usability supporting

Thimbleby, H. & Gow, J. (2008). Applying graph theory to interaction design, *EIS 2007*

Tidwell, J. (2005). *Designing Interfaces: Patterns for Effective Interaction Design*, O' Reilly Media,

Yoon, Y. S. & Yoon, W. C. (2007). Development of quantitative metrics to support

*Interaction Design and Usability*, Springer Berlin / Heidelberg, pp. 316–324. Young, R. M., Green, T. R. G. & Simon, T. (1989). Programmable user models for predictive

UI designer decision-making in the design process, *Human-Computer Interaction.*

evaluation of interface designs, *in* K. Bice & C. Lewis (eds), *CHI'89 Proceedings*, ACM

source software development, *Information Systems Journal* 12: 43–60.

Malardalen University, School of Innovation, Design and Engineering. Systa, T. (2001). Dynamic reverse engineering of Java software, *Technical report*, University of

*of Software Engineering*, ACM, New York, NY, USA, pp. 47–60.

Shan, S. Y. & et al. (2009). Fast centrality approximation in modular networks.

Thomas, J. M. (1976). A complexity measure, *Intern. J. Syst. Sci.* 2(4): 308.

Nielsen, J. (1993). *Usability Engineering*, Academic Press, San Diego, CA.

call-backs, *School of Computer Science* .

*Systems*. Berlin, Germany.

for Standardization.

Tampere, Finland.

Press, NY, pp. 15–19.

pp. 501–519.

Inc.

*and Engineering* .

validation of requirements through formal methods, *Department of Computer Science*

Reverse engineering: a roadmap, *ICSE '00: Proceedings of the Conference on The Future*

*for GUI Testing, 10th International Workshop on Formal Methods for Industrial Critical*

architectural patterns for industrial use. Computer science, Datavetenskap,

Nowadays, almost companies are facing the problematic of having to modernize or replace their legacy software systems. These old systems have involved the investment of money, time and other resources through the ages. Many of them are still business-critical and there is a high risk in replacing them. Therefore, reverse engineering is one of the major challenges for software engineering today.

The most known definition of reverse engineering was given by Chikofsky and Cross (1990): "the process of analyzing a subject system to (i) identify the system's components and their interrelationships and (ii) create representations of the system in another form or at a higher-level of abstraction". Reverse engineering is the process of discovering and understanding software artifacts or systems with the objective of extracting information and providing high-level views of them that can be later on manipulated or re-implemented. That is to say, it is the processes of examination, not a process of change such as forward engineering and reengineering. Forward engineering is the traditional process of moving from high-level abstractions and implementation-independent designs to the physical implementation of a system. On the other hand, software reengineering includes a reverse engineering phase in which abstractions of the software artifacts to be reengineered are built, and a forward engineering phase that moves from abstractions to implementations (Sommerville, 2004) (Canfora &Di Penta, 2007).

Reverse Engineering is also related with software evolution and maintenance. Software evolution is the process of initial development of a software artifact, followed by its maintenance. The ANSI/IEEE standard 729-1983 (Ansi/IEEE, 1984) defines software maintenance "as the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a changed environment". Reverse engineering techniques can be used as a mean to design software systems by evolving existing ones based on new requirements or technologies. It can start from any level of abstraction or at any stage of the life cycle.

Reverse engineering is hardly associated with modernization of legacy systems that include changes not only in software but in hardware, business processes and organizational strategies and politics. Changes are motivated for multiple reasons, for instance the constantly changing IT technology and the constantly changing business world.

MDA-Based Reverse Engineering 57

The initial diffusion of MDA was focused on its relation with UML as modeling language. However, there are UML users who do not use MDA, and MDA users who use other modeling languages such as some DSL (Domain Specific Language). The essence of MDA is the meta-metamodel MOF (Meta Object Facility) that allows different kinds of artifacts from multiple vendors to be used together in a same project (MOF, 2006). The MOF 2.0 Query, View, Transformation (QVT) metamodel is the standard for expressing transformations

The success of MDA-based reverse engineering depends on the existence of CASE (Computer Aided Software Engineering) tools that make a significant impact on the process automation. Commercial MDA tools have recently begun to emerge. In general, pre-existing UML tools have been extended to support MDA. The current techniques available in these tools provide forward engineering and limited facilities for reverse engineering (CASE MDA, 2011). The Eclipse Modeling Framework (EMF) (Eclipse, 2011) was created for facilitating system modeling and the automatic generation of Java code and several tools aligned with MDA are been developed. Modisco is an official Eclipse project dedicated to Model Driven Reverse Engineering (MDRE) from IT legacy systems and supports reverse

Validation, verification and consistency are crucial activities in the modernization of legacy systems that are critical to safety, security and economic profits. One of the important features for a rigorous development is the combination of tests and proofs. When artifacts at different levels of abstraction are available, a continuous consistency check between them could help to reduce development mistakes, for example checking whether the code is

The progress in the last decade in scalability and incremental verification of basic formal methods could be used as a complement of static and dynamic analysis with tests, assertions and partial formal specification. In this light, this chapter describes MDA reverse engineering of object-oriented code that is based on the integration of traditional compiler techniques such as static and dynamic analysis, metamodeling techniques based on MDA standards and, partial formal specification. We propose to exploit the source code as the most reliable description of both, the behavior of the software and the organization and its business rules. Different principles of reverse engineering are covered, with special emphasis on consistency, testing and verification. We propose a formal metamodeling technique to control the evolution of metamodels that are the essence to achieve interoperability between different software artifacts involved in reverse engineering processes. Rather than requiring that users of transformation tools manipulate formal specification, we want to provide formal semantic to graphical metamodeling notations and develop rigorous tools that permit users to directly manipulate metamodels they have created. As an example, we analyze the reverse engineering of Java code however the bases

The following sections include background on MDA and Case tools, foundations of innovative processes based on formal specification and, challenges and strategic directions

engineering of UML class diagrams (Modisco, 2011).

**1.2 Outline of the chapter**

consistent with the design or is in compliance with assertions.

of our approach can be easily applied to other object-oriented languages.

that can be adopted in the field of MDA reverse engineering.

(QVT, 2008).

Large number of software systems have been developed and successfully used. These systems resume today key knowledge acquired over the life of the underlying organization; however, many of them have been written for technology which is expensive to maintain and which may not be aligned with current organizational politics.

Over the past two decades, reverse engineering techniques focused mainly on recovering high-level architectures or diagrams from procedural code to face up to problems such as comprehending data structures or databases or the Y2K problem. By the year 2000, many different kinds of slicing techniques were developed and several studies were carried out to compare them.

Over time, a growing demand of object-oriented reengineering appeared on the stage. New approaches were developed to identify objects into legacy code (e.g. legacy code in COBOL) and translate this code into an object-oriented language. Object-oriented programs are essentially dynamic and present particular problems linked to polymorphism, late binding, abstract classes and dynamically typed languages. For example, some object-oriented languages introduce concepts such as reflection and the possibility of loading dynamically classes; although these mechanisms are powerful, they affect the effectiveness of reverse engineering techniques. During the time of object-oriented programming, the focus of software analysis moved from static analysis to dynamic analysis, more precisely static analysis was complemented with dynamic analysis (Fanta & Rajlich, 1998) (Systa, 2000).

When the Unified Modeling Language (UML) comes into the world, a new problem was how to extract higher-level views of the system expressed by different kind of UML diagrams (UML, 2010a) (UML, 2010b). Relevant work for extracting UML diagrams (e.g. class diagram, state diagram, sequence diagram, object diagram, activity diagram and package diagram) from source code was developed (Tonella & Potrich, 2005).

#### **1.1 Reverse engineering today**

To date there are billions upon billions of lines of legacy code in existence, which must be maintained with a high cost. Instead of building from scratch, software industry has realized the advantages of modernizing existing systems. As the demands for modernized legacy systems rise, so does the need for frameworks for integrating or transforming existing systems. The Object Management Group (OMG) has adopted the Model Driven Architecture (MDA) which is an evolving conceptual architecture that aligns with this demand (OMG, 2011) (MDA, 2005).

MDA raises the level of reasoning to a more abstract level that places change and evolution in the center of software development process. The original inspiration around the definition of MDA had to do with the middleware integration problem in internet. Beyond interoperability reasons, there are other good benefits to use MDA such as to improve the productivity, process quality and maintenance costs.

The outstanding ideas behind MDA are separating the specification of the system functionality from its implementation on specific platforms, managing the software evolution from abstract models to implementations increasing the degree of automation and achieving interoperability with multiple platforms, programming languages and formal languages (MDA, 2005).

56 Reverse Engineering – Recent Advances and Applications

Large number of software systems have been developed and successfully used. These systems resume today key knowledge acquired over the life of the underlying organization; however, many of them have been written for technology which is expensive to maintain

Over the past two decades, reverse engineering techniques focused mainly on recovering high-level architectures or diagrams from procedural code to face up to problems such as comprehending data structures or databases or the Y2K problem. By the year 2000, many different kinds of slicing techniques were developed and several studies were carried out to

Over time, a growing demand of object-oriented reengineering appeared on the stage. New approaches were developed to identify objects into legacy code (e.g. legacy code in COBOL) and translate this code into an object-oriented language. Object-oriented programs are essentially dynamic and present particular problems linked to polymorphism, late binding, abstract classes and dynamically typed languages. For example, some object-oriented languages introduce concepts such as reflection and the possibility of loading dynamically classes; although these mechanisms are powerful, they affect the effectiveness of reverse engineering techniques. During the time of object-oriented programming, the focus of software analysis moved from static analysis to dynamic analysis, more precisely static analysis was complemented with dynamic analysis (Fanta & Rajlich, 1998) (Systa, 2000).

When the Unified Modeling Language (UML) comes into the world, a new problem was how to extract higher-level views of the system expressed by different kind of UML diagrams (UML, 2010a) (UML, 2010b). Relevant work for extracting UML diagrams (e.g. class diagram, state diagram, sequence diagram, object diagram, activity diagram and

To date there are billions upon billions of lines of legacy code in existence, which must be maintained with a high cost. Instead of building from scratch, software industry has realized the advantages of modernizing existing systems. As the demands for modernized legacy systems rise, so does the need for frameworks for integrating or transforming existing systems. The Object Management Group (OMG) has adopted the Model Driven Architecture (MDA) which is an evolving conceptual architecture that aligns with this

MDA raises the level of reasoning to a more abstract level that places change and evolution in the center of software development process. The original inspiration around the definition of MDA had to do with the middleware integration problem in internet. Beyond interoperability reasons, there are other good benefits to use MDA such as to improve the

The outstanding ideas behind MDA are separating the specification of the system functionality from its implementation on specific platforms, managing the software evolution from abstract models to implementations increasing the degree of automation and achieving interoperability with multiple platforms, programming languages and formal

package diagram) from source code was developed (Tonella & Potrich, 2005).

and which may not be aligned with current organizational politics.

compare them.

**1.1 Reverse engineering today**

demand (OMG, 2011) (MDA, 2005).

languages (MDA, 2005).

productivity, process quality and maintenance costs.

The initial diffusion of MDA was focused on its relation with UML as modeling language. However, there are UML users who do not use MDA, and MDA users who use other modeling languages such as some DSL (Domain Specific Language). The essence of MDA is the meta-metamodel MOF (Meta Object Facility) that allows different kinds of artifacts from multiple vendors to be used together in a same project (MOF, 2006). The MOF 2.0 Query, View, Transformation (QVT) metamodel is the standard for expressing transformations (QVT, 2008).

The success of MDA-based reverse engineering depends on the existence of CASE (Computer Aided Software Engineering) tools that make a significant impact on the process automation. Commercial MDA tools have recently begun to emerge. In general, pre-existing UML tools have been extended to support MDA. The current techniques available in these tools provide forward engineering and limited facilities for reverse engineering (CASE MDA, 2011). The Eclipse Modeling Framework (EMF) (Eclipse, 2011) was created for facilitating system modeling and the automatic generation of Java code and several tools aligned with MDA are been developed. Modisco is an official Eclipse project dedicated to Model Driven Reverse Engineering (MDRE) from IT legacy systems and supports reverse engineering of UML class diagrams (Modisco, 2011).

Validation, verification and consistency are crucial activities in the modernization of legacy systems that are critical to safety, security and economic profits. One of the important features for a rigorous development is the combination of tests and proofs. When artifacts at different levels of abstraction are available, a continuous consistency check between them could help to reduce development mistakes, for example checking whether the code is consistent with the design or is in compliance with assertions.

#### **1.2 Outline of the chapter**

The progress in the last decade in scalability and incremental verification of basic formal methods could be used as a complement of static and dynamic analysis with tests, assertions and partial formal specification. In this light, this chapter describes MDA reverse engineering of object-oriented code that is based on the integration of traditional compiler techniques such as static and dynamic analysis, metamodeling techniques based on MDA standards and, partial formal specification. We propose to exploit the source code as the most reliable description of both, the behavior of the software and the organization and its business rules. Different principles of reverse engineering are covered, with special emphasis on consistency, testing and verification. We propose a formal metamodeling technique to control the evolution of metamodels that are the essence to achieve interoperability between different software artifacts involved in reverse engineering processes. Rather than requiring that users of transformation tools manipulate formal specification, we want to provide formal semantic to graphical metamodeling notations and develop rigorous tools that permit users to directly manipulate metamodels they have created. As an example, we analyze the reverse engineering of Java code however the bases of our approach can be easily applied to other object-oriented languages.

The following sections include background on MDA and Case tools, foundations of innovative processes based on formal specification and, challenges and strategic directions that can be adopted in the field of MDA reverse engineering.

MDA-Based Reverse Engineering 59

migration. Architecture Driven Modernization (ADM) is an OMG initiative related to extending the modeling approach to the existing software systems and to the concept of reverse engineering (ADM, 2010). One of ADM standards is Knowledge Discovery Metamodel (KDM) to facilitate the exchange of existing systems meta-data for various modernization tools (KDM, 2011). The following section presents the concepts of model,

A model is a simplified view of a (part of) system and its environments. Models are expressed in a well-defined modeling language. They are centered in a set of diagrams and

For instance, a model could be a set of UML diagrams, OCL specifications and text. MDA distinguishes different kinds of models which go from abstract models that specify the system functionality to platform-dependent and concrete models linked to specific platforms, technologies and implementations. MDA distinguishes at least the following

A CIM describes a system from the computation independent viewpoint that focuses on the environment of and the requirements for the system. It is independent of how the system is implemented. In general, it is called domain model and may be expressed using business models. The CIM helps to bridge the gap between the experts about the domain and the software engineer. A CIM could consist of UML models and other models of requirements. In the context of MDA, a platform "is a set of subsystems and technologies that provides a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented". (MDA, 2005). An application refers to a functionality being developed. A system can be described in terms of one or more applications supported by one or more platforms. MDA is based on platform models

A PIM is a view of the system that focuses on the operation of a system from the platform independent viewpoint. Analysis and logical models are typically independent of

A PIM is defined as a set of components and functionalities, which are defined independently of any specific platforms, and which can be realized in platform specific models. A PIM can be viewed as a system model for a technology-neutral virtual machine that includes parts and services defined independently of any specific platform. It can be viewed as an abstraction of a system that can be realized by different platform-specific ways

textual notations that allow specifying, visualizing and documenting systems.

expressed in UML, OCL, and stored in a repository aligned with MOF.

implementation and specific platforms and can be considered PIMs.

on which the virtual machine can be implemented.

metamodel and transformation in more detail.

 Computation Independent Model (CIM) Platform Independent Model (PIM) Platform Specific Model (PSM) Implementation Specific Model (ISM)

**2.1 Basic MDA concepts**

**2.1.1 Models**

ones:


**5. Conclusions**

Clinical response to CRT is associated with an improvement of LA function, reflecting cavity reverse remodeling. These changes are related to their ventricular counterparts, thus supporting the importance of assessing LA function in patients treated by CRT for heart failure. Future studies should focus on concordant changes in LA and LV function that contribute to clinical improvement of patients receiving CRT for heart failure.

**Supplementary Materials:** The following are available online at http://www.mdpi.com/2077-0383/9/2/298/s1, Figure S1: Flow chart of study section, Figure S2: Comparison of baseline LVEDV, LVESV, LVEDd and EF in group of patients with CRT responders vs. CRT non responders, Figure S3: Comparison of baseline QRS duration and LA dimension in group of patients with CRT responders vs. CRT non responders, Figure S4: Weighted summary correlation between LA strain and LA EF, Figure S5: Relationship between LA strain change and (a) male gender; (b) age, Figure S6: Summary of QUADAS-2 Assessment of Selected Studies, Table S1: Summary of quality assessment analysis (Quality Assessment of Diagnostic Accuracy Studies-QUADAS 2), Table S2: Echocardiographic characteristics of LA functional measurements, Echocardiographic characteristics of LA functional measurements, Table S3: Summary of QUADAS-2 Assessment of Selected Studies.

**Author Contributions:** I.B. and M.Y.H., designed and drafted the article; I.B. and G.B. performed the literature search, study selection and data extraction. I.B. and M.Y.H., analyzed and interpreted the data; M.Y.H., G.B. and P.L. critically revised the article. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research received no external funding.

**Conflicts of Interest:** The authors declare no conflict of interest.


**4.7 Other disease conditions**

A randomized factorial clinical trial from 11 centers in the US involving 3640 patients with age-related macular degeneration (AMD) and vision loss due to cataract was carried out over a follow-up period of 6.3 years [35]. The participants received antioxidants including vitamin C at a dose of 500 mg/day. The results showed no significant effect of the antioxidants on both development and progression of the diseases. However, there was no adverse effect recorded. In addition, the doses used were lower as compared to other trials. For example, an inverse relationship was found between the risk of cataract development and vitamin C intake [71, 72], with a decrease in odds at dosages greater than 102 mg/day [73].

In rare cases, some studies used very high doses of vitamin C. For example, in a prospective cohort study among 71 patients with confirmed acute and chronic allergic diseases [74], 7.5 g of vitamin C infusion (2–3 times per week) was given to the participants over a mean period of 3.2 weeks (acute) or 11.9 weeks (chronic). At the end of the treatment, there was a significant reduction in both allergy-specific and non-specific symptoms. The use of such very high doses of vitamin C was due to its well-known wide safety margin—continuous usage of vitamin C because of oxidative stress and the need to restore the already depleted pool in the patients. A review by Carr and McCall [75] revealed that high doses of vitamin C had also been used in the management of acute and chronic pain syndromes such as cancer and post-herpetic neuralgia with positive outcomes.


3.4.1. Keywords

The keywords show the essential topics of an article (Figure 4). From 502 keywords, the words with at least 10 mentions were historical ecology (32 mentions), Amazon (27 mentions), forest (24 mentions), archaeology (20 mentions), landscape (19 mentions), environmental (15 mentions), indigenous (15 mentions), conservation (14 mentions), dark-earth (12 mentions), Amazonian (11 mentions), Brazil (11 mentions), management (10 mentions), and traditional (10 mentions). As Historical Ecology works with the relationship between people and the environment, numerous keywords refer to ethnosciences such as ethnoarchaeology [105], ethnobiology [106], ethnobotany [107], ethnoecology [84], ethnomusicology [15], ethnoprimatology [71], and ethnotaxonomy [84]. The suffix anthro also reveals this relationship as in Anthropocene [97], anthropogenic forests [108], anthrosols [109], anthropogenic landscapes [110], and ecological anthropology [111]. Other examples of this people-environment relationship are biocultural diversity [87], biopolitics [94], cultural ecology [111], domesticated forest [109], domesticated landscape [112], environmental history [113], environmental management [114], environmental racism [68], human ecology [115], and local ecological knowledge [116]. There are also works about indigenous peoples and traditional populations, for instance, the Ka'apor [15,117], the Guajá [118], the Guarani [114], the Nadahup-Arawak-Tukano [119], the Marajoara [120,121], indigenous groups of the Middle Purus [122]; *quilombolas* [77,94,123,124], *beiradeiros* [125], and *caiçaras* [126] have also been included. There are also mentions to immigrant groups such as the Japanese [124] and the German [127].

**Figure 4.** Most found keywords in the systematic mapping.

*Quilombolas* are traditional Afro-descendant Brazilian people, formed by ex-enslaved people, enslaved who fled from captivity, and the ones that were born free. Their name derives from the places where they sought refuge, the *quilombos*. This ethnic group developed characteristic relationships with the environment surrounding them, amalgamating African knowledge with indigenous practices and some cultural traits from the Europeans.

*Beiradeiros* (also translated as forest peasants) or *ribeirinhos*, are considered a traditional group for the way they relate to the abundant rivers in the Amazon basin. With substantial indigenous influence, it also comprises European and African traits. The name given to those groups reflects how they live: at the river margins, relying on the seasonal oscillation of river water levels to obtain food through fishing, hunting, and short-cycle agriculture amongst the forest.

*Caiçaras* are groups that make up the traditional Brazilian populations, formed by the syncretism between indigenous people, European descendants, and Africans (on a smaller scale). This ethnic group can be characterized by populations who remained isolated on the Atlantic Forest coast for many years, developing artisanal fishing and other unique relations with nature.

The keywords highlight the importance of the dark-earth studies in the Amazon [28,90,105,108,109,112,128–132] for Historical Ecology research in Brazil. The field of archaeology stands out. Some other interesting topics that appear only a few times in the keywords are: African influence [101,133], defaunation [134], fire [81,90], gender [127], geoglyphs [135], mining pollution [80], shamanism [122], among others.


Guang-yun Lai1 and Ming-yu Li2

*1Department of Restorative Dentistry and Periodontology, Ludwig-Maximilians-University, Munich, 2Shanghai Key Laboratory of Stomatology, Shanghai Research Institute of Stomatology, Ninth People's Hospital, Medical College, Shanghai Jiao Tong University, Shanghai, 1Germany 2P.R. China*


**8. Conclusion**

Other studies, including by Bagirov et al. [40] predicted monthly rainfall for 8 sites in Victoria with 5 input meteorological variables, using data over the period 1889–2014. Montazerolghaem et al. [41] made monthly rainfall forecasts from 136 weather stations in south-eastern Australia in the states of Victoria, NSW, South Australia and southern Queensland with 1 month lead time. Using large scale climate indices, He et al. [42] made forecasts of monthly rainfall at 255 stations across Australia with training data between 1959 and 1889 test data between 1999 and

ANNs have been applied to rainfall forecasting in other parts of the world [25, 26, 43], with **Table 6** showing a survey of 36 articles published between 2014 and 2017 where ANNs have been used to forecast monthly or seasonal rainfall. The majority of these investigations were

ANNs have also been applied to rainfall forecasting at both shorter forecast periods, such as hourly [44] and daily [45] as well as longer forecast periods including annual [46]. ANNs have also been used to forecasting other climatic and meteorological variables including temperatures [47–50] and wind speed [51, 52]. Other machine learning methods have also been applied to rainfall forecasting; including support vector machines (SVM) [53] and adaptive

The survey results detailed in **Table 6** indicate that there have been very few studies of ANNs and their application to rainfall forecasting in North America and Europe. These are regions that are likely to have the longest rainfall and temperature series and therefore are potentially

**Country Region Forecast period Reference**

Australia Queensland and Western Australia Monthly [20] Australia Queensland Monthly [21] Australia Victoria Monthly [40] Australia Bowen Basin, Queensland Monthly [18] Australia Western Australia Monthly [19] Australia south-eastern and eastern Australia Monthly [41] Australia Miles Murray Darling Basin, Monthly [14] Australia Brisbane River catchment, Queensland Monthly [15] Australia Continental Australia Monthly [42] Australia Bowen Basin, Queensland Monthly [16] Australia Queensland Monthly [13]

China Aksu-Tarim River basin Seasonal [57] China Liaoyuan city Monthly [58] China Monthly [59]

2008 with large-scale climate indices as inputs.

neuro-fuzzy inference systems (ANFIS) [54–56].

ideally suited to such studies.

**AUSTRALIA**

**ASIA**

from Asia, particularly India and China.

48 Engineering and Mathematical Topics in Rainfall

While general circulation models are used by meteorological agencies around the world for rainfall forecasting, they do not generally perform well at forecasting medium-term rainfall, despite substantial efforts to enhance performance over many years [36, 81–83]. These are the same models used by the Intergovernmental Panel on Climate Change (IPCC) to forecast climate change over decades. Though recent studies suggest ANNs have considerable application here, including to evaluate natural versus climate change over millennia, and also to better understand equilibrium climate sensitivity [84].

While machine learning is now a well-established discipline, and artificial neural networks a well understood subcomponent, this technology is only beginning to be applied to rainfall forecasting, so far with most of this effort concentrated in China, India and Australia as shown in **Table 6**. The technology is likely to have application to many more regions, particularly North America and Europe where longer time series of rainfall and temperature is likely to exist.

[6] Kirono DGC, Chiew FHS, Kent DM. Identification of best predictors for forecasting seasonal rainfall and runoff in Australia. Hydrological Processes. 2010;**24**:1237-1247

Forecasting of Medium-term Rainfall Using Artificial Neural Networks: Case Studies…

http://dx.doi.org/10.5772/intechopen.72619

51

[7] Singh P, Borah B. Indian summer monsoon rainfall prediction using artificial neural network. Stochastic Environmental Research and Risk Assessment. 2013;**27**:1585-1599 [8] van den Honert RC, McAneney J. The 2011 Brisbane floods: Causes, impacts and impli-

[9] Queensland Flood Commission of Enquiry, Final Report 2012. http://www.floodcommission.qld.gov.au/\_\_data/assets/pdf\_file/0007/11698/QFCI-Final-Report-March-2012.pdf

[10] Maurice Blackburn Lawyers. Queensland Floods Class Action. https://www.maurice-

[11] Abbot J, Marohasy J. Application of artificial neural networks to rainfall forecasting in Queensland, Australia. Advances in Atmospheric Sciences. 2012;**29**(4):717-730

[12] Abbot J, Marohasy J. The potential benefits of using artificial intelligence for monthly rainfall forecasting for the Bowen Basin, Queensland, Australia. Water Resources Management VII. WIT Transactions on Ecology and the Environment. 2013;**171**:287-297

[13] Abbot J, Marohasy J. Input selection and optimisation for monthly rainfall forecasting in Queensland, Australia, using artificial neural networks. Atmospheric Research.

[14] Abbot J, Marohasy J. Forecasting of monthly rainfall in the Murray Darling Basin, Australia: Miles as a case study. WIT Transactions on Ecology and the Environment.

[15] Abbot J, Marohasy J. Improving monthly rainfall forecasts using artificial neural networks and single-month optimisation: A case study of the Brisbane catchment, Queensland,

[16] Abbot J, Marohasy J. Using artificial intelligence to forecast monthly rainfall under present and future climates for the Bowen Basin, Queensland, Australia. International

[17] Abbot J, Marohasy J. Using lagged and forecast climate indices with artificial intelligence to predict monthly rainfall in the Brisbane Catchment, Queensland, Australia.

International Journal of Sustainable Development and Planning. 2015;**10**(1):29-41 [18] Abbot J, Marohasy J. Forecasting monthly rainfall in the Bowen Basin of Queensland, Australia, using neural networks with Niño Indices for El Niño-Southern Oscillation.

[19] Abbot J, Marohasy J. Forecasting monthly rainfall in the Western Australian wheat-belt up to 18 months in advance using artificial neural networks. Lecture Notes in Computer

[20] Abbot J, Marohasy J. Skilful rainfall forecasts from artificial neural networks with long duration series and single-month optimization. Atmospheric Research. 2017;**197**:289-299

Australia. WIT Transactions on Ecology and the Environment. 2015;**196**:3-13

Journal of Sustainable Development and Planning. 2015;**10**(1):66-75

Lecture Notes in Computer Science. 2016;**9992**:88-100

blackburn.com.au/current-class-actions/queensland-floods-class-action/

cations. Water. 2011;**3**:1149-1173

2014;**138**:166-178

2015;**197**:149-159

Science. 2016;**9992**:71-87

In this chapter, we demonstrated the application of ANNs for rainfall forecasting for specific locations and also a sub-region within south eastern Queensland, Australia. We demonstrated that the ANN could forecast the extreme flood event of December 2010 that resulted in the catastrophic flooding of Brisbane in January 2011. We show that the skill of the ANN forecast can be improved through single-month optimization of the ANN model, and also by using datasets that extend further back in time. We compare forecasts from the ANN with forecasts from a general circulation model, POAMA, and show that both the deterministic nature of the forecasts, and also their actual skill, indicates that ANNs have much to offer by way of improved monthly rainfall forecasts at least 1 year in advance.