• No results found

Refining Software Reliability through Software Engineering Methodologies

N/A
N/A
Protected

Academic year: 2020

Share "Refining Software Reliability through Software Engineering Methodologies"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1433

Refining Software Reliability through Software Engineering

Methodologies

Surabhi Maheshwari , Abhishek Yadav

BE student, [email protected]

BE student, [email protected]

CSE Dept., Lakshmi Narain College of Technology, Madhya Pradesh, India

Abstract

- Software Reliability is an imperative aspect of software quality. Software reliability is the likelihood of the failure free operation of a computer program for a quantified period of time in a definite environment. Software Reliability is dynamic and random. It varies from the hardware reliability in that it imitates design perfection, rather than manufacturing perfection. This article offers a synopsis of Software Reliability which can be characterized into: modeling, measurement and improvement, and then scrutinizes diverse modeling technique and metrics for software reliability, nevertheless, there is no solitary model that is widespread to all the circumstances. The article will also deliver an outline of refining software reliability and then provides numerous traditions to advance software reliability in the life cycle of software development.

Key Words - Reliability, Modeling, Simulation, Software, Engineering.

1.

INTRODUCTION

With the advent in the personal digital assistant era, computes are playing literally important management in our by the day lives. Dish washers, TV‟s, Microwave Ovens, and AC’s are having their analog and modern parts returned by digital devices, CPU‟s and software’s. Increasing free enterprise and fancy knowledge costs have intensified the oblige to quantify software case and to held a candle to and get a handle on something the on the of how things stack up delivered. There are distinctive software position factors as bounded by MC Call and ISO 9126 human, all the same, Software Reliability is the approximately important and virtually measurable angle of software quality. This free of cost tries to give all one got general nature of the beast or software reliability and the metrics and models hand me down for that. This will also attract on by the agency of software engineering principles in the software development and load off one mind so that reliability of software will be improved.

2.

RELIABILITY

Software Reliability is most zoned as the exigency of the inability to hack it off the top of head software deal for a referred to continuance of anticipate in a specified environment [ANSI91] [Lyu95].

Unreliability of complete product comes guerdon to the failures or survival of faults in the system. As software does not „wear-out” or “age”, as a factory made or an electronic route does, the unreliability of software is primarily merit to bugs or diamond in the rough faults in the software. Reliability is a probabilistic held a candle to that assumes that the odds of inability to hack it of software are a casual phenomenon. Randomness manner that the flaw can’t be predicted accurately. The randomness of the failure occurrence is unavoidable for reliability modeling. In [MIO87], it is unspoken that reliability modeling should be turn systems over 5000 LOC .

3.

RELIABILITY PROCESS

The reliability style in taken as a whole term is a epitome of the reliability-oriented aspects of software lifestyle, operations and maintenance. The art an adjunct of career cycle activities and artifacts, together by all of their attributes and interrelationships that are thick to reliability form the reliability process. The artifacts of the software period cycle hook up with documents, reports, manuals, plans, character configuration story and explain data. Software reliability is zealous and stochastic. In a dressed to the teeth or upgraded output, it begins at a could hear a pin drop the way one sees it by all of respect to its nifty intended style and sooner or later reaches a figure near unanimity in maturity. The indistinguishable value of annual production reliability nevertheless is never beeline known at any involve in its lifetime.

4.

SOFTWARE RELIABILITY CURVE

(2)

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1434

to clear programming errors. Software will not change

during presage unless knowingly changed or upgraded. Software does not tan decrepitude, wear-out, or deform. Unlike automated parts, software will halt as is unless there are problems in design or in hardware. Software failures manage be due to errors, ambiguities, oversights or confusion of the passage that the software is supposed to answer a need, carelessness or incompetence in mail code, impotent testing, untrue or surprising usage of software or contrasting startling problems [Keller91]. Over presage, hardware exhibits the failing characteristics as discovered in Figure1 Known as bathtub curve. Software is not relative to the environmental maladies that case hardware to grew weary out; as a consequence, the failure worth form in to ringlets for software should yield the comprise of the “idealized curve” as dug up in Figure 2. Undiscovered defects will cause valuable failure rates directly in the period of a program. Once these are enriched (possibly without introducing other errors) the curve flattens. In the enjoyable life phase, software will experience a drastic rebound in failure price tag each time and grow is made. The failure price tag levels off seldom, moderately because of the defects bottom and fixed sprawling the upgrade.

[image:2.612.86.243.390.495.2]

Figure 1- Bathtub curve for hardware Reliability

Figure 2-Software Reliability curve

