Computational Intelligence Techniques and Their Applications to Software Engineering Problems
eBook - ePub

Computational Intelligence Techniques and Their Applications to Software Engineering Problems

  1. 257 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Computational Intelligence Techniques and Their Applications to Software Engineering Problems

About this book

Computational Intelligence Techniques and Their Applications to Software Engineering Problems focuses on computational intelligence approaches as applicable in varied areas of software engineering such as software requirement prioritization, cost estimation, reliability assessment, defect prediction, maintainability and quality prediction, size estimation, vulnerability prediction, test case selection and prioritization, and much more. The concepts of expert systems, case-based reasoning, fuzzy logic, genetic algorithms, swarm computing, and rough sets are introduced with their applications in software engineering. The field of knowledge discovery is explored using neural networks and data mining techniques by determining the underlying and hidden patterns in software data sets. Aimed at graduate students and researchers in computer science engineering, software engineering, information technology, this book:

  • Covers various aspects of in-depth solutions of software engineering problems using computational intelligence techniques
  • Discusses the latest evolutionary approaches to preliminary theory of different solve optimization problems under software engineering domain
  • Covers heuristic as well as meta-heuristic algorithms designed to provide better and optimized solutions
  • Illustrates applications including software requirement prioritization, software cost estimation, reliability assessment, software defect prediction, and more
  • Highlights swarm intelligence-based optimization solutions for software testing and reliability problems

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Computational Intelligence Techniques and Their Applications to Software Engineering Problems by Ankita Bansal, Abha Jain, Sarika Jain, Vishal Jain, Ankur Choudhary, Ankita Bansal,Abha Jain,Sarika Jain,Vishal Jain,Ankur Choudhary in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Science General. We have over one million books available in our catalogue for you to explore.

Information

1 Implementation of Artificial Intelligence Techniques for Improving Software Engineering

Sushma Malik
Shobhit Institute of Engineering and Technology
Monika Arora
Apeejay School of Management
Anamika Rana
Maharaja Surajmal Institute of Technology
Mamta Bansal
Shobhit Deemed University
CONTENTS
1.1 Introduction
1.1.1 Literature Review
1.2 Aspects of SE and AI
1.2.1 Factors of Interaction between AI and SE
1.2.2 Research Areas of Interaction between AI and SE
1.3 AI Techniques
1.4 Why AI Techniques Are Implemented in SE
1.5 Impact of AI in Different Phases of Software Development
1.5.1 Requirements Engineering (RE)
1.5.2 Software Architecture Design
1.5.3 Risk Management (RM)
1.5.4 Testing
1.6 Techniques of AI
1.6.1 Open Problems That Can Occur during the Application of AI Techniques to SE
1.7 Conclusion
1.8 Future Scope
References

1.1 Introduction

Computer science is the main branch of science that has gone through speedy and essential transformation. This transformation is a result of mixing the available experience and user expectations for designing new creative software products and improving the lives of users by modifying the environment (Cook, Augusto, & Jakkula, 2009).
Software engineering (SE) is a branch of computer science. This branch of computer science follows methodical and scientific approaches for software design, develops software on the basis of requirements, implement and maintain the software, and eventually retire the software product after some period. Although this is a systematic and linear approach to software development, it faces some of the following problems:
  • It’s not possible to read the brain of human beings or their behavior by using SE.
  • Computer awareness is impossible with SE.
  • Nondeterministic Polynomial (NP)’s problems are not easy to solve with SE.
  • SE product development models use sequential phases, which makes products static in nature, but software products are not dynamic in nature.
  • Real-time software development is not possible for engineers to design and develop with SE.
Therefore, software development is still more a craft or art than an engineering discipline, because it lacks a validation process and product modification in the SE improvement process (Jain, 2011).
Artificial intelligence (AI) is the branch of computer science whose main motives are to develop intelligent machines, and define and design intelligent agents (Jain, 2011). AI focuses on creating machines that behave and think like human beings, creating a computer system that has some form of intelligence, and trying to implement that knowledge in understanding natural language (Aulakh, 2015).
AI and SE developed separately without much exchange of research results. The main goal of SE is to design efficient and reliable software products, while that of AI is to make the software product more intelligent. Today, these fields are coming closer and creating new research areas (Sorte, Joshi, & Jagtap, 2015), and many researchers are taking an interest in these fields. Many people are using Siri, Google Assistant, or Echo in their daily routine. What are these tools? In simple words, these devices are the personal digital assistants that help users access valuable information and basically work on the user’s voice command like “Hey Siri, show me the closest petrol pump”, “play some music” or even “call Ms. ABC.” These digital supporters will provide appropriate information by going through the user’s mobile (call or read the message) or searching the web. These are some examples of AI. The father of AI is John McCarthy, and according to him, “AI is the science and engineering of making intelligent machines, especially intelligent computer programs.” AI is implemented using knowledge of how the human brain works and how human beings become skilled and make decisions to accomplish the steps in a task while trying to resolve a problem.
Hybridization of SE and AI is the most effective area of computer science and makes life easier for developers, testers, and analyzers. It is basically an opportunity to implement AI tools and approaches in the SE field to improve the software product development process. Software engineers have knowledge of AI technology and are interested in adopting the tools and techniques of AI in their own software development for improving the quality of the software product. This combination of fields is easily adopted and reused by nonexperts. AI will change the way an application or system is developed, and thus developers can expect a better application or system developed under the existing environment.
AI impacts all aspects of SE including data collection, software development, testing, deployment and ongoing maintenance. AI helps the developer to create better functioning software and increase the efficiency and reliability of software creation by automating manual tasks. AI enables machines to make decisions so that machines can balance compute power and service loads.

