SDLC – A Brief Introduction

Slides:



Advertisements
Similar presentations
Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Advertisements

Prescriptive Process models
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Computer Science Department
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
Lecture # 2 : Process Models
Software Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes
Software Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Gu & Maher University of Sydney, October 2004 DECO2005 Monitoring Team Process.
CS 425/625 Software Engineering Software Processes
Fundamentals of Information Systems, Second Edition
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
Software Life Cycle Model
1 CMPT 275 Software Engineering Software life cycle.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
Software Process and Models
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
1 SWE Introduction to Software Engineering Lecture 4.
Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
SOFTWARE LIFE-CYCLE MODELS
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
CS223: Software Engineering Lecture 4: Software Development Models.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Topic:- At the end we will be able to explain:- Why it is called Meta Model ?? Spiral Model Its Advantages & Disadvantages… Phases of Spiral Model...
Systems Development Life Cycle
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Introduction to Systems Analysis and Design
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Engineering PPT By :Dr. R. Mall.
Software Process Models
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software life cycle models
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering Lecture 17.
Information Systems Development (ISD) Systems Development Life Cycle
What is Software Engineering?
Presentation transcript:

SDLC – A Brief Introduction IVS-TRAINING

Ground Rules Please mute your mobile phones Stick to timeliness Help each other in learning – as learning is a continuous process Please participate actively to make the session interactive:

Session Objectives Life Cycle of Software Development. Models of SDLC Concepts of various models of SDLC

At the End of Session you would be able to: What is SDLC? Various SDLC Models. Difference between SDLC and Exploratory models.

Contents Product, Process and Methods Methodologies followed in late 60’s for software Development What is SDLC? SDLC Models Classifications of SDLC Model Sequential Model Progressive Model Iterative Model Spiral model Other Models Differences between Exploratory & SDLC Models

Product, Process and Methods Product includes some of: hardware , software , documentation , installation, etc. Process Process defines a framework for a set of key process areas that must be established for effective delivery of software engineering technology. involves all of: communication (internal and external) , standards (definition and adherence) , planning and monitoring , tools and methodologies , quality assurance Role of Processes Increasingly, software suppliers recognize that software development process capability is a key source of competitive advantage. Competition forces suppliers to improve processes to meet the conflicting demands of higher quality, lower cost, and compressed schedules. Method Methods provides the technical “how to’s” for building software

Methodologies followed in late 60’s for software Development

Methodologies followed in late 60’s for software Development The Software was developed on a Trial & Error basis. No Specific Process was followed during the development of the Product. Defects were detected only after the product is delivered to the external Users. This resulted in software crisis Software fail to meet user requirements. Softwares used to crash frequently. Development of Software became expensive. Software became difficult to alter, debug, and enhance. The Software was often delivered late. Software use resources non-optimally.

Some Root Causes for Failure Inaccurate understanding of end-user-needs Ad hoc requirements management Ambiguous and imprecise communication Overwhelming complexity Undetected inconsistencies in requirements, design and implementations Insufficient testing resulting in late discovery of serious flaws Poor software quality Failure to attack risk Insufficient use of automation tools

Software Development Life Cycle (SDLC)

What is SDLC ? The various activities which are undertaken when developing software are commonly modeled as a software development lifecycle. The software development lifecycle begins with the identification of a requirement for software and ends with the formal verification of the developed software against that requirement. The software development lifecycle does not exist by itself, it is in fact part of an overall product lifecycle. Within the product lifecycle, software will undergo maintenance to correct errors and to comply with changes to requirements. The simplest overall form is where the product is just software, but it can become much more complicated, with multiple software developments each forming part of an overall system to comprise a product.

SDLC - Models SDLC - Models

SDLC Models There are a number of different models for software development lifecycles which explains the series of steps through which the product progresses. Life cycle models describe the interrelationships between software development phases. It specifies the relationships between project phases, including transition criteria, feedback mechanisms, milestones, baselines, reviews, and deliverables. Typically, a life cycle model addresses the following phases of a software project: requirements phase, design phase, implementation, integration, testing, operations and maintenance.

Importance of Lifecycle Models Provide guidance for project management what major tasks should be tackled next? milestones! what kind of progress has been made? The necessity of lifecycle models character of software development has changed early days: programmers were the primary users modest designs; potential of software unknown more complex systems attempted more features, more sophistication  greater complexity, more chances for error heterogeneous users

Classifications of SDLC Model Spiral Incremental

1. Sequential Model The models used for the software development lifecycle have been sequential, with the development progressing through a number of well defined phases. The sequential phases are usually represented V Model Waterfall Model.