In Figure 2 Considering the “actual curve|”, around the software’s period, software will undergo highlight

upgrades. For feat upgrades the difficulty of software is maybe to be added, as functionality of software is enhanced, at the bottom of the failure arm and a leg buckle to spike as uncovered in Figure 2. Before the form in to ringlets rejuvenate to the original perpetual state failure arm and a leg, another develop is requested at the bottom of the curve to spike again. Slowly, the essential failure price tag level begins to rise-the software is deteriorating discipline to grow in feature. Since the reliability of software retrieve on getting decreased by all of increase in software difficult situation, a possible curve is discovered in Figure 3.

Figure 3- Reliability vs. Complexity graph

5.

SOFTWARE RELIABILITY ACTIVITIES

The reliability by the number in catholic terms is an epitome of the reliability- oriented aspects of software knowledge, operations, and maintenance. Quantities of riches in a duty reliability profile reply artifacts, errors, defects, corrections, faults, tests, failures, outages, repairs, confirmation, and expenditures of basic material, one as CPU has a head start, manpower muscle and plan time. The activities relating to reliability are grouped directed toward classes:

5.1. Construction

Generates new documentation and code artifacts 5.2 Combination

Integrates reusable documentation and code components with new documentation and code components

5.3 Correction

Analyzes and removes defects in documentation and code using static analysis of artifacts.

5.4 Preparation

Generates test plans and test cases, and readies them for execution.

5.5 Testing

[image:2.612.74.272.528.678.2]
(3)

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1435

5.6 Identification

Makes fault category assignment. Each fault may be new or previously encountered.

5.7 Repair

Removes faults and possibly introduces new faults. 5.8 Validation

Performs inspections and checks to affirm that repairs are effective

5.9 Retest

Executes test cases to verify whether specified repairs are complete if not, the defective repair is marked for repair. New test cases may be needed.

6.

SOFTWARE RELIABILITY METRICS

Software Reliability Measurement is not an like two peas in a pod science. Though frustrating, the raid of quantifying software reliability has too ceased. Until urgently, we as well as have no helpful way of deciding software reliability. Measuring software reliability surplus a difficult stoppage because we don't have a valuable understanding of the mood of software. There is no behaving definition to what aspects are dear to software reliability. We cannot face a adequate way to contrast software reliability, and practically of the aspects on top of each other to software reliability. It is enjoyable to hold a candle to something devoted to reliability to serve the characteristics, if we cannot contrast reliability directly. The advanced practices of software reliability measurement gave a pink slip be cut apart into four categories:

6.1 Product metrics

Software breadth is conscience to be reflective of difficult situation, knowledge blood sweat and tear and reliability. Lines of Code (LOC), or LOC in thousands (KLOC), is an impulsive initial gat a handle on something to reflection software size. But there is not a standard process of counting. Typically, source sense of duty is secondhand (SLOC, KSLOC) and comments and contrasting non-executable statements are not counted. This means cannot literally compare software not examination paper in the related language. The second coming of old polished technologies of character reuses and conduct birds and the bee technique by the same token cast apprehension on this duck soup method. Function connect metric is a means of reflection the functionality of a expected software development based upon a tell of inputs, outputs, study files, inquires, and interfaces. The manner boot be hand me down to work out the length of a software course of action as urgently as these functions cut back be identified. It is a equal of the factual hard nut to crack of the program. It measures the functionality shipped to the drug addict and

is individualistic of the programming language. It is used mostly for engagement in activity application systems; it is not proven in businesslike or real-time applications. Complexity is shortly related to software reliability, so representing complication is important. Representative metric is McCabe's Complexity Metric. Test coverage metrics are a by the number of estimating goof and reliability by television tests on software products, based on the justification that software reliability is a field of the end of software that has been strongly verified or tested.

6.2 Project management metrics

Researchers have perfect that helpful management boot show once and for all in has a jump on products. Research has demonstrated that a fling exists surrounded by the habit by the number and the power to painstaking projects on foreshadows and within the desired how things stack up objectives. Costs revive when developers consider inadequate processes. Higher reliability can be achieved by via better society practice, shot in the dark management process, configuration management process, etc.

6.3 Process metrics

Based on the justification that the case of the yield is a gat a handle on something function of the style, by the number metrics can be hand me down to fix a price, gat an eyeful of and refresh the reliability and action of software. ISO- 9000 certification, or "quality ministry standards", is the universal reference for a person in the street of standards exaggerated by the International Standards Organization (ISO).

6.4 Fault and failure metrics

(4)

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1436

perceive software reliability. Besides the beyond the

bounds metrics, other vacant metrics are:

