<<

International Journal of Advances in Electronics and , ISSN: 2393-2835 Volume-2, Issue-3, March-2015 IDENTIFYING NEED OF ASSURANCE FOR IMPROVING SOFTWARE RELIABILITY

1ANSHU BANSAL, 2SUDHIR PUNDIR

1Ph.D. Scholar, Dept. of Comp. Sc. Mewar University, Campus Ghaziabad, India1 2Professor, HOD, Dept. of Computer Science, S.D. (P.G.) College, Muzaffarnagar, India2 E-mail: [email protected], [email protected]

Abstract- There is an increasing use of software day-by-day, in all areas. From electronic devices like cell phones to software applications like ecommerce, banking, medical, reservation and others. Due to the widespread acceptance and use of software systems, in various areas of life, dependency on software application is increasing. Hence software bugs are proving to be costly, and sometimes fatal for the whole human life controlled by software application systems now-a-days. Software (SQA) is a systematic approach to achieve quality of software and adherence to software reliability throughout the life cycle (SDLC). In recent times, SQA has become a required functional process in SLDC to enhance capabilities and software reliability. This paper will act as a follow-up to the research conducted in 2012 regarding the Software Reliability and also will form a base for further research in this area to incorporate SQA for improving software reliability. Software Reliability Testing of software is the basic test technique based on estimation of the software reliability. This paper will identify the need and importance of Software Quality Assurance in SDLC models for improving Software reliability.

Keywords- Software Quality, Software Reliability, Fuzzy Logic, Reliability Estimation, Software Development Life Cycle(SDLC), Software Quality Assurance(SQA).

I. INTRODUCTION which leads to an unreliable software solution in most cases. Software reliability defines the robustness and Software Quality Assurance is a process to provide uniform acceptance of software solution across varied appropriate visibility into Software Development Life environments. For creating reliable software Cycle and delivery of Reliable Software Product solutions, following best practices are generally used being designed and developed thru a Quality in IT industry by IT executives: Approach. For example: the general software cycle comprises of requirement analysis, design, (i) First of all application usage and possible break- development, testing, deployment, maintenance. points (failures) are to be diagnosed in the The question arises: system. Application operational flow and support How much reliable the entire process is? are important for reliable running of application. How can a task give 100% reliable results every All possible failure points need to be captured time? during early stages of development life cycle; Where reliability lies in the entire process? such as design, development; so that alternative How the quality of results be assured as reliable? solutions can be provided for the failures. All such questions are the point of consideration for (ii) Obtaining a high reliable software application IT professionals. These questions can be answered by solution needs high reliable and high a specified process for Software Quality Assurance knowledgeable working professionals including which can be defined in a framework. expertise developers, design architect with a Though billions of dollars are spent trying to develop focus on preventing application failures. high quality software, still software bugs are very (iii) Recommended use of robust common within software application. For most with reliability features like memory protection, computer application systems, the cost of software file protection, storage space management, constitutes a major part of the cost of the system. recovery tools, dynamic system configuration, Since software is so important and valuable for load balancing etc. human life-work now-a-days, if software (iv) Application design should consider the facts of development process lacks quality, then the software application expendability, etc. Most that’s developed will surely lack quality and may not reliable application systems are said to have be reliable. benefits to improve further when required. Application failure if captured at design level, II. BEST PRACTICES FOR SOFTWARE can be treated much easier and solution should RELIABILITY be permanent for reliable systems. (v) Reliable applications may also lose reliability in While developing software applications, most of the due course of time. Hence there is a need of times only its application and usage is considered monitoring the application and keep its reliability

Identifying Need of Software Quality Assurance for Improving Software Reliability

41 International Journal of Advances in Electronics and Computer Science, ISSN: 2393-2835 Volume-2, Issue-3, March-2015 check on-going. There are various tools for this activity, by using them we can check the reliability of software applications on the ground of load balancing, web service hosting, synchronization, real time status view of application etc. (vi) Delivering a reliable software application is more based on the process used rather coding and development. The entire application development cycle needs to be reliability-proof for a good reliable software delivery.

There is a hard need of good Quality Assurance & Engineering process to be followed for developing a Fig.3.1: most reliable software application. All these phases are related to each other in a way

that one phase completion leads to the initiation of Software Quality Assurance & Engineering process next phase. must be based on Quality strategies and development methodologies. (ii) Prototype Model:

Prototype is the simulation of working function and III. REVIEW STUDY OF VARIOUS SDLC has almost all components equivalent to functional MODELS product. In this type of SDLC process model,

customer-user/client has very basic expectations Software Development Life Cycle(SDLC) is the from a software product, hence detailed requirement process of developing software and managing its information is generally missing. progress through various phases. Any software when planned to develop, has a base formulation as its basis and drafted as Functional requirements. Various phases of SDLC are; , Software designing, Development phase, Software Testing, Software testing under user environment for UAT(User Acceptance Testing), and then software is ready to use in Live environment.

In this way, software application is developed and released thru Software Development Life Cycle(SDLC).

A) SDLC Models There are various approaches used for SDLC progression, defined as SDLC models, such as:

Fig.3.2: Prototype Model (i) Waterfall model (ii) Prototype model Prototype model works with continuous involvement (iii) V-model of user with feedbacks and more specifications time (iv) Agile model to time. But this model has more iteration and limits the proper analysis of project because the Here, we are giving a review study of these models: development focus is on a specific prototype only.

(i) Waterfall Model: (iii) V-Model: Waterfall model for SDLC was the first model Basic idea of V-model is “Verification & Validation” defined for software development. It is widely used In some manner; it is similar to Waterfall model in software industry since long. Waterfall process where each stage has its own execution of process. It model defines the complete software development means, SDLC is defined in V-shape where each into several phases as follows: phase must be completed before next phase and a) Requirement specification phase verification process is planned in parallel with each b) phase phase. c) Implementation phase d) Testing phase Every phase is accompanied with a testing stage for e) Deployment of system & maintenance corresponding phase verification and validation.

Identifying Need of Software Quality Assurance for Improving Software Reliability

42 International Journal of Advances in Electronics and Computer Science, ISSN: 2393-2835 Volume-2, Issue-3, March-2015

Fig.3.4b:Agile Model

Fig.3.3:V-Model Agile model allows a flexible approach in software

development. It gives freedom to implement changes V-model defines that Requirement gathering is the frequently during development itself with little cost. initial stage of software development, but System test Implementation of new change effect only a small plan is made ready before development. High Level piece of software product and not the entire Design focuses on complete application system application and hence minimizes the rework efforts. designing and architecture. Simultaneously, Agile model works on the fact that user’s need is fast Integration Test Plan is created for testing software changing in dynamic business world and hence the system integration for checking system ability to changes can be added or removed on the basis of work together. Further, Low level design phase is the user’s feedback. This way the outcome application actual design of application software components product will be much finished and satisfying with application logic. This phase also has customer’s need much. Component test creation. With the next

Implementation phase, all test execution get starts.

This type of SDLC model is useful for small to medium size software application projects where all application requirements are defined properly and freeze.

(iv) Agile Model: Agile development model is a type of Incremental model where software is developed in incremental manner with rapid cycles/iteration. There are small releases planned in Agile model where each release Fig.3.5:Waterfall Model vs Agile Model[3] makes a building block for the Final software product. Each release is thoroughly tested and Agile model and Waterfall model differs from each verified to ensure the quality of software. other very minimally where in Agile model, phases work parallel in-spite of depending on previous phase completion.

After having look over all these SDLC models, it is found that Waterfall-model, V-model and Agile model are most commonly used SDLC models in industry.

IV. SOFTWARE QUALITY ASSURANCE FOR IMPROVING SOFTWARE RELIABILITY

Software Quality Assurance can be defined as :  Software Quality Assurance is a process to provide SDLC management with appropriate visibility into Software Development Life Cycle & Delivery of the products being developed and Fig.3.4a:Agile Model[22] designed thru a qualitative approach.

Identifying Need of Software Quality Assurance for Improving Software Reliability

