Open In App
Related Articles

Goel-Okumoto Model – Software Engineering

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

The Goel-Okumoto model (also called as exponential NHPP model) is based on the following assumptions:

  1. All faults in a program are mutually independent of the failure detection point of view.
  2. The number of failures detected at any time is proportional to the current number of faults in a program. This means that the probability of the failures for faults actually occurring, i.e., detected, is constant.
  3. The isolated faults are removed prior to future test occasions.
  4. Each time a software failure occurs, the software error which caused it is immediately removed, and no new errors are introduced.

This is shown in the following differential equation: 

    $$\frac{\partial m(t)}{\partial t} = b[a-m(t)]$$ \null\hfill Eqn(1)

where a is the expected total number of faults that exist in the software before testing and b is the failure detection rate or the failure intensity of a fault.The mean value function solution of the differential equation 1 is given by 

    $$m(t) = a(1-e^{-bt})$$

This model is known as the Goel-Okumoto model For Type-I data, the estimate of parameters a and b of the Goel-Okumoto model using the MLE method can be obtained by solving the following equations simultaneously: 

    $$a= \frac{y_n}{(1-e^{-bt_n})}\\$$ $$\frac{y_nt_ne^{-bt_n}}{1-e^{-bt_n}} = \sum_{k=1}^n \frac{(y_k-y_{k-1})(t_ke^{-bt_k}-t_{k-1}e^{-bt_{k-1}})}{(e^{-bt_{k-1}}-e^{-bt_k})} \\ $$

Similarly, for Type-II data, the estimate of parameters a and b using the MLE method can be obtained by solving the following equations: 

    $$a= \frac{n}{(1-e^{-bS_n})}\\$$ $$\frac{n}{b} = \sum_{k=1}^n S_i + \frac{nS_ne^{(-bS_n)}}{1-e^{-bS_n})} \\ $$

Let $\hat{a}$       and $ \hat{b} $       be the MLE of parameters a and b, respectively. We can then obtain the MLE of the mean value function (MVF) and the reliability function as follows: 

    $$\hat{m} (t)=\hat{a} [1-e^{-\hat{b}t}]$$ $$ \hat{R} (x|t)=e^{-\hat{a}[e^{-\hat{b}t}-e^{-\hat{b}(t+x)}]}$$

It is of interest to determine the variability of the number of failures at time t, N(t). One can approximately obtain the confidence intervals for N(t) based on the Poisson distribution as 

    $$\hat{m}-z_{\alpha} \sqrt{\hat{m}(t)}\leq N(t)\leq \hat{m}(t) + z_{\alpha} \sqrt{\hat{m}(t)} $$

where $z_a$       is $100(1+\alpha)/2$       percentile of the standard normal distribution, i.e., N(0, 1).

The Goel-Okumoto Model is a software process model that was developed by Rajiv Goel and Shih-Lien Okumoto in the early 1980s. It is a relatively simple, incremental, and iterative model that emphasizes the importance of early prototyping and user involvement in the software development process.

Importance of Goel-Okumoto Model

  • Early Problem Identification: It permits early reliability issue detection, giving development teams the opportunity to proactively handle issues throughout the software development life cycle.
  • Benchmarking and Assessing Performance: This model makes it easier to compare programme reliability to predetermined benchmarks and to assess how well various software releases perform.
  • Risk Control: It helps to identify and mitigate risks by offering a quantitative assessment of the reliability growth. This aids in risk management.
  • Estimating Costs: It assists in the estimation of expenses related to software reliability enhancement initiatives, assisting organizations in making well-informed financial decisions.
  • Verification of Development Strategies: It helps validate the success of selected testing and development approaches by contrasting expected reliability growth with real-world observed performance.
  • Client Satisfaction: It increases client happiness by helping to produce software that is more dependable and has fewer flaws and malfunctions.

Goel-Okumoto Model Consists of Four Phases

  1. Analysis and Conceptual Design: In this phase, the software requirements are gathered and a conceptual design of the software is developed.
  2. Prototype Construction: In this phase, a working prototype of the software is created to demonstrate the feasibility of the conceptual design.
  3. Refinement: In this phase, the prototype is refined and developed into a complete and usable product.
  4. Deployment and Maintenance: In this phase, the software is deployed and maintained to ensure that it continues to meet the user’s needs.
  5. One of the key benefits of the Goel-Okumoto Model is that it allows for frequent feedback from users, which helps to ensure that the software meets their needs and expectations. Additionally, the model’s incremental and iterative approach allows for changes and modifications to be made to the software throughout the development process, reducing the risk of developing a product that does not meet the user’s needs.

Advantages of Goel-Okumoto Model

  1. Early Feedback: The Goel-Okumoto Model emphasizes the importance of early prototyping and user involvement, which provides an opportunity for early feedback and helps ensure that the software meets the user’s needs and expectations.
  2. Incremental Approach: The model takes an incremental and iterative approach, which allows for changes and modifications to be made throughout the development process, reducing the risk of developing a product that does not meet the user’s needs.
  3. Simple and Easy to Use: The model is relatively simple and easy to understand, making it accessible to both technical and non-technical stakeholders.
  4. Improved quality: The Goel-Okumoto Model emphasizes the importance of quality control throughout the software development process, which can lead to the development of high-quality software that meets user needs.
  5. Risk reduction: By focusing on incremental development and early user involvement, the model helps to reduce the risk of developing software that does not meet user requirements.
  6. Increased stakeholder involvement: The model emphasizes stakeholder involvement throughout the development process, which can lead to better communication and collaboration, higher levels of stakeholder satisfaction, and a greater likelihood of project success.
  7. Flexibility: The model allows for changes and modifications to be made throughout the development process, which can help ensure that the software meets evolving user needs and expectations.
  8. Reduced development time: The incremental and iterative approach of the model can help to reduce development time by allowing for changes and modifications to be made quickly and efficiently.
  9. Lower development costs: By focusing on early feedback and user involvement, the model can help to reduce the risk of developing software that does not meet user needs, which can help to reduce development costs in the long run.

Disadvantages of Goel-Okumoto Model

  1. Limited Flexibility: The Goel-Okumoto Model is a linear model, which means that it may not be suitable for complex software development projects that require a more flexible and adaptable approach.
  2. Limited Formal Documentation: The model does not place a strong emphasis on formal documentation, which may make it difficult to trace the development process and ensure that all requirements are met.
  3. Lack of Emphasis on Testing: The Goel-Okumoto Model does not place a strong emphasis on testing, which can result in bugs and errors being discovered later in the development process, leading to increased costs and schedule delays.
  4. Limited Scalability: The model may not be suitable for large-scale software development projects as it may become difficult to manage and coordinate the different stages of development.
  5. Dependency on User Involvement: The model relies heavily on user involvement, which may not be feasible in certain situations, such as when developing software for a large user base or when users are not readily available.
  6. Potential for Scope Creep: The incremental approach of the model may lead to scope creep, where additional features and requirements are added throughout the development process, leading to increased costs and schedule delays.

Conclusion

A useful framework for evaluating software reliability over time is provided by the Goel-Okumoto Model, a model of software reliability growth. Through the course of the development life cycle, this model helps to achieve greater levels of software quality and improves software dependability management.



Last Updated : 29 Jan, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads