EXPLAIN THE MOST DIFFICULT OR SERIOUS PROBLEM IN YOUR AREA OF STUDY, SHOWING WHY IT MORE DIFFICULT THAN OTHER PROBLEMS, AND WHAT HAS BEEN DONE TO SOLVE IT SO FAR. This paper defines Software Engineering and the difficulties that Software Engineers face. First, measurement of software reliability is described. Also, why measurement of software reliability poses an intricate challenge is explained. Furthermore, the steps taken to provide software reliability are elucidated.
Software engineering is a profession dedicated to designing, implementing, and modifying software so that it is of a higher quality, more affordable, maintainable, and faster to build . In the different phases of building software, a software engineer has to perform a number of varied and complex tasks. Thus, there exist a number of difficulties that software engineers face. Some of these difficulties are Requirements Analysis, Measurement of Software Reliability and Agile Software Development. Among these, “Measurement of Software Reliability” is one really complicated challenge.
Software Reliability is defined as the probability of failure-free software operation for a specified period of time in a specified environment . Using yardsticks for measuring the extent of reliability of software is Measurement of Software Reliability. Measurement theory is used to highlight both drawbacks and strengths of software. It is also used to predict whether software can be released or not. Software reliability is hard to achieve because of complexity in the software. This is because nobody has a complete understanding of what software is.
Moreover, there is no fixed yardstick to measure software reliability. Because software is unique, software reliability metrics differ from software to software. Measurement of Software Reliability is still in its infancy. The different phases in building any software are Requirements Analysis, Design, Coding, Maintenance and Testing. If any minor fault is overlooked in any of these phases, software reliability is affected. Add details about Requirements Analysis and Agile Software Development. Mention ways how it is done. Then say measurement of software reliability is the most difficult.
One step taken towards measurement of software reliability is the Sequential Bayesian Technique. On the basis of software properties like program size and complexity, this technique uses a probabilistic model that aims at predicting reliability. It also bases reliability on analysis of failure data. Another step in the field of software reliability metrics is using a Software Life Cycle Empirical / Experience Database. The Data Analysis Center for Software is responsible for research in software reliability using empirical software life cycle data . Data is organised into five sets.
These are Research Facility Error Data, Productivity Data, Software Engineering Laboratory Data, Software Reliability Data and Fault Data. The Metrics Data Program at NASA is yet another step towards the same . An excellent free Metrics Data Program repository is provided. Not only does the repository contain software reliability data but also relationships between other software metrics and reliability. Some of these metrics include the very famous McCabe Software Metric, Halstead Metric, Lines of Code Metric, Error Metrics and Requirement Metrics. Reference: 1. Wikipedia Software engineering. Available: http://en. ikipedia. org/wiki/Software_engineering. [Accessed on 30 August 2010] 2. Institute of Electrical and Electronics Engineers, ANSI/IEEE Standard Glossary of Software Engineering Terminology, IEEE Std. 729-1991, 1991 3. Lalji Prasad, Ankur Gupta and Sarita Bardoria: “Measurement of Software Reliability using Sequential Bayesian Technique” Proceedings of World Congress on Engineering and Computer Science 2009 4. DACS Gold Practices Available https://goldpractice. thedacs. com/ [ Accessed 2nd September 2010] 5. Metrics Data Program, NASA Available: http://mdp. ivv. nasa. gov/ [Accessed 2nd September 2010]