Software Project Models



Similar documents
A Comparison between Five Models of Software Engineering

Software Development Life Cycle

Software Engineering. What is a system?

A Comparison Between Five Models Of Software Engineering

An Assessment between Software Development Life Cycle Models of Software Engineering

How To Model Software Development Life Cycle Models

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

(Refer Slide Time: 01:52)

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

A Survey of Software Development Process Models in Software Engineering

ASSESSMENT OF SOFTWARE PROCESS MODELS

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

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

Unit 1 Learning Objectives

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

Evolving a Ultra-Flow Software Development Life Cycle Model

Software Development Life Cycle (SDLC)

What is a life cycle model?

Lecture 3 Software Development Processes

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

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

Software Engineering. Objectives. Designing, building and maintaining large software systems

To introduce software process models To describe three generic process models and when they may be used

Software Life Cycle Processes

SOFTWARE ENGINEERING MODELS CONSEQUENCES AND ALTERNATIVES

Software Development Life Cycle & Process Models

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

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

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

COMP 354 Introduction to Software Engineering

SOFTWARE DEVELOPMENT SD

Software Engineering Reference Framework

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

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

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

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

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

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

Software Processes. Topics covered

Classical Software Life Cycle Models

Software Engineering. Software Engineering. Software Costs

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Software Development: The Waterfall Model

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

Software development lifecycle

Software Process Models. Xin Feng

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Unit I. Introduction

Overview of Software Engineering and the Software Development Process

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

COMPARISON OF VARIOUS SDLC MODELS

A Review of an MVC Framework based Software Development

SOFTWARE PROCESS MODELS

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Umbrella: A New Component-Based Software Development Model

CSE 435 Software Engineering. Sept 16, 2015

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

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

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

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

CS4507 Advanced Software Engineering

Foundations of software engineering

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

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

System Development Life Cycle Guide

Modelli di sviluppo software. Enrico Giunchiglia

2. Analysis, Design and Implementation

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Development Methodologies Compared

Software Development Processes. Software Life-Cycle Models

How To Understand Software Engineering

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

International Journal of Advanced Research in Computer Science and Software Engineering

LECTURE 1. SYSTEMS DEVELOPMENT

Software Configuration Management Plan

Plan-Driven Methodologies

Software Engineering Question Bank

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

Software Engineering

A Comparision Between Traditional and Component Based Software Development Process Models

Information Systems Development Process (Software Development Life Cycle)

Process Models and Metrics

Software Engineering UNIT -1 OVERVIEW

T Bhuvaneswari et al, International Journal of Computer Science and Mobile Computing Vol.2 Issue. 5, May- 2013, pg

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

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

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

Software Process for QA

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

2. Analysis, Design and Implementation

Outline. The Spiral Model of Software Development and Enhancement. A Risk-Driven Approach. Software Process Model. Code & Fix

Metrics in Software Test Planning and Test Design Processes

Software Development Process Models

Lifecycle Models: Waterfall / Spiral / EVO