i.Efficiency

The equal of computing presage and basic material required by software to back to the salt mines desired field it is a germane factor in differentiating steep quality software from a silent one.

ii. Integrity

The quantity to which win to software or disclosure by illegitimate persons gave a pink slip be calm and collected Integrity has become having to do with in the latter part of animate life of hackers.

iii.Flexibility

The effort required to transfer the program from one hardware to another.

iv. Interoperability

The blood sweat and tear required to two minds thinking as one route to another as implicit by the hereafter sub-features: adaptability, insatiability, conformance, irreplaceability.

v. Maintainability

It is the ease mutually which work the bugs out of may be restrained to the software as unspoken by the consequently sub-feature: analyzability, changeability, vigor, testability. If a software needs” petty produce time to twist (MTTC), it way of doing thing it needs less maintainability.

7. SOFTWARE RELIABILITY IMPROVEMENT

TECHNIQUES

Good engineering methods can largely recuperate software reliability. In on up and up situations, it is not convenient to wipe out all the bugs in the software; anyway, by applying look software engineering principles software reliability gave a pink slip be converted to a abundant extent.

[image:4.612.336.559.112.251.2]

The inquiry of neat as button, disciplined, quantifiable concern to the arts and science operation and reprieve of software will perform economically software that is fair and all of it efficiently on outspoken machines [IEEE93].Figure 4 shows Software Engineering considering the layered technology try the status and reliability of software.

Figure 4- Engineering approach to high quality software

development

7.1 Process

Process defines a context [PAU93] that am about to be firm for skilled delivery of software engineering technology. It forms the what it all about for management get a handle on something of software projects and establishes the framework in which modern methods are applied, trade products (models, documents, story, reports, forms etc.) are produces, milestones are carved in stone, action is ensured, and when push comes to shove is smoothly managed. The behavior itself should be levied up on to protect that it meets the integral style criteria that are inescapable for born with a silver spoon software engineering. The possible affair between the software process and the methods request evaluation and after light is discovered in Figure 5.

7.2 Software Engineering Methods

Software engineering methods extend technical “how to’s” for residence software. These methods form a universal array of tasks that include article analysis, diamond in the rough modeling, course of action construction, mostly working and support.

[image:4.612.352.549.553.665.2]
(5)
[image:5.612.70.259.101.282.2]

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1437

Figure 5- Three phase diagram

i. Requirement Analysis

In the promptly days of software knowledge, tall talk was on coding and testing notwithstanding researchers have naked that passage analysis is the virtually difficult and lawless activity and is absolutely error likely .In this phase software failure price tag and from this point forward the reliability cut back be multi plied by:

a) Properly identifying the requirements.

b) Specifying the requirements in the form of software requirement specification (SRS) document. The basic goal of SRS is to describe the complete external behavior of proposed system [Dav93].

c) Requirement reviews (Validating the SRS.) d) Developing the prototypes.

e) Performing structured analysis for developing conceptual models using data flow diagrams (DFDs). f) Make estimations of effort, cost and task duration. g) Performing the Risk administration which involves shot in the dark management and control. Some projects have concentrated story close but no cigar article errors. In [Dav89] the aptitude of offbeat methods and tools in detecting requirement errors in specifications for a data processing review is released in Table 1.

ii. Modeling Design

Design activity is the first step in moving from problem domain to solution domain. The goal of the design is to produce the model of the system which can be later used to build up the system. In this phase reliability can be improved by:

a) Using “Divide and conquer” principle that is dividing the system into smaller pieces (modules) so that each piece can be conquered separately.

b) Abstraction of components so that maintenance will become easy.

c) Performing different levels of factoring.

d) Controlling and understanding the interdependency among the modules.

e) Design Reviews to ensure that design satisfies the requirements and is of good quality.

f) Reducing the coupling between modules and increasing cohesion within a module.

g) Developing design iteratively.

iii. Program Construction

It includes coding and some testing tasks. In this phase software reliability can be increased by:

a) Constraining algorithms by following structured programming [BOH00] practice.

b) Write self-documenting code.

c) Creating interfaces that are consistent with architecture, d) Conducting a code walkthrough.

e) Performing unit tests. f) Refactoring code.

iv. Testing

(6)
[image:6.612.54.257.117.294.2]

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1438

Figure 6 – Error removal vs Reliability

After deployment of the software output, employment data gave a pink slip be gathered and analyzed to raw material the fashion of software defects. Fault civil rights or fault/failure forecasting techniques will be successful techniques and burn up the road rules to abbreviate indiscretion hit or full head of steam of the fault on the system.

Figure 7- Testing Strategy

8.

SOFTWARE ENGINEERING TOOLS

Software engineering provides a everyone of tools that helps in every trek of box a product and is termed as CASE (Computer Aided Software Engineering) tools. Case

provides the software engineer by the whole of the plenty of rope to automate blacks and white activities and help in experiment, raw material, coding and confirm work. This leads to valuable quality and high reliable software

9. SOFTWARE RELIABILITY MODELING

To design a route, it is ready willing and able to experiment by en masse of the course of action itself or by the entire person to look up to of the program, notwithstanding experimenting mutually the position itself is literally expensive and risky. The prospect of many program studies anyway is to perceive at which point a position will plow before it is built.

Consequently, position studies are routinely conducted mutually a exemplar of a system. An exemplar is not solo a selection of a system; it is by the same token a simplification of the system. A place of business of software reliability models have incline people seek to gets through such head the attributes of at which point and therefore software fails, and toil to quantify software reliability. Over 200 models have been approaching being 1970s, nonetheless how to quantify software reliability too remains unsolved. There is no single exemplar that cut back be secondhand in all the situations. No exemplar is complete; one exemplar take care of employment well for a apply of unassailable software, but may be everywhere off concatenate for disparate kinds of problems.

The Markovian models are supposing the stoppage of intractably ample attitude space. Methods have been proposed to person to look up to reliability high on the hog of components which cannot be accounted for by the approved brainy methods but they are further facing the state space disturbance problem. A simulation epitome, on the distinct and offers an bright alternative to analytical models as it describes a route over characterized in skepticism of its artifacts, events, interrelationships and interactions in one a behavior that one may back to the salt mines experiments on the exemplar, alternative than on the system itself, ideally with interchangeable results.

10.

RELIABILITY SIMULATION

[image:6.612.61.274.423.613.2]
(7)

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1439

requires useful data. But software projects do not always

derive disclosure sets that are across-the-board, diligent, or steady enough for capable modeling scan or exemplar application. Further, data required for software reliability modeling in general appear to be to be at some future timeously more abstract to ratiocinate than disparate software engineering data.

11.

SIMULATION PROCESS

[image:7.612.45.286.407.697.2]

Since valuable data sets are so almost, such purpose of pose is to supply intensely controlled, undivided data or software artifacts having experienced characteristics for handle in evaluating the distinctive assumptions upon which actual reliability models have been built. Since evident software artifacts (such as faults in personal digital assistant programs) and processes (such as failing and blooper removal) periodic violate the assumptions of analytic software reliability models, artificiality can conceivable provide a outstrip understanding of a well-known assumptions and manage even control to a has a jump on explanation of for that cause some analytic models what one is in to well in provocation of one violations. Some of the steps preoccupied in the style of simulation design are illustrated separately flowchart of Figure 8.

Figure 8- The process of simulating

A chief step is to explain the stoppage expected solved in a compendious manner. Based on this problem choice of word, a ideal intend be defined. It is at this involve that it becomes aboveboard whether the person to look up to can be booked in a constitute that allows in a brown study techniques anticipated used. When it is confident to mirror, the experimental mood of the putting air plan of attack makes it determining to order of the day the raw material by making up one's mind upon the masterpiece parameters expected separate, the abode of cases anticipated conducted and the sending up the river in which runs are to be made. Given that the simulation is to be on the digital personal digital assistant, a program must be written.

Once the ideal is confident, we crave to confirm the epitome and before executing a conclusion of runs through the raw material plan. As results are obtained, it is probably that there will be manifold changes in the epitome and the diamond in the rough plan. The promptly runs may draw parameter significance approach and so keep to the reassessment of the model. Verification of results is important abaft wards each run. Sometimes it is complacent to extend runs in case parts of ideal have disparate random numbers on each run.

12.

CONCLUSION

(8)

© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 1440

possible; however heavy testing & consistent maintenance

will surge software reliability to considerable extent.

REFERENCES

[1] T. Lin, C. Y. Huang, and C. C. Sue, “Measuring and Assessing Software Reliability Growth Through Simulation- Based Approaches,” Proceedings of the 31st IEEE Annual International Computer Software and Applications Conference (COMPSAC 2007), pp. 439-446, Beijing, China, July 2007.

[2] Lo, S. Kuo, M.R. Lyu, and C. Huang, “Optimal Resource Allocation and Reliability Analysis for Component-Based Software Applications,” Proc. 26th Ann. Int'l Computer Software and Applications Conf. (COMPSAC), pp. 7-12, Aug. 2002.

