155x Filetype PDF File size 0.61 MB Source: www.jetir.org
© 2019 JETIR March 2019, Volume 6, Issue 3 www.jetir.org (ISSN-2349-5162) Software Development Life Cycle: Factors affecting Software Quality Dr. Hemant Verma Assistant Professor of Computer Sciences Department of Mgt. & Computer Sciences,Vaish College,Bhiwani (Haryana) Abstract: Software Development Life Cycle (SDLC) is a well defined systematic approach for the development of a reliable high quality software system. It is an important concept used in software development industry and also describes the step by step process for developing good quality software for users. There are many phases that are followed one after another which are necessary for software development such as requirement specification and gathering, feasibility study, analysis, design, implementation and maintenance. Software development life cycle applies to a range of hardware and software configurations. In the early years, hardware was costly and software relatively cheap but in digital era, hardware is cheap and software is expensive. Now well engineered software products are in demand so software are becoming more and more expensive. In software development quality is the most important factor that defines customer satisfaction which is directly related to the success of a software project. The research work illustrate here various factors that effects quality of software and different phases of SDLC. Index Terms: SDLC, Phases, Software Quality, Factors, SQA INTRODUCTION Software Development Life Cycle (in short SDLC) is a workflow process. The initial concepts of SDLC were originated in the 1960s to develop large scale functional business systems. It defines all the activities and phases that are required in development of any software system. SDLC is used to develop quality software in fix time that fulfill needs of customer. By using SDLC, quality of a product can be maintained. System analyst, designers and developers makes plan to implement the application and deliver the product on time and within budget. In today’s era, technology plays important role in successful completion of any work so it is necessary to develop big and complex systems which meets the alternating and expanding requirements of customers. There are many phases in software development process like requirements gathering and analysis, system analysis, system design, coding, testing, implementation. Each phase receives input from previous phase and produce output. This output is input to another phase .Figure 1. Shows various phases in SDLC. Fig 1. various phases in development of software Software quality is a procedure that evaluates and improves the performance of software. Quality depends upon the customer satisfaction which can be achieved through applying standards. Quality of the software developed plays an important role in software industry and to achieve a good position in IT industry it is necessary to produce high quality softwares. Because of high customer demand it is very important to JETIR1903A29 Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org 198 © 2019 JETIR March 2019, Volume 6, Issue 3 www.jetir.org (ISSN-2349-5162) achieve high quality software. There is very high competition in market today. No company can afford to make mistakes and then correct them after delivering product. In software industry, developed countries like U.S.A. are improving day by day but countries that are not so much developed are struggling with so many reasons. There are many factors that can effect the quality of software like scalability, reliability, availability, portability, extensibility, adaptability, maintainability, recoverability, testability etc. To avoid these problems organizations should follow proper management plans. PHASES OF SDLC SDLC stands for Software development life cycle. SDLC is considered to be the foundation for all software development methodologies. An increase in demand for software to meet customer needs effectively but with less cost and faster delivery, has put tremendous pressure on modern organizations. SDLC is a method by which quality software can be developed which helps in quality production and the customer satisfaction. It involves many phases described as follows: Requirement Analysis In the requirement analysis phase also called requirements engineering, this phase is the main focus of the project managers and stake holders. The aim of this phase to grab out all the details of the project and to capture the detail of each requirement and to make sure everyone understands the scope of the work and how each requirement is going to be fulfilled. This phase is a team effort that demands a combination of hardware, software and human factors. Feasibility Study As the name implies, a feasibility study is used to determine the viability of an idea, such as ensuring a project is operationally and technically feasible as well as economically justifiable. A feasibility study is the analysis which establishes whether a business or project is a worthwhile investment of time. This phase helps in answering the question “should we proceed with the proposed project idea?” A feasibility study might discover new ideas that can completely change scope of a project. System Analysis This phase includes understanding of limitations of software product, problems related to system or changes to be done in existing systems, identifying the impact of the project on organization etc. System analysts collect facts from existing users. Design In this phase the system and software design is prepared from the requirement specifications. Developers and technical architects start the high-level design of the software. It gives the architecture of the software product to be developed .Various parameters are discussed with stakeholders like risks, technologies to be used, capability of the team, project constraints, time and budget etc. This design phase serves as input for the next phase of the model. Development This step also known as coding or programming phase. By choosing suitable programming language developers start build whole system by writing code. Task are divided into various modules and assigned to various developers. The team of program developers should be experts in programming so that they can they can develop good software product. Testing Before delivering software to customers testing is last phase. The testing team starts testing the functionality of the entire system. This is done to verify that the entire application works according to the customer requirement. During testing, testers can find some errors which they report to developer’s team. The development team fixes the bug and sends back for a re-test. This process continues until the software is bug-free and working according to user’s need. JETIR1903A29 Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org 199 © 2019 JETIR March 2019, Volume 6, Issue 3 www.jetir.org (ISSN-2349-5162) Implementation After successful testing and no errors remain in the software, software is installed on user’s computer and user actually starts using it. In this phase all the requirement are implemented which were gathered from client. At time, at users end software need post-installation configuration. It also includes training of software to the user for efficient working. Maintenance Once when the customers starts using the developed system then the actual problems comes up and needs to be solved from time to time. The process of caring the developed product is called maintenance. The software is maintained timely by updating the code according to the changing environment and technology. The aim of software maintenance is to remove errors, to change platforms requirements and add new features to existing software. SOFTWARE QUALITY For success of any software, quality is a very important factor. Software quality is an abstract concept. Quality makes the small difference in successful and failed software projects. When we talk about software quality, we are actually talking about the evaluation of the software based on certain attributes. This is the factor that can improve performance of a software. Its presence can be difficult to define, but its absence can be easy to see. A software quality is defined based on the external and internal features of the software. External quality means how a software operates in real time scenario and how useful it for users and internal quality depends on how effectively code is written. User focus more on external quality but external quality depends on how effectively code is written. But there is no particular definition of software quality. Some says quality can be defined in particular context and some says it can’t be defined. Software quality assurance (SQA) plays a important role in the software development lifecycle (SDLC) and can effect a project’s overall success. The goal of SQA is to ensure that the development and maintenance processes are continuously improved to produce products that meet user’s requirements and to inform management about the quality of product. SQA incorporates all software development processes starting from defining requirements to coding until release. Its prime goal is to ensure quality. FACTORS AFFECTING SOFTWARE QUALITY Be it a software or anything else, quality means measuring the value. In past few years the area of software quality has improved significantly. While developing a software a developer should always keep in mind the factors that a good software should have. Here are some factors: Correctness: These requirements deal with the correctness of the output of the software system. Correctness is how well a software fulfill actual requirement and specifications. It is wasteful if it does not work correctly. Functional Stability: Stability is to check the efficiency of a developed software beyond normal operational capacity or to a breakpoint .A software is said functional stable if it meets the needs when used under certain condition. Security: Security include authorization and authentication techniques, network attack protections, data encryption etc . On both web and mobile based apps it is important to shield confidential information. Always keep in mind all type of security leaks. JETIR1903A29 Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org 200 © 2019 JETIR March 2019, Volume 6, Issue 3 www.jetir.org (ISSN-2349-5162) Scalability: A scalable system even if size/load increases on system will respond to user in acceptable amount of time. A software that is described as scalable has an advantage because it is more adaptable to the increased productivity, changing needs or demands of its users or clients. Flexibility: Flexibility is ability of a software to be updated, modify or remove without changing the functionality of current software. These include adapting the ongoing software to additional circumstances and customers without changing the software. Change is undeniable factor in software so this is one of the most important property of a quality software. Interoperability: Interoperability is the ability of different systems or products to connect and communicate in a coordinated way. Organizations can achieve higher efficiency with interoperability and can have more holistic view of information. Maintainability: Maintainability means fixing and modifying the system or update software for improvement in performance or for correcting errors. It also includes the addition of new functionality to fulfill new demands of customers. Efficiency: Efficiency requirements deal with the hardware resources needed to perform all the functions of the software system in conformance to all other requirements. It includes factors such as response time , processing capability, memory requirement, data communication capability and throughput. Reusability: Reusability is the extent to which parts of the software can be reused in development of other softwares. The reuse of software saves development resource and saves the time . Software reusability results into increased productivity and quality by minimizing risk of newly developed projects. Reliability: Reliability deals with the duration of fault-free operation of a software. It is the property that determines how well a software meets its requirements. Software reliability is a key part in software quality. Testability: Testability is the test of a module or system to check whether it performs its desired function or not. It improves quality of a software and allow test automation. Usability: Usability is how easily user can interact with system. A software is not so that much useful if user cant use it easily or if it is not user friendly. A usable software should also support different accessibility types of control for people with disabilities. Portability: A quality software should run on as much various platforms and portability is about adapting software that can run on different platforms, If a software is not able to run on other platform then it is wasteful. CONCLUSION For the development of a software SDLC is a process that creates a structure. There are many phases in SDLC and each phase has its unique function. SDLC is a process for designing high quality, low cost software in shortest period of time. A high quality product is one which has associated with it a number of quality factors. Software quality depends on many factors. Software engineers should follow SDLC phases for creating a good quality software product and must concerns on factor affecting software quality. JETIR1903A29 Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org 201
no reviews yet
Please Login to review.