Bug Report Analytics for Software Reliability Assessment using Hybrid Swarm – Evolutionary Algorithm
Background: With the growing advances in the digital world, software development demands are increasing at an exponential rate. To ensure reliability of the software, high-performance tools for bug report analysis are needed. Aim: This paper proposes a new ‘Iterative Software Reliability’ model based on one of the most recent Software Development Life Cycle (SDLC) approach. Method: The proposed iterative failure rate model assumes that new functionality enhancement occurs in each iteration of software development and accordingly design modification is made at each stage of software development. In terms of defects, testing effort, and added functionality, these changing needs in each iteration are reflected in the proposed model using iterative factors. The proposed model has been tested on twelve Eclipse and six JDT software failure datasets. Proposed model parameters have been estimated using a hybrid swarm - evolutionary algorithm. Results: The proposed model has about 32% and 55% improved efficiency on Eclipse and JDT datasets respectively as compared to other models like Jelinski Moranda Model, Shick-Wolverton Model, Goel Okumotto Imperfect Model etc. Conclusion: In each analysis done, the proposed model is found to be reaching acceptable performance and could be applied on other software failure datasets for further validation.
- Conference Article
28
- 10.1109/secon.2015.7133007
- Apr 1, 2015
Agile software engineering has been a popular methodology to develop software rapidly and efficiently. However, this methodology often considers Functional Requirements (FRs) due to the nature of agile software development and strongly neglects Non-Functional Requirements (NFRs). Neglecting NFRs has negative impacts on software products that have resulted in poor quality and higher cost to fix problems in later stages of software development. This research proposes a study to effectively gather NFRs metadata from software requirement artifacts such as documents and images. This will be accomplished by reducing false positives to include NFRs in the early stages of software requirements gathering along with FRs. In addition, this study will use historical trending to predict additional NFRs that are overlooked by architects and can be included along with FRs in the early stages of agile software development. Furthermore, prioritization of NFRs using existing FRs methodologies is important to stakeholders as well as software engineers in delivering quality software. This research builds on prior studies by specifically focusing on NFRs during the early stages of agile software development. The goal of this study is to improve upon prior studies of NFRs in order to provide effective techniques to prioritize and predict NFRs during the early stages of agile software development and the impacts that NFRs have on the software development process.
- Research Article
1
- 10.31649/1999-9941-2024-59-1-127-138
- May 31, 2024
- Information technology and computer engineering
The article examines the peculiarities of applying quality models at different stages of development and utilization of software systems to ensure their high quality. The main aim of the research is to identify new combined approaches for evaluating the effectiveness and impact of quality models usage at various stages of software product life cycles. The work employs a systematic approach to analysis, considering the interaction of quality models with different stages of software design, development, testing, and operation. Specifically, the role of quality models in enhancing the efficiency of development processes and their impact on the final product quality is discussed. The methodology involves analyzing existing quality models, adapting them to specific project conditions, and studying practical examples of quality model implementation in real projects. An analysis of existing quality models, their adaptation to specific conditions of software system projects, and an analysis of implementation in real projects are carried out. This approach has enabled us to obtain specific results and reveal key aspects of quality model implementation. The interaction of quality models with overall quality assurance strategies and their impact on improving the productivity and reliability of software systems is considered. In a general scientific aspect, the research boils down to evaluating the effectiveness of this approach and determining its key features. Further examination showed that the use of new combined quality models in the stages of design, development, and testing contributes to the improvement of various aspects of software quality. They not only define quality criteria but also ensure compliance with these criteria throughout the project life cycle. The obtained results confirm the importance of using combined quality models at all stages of software development. This contributes not only to the improvement of the final product quality but also to the efficiency of the entire development process. Our results can serve as a basis for the practical implementation of quality models in software projects and improving the overall quality level in this field.
- Book Chapter
18
- 10.1007/978-3-030-51965-0_2
- Jan 1, 2020
Software development life cycle (SDLC) is critical and remains the most significant part of software development in requirement engineering. There exists several SDLC each designed for specific needs to accommodate available resources and skills; they are compatible with certain programming languages and toolkits, and are of immense benefits to the software engineers. Despite its popularity and strengths over major weaknesses of other models, Iterative model is less acceptable by programmers and not widely in use in industry. This study examines the concepts of Iterative models and presents its real time examples to make the SDLC more understood to software developers. The practical application of the model is exemplified, motivation for its use are highlighted, and the requirement as well as requirement activities in each phase are tabulated. This will raise users’ awareness on the Agile Software Development Model and attract software developers to appreciate the Iterative Model and make a better use.
- Research Article
20
- 10.1002/qre.2653
- Apr 8, 2020
- Quality and Reliability Engineering International
It is commonly recognized that software development is highly unpredictable and software quality may not be easily enhanced after software product is finished. During the software development life cycle (SDLC), project managers have to solve many technical and management issues, such as high failure rate, cost over‐run, low quality, and late delivery. Consequently, in order to produce robust and reliable software product(s) on time and within budget, project managers and developers have to appropriately allocate limited time, manpower, development, and testing effort. In the past, the distribution of testing effort or manpower can typically be described by the Weibull or Rayleigh model. Practically, it should be noticed that development environments or methods could be changed due to some reasons. Thus, when we plan to perform software reliability modeling and prediction, these changes or variations occurring in the development process have to be taken into consideration. In this paper, we will study how to use the Parr‐curve model with multiple change‐points to depict the consumption of testing effort and how to perform further software reliability analysis. Some mathematical properties of proposed model will be given and discussed. The applicability and performance of our proposed model will be demonstrated and assessed through real software failure data. Experimental results are analyzed and compared with other existing models to show that our proposed model gives better predictions. Finally, an optimal software release policy based on cost‐reliability criteria is proposed and studied. The main purpose is aimed at minimizing the total cost of software development when a reliability objective is given.
- Research Article
- 10.2345/0899-8205-45.5.373
- Sep 1, 2011
- Biomedical Instrumentation & Technology
For safety and effectiveness, the U.S. Food and Drug Administration (FDA) requires that software must be validated in the medical device industry. The software includes programs that are embedded in instruments and used in production/manufacturing process control, in which programmable logic controllers (PLCs) are widely used. The development and validation of a PLC program generally involves establishing software design (SD) structure, defining software requirements specification (SRS), conducting hazard analysis (HA), coding, and testing. The tasks are best accomplished through team efforts, with members taking the lead in activities suited to their skills within an organization; for example, SRS from the operation and the quality assurance (QA) departments; HA from emergency, health and safety (EHS); and coding from engineering. An integrated approach to these tasks would help a software project manager coordinate the team efforts effectively. This article describes an integrated approach to software development and validation in PLC programming. In this approach, the software development and validation start by establishing a normalized SD structure. This normalized structure is then incorporated into a traceability matrix (TM) of the SRS, into modules of program, and into test logs—such that every item defined in SRS or HA is registered in the normalized SRS TM table, coded in the normalized modules, tested, and documented in the normalized test logs. As the software system has a normalized structure, it becomes easy for different team members to define, review, code, test, document, and approve the relevant tasks within the software development and validation lifecycle.
- Book Chapter
- 10.1201/9781003283195-5
- Jan 3, 2023
Software development is a collaborative process in which programmers build software by integrating all the stages of the software development life cycle (SDLC). A software repository is a central file storage location where various software packages are stored, and these packages are retrieved and shared between all the software development team members at various locations. The software repositories are divided into various categories based on cooperation, coordination, and communication among the stakeholders as well as evolutionary changes to various software arti-facts such as source code repositories, software bug repositories, historical repositories, run-time repositories and requirement documents, and other documentation. The software bug repository is an essential repository among the entire repositories since the completion of the software is entirely dependent on the bug fixing mechanism associated with this repository in software development. Today’s software systems are larger and more complex as they go through various stages from the requirement 98analysis phase to the maintenance phase. A variety of tasks and activities are carried out in each stage of software development, and these are expensive and vulnerable to errors. During software development, a large number of software bugs are continuously generated, and that has become the main reason for the delay in software completion. Hence, there is a vast demand for computational intelligent techniques to accomplish various tasks of software development. In recent years, fuzzy logic techniques emerged and played an important role in various fields of data mining and text mining. Since most of the content related to software bug repositories is text in nature, it is possible to effectively use fuzzy logic techniques to analyze these software bugs.
- Research Article
8
- 10.3390/math10101744
- May 19, 2022
- Mathematics
In the software development life cycle, the quality and reliability of software are critical to software developers. Poor quality and reliability not only cause the loss of customers and sales but also increase the operational risk due to unreliable codes. Therefore, software developers should try their best to reduce such potential software defects by undertaking a software testing project. However, to pursue perfect and faultless software is unrealistic since the budget, time, and testing resources are limited, and the software developers need to reach a compromise that balances software reliability and the testing cost. Using the model presented in this study, software developers can devise multiple alternatives for a software testing project, and each alternative has its distinct allocation of human resources. The best alternative can therefore be selected. Furthermore, the allocation incorporates debuggers’ learning and negligent factors, both of which influence the efficiency of software testing in practice. Accordingly, the study considers both human factors and the nature of errors during the debugging process to develop a software reliability growth model to estimate the related costs and the reliability indicator. Additionally, the issue of error classification is also extended by considering the impacts of errors on the system, and the expected time required to remove simple or complex errors can be estimated based on different truncated exponential distributions. Finally, numerical examples are presented and sensitivity analyses are performed to provide managerial insights and useful directions to inform software release strategies.
- Research Article
4
- 10.52866/ijcsm.2023.04.04.014
- Nov 13, 2023
- Iraqi Journal for Computer Science and Mathematics
The software development process needs specific and studied steps within a reliable plan to achieve the requirements for the success of any project. Software development life cycle (SDLC) methodologies have provided several models that meet the needs of the various proposed projects. These methodologies present various scenarios that can be applied in the process of developing systems to make them more efficient and predictive. The paper aims to illuminate the paramount Software Development Life Cycle (SDLC) methodologies by conducting a comprehensive review of the pros and cons of the various models widely used for software design. Furthermore, the paper discusses fundamental trajectories that are shaping the future landscape of SDLC methodologies. This review included two main types of software development life cycle approaches such as traditional SDLC (heavy-weight) and agile SDLC (light-weight) approaches. The traditional approach included several models such as the Waterfall model, Iterative model, Spiral model, V-Model, and Big Bang Model. Whereas, the agile approach included various models such as the eXtreme Programming (XP) Model, scrum Model, Feature Driven Development (FDD) Model, and Kanban Model. A comprehensive analytical study of all software development life cycle models was achieved and highlighted their most prominent strengths and weaknesses of them. SDLC methodologies wield substantial ramifications across a multitude of sectors, contingent upon several models tailored to individual developmental and research contexts. In culmination, the paper furnishes an all-encompassing perspective on paramount SDLC models, encompassing two principal paradigms: the traditional and the agile approaches. These encompass fundamental sub-models that encapsulate pioneering models poised for application in system development, thus facilitating their refinement more efficiently and predictably.
- Research Article
4
- 10.17485/ijst/2016/v9i29/90093
- Aug 8, 2016
- Indian Journal of Science and Technology
Background/Objectives: To design a relatively simple Software Reliability Growth Model (SRGM) with testing effort function using Artificial Neural Network approach. Methods/Statistical Analysis: The results evaluation of the proposed SRGM using Artificial Neural Network (ANN) is measured by calculating the three vital criterians namely; AIC (Akaike Information Criterian), R2 (Coefficient of determination) and RMSE (Root Mean Squared Error). Findings: Traditional time-based models may not be appropriate in some situations where the effort is varying with time. Estimating the total effort required for testing the software in the Software Development Life Cycle (SDLC) is important. Hence, a multi-layer feed-forward Artificial Neural Network (ANN) based SRGM using back propagation training is proposed in this paper by incorporating test effort. The proposed ANN based model provides consistent performance for both exponential and S-shaped growth of mean value functions witnessed in software projects. Application/Improvements: The proposed SRGM using ANN will be performed to be eminently useful for software reliability applications, since it is able to maintain its performance in all situation.
- Research Article
25
- 10.1186/s13673-020-00229-7
- Jun 16, 2020
- Human-centric Computing and Information Sciences
Artificial intelligence is one of the key technologies for progression to the fourth industrial revolution. This technology also has a significant impact on software professionals who are continuously striving to achieve high-quality software development by fixing various types of software bugs. During the software development and maintenance stages, software bugs are the major factor that can affect the cost and time of software delivery. To efficiently fix a software bug, open bug repositories are used for identifying bug reports and for classifying and prioritizing the reports for assignment to the most appropriate software developers based on their level of interest and expertise. Owing to a lack of resources such as time and manpower, this bug report triage process is extremely important in software development. To improve the bug report triage performance, numerous studies have focused on a latent Dirichlet allocation (LDA) using the k-nearest neighbors or a support vector machine. Although the existing approaches have improved the accuracy of a bug triage, they often cause conflicts between the combined techniques and generate incorrect triage results. In this study, we propose a method for improving the bug report triage performance using multiple LDA-based topic sets by improving the LDA. The proposed method improves the existing topic sets of the LDA by building two adjunct topic sets. In our experiment, we collected bug reports from a popular bug tracking system, Bugzilla, as well as Android bug reports, to evaluate the proposed method and demonstrate the achievement of the following two goals: increase the bug report triage accuracy, and satisfy the compatibility with other state-of-the-art approaches.
- Book Chapter
4
- 10.1007/978-81-322-2220-0_10
- Dec 24, 2014
The prediction of software defects in a software project has recently attracted the attention of many researchers. Prediction of defect density indicator (DDI) in each phase of software development life cycle (SDLC) is desirable for effective decision support and trade-off analysis during software development, and also, it improves the reliability of software project and helps software manager to achieve reliable software product within time and costs. The reliability-relevant software metrics impose major impact on the quality of software project at each software development stage. However, software metrics are associated with uncertainty and can be assessed in linguistic terms. Therefore, in this paper, a multistage model for software DDI is proposed using the topmost reliability-relevant metrics and fuzzy inference system (FIS).The predictive accuracy of proposed model is validated using real software projects data. Validation results are satisfactory.KeywordsSoftware metricsFuzzy logicFuzzy inference systemDefect density indicatorQualitative value of metric
- Book Chapter
1
- 10.1007/978-3-030-29608-7_10
- Jan 1, 2019
Software architecture design, when performed in context of agile software development (ASD), sometimes referred as “agile architecting”, promotes the emerging and incremental design of the architectural artifact, in a sense of avoiding “big design upfront” (BDUF). Performing “agile architecting” is not always straightforward, mainly because the architecture has a required life-cycle and each stage responds to different needs. There is a lack of a pathway that guides agile architecting in an end-to-end approach (from business requirements to deployment). This paper proposes a pathway that includes architecture design from software development life-cycle (SDLC) stages of software development that use ASD approaches, where two main artifacts are considered: a candidate logical architecture and a refined logical architecture. These artifacts are included in a pathway where they receive input from business processes perspective and guide software development during ASD iterations (Sprints).
- Research Article
9
- 10.1016/j.compeleceng.2020.106952
- Dec 30, 2020
- Computers & Electrical Engineering
Metrics for assessing reliability of self-healing software systems
- Research Article
1
- 10.17509/jrak.v6i1.8975
- Apr 20, 2018
- Jurnal Riset Akuntansi dan Keuangan
The design of accounting information systems for non-profit entities to improve accountability in presenting the mosque's financial statements. Non-profit entity accounting information system using Enterprise Resources Planning (ERP) is odoo accounting. Approach to ERP methodology using ASAP (Accelerated SAP) methodology, software development stage using Software Development Life Cycle (SDLC), in design using DFD and system flowchart. Keywords: Accountability; Non-Profit Entity; Enterprise Resources Planning; Financial statements; Odoo Accounting; Accounting Information System Design.
- Research Article
1
- 10.4271/2022-28-0123
- Oct 5, 2022
- SAE International Journal of Advances and Current Practices in Mobility
<div class="section abstract"><div class="htmlview paragraph">With the accelerating demands of new features in embedded software viz diagnostic services, infotainment instigate complex software development. Ever-increasing software complexity gives rise to unreliable behaviours in the vehicle system. Software reliability model reinforces the confidence of the end-user about the compliant operation of the provided software with respect to requirements. This paper describes the application of software reliability engineering in the Software development life cycle. Further, we are demonstrating means to compute the software operational reliability by acquiring defects observed at the software testing phase. A detailed software reliability model selection process led us to conclude to a software reliability model based on the Nonhomogeneous Poisson process (NHPP) by Schneidewind. The discussed Software reliability model considers both fault detection and correction process for modelling and uses historical defect data of the software for the estimation of fault rate, here the reliability model considers a subset of defect data to incorporate the “data aging” in the estimation. Obtain the correct estimates of the software reliability model parameters we used the Statistical Modelling and Estimation of Reliability Functions for Software (SMERFS V3) software tool. The software reliability engineering aids the project planning team by estimating the target operation reliability of software as well as the necessary time to evaluate the software &amp; defects to be resolved to achieve the target. Software Reliability helps the organization by maintaining the balance between defect escape rate and cost incurred on software testing. Subsequently, employing effective software reliability techniques facilitate the organization to put forward software quality, quantitatively to the customers.</div></div>
- Ask R Discovery
- Chat PDF
AI summaries and top papers from 250M+ research sources.