Different Phases of Sequential Model : Requirements phase - in which the requirements for the software are gathered and analyzed, to produce a complete and unambiguous specification of what the software is required to do Detailed Design phase - where the detailed implementation of each component is specified. Code and Unit Test phase - in which each component of the software is coded and tested to verify that it faithfully implements the detailed design. Software Integration phase - in which progressively larger groups of tested software components are integrated and tested until the software works as a whole. System Integration phase - in which the software is integrated to the overall product and tested. Acceptance Testing phase, where tests are applied and witnessed to validate that the software faithfully implements the specified requirements. Note: Software specifications will be products of the first three phases of this lifecycle model. The remaining four phases all involve testing the software at various levels, requiring test specifications against which the testing will be conducted as an input to each of these phases.

a. V Model Requirement Specifications User Acceptance Testing High Level Design System Testing Detail Design Integration Testing Program Specification Unit Testing Coding

b. Waterfall Model Requirements Specification Architectural Design Detailed Design Code and Unit Testing Software Integration System Integration Acceptance Testing

Advantages of Waterfall Model Enforced discipline through documents no phase is complete until the docs are done & checked by SQA group concrete evidence of progress Testing is inherent in every phase continuously as well as at end of phases Verification of the Software is easy.

Drawbacks of Waterfall Model Document-driven model customers cannot understand these imagine an architect just showing you a textual spec! first time client sees a working product is after it has been coded. Problem here? leads to products that don’t meet customers needs Assumes feasibility before implementation re-design is problematic works best when you know what you’re doing when requirements are stable & problem is well-known

2. Progressive Model A common problem with software development is that software is needed quickly, but it will take a long time to fully develop. The solution is to form a compromise between timescales and functionality, providing "interim" deliveries of software, with reduced functionality, but serving as a stepping stones towards the fully functional software. It is also possible to use such a stepping stone approach as a means of reducing risk. The usual names given to this approach to software development are progressive development or phased implementation. Within a progressive development lifecycle, each individual phase of development will follow its own software development lifecycle, typically using a V or waterfall model.

2. Progressive Model - Structure Phase 1 Development Interim Delivery 1 Phase 2 Development Interim Delivery 2 Final Phase Final Delivery 2

3. Iterative Model Requirements Design Review Implementation and Test An iterative lifecycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.

3. Iterative Model - Phases Requirements phase, in which the requirements for the software are gathered and analyzed. Iteration should eventually result in a requirements phase which produces a complete and final specification of requirements. Design phase, in which a software solution to meet the requirements is designed. This may be a new design, or an extension of an earlier design. Implementation and Test phase, when the software is coded, integrated and tested. Review phase - in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed

3. Spiral model The Spiral Model - an iterative (evolutionary) system development life cycle developed by Boehm (1988) which incorporates risk assessment. Developed in recognition of the fact that systems development projects tend to repeat the stages of analysis, design and code as part of the prototyping process. Model closely related to RAD, as it implies iterative development with a review possible after each iteration or spiral - which corresponds to the production of one prototype or incremental version. Spiral model includes best features of both the classic Waterfall SDLC and the Prototyping approach.

Spiral model ………contd Each spiral consists of four main activities: Planning: setting project objectives; defining alternatives; further planning on the next spiral; etc. Risk Analysis: analysis of alternatives & the identification & solution of risks. Development: designing, coding and testing etc. in increments. Evaluation: user evaluation of each spiral and then the final product.

Other SDLC Models Used Build and fix Model Incremental Model Prototyping Model Rapid Application Development Model

Lifecycle Models Build-and-fix develop system without specs or design modify until customer is satisfied Why doesn’t build-and-fix scale? changes during maintenance most expensive!

Incremental Model Divide project into builds each adds new functions Verify Requirements phase Specification Architectural design Operations mode Retirement Perform detailed design, imple- mentation, and integration. Test. Deliver to client. For each build: Divide project into builds each adds new functions each build integrated w/ structure & product tested as a whole Advantages ? operation product in weeks less traumatic to organization smaller capital outlay Disadvantages ? need an open architecture a big advantage come maintenance! too few builds  build-and-fix too many builds  overhead Development Maintenance

Modern Software Development Differences Between the Exploratory Style and Modern Software Development Practices Modern Software Development Use of Life Cycle Models resulting in software development through several well-defined stages Emphasis on detection of errors as close to their point of introduction as possible. Errors detected in each phase of development The entire development cycle is divided into distinct phases Periodic reviews during each phase of development cycle Software testing has become systematic Better visibility of design and code resulting in production of good quality and consistent and standard documents Thorough planning in terms of estimation scheduling monitoring mechanisms Exploratory Style Software developed on Trail and Error basis Emphasis on Error correction Errors detected only during testing Emphasis only on coding during the entire development cycle Review at the end of the development phase No specific testing process Less attention was being given to producing good quality and consistent documents Inefficient planning

Questions?

Thank You!! IVS-TRAINING Any doubts or suggestions for improvement can be forwarded to: IVS_TRAINING@infosys.com