Software Development Life Cycle & Process Models

Similar documents
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Requirements Analysis (RA): An Analytical Approach for Selecting a Software Process Models ABSTRACT

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

How To Model Software Development Life Cycle Models

A COMPARISON BETWEEN DIFFERENT TYPES OF SOFTWARE DEVELOPMENT LIFE CYCLE MODELS IN SOFTWARE ENGINEERING

COMPARISON OF VARIOUS SDLC MODELS

(Refer Slide Time: 01:52)

Software Development Life Cycle

Evolving a Ultra-Flow Software Development Life Cycle Model

Unit I. Introduction

A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios

Software Project Models

Software Engineering. What is a system?

A Comparison between Five Models of Software Engineering

Software Development Life Cycle Models- Comparison, Consequences

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

A Survey of Software Development Process Models in Software Engineering

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Elite: A New Component-Based Software Development Model

Agile Processes and Methodologies: A Conceptual Study

Analysis of various Software Process Models

Software Development Life Cycle (SDLC)

International Journal of Advanced Research in Computer Science and Software Engineering

Overview of Software Engineering and the Software Development Process

Evolving a New Software Development Life Cycle Model SDLC-2013 with Client Satisfaction

ASSESSMENT OF SOFTWARE PROCESS MODELS

Introduction to Software Paradigms & Procedural Programming Paradigm

Software Life Cycle Processes

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

What is a life cycle model?

Advanced Software Engineering. Software Development Processes

An Assessment between Software Development Life Cycle Models of Software Engineering

LECTURE-4. Dronacharya College of Engineering

Unit 1 Learning Objectives

What is Software? The Software Development Process. Definition of Software. Why Software?

SOFTWARE PROCESS MODELS

The Spiral development model is a risk-driven process model generator. It

A Review of an MVC Framework based Software Development

Software Testing and Software Development Lifecycles

Redesigned Framework and Approach for IT Project Management

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Umbrella: A New Component-Based Software Development Model

A Comparison Between Five Models Of Software Engineering

SOFTWARE DEVELOPMENT SD

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

International Journal of Advance Research in Computer Science and Management Studies

Standardized software development model for SME software houses in Pakistan

Supporting Workflow Overview. CSC532 Fall06

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Chapter 8 Approaches to System Development

5/19/ Professor Lili Saghafi

Software Engineering Question Bank

Information Systems Development Process (Software Development Life Cycle)

CSE 435 Software Engineering. Sept 16, 2015

A Capability Maturity Model (CMM)

Modeling the Mobile Application Development Lifecycle

The most suitable system methodology for the proposed system is drawn out.

When is Agile the Best Project Management Method? Lana Tylka

Managing TM1 Projects

Software Life Cycle Models

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Alan Dennis, Barbara Haley Wixom, and Roberta Roth John Wiley & Sons, Inc. Slides by Candace S. Garrod Red Rocks Community College 3-1

General Problem Solving Model. Software Development Methodology. Chapter 2A

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Chakra Vs Spiral Model - A Practical Approach

Review of Software Development Methodologies Used in Software Design

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

A Software Engineering Model for Mobile App Development

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

LECTURE 1. SYSTEMS DEVELOPMENT

Analysis of Software Process Models and Applications

DATABASE DEVELOPMENT LIFE CYCLE

Agile Methodologies and Its Processes

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Application of software product quality international standards through software development life cycle

IV. Software Lifecycles

Comparison study between Traditional and Object- Oriented Approaches to Develop all projects in Software Engineering

Foundations for Systems Development

Agile Projects 7. Agile Project Management 21

How To Develop An Application

Rapid Software Development

CS4507 Advanced Software Engineering

Controlling Change on Agile Software Development Projects

Chapter 1: Introduction to Rapid Application Development (RAD) 1. Introductions

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

A Near Zero-Defect Approach to Software Development

Software Development Life Cycle Models - Process Models. Week 2, Session 1

JOURNAL OF OBJECT TECHNOLOGY

Agile Software Development Methodologies and Its Quality Assurance

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Transcription:

Volume 1, Issue 1 ISSN: 2320-5288 International Journal of Engineering Technology & Management Research Journal homepage: www.ijetmr.org Software Development Life Cycle & Process Models Paritosh Deore Preeti Sharma Abstract Process Models are basically the building blocks of a software product. Whenever a software product is engineered the software process is carried out under the planning of certain models and these models are termed as process models. This paper is strictly bound to the various Process Models and SDLC, on which all these process models are based. Keywords SDLC, Waterfall Model, Incremental Model, Prototype Model, Spiral Model. INTRODUCTION Process models are basically the most important part of a software development cycle. Whenever a client reaches a company with his/her requirements the company after a series of planned steps and procedures eventually execute the requirement procedures under a process model (which is selected according to the needs and time slot assigned by the user). In this paper we will cover some important types of models such as Waterfall Model, Prototype Model, Incremental Model, RAD Model, Spiral Model, Evolutionary Model, etc. These models are supposedly used to suit the varied and diverse requirements of the client and also sometimes of surroundings. These models run on the Prateeksha Gupta Sanket Raina basic architecture of SDLC (Software Development Life Cycle). DISCUSSION I. AN OVERVIEW OF SDLC (Software Development Life Cycle) According to SDLC whenever a software product is to be developed/engineered then it have a specific life-cycle that is from its initial state to its final Delivery/ Deployment state. Every software product starts with a request for the product by the customer. This is called the Product Conception. Starting with this stage it undergoes transformation through a series of identifiable stages until it is fully developed and released to the customer. After release the product is used by the customer and is finally retired when it is no longer useful. This forms the essence of the life cycle of every software product. Based on this we can define software lifecycle as given in Fig. 1 Software process models are general approaches for organizing a project into activities. International Journal of Engineering Technology & Management Research Vol 1 Issue 1 February 2013 231

Help the project manager and his team to decide:- What work should be done; In what sequence to perform the work. These models should be seen as aids to thinking, not rigid prescriptions of the way to do things. Each project ends up with its own unique plan. Fig. 1 Software Development Life Cycle SDLC is a series of identifiable steps that a software product undergoes during its lifetime. FEASIBILITY: Determining if the proposed development is worthwhile. Market Analysis:- Determining if there is a potential market for this product. REQUIREMENT: Determining, what functionality the software should contain. Requirement Elicitation:- Obtaining the requirements from the user. Domain Analysis:- Determining what tasks and structure are common to this problem. PROJECT PLANNING: Determining how to develop the software. Cost Analysis:- a) Cost Estimate. b) Software quality and assurance. (SQA). c) Determining activities that will help to ensure quality of the product. Work Breakdown Structure:- Determining the sub-tasks necessary to develop the product. It is subdivided into modules. DESIGN: Determining how the software should provide the functionality. a) Architectural Design:- Designing the structure of system. b) Interface Design:- Specifying the interface for the parts of the system. c) Detailed Design:- D e s i g n i n g t h e algorithms for the individual parts. IMPLEMENTATION: Building the software, Coding. TESTING: Executing the software with data to ensure that the software works correctly. There are different types of testing in Software Engineering like Unit Testing, Integration Testing, and Alpha & Beta Testing etc. DELIVERY: Providing the customer with an effective Software solution. Installation:- Making the software available at the customer s operational site. Either ON-SITE, wherever the Client requests the software product to be delivered OR OFF- SITE, the client himself has to collect the software product form the Company. Training:- Teaching the client s company OR the Client to use the software. HELP-DESK:- Answering the questions of the user. International Journal of Engineering Technology & Management Research Vol 1 Issue 1 February 2013 232