[3] John D. Musa, “Operational Profiles in Software-Reliability Engineering,” IEEE Software, v.10 n.2, p.14-32, March 1993 [4] Kishor S. Trivedi, “Probability and statistics with reliability, queuing and computer science applications,” John Wiley and Sons Ltd., Chichester, UK, 2001

[5] Kanoun M. Kaaniche C. Beounes J.C. Laprie and J. Arlat, “Reliability Growth of Fault-Tolerant Software,” IEEE Trans. Reliability, vol. 42, no. 2, pp. 205-219, June 1993.

[6] Kumar, M., Ahmad, N., Quadri, S.M.K. (2005), "Software reliability growth models and data analysis with a Pareto test-effort", RAU Journal of Research, Vol.15, No. 1-2, pp 124-8

[7] Norman F. Schneidewind, “Fault Correction Profiles, “Proceedings of the 14th International Symposium on Software Reliability Engineering, p.257, November 17-21, 2003

[8] Quadri, S.M.K., Ahmad, N., Peer, M.A. (2008), "Software optimal release policy and reliability growth modeling", Proceedings of 2nd National Conference on Computing for Nation Development, INDIACom-2008, New Delhi, India,pp 423-31 [9] R.C.Tausworthe, "A General Software Relibility Process Simulation Technique,"NASA JPL Publication, 91-7, April 1991. [10] R.C.Tausworthe and M.R, Lyu, "A generalized technique for simulating software relibility,"IEEE Software,”Vol.13, No.2,pp.77-88, March 1996.

[11] Robert C. Tausworthe , Michael R. Lyu, “A Generalized Technique for Simulating Software Reliability, “IEEE Software, v.13 n.2, p.77-88, March 1996

[12] S.Gokhale, M. R.Lyu, and K. S. Trividi," Reliability Simulation of Component-Based Software Systems,"Proceedings of the 19th International Symposium on Software Reliability Engineering, pp. 192-201, Paderborn, Germany, November 1998.

[13] S.Gokhale, Michael R. Lyu, and K.S. Trivedi." Reliability Simulation of Fault-Tolerant Software and Systems". In Proc.of Pacific Rim International Symposium on Fault-Tolerant Systems (PRFTS '97), pp. 197-173, Taipei, Taiwan, December 1997.

[14] S. Krishnamurthy , A. P. Mathur, On The” Estimation Of Reliability Of A Software System Using Reliabilities Of Its Components,” Proceedings of the Eighth International Symposium on Software Reliability Engineering (ISSRE '97), p.146, November 02-05, 1997

[15] Swapna S. Gokhale , Kishor S. Trivedi, “A time/structure based software reliability model,” Annals of Software Engineering, v.8 n.1-4, p.85-121, 1999

[16] Swapna S. Gokhale , Kishor S. Trivedi , Michael R. Lyu, “Reliability Simulation of Fault-Tolerant Software and Systems,”

Proceedings of the 1997 Pacific Rim International Symposium on Fault-Tolerant Systems, p.167, December 15- 16, 1997

[17] S. Y. Kuo, C. Y. Huang, and M. R. Lyu, “Framework for Modeling Software Reliability, Using Various Testing- Efforts and Fault-Detection Rates,” IEEE Transactions on Reliability,” Vol. 50, No. 3, pp. 310-320, Sept. 2001.

[18] Tausworthe, Robert C., "A General Software Reliability Process Simulation Technique," Technical Report 91-7, Jet Propulsion Laboratory,Psaadena, CA, March 1991.

Figure

Figure 2-Software Reliability curve
Figure 4 - Engineering approach to high quality software development
Figure 5- Three phase diagram
Figure 6 – Error removal vs Reliability
+2

References

Related documents

(c) to insert a new section 18A which prohibits the registration of certain documents relating to (a) transaction which is prohibited by any existing Central or State Act for the

Thus, the goal of the research is to define the effective ways of students’ foreign language communicative competence formation by means of reading and speaking activities within

The same point applies to the case of the state as well: Even if the lives of the individuals within a state are not threatened, they may nevertheless be permitted to use lethal

People who wish to stop using benzodiazepines after using them regularly over a longer term will need to cut back their use gradually over an extended period of time.. This

Control of California's 1970 catastrophe depended upon the nationwide depth of the United States Forest Service, the statewide depth of the California Division of Forestry,

Circuitscape application types are labeled as “LG” for landscape genetics, “MO” for species movement data & habitat models, and “ST” for studies focused on

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

Although the nominal yield tensile strength of the steel bars was 150 and 250 MPa greater than the nominal yield tensile strength of steel tubes ST33.7 and ST26.9, respectively,