Transcription:

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com, abbhimanyuchopra@yahoo.com, chandresh.saini@gmail.com ABSTRACT: This research papers deals with significant issue in computer technology world. It is concerned with the software management processes that deals with the area of software development through the different development models, which are known as software project life cycle. There are mainly four development models i.e, waterfall, Iteration, V-shaped, spiral. These models have their own advantages and disadvantages. Therefore, the main aim of this research is to represent different software project models of software development and make a comparison between them to show the features and defects of each model. 1. INTRODUCTION We all know the importance of computers in our life. In fact, computer has become indispensible in present time as it is used in different important fields such as industry, medicine, commerce, education and even agriculture. It has become an important element in the growth developing countries. Now a days, every organizations become more dependent on computer in their works as a result of computer technology. Computer is considered a time- saving device and its progress helps in executing complex, long, repeated processes in a very short time with a high speed. Computers are also used by people for fun and entertainment. The number of companies that produce software programs for the purpose of facilitating works of offices, administrations, banks, etc, has increased recently which results in the difficulty of enumerating such companies. From past four decades we have seen that software has been developed from a tool used for analyzing information or solving a problem to a product in itself. However, the early programming steps have created problems turning software into an obstruction to software development particularly those relying on computers. Software consists of documents and programs that contain a collection that has been established to be a part of software engineering procedures. The main aim of software engineering is to develop a appropriate work that constructs programs of high quality. 2. SOFTWARE PROCESS MODELS Software process model is a description of the sequence of activities carried out in an SE project, and the relative order of these activities. A software process model is an abstract representation of a process. It provides a fixed generic framework that can be tailored to a specific project. It presents a description of a process from some particular perspective as: 1. Specification. 2. Design. 3. Validation. 4. Evolution. [2] 5. Different models In software Engineering we have 8 project lifecycle models:- 1. Waterfall model: Separate and distinct phases of specification and development. 2. Prototype model. 3. Rapid application development model (RAD). 4. Evolutionary development: Specification, development and validation are interleaved. 5. Incremental model. 6. Iterative model. 7. Spiral model. 8. Component-based software engineering: The system is assembled from existing components. In his research will review the following four models: 1. Waterfall model. 2. Iteration model. 3. V-shaped model. 4. Spiral model. [1] 4. WATERFALL MODEL The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Analysis, Design, Production / Implementation, Testing, and Maintenance. The waterfall model is the classic process model it is widely known, understood and used. In some respect, waterfall is the common sense approach. [3] The Waterfall Model is used in the manufacturing and construction industries; highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible.

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 136 [4] 1). Easy to understand and implement. 2) Widely used and known 3) Fits other engineering process models: civil, mech etc. 4) Identifies deliverables and milestones 5) Easy to arrange tasks 6) Process and results are well documented 7) Works well for smaller projects Where requirements are well understood. 1) Doesn t reflect iterative nature of exploratory development. 2) Sometimes unrealistic to expect accurate requirements early in a project 3) Software is delivered late, delays discovery of serious errors. 4) No inherent risk management 5) Difficult and expensive to change decisions. 6) It is difficult to measure progress within stages. 7) Significant administrative overhead, costly for small teams and projects. WATERFALL MODEL PHASES: 1) Requirement analysis: Every possible requirements of the system is analysed and captured in this phase. The requirements are recorded in a document named SRS. 2) System Design: The requirements recorded in the first phase are studied in this phase and design of the system is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. 3) Implementation: Output from the previous phase is considered as input for this phase, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality which is referred to as Unit Testing. 5. ITERATION MODEL Iterative Model is a combination of both iterative design or iterative method and incremental build model for development. The combination is of long standing and has been widely suggested for large development efforts. The relationship between iterations and increments is determined by the overall software development methodology and software development process. The exact number and nature of the particular incremental builds and what is iterated will be specific to each individual development effort.[5] The Iteration Model 4) Testing: All the small program units developed in the implementation phase are joined to form a system, after testing of each unit. Post integration the entire system is tested for any faults and failures. 5) Maintenance: The last phase of waterfall Model is maintenance. There may be some issues Which come up later in the client environment. To fix those issues patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment. [6]

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 137 An iterative lifecycle model consists of repeating the following four phases in sequence: The V-Shaped Model 1) Requirements phase: In this phase the requirements for developing the software are collected and analyzed. Iteration should eventually result in a requirements phase that produces a complete and final specification of requirements. 2) Design phase: In the design phase the software solution to fulfill the requirements is designed. This can be a new design, or a new version of an earlier design. 3) An Implementation and Test phase: In this phase the software code is generated, integrated and tested. 4) A Review phase: This is the last phase in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed. 1) Generates working software quickly and early during the software life cycle. 1) Each phase of an iteration is rigid and do not overlap each other. 2) More flexible less costly to change scope and requirements. 3) Easier to test and debug during a smaller iteration. 4) Easier to manage risk because risky pieces are identified and handled during its iteration. 5) Each iteration is an easily managed milestone. 2) Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. 6. V-Shaped Model The V- Shaped software development model is considered an extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V- Model describes the relation between each phase of the development life cycle. The high-level design phase focuses on system architecture and design. An integration test plan is created in this phase in order to test the pieces of the software systems ability to work together. However, the low-level design phase lies where the actual software components are designed, and unit tests are created in this phase as well. [7] Following are the important phases of the v-shaped model: 1) Project and requirements planning: In this phase we determine the system requirements and how different available resources of the organization will be allocated to meet them. 2) Product requirements and specification analysis: This phase is used to do analysis of the software problem and conclude with a complete specification of the expected external behaviour of the software system to be built. 3) Architecture or high-level design: This phase defines how the software functions are to implement the design. 4) Detailed design: This phase defines and records algorithms for each component that was defined during the architecture phase. These algorithms will be translated into code. 5) Coding: Transforms the algorithms defined during the detailed design phase into software. 6) Integration and testing: This phase acts as an interconnection the sets of previously unit-tested modules to ensure that the sets behave as well as the independently tested modules did during the unit-testing phase. 7) System and acceptance testing: This phase is used to check whether the fully integrated software system rooted in its actual hardware environment behaves according to the software requirements specification. 8) Acceptance testing: This last phase of the V- shaped model allows the user to test the [8]

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 138 functionality of the system against the real requirements. After this final testing, the software and its surrounding hardware become operational. Maintenance of the system follows. The Spiral Model 1) The model encourages verification and validation of all internal and external deliverables, not just the software product. 1) It does not easily handle concurrent events. 2) The V-shaped model encourages definition of the requirements before designing the system, and it encourages designing the software before building the components. 2) It does not handle iterations of phases. 3) It defines the products that the development process should generate; each deliverable must be testable. 4) It enables project management to track progress accurately; the progress of the project follows a timeline, and the completion of each phase is a milestone 5) It is easy to use (when applied to a project for which it is suited). 3) The model is not equipped to handle dynamic changes in requirements throughout the life cycle. 4) The requirements are tested too late in the cycle to make changes without affecting the schedule for the project. 5) The model does not contain risk analysis activities. 7. SPIRAL MODEL The spiral model is a risk-driven process model generator for software projects. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping. Extends waterfall model by adding iteration to explore/manage risk Project risk is a moving target. Natural to progress a project cyclically in four step phases 1. Consider alternative scenarios, constraints 2. Identify and resolve risks 3. Execute the phase 4. Plan next phase: e.g. user req, software req, architecture then goto 1. [9] 10] The spiral model has following important phases: 1. Determine objectives, alternatives and constraints: System requirements are defined in detail and include artefacts for functionality, performance, hardware/software interfaces, key success metrics, etc. Constraints such as cost, schedule and interfaces are addressed 2. Identify and resolve risks, evaluate alternatives: All possible and available alternatives for developing a cost effective project are evaluated and strategies developed to determinate their use Identify and resolve all the possible risks in the project such as lack of experience, new technology, tight schedules, poor process, etc. Resolve any found risks and uncertainties. Subset reviews may be commissioned to investigate other process models until all high risk situations are resolved. 3. Development and test: Prototype the system from the preliminary design. Follow the usual pattern of create and review design, code, inspect code and test.[11] 4. Plan the next iteration: Review the first prototype for strengths, weaknesses, and risks Elicit the requirements for the second prototype Plan and design the second prototype; (i) Create the project plan

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 139 (ii) Document the configuration management plan (iii) Construct a test plan (iv) Devise an installation plan. [12] [10]. http://ultimatesdlc.com/spiral-model/ [11]. http://ultimatesdlc.com/spiral-model/ [12]. http://ultimatesdlc.com/spiral-model/ 1) High amount of risk analysis 2) Good for large and mission-critical projects. 3) Software is produced early in the software life cycle. 4) Development can be divided into smaller parts and more risky parts can be developed earlier which help in better risk management. [13] 1) Can be a costly model to use. 2) Project's success is highly dependent on the risk analysis phase. 3) Doesn't work well for smaller projects. 4) Risk analysis requires highly specific expertise. [13]. http://www.tutorialspoint.com/sdlc/sdlc_spiral_ model.htm 8. CONCLUSION After finishing this research work we conclude that: 1. Many existing project models for developing systems are used based on the sizes of projects and requirements. 2. Most of these models were established between 1970 and 1999. 3. The two most commonly used models for project development are Waterfall model and spiral model. 4. Each and every model has its own advantages and disadvantages for the development of systems, so each model tries to eliminate the disadvantages of the previous model. 9. REFRENCES [1]..i csi.or papers - - -.p f [2]..na a. th.se arlm mv mv lec.p f [3]..na a. th.se arlm mv mv lec.p f [4]. http://www.technologyuk.net/computing/sad/wa terfall_model.shtml [5]. http://en.wikipedia.org/wiki/iterative_and_incre mental_development [6]. http://en.wikipedia.org/wiki/iterative_and_incre mental_development [7]..i csi.or papers - - -.p f [8]. http://www.antrix.com/services/service_list/11_ validation_computersystem [9]..na a. th.se arlm mv mv lec.p f