MAINTENANCE: Updating and improving the software to ensure continued usefulness. II. PROCESS MODELS As per the requirements that were generated by client there were many types of process models generated by companies. In this paper we ll have an overview of the following various process models:- 1. Waterfall model. 2. Prototype model. 2. Incremental model. 3. Spiral model. 4. RAD model. These are some of the most frequently used models. THE WATERFALL MODEL The waterfall model is the classical model of software engineering. This model is one of the oldest models and is widely used in S NO.rfghtrh Requirement Specification Beginning Understanding Requirements TABLE Comparison of Different Process Models government projects and in many major companies. As this model emphasizes planning in early stages, it ensures design flaws before they develop. In addition, its intensive document and planning make it work well for projects in which quality control is a major concern. The Waterfall is the oldest paradigm for software engineering. However, over the past two decades, criticism of this process model has caused even ardent supporters to question its efficacy. Among the problems that are sometimes encountered when the waterfall model is applied are:- Real project rarely follow the sequential flow that the model proposes. Although the linear model can accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the project team proceeds. PROCESS MODELS Waterfall Prototype Incremental Spiral Well Understood Frequently Changed Not Well understood Beginning Not Well understood Beginning Well Understood Cost Low High Low Intermediate Guarantee of Success Low Good High High Resource Control Yes No Yes Yes Cost Control Yes No No Yes Simplicity Simple Simple Intermediate Intermediate Risk Involvement High Medium Medium Low Expertise Required High Medium High High Changes Incorporated Difficult Easy Easy Easy Risk Analysis Only at beginning No Risk Analysis No Risk Analysis Yes Overlapping Phases No Yes No Yes Flexibility Rigid Highly Flexible Less Flexible Flexible International Journal of Engineering Technology & Management Research Vol 1 Issue 1 February 2013 233

THE PROTOTYPE MODEL A prototype is an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from. Prototyping is a technique for providing a reduced functionality or a limited performance version of a software system early in its development (Balzer 1983, Budde 1984, Hekmatpour 1987). In contrast to the classic system life cycle, prototyping is an approach whereby more emphasis, activity, and processing are directed to the early stages of software development (requirements analysis and functional specification). In turn, prototyping can more directly accommodate early. Fig. 2 The Prototype Model A prototype is made first and based on its final product is developed. A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process. From this sample we learn and try to build a better final product. Please note that this prototype may or may not be completely different from the final system we are trying to develop. Some of its advantages are that It could serve as the first system, The customer doesn t need to wait long as in the Linear Model, Feedback from customers are received periodically and the changes don t come as a last minute surprise. But it also have some disadvantages Customer could believe the prototype as the working version, Developer also could make the implementation compromises where he could make the quick fixes to the prototype and make is as a working version, Often clients expect that a few minor changes to the prototype will more than suffice their needs. They fail to realise that no consideration was given to the overall quality of the software in the rush to develop the prototype. THE INCREMENTAL MODEL The incremental model combines elements of the linear sequential model (applied repetitively) with the iterative philosophy of prototyping. The incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable increment of the software. For example, word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more sophisticated editing and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment. It should be noted that the process flow for any increment can incorporate the prototyping paradigm. When an incremental model is used, the first increment is often a core product. That is, basic requirements are addressed, but many supplementary features (some known, others unknown) remain undelivered. The core product is used by the customer (or undergoes detailed review). As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. This process is repeated following the delivery of each increment, until the complete product is produced. International Journal of Engineering Technology & Management Research Vol 1 Issue 1 February 2013 234

and risk is assessed. Each subsequent spiral builds on the baseline spiral. Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase. Fig. 3 The Incremental Model But as we can see some advantages of this model are some working functionality can be developed quickly and early in the life cycle, less costly to change the scope/ requirements. But it have some disadvantages too - More resources may be required, Does not allow iterations within an increment, Defining increments may require definition of the complete system. THE SPIRAL MODEL Fig. 4 The Spiral Model The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements is gathered Some advantages are - High amount of risk analysis hence, avoidance of Risk is enhanced, Strong approval and documentation control, Additional Functionality can be added at a later date. It has some disadvantages too such as - Can be a costly model to use, doesn t work well for smaller projects, Project s success is highly dependent on the risk analysis phase. CONCLUSION AND FUTURE WORK After completing this research, it is concluded that: 1. There are many number of software models present that can cater the needs of any software product. 2. All these models were established between 1970 and 1999. 3. Since every model is a step forward of the previous model thus each model conquers the inability or disadvantages of the previous model. 4. Among the above model Prototype Model may prove to be an ideal model. Finally, some topics can be suggested for future works: 1. Making a comparison between the software processes management m o d e l s, s o t h a t f u t u r e enhancements could be easily implied. International Journal of Engineering Technology & Management Research Vol 1 Issue 1 February 2013 235