1.1.1 Literature Review

AI plays a significant role in automating numerous software development activities, and implementation of AI in SE makes sense to take advantage of AI techniques in the various phases of the Software Development Life Cycle (SDLC), like requirement gathering, designing, development, implementation, and testing (Kumari & Kulkarni, 2018; Sorte, Joshi, & Jagtap, 2015). Basu et al. (2017) analyzed views about the integration of AI and SE and explored the possibilities of combining the techniques and tools of AI in the designing and development of software systems. Using an AI automated programming tool in the development of software products eliminates the risk assessment phase and reduces the development time of software products. AI also increases the quality of the software product (Saini, 2016). SE helps design a software product, but development of the product is extremely time-consuming. Implementing AI techniques and tools in the development of software products increases the quality of software products and minimizes development time. The software development coding phase can be amended with the genetic algorithms (Aulakh, 2015). AI, expert systems, and knowledge engineering are playing an essential role in the development of software products. The combination of AI and SE is important; the advantages of AI techniques and approaches are used in SE and vice versa. The study by Shankari & Thirumalaiselvi (2014) suggests that the application of AI techniques can help in solving the problems that are associated with the SE process. Ammar, Abdelmoez, & Hamdi (2012) discussed how AI techniques are used to solve problems faced by software engineers in the software development phases, like requirement-gathering, design and coding and testing. They also summarized the problems like transforming the requirements into architectures using AI techniques. Harman (2012) explained that software is dynamic in nature and that its development process and deployment techniques always need modification based on requirements. AI is well suited to this task. Jain (2011) explained the interaction between SE and AI and the reason why AI techniques are needed in the SE process. Many AI techniques, like knowledge-based systems, neural networks, fuzzy logic (FL), and data mining, are used by software engineers and researchers to get better software products. AI plays an important role in improving all the phases of the SDLC (Meziane & Vadera, 2010). Risk can be reduced in development time by using AI automated tools. All the phases of software development are linked together and software product development time can be minimized by revisiting each and every phase after requirements are modified (Raza, 2009). Chen et al. (2008) explained the various AI techniques like case-based reasoning (CBR), rule-based systems, artificial neural networks (ANNs), fuzzy models, genetic algorithms (GAs), cellular automata, multiagent systems, swarm intelligence, reinforcement learning and hybrid systems with examples.

1.2 Aspects of SE and AI

The development of software products using well-defined sequential models and procedures is associated with the SE branch of computer science. SE is basically the combination of two words: software and engineering. Software is not just a programming code that is written in a programming language, but is a collection of executable codes written in some specific programming language which are used to develop a specific software product. However, Engineering is developing a product using well-def...

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Table of Contents
  6. Preface
  7. Editors
  8. Contributors
  9. Chapter 1 Implementation of Artificial Intelligence Techniques for Improving Software Engineering
  10. Chapter 2 Software Effort Estimation: Machine Learning vs. Hybrid Algorithms
  11. Chapter 3 Implementation of Data Mining Techniques for Software Development Effort Estimation
  12. Chapter 4 Empirical Software Measurements with Machine Learning
  13. Chapter 5 Project Estimation and Scheduling Using Computational Intelligence
  14. Chapter 6 Application of Intuitionistic Fuzzy Similarity Measures in Strategic Decision-Making
  15. Chapter 7 Nature-Inspired Approaches to Test Suite Minimization for Regression Testing
  16. Chapter 8 Identification and Construction of Reusable Components from Object-Oriented Legacy Systems Using Various Software Artifacts
  17. Chapter 9 A Software Component Evaluation and Selection Approach Using Fuzzy Logic
  18. Chapter 10 Smart Predictive Analysis for Testing Message-Passing Applications
  19. Chapter 11 Status of Agile Practices in the Software Industry in 2019
  20. Chapter 12 Agile Methodologies: A Performance Analysis to Enhance Software Quality
  21. Chapter 13 Pretrained Deep Neural Networks for Age Prediction from Iris Biometrics
  22. Chapter 14 Hybrid Intelligent Decision Support Systems to Select the Optimum Fuel Blend in CI Engines
  23. Chapter 15 Understanding the Significant Challenges of Software Engineering in Cloud Environments
  24. Index