43 International Journal of Advances in Electronics and Computer Science, ISSN: 2393-2835 Volume-2, Issue-3, March-2015  Software Quality Assurance is usually a focus on Munch [13] indicated that it was hard to the process of developing code and most error- determine the real cost of failed software free product delivered. projects; however, in the United States alone  Software Quality Assurance is an umbrella it was estimated around $75 billion a year in activity that is applied throughout the software rework costs and abandoned systems. The process. survey claimed that in the United States,  Software Quality Assurance process handshakes about one sixth of all projects were with project-plan and ensures standard quality at completed on time and within budget, nearly every step in project life-cycle. one third of all projects were canceled immediately, and around 50% of projects IT professionals are committed to quality in software were considered “difficult to complete”. Out application; however, the following statements say of the canceled/difficult projects, the average some of the confusing ideas shared by many project was 189% over budget, 222% behind individuals: schedule, and contained only 61% of the originally specified features.  Quality requires a commitment, especially from (ii) Purpose & Goal of Software Quality top management of the organization. A need of Assurance Framework for Software close cooperation of management and team is Reliability visible in order to make it happen. Software Quality Assurance Framework is  Many individuals believe that defect-free software best suited in today’s business oriented products are impossible, and hence certain levels scenario where IT revolves all around of defects are accepted as normal and acceptable. business and business critical application  High quality demands high cost. software are great threat to business economy due to prolonged project cycles.  Quality demands requirement specifications in a) Need of Software Quality Assurance for enough detail that the products produced can be Reliability quantitatively measured against predefined and freeze specifications. Many organizations are not  A approach for willing to expend the effort to produce SDLC. specifications at the level of detail required.  Effective use of  Developers often believe that standards block technology throughout SDLC for improving their creativity, and thus do not abide by standards reliability. compliance. However, for achieving quality in  Effective technical reviews throughout the software, well-defined standards and procedures software development life-cycle. must be followed.  Defined Testing strategy. (i) Problem areas  Controlled . According to Pham[19]; software project  Assurance of Software development failures could be attributed to conflicts compliance standards. between business and IT executives.  Effective analytical metrics for software Business executives seemed to be allocating process. fewer resources as they focused more on b) Goals of Software Quality Assurance economics while IT executives focused on  Ensuring customer satisfaction through technical advancement with available involvement of all responsible stakeholders technology. The need for error-free software during Software Development & Delivery remained a challenge to the IT industry since by learning how to reliably produce and long. Catal, Diri [2] shared the focus on deliver quality software. importance of success of software  Responsible stakeholders with reference development, which depended on are IT Project team(developers, testers), functionality, quality, and timeliness. Business user groups, Deployment team, Catelani, Ciani, Scarano, Bacioccola [4] also infrastructure team. indicated that unless developed successfully  All Software Quality Assurance standards to perform its desired function, the purpose are to be defined for Software Quality of software development was defeated. Assurance. Koru, Dongsong Zhang , El Emam,  All Software Quality Assurance activities Hongfang Liu [12] urged that there were are planned in advance before development many possible root causes of software starts. project failures primarily; poor planning and  Adherence of the software products and a lack of training. Scarpino [16] explained activities to the standards, procedures, and that a software failure occurred when a piece requirements is verified objectively by of the software failed to perform as required reviews of standard documents. and expected by user. In another study,

Identifying Need of Software Quality Assurance for Improving Software Reliability

44 International Journal of Advances in Electronics and Computer Science, ISSN: 2393-2835 Volume-2, Issue-3, March-2015 Having mentioned all these facts about software http://www.acmqueue.org/modules.php?name=Content&pa failures, there is a visible need to identify the facts to =showpage&pid=281 [7] Feldman, S. (2006). Quality Assurance: Much More than eliminate or reduce these losses significantly. SQA Testing. Retrieved February 10, 2008, from Association process framework is to be applied to each phase of from Association for Machinery: SDLC to keep proper tracking of every phase output http://www.acmqueue.org/modules.php?pa=showpage&pid and so minimizing risk of bugs/issues to next level. =276&name=Content [8] Hansson, J ; Lewis, B ; Hugues, J ; Wrage, L ; Feiler, P ; Morley, J “Model-Based Verification of and Non- CONCLUSION & FUTURE WORK Functional Behavior using AADL”Security& Privacy, IEEE on 30 October 2009 Software Quality and Reliability is the main focus of [9] Hribar, L. , Burilovic, A. , Huljenic, D. “Implementation of the Software Quality Ranks method in the legacy product any software engineering project. Without measuring development environment” Telecommunications, 2009. its reliability, we cannot be sure of the level of quality ConTEL 2009. 10th International Conference on 8-10 June in application. However, organizations can 2009 sometimes rush into implementing a SQA without [10] Huai Liu , Fei-ChingKuo , TsongYueh Chen “Teaching an End-User Testing Methodology”Software Engineering first establishing a viable (SQA) process. To assure Education and Training (CSEE&T), 2010 23rd IEEE that testing is conducted properly, the correct Conference on 9-12 March 2010 procedure must be implemented. This paper identifies [11] Jani, Hajar Mat “Applying Case-Based Reasoning to the need of SQA framework process for improving specifications quality analysis system”Software Engineering and (SEDM), software reliability and quality. General SDLC 2010 2nd International Conference on 23-25 June 2010 processes are applied to different type of projects [12] Kayes, M.I. “ prioritization for regression testing under different conditions and for different business based on fault dependency” Electronics Computer requirements. There are various type of SDLC model Technology (ICECT), 2011 3rd International Conference on 8-10 April 2011 (Waterfall Model, Proto Type Model, V-Model, [13] Koru, A.G. , Dongsong Zhang , El Emam, K. , Hongfang Agile-model etc). But in all these models, the generic Liu “An Investigation into the Functional Form of the Size- approach of application development and release is Defect Relationship for Software Modules” Software followed. In this paper, it is concluded that SQA Engineering, IEEE Transactions on March-April 2009 [14] Munch, J. “Risk Management in Global Software process is needed to improve SDLC process through- Development Projects: Challenges, Solutions, and out all SDLC phases and not at a single phase only. Experience” Global Software Engineering Workshop Future work for this area will be to define SQA (ICGSEW), 2011 Sixth IEEE International Conference on process for SDLC phases. This will help taking the 15-18 Aug. 2011 [15] Murphy, N. (2002). A Question of Quality. Embedded maximum advantage of SQA process for improving Systems Programming. 15(2), pp. 30-35. Software Quality and its Reliability. [16] Scarpino, J. (2008). Quality Process First; Quality Testing Second. Retrieved March 8, 2008, from Software Quality REFERENCES News: http://searchsoftwarequality.techtarget.com/news/column/0, 294698,sid92_gci1289241,00.html [1] Agrawal, M., and Chari, K., Software Effort, Quality and [17] Scarpino, J., & Kovacs, P. (2008). An Analysis of a Cycle Time: A Study of CMM Level 5 Projects, IEEE Software Quality Assurance Tool’s Implementation: A Case Trans. on Software Eng., 33, (3), (2007), 145-156. Study. Journal of the International Association for [2] Agarwal, R. ; Nayak, P. ; Malarvizhi, M. ; Suresh, P. ; Computer Information Systems, VOL IX, No. 2, 2008[9]. Modi, N. “Virtual Quality Assurance Facilitation Model” [18] Ward-Dutton, N. (2007). Governance Ensures Consistency Global Software Engineering, 2007. ICGSE 2007. Second Across Projects. Retrieved February 12, 2008, from IEEE International Conference on 27-30 Aug. 2007 Computer Weekly: [3] Agile Vs Waterfall (http://www.sdlc.ws/agile-vs-waterfall/) http://www.computerweekly.com/Articles/2007/10/01/2270 [4] Catal, C. , Diri, B. “A Conceptual Framework to Integrate 89/governance-ensures consistency-across-projects.htm Fault Prediction Sub-Process for Software Product Lines” [19] Zheng Yan , Prehofer, C. “Autonomic Trust Management Theoretical Aspects of Software Engineering, 2008. TASE for a Component-Based Software System” Dependable and '08. 2nd IFIP/IEEE International Symposium on 17-19June Secure Computing, IEEE Transactions on Nov.-Dec. 2011 2008 [20] Pham, H., System Software Reliability, Reliability [5] Catelani, M. , Ciani, L. , Scarano, V.L. , Bacioccola, A. “A Engineering Series, Springer, (2006). Novel Approach To Automated Testing To Increase [21] Pressman (2005), software engineering book, TMH. Software Reliability” Instrumentation and Measurement [22] Software Testing and Quality Assurance (Source: Technology Conference Proceedings, 2008. IMTC 2008. http://www.software-quality-assurance.info/) IEEE on 12-15 May 2008. [23] SDLC Agile Model [6] Donat, M. (2006). Orchestrating an Automated Test Lab. (http://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm) Retrieved February 10, 2008, from Association for Computing Machinery:



Identifying Need of Software Quality Assurance for Improving Software Reliability

45