2. Requirement Understanding is the most important part of a software process, thus models should be more intended towards the client s requirement gathering. 3. Since client s needs changes constantly thus a process model should contain appropriate measures to incorporate those changes without disturbing or affecting the other phases of a software process. ACKNOWLEDGEMENT This work is carried out with the support of Takshshila Institute of Engineering and technology.. REFERENCES: [1] http://www.ics.uci.edu/~wscacchi/ Papers/SE-Encyc/Process-Models- SE-Encyc.pdf [2] http://en.wikipedia.org/wiki/ Software_development_process [3] http://www.cs.rit.edu/~hpb/scia/ Bridge_2005/intro_se_workshop_ materials/s2_process_models.pdf [4] h t t p : / / w w w. cs. t o r o n t o. e d u / ~torsten/thahmann_csc444_ Tutorial1_SWDevProcesses.pdf [5] http://www.ijcsi.org/papers/7-5-94-101.pdf [6] http://people.sju.edu/~jhodgson/se/ models.html [7] http://citeseerx.ist.psu.edu/ v i e w d o c / s u m m a r y? doi=10.1.1.22.9145 [8] h t t p : / / w w w. w i z i q. c o m / t u t o r i a l / 1 2 1 0 8 3 - S o f t w a r e - Engineering-Process-Models- Paradigms-I [9] http://www.smccd.net/accounts/ brenner/lsci106/reproces.html [10] http:// www.googl e.co.in/ url? sa=t&rct=j&q=&esrc=s&source= web&cd=3&ved=0cekqfjac&ur l=http%3a%2f%2fciteseerx.ist. psu.edu%2fviewdoc%2fdown load%3fdoi%3d10.1.1.89.6886% 2 6 r e p % 3 D r e p 1 % 2 6 t y p e % 3 D p d f & e i = 3 - ALUamqGYvJrAeM2IDwDA&us g = A F Q j C N H H d i W A X - O2orKKMWawoRcE4YgsAg&bv m=bv.41867550,d.bmk&cad=rja [11] http://www.ijcst.com/wp-content/ t h e m e s / p a n o r a m a / p d f 2 / deepshikha.pdf [12] http://en.wikipedia.org/wiki/ Waterfall_model [13] http://www.ics.uci.edu/~wscacchi/ Papers/SE-Encyc/Process-Models- SE-Encyc.pdf [14] http://www.google.co.in/search? q=incrementing+model+in+softwa re+engineering&hl=en&tbo=d&so urce=lnms&tbm=isch&sa=x&ei= 7GoeUbitE8f3rQfts4GYDw&ved =0CAcQ_AUoAQ&biw=1032&bi h=561 [15] http://www.google.co.in/search? q=spiral+model&hl=en&tbo=d&s ource=lnms&tbm=isch&sa=x&ei = - 2 w e U Y D o J s - xraf11yc4cg&ved=0cacq_au oaq&biw=1032&bih=561#imgrc =3MpqgN9l8CuYBM%3A% 3 B k L X S F I 3 Y C U z H N M % 3 B h t t p % 2 5 3 A % 2 5 2 F % 252Fupload.wikimedia.org% 252Fwikipedia%252Fcommons% 2 5 2 F 3 % 2 5 2 F 3 3 % 252FSpiral_model_(Boehm% 2 5 2 C _ 1 9 8 8 ). p n g % 3 B h t t p % 2 5 3 A % 2 5 2 F % 2 5 2 Fen.wikipedi a.org% = 2 5 2 F w i k i % 2 5 2 F F i l e % 2 5 3 A S p i r a l _ mo d e l _ ( B o e h m% 252C_1988).png%3B730%3B600 [16] http://www.softdevteam.com/spirallifecycle.asp [17] http://www.sdlc.ws/spiral-model/ [18] http://samples.jbpub.com/978076378 5345/85345_CH04_Tsui.pdf [19] http://www.amazon.com/software- Process-Modelling-Engineering- Knowledge/dp/9812566198 International Journal of Engineering Technology & Management Research Vol 1 Issue 1 February 2013 236