Software development process
Upcoming SlideShare
Loading in...5
×
 

Software development process

on

  • 9,213 views

All about developing a reliable software!

All about developing a reliable software!

Statistics

Views

Total Views
9,213
Views on SlideShare
9,213
Embed Views
0

Actions

Likes
4
Downloads
488
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • its nice
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Software development process Software development process Presentation Transcript

  • Software Development Process
    Its Phases and Overview
  • Introduction
    This document describes the (SDLC) for small to medium database application development efforts.
    • This chapter presents an overview of the SDLC, alternate lifecycle models, and associated references.
    • The following project describes the internal processes that are common across all stages of the SDLC, and the third chapter describes the inputs, outputs, and processes of each stage.
    SYIT 191-200
    2
  • Cont:
    There are six stages in SDLC:
    Analysis
    Planning
    Design
    Coding
    Testing
    Implementation & maintenance
    SDLC uses four main approaches viz.
    SYIT 191-200
    3
  • cont
    Waterfall Approach
    Spiral Approach
    Incremental Approach
    Win Win Spiral Approach
    SYIT 191-200
    4
  • Meaning And Methodologies
    5
    CONCEPT OF SDLC
  • Contemplative Questions
    What are the various approaches to developing Information Systems?
    Is there one best way?
    What is the difference between techniques, methodologies and tools?
    What does the popular term “SDLC” actually mean?
    SYIT 191-200
    6
  • SDLC
    SDLC stands for
    Systems
    Development
    Life
    Cycle
    What does it mean?
    Why do we need it?
    SYIT 191-200
    7
  • What is SDLC?
    SDLC stands for
    Systems Development Life Cycle
    First, SDLC is a Life Cycle.
    All systems have a life cycle or a series of stages they naturally undergo. 
    The number and name of the stages varies, but the primary stages are conception, development, maturity and decline.
    The systems development life cycle (SDLC) therefore, refers to the development stage of the system’s life cycle
    SYIT 191-200
    8
  • Approaches to Systems Development
    Process-Oriented Approach
    Focus is on flow, use and transformation of data in an information system
    Involves creating graphical representations such as data flow diagrams and charts
    Data are tracked from sources, through intermediate steps and to final destinations
    Natural structure of data is not specified
    Disadvantage: data files are tied to specific applications
    SYIT 191-200
    9
  • Cont Which is better, the Process Approach or the Data Approach
    Process Approach:
    “Let’s look at all of our processes. Processes take precedence over data. Get the processes correct first. Then we’ll address what data is important.”
    • Data Approach :
    “Forget the processes, let’s look at the data. Data comes first. Get the data correct, then see how the processes actually use the data
    SYIT 191-200
    10
  • Its Phases and Overview
    Milestone In SDLC
  • Milestones
    Following are the milestones in SDLC –
    Requirement Gathering
    In this, customer needs are analysed in order to get a clear picture of the user requirements. If it is an existing system, requirements include improvement on the backlogs of the existing system.
    This is done by interviewing users and consultants of the the company (client).
    SYIT 191-200
    12
  • Cont:
    Functional Specification
    It mentions, what functions is the product supposed to have i.e how the interface should be, what should the product do, how will the user use the product.
    SYIT 191-200
    13
  • High Level Design (HLD)
    In this stage, logical view of the solution to customer requirements is arrived at. It helps in deciding operating systems, hardware, database design, architecture, security issues etc.
    SYIT 191-200
    14
  • Low Level Design (LLD)
    In this phase, HLD is broken down into smaller modules/programs. LLD is used by developers.
    SYIT 191-200
    15
  • Type of approaches and definition
    16
    Approaches in sdlc
  • Software development methodology approaches
    There are a number of software development approaches that have been used since the origin of information
    Technology. These software development approaches are:
    • 1.Waterfall Approach : linear framework type.
    • 2.Prototyping Approach : iterative framework type
    • 3.Rapid Application Development (RAD) Approach: Iterative Framework Type
    4.Spiral Approach : combination of linear and iterative framework type
  • Waterfall Approach
    The Waterfall model is a sequential development approach, in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance.
    Basic principles of the waterfall approach are:
    Project is divided into sequential phases, with some overlap and splashback acceptable between phases.
    Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system
  • Prototyping Approach
    Software prototyping, is the development approach of activities during software development the creation of prototypes, i.e., incomplete versions of the software program being developed.
    Basic principles of the Prototyping Approach are:
    Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.
    A basic understanding of the fundamental business problem is necessary to avoid solving the wrong problem.
  • Spiral Approach
  • Spiral Approach
    The spiral model.
    The spiral model approach is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down aweigh consideration of project continuation throughout the life cycle.
    Focus is on risk assessment and on minimizing project risk by breaking a project into smaller segments and providing more ease-of-change during the development process, as well as providing the opportunity to evaluate risks
  • Rapid Application Development (RAD) Approach
    Rapid Application Development(RAD) is a software development methodology approach, which involves iterative development and the construction of prototypes. Rapid application development is a term originally used to describe a software development process introduced by James Martin in 1991. Standard systems analysis and design techniques can be fitted into this framework.
    Basic principles:
    Key objective is for fast development and delivery of a high quality system at a relatively low investment cost.
    Standard systems analysis and design techniques can be fitted into this framework.
  • Phases In SDLC
    Types Of Phases
  • Analysis
    Analysis is first phase in SDLC wherein the possible outcome of the software are discussed in detail.
    Analysis is similar to a patient visiting a doctor.Doctors always analyse their patient:observing,testing,questioning.
    SYIT 191-200
    24
  • Analysis Phase
    Identify problem
    Feasibility study for new system
    Investigate current system
    Organisational & system goals
    Problems / limitations identified
    Possible solutions
    Evaluate all data collected
    Decision to continue
  • Coding
    • Coding
    During this phase, source code, executables are produced to develop the final product.
    SYIT 191-200
    26
  • Design Phase
    Hardware / Software to be used
    Suppliers selection
    Program specifications
    Screen design
    User interface
    Inputs
    Outputs
    Setting up Tests to be performed
    General Specifications for user documentation
  • Development
    Program Development Life Cycle (PDLC) ( to be used with customised software )
    Testing
  • Development
    Stages of the PDLC:
    Analyse
    Design
    Code
    Debug
    Test
    Document
    Implement
    Evaluate
  • Development
    Within he development phase there are various program development methodologies:
    RAD: Rapid Application Development
    Prototyping
    Waterfall model (traditional staged development)
    Agile model (Short bursts developing functional units of the project)
  • Implementation Phase
    Hardware purchase & set up
    System conversion
    Testing
    Handover of system and documentation
  • Evaluation Phase
    Determine suitable time
    Original aims & objectives
    Design specifications
    Other factors eg: efficiency, effectiveness etc..
  • Overview of Analysis
    Analysis Phase
  • What is Analysis?
    Analysis is the first phase in SDLC where the Software is Discussed Much before it is implemented.
    SYIT 191-200
    34
  • Phases in sdlc
    SYIT 191-200
    35
  • Question that need to be asked?
    Is there really a problem?
    If there is a problem, is it worth fixing?
    Like:
    Technical feasibility
    Economic feasibility
    Legal feasibility
    Operational feasibility
    Schedule feasibility
    SYIT 191-200
    36
  • Analysis does not try to describe HOW the solution will work.
    A problem analysis will describe:
    required input (what data has to be acquired to produce the output?)
    required output (i.e. what information is the system supposed to produce?)
    Data and information should be described in detail.
    SYIT 191-200
    37
  • SDLC REQUIREMENT
    Basic Requirement In SDLC
  • SDLC REQUIREMENT
    • Scope
    • Technical Activities
    • Management Activities
    • Installation Guidance
  • Scope Requirements
    • -New Development
    • - Rewrites of Existing Systems
    • - Maintenance
    • - Package Selection
    • - System Conversions
  • Technical Activities
    • -System Definition (Analysis, Design, Coding)
    • -Testing
    • - System Installation (e.g., Data Conversion, Training)
    • - Production Support (e.g., Problem Management)
    • - Evaluating Alternatives
    • - Defining Releases
    • - Reconciling Information Across Multiple Phases
    • - Reconciling To A Global View
    • - Defining The Project's Technical Strategy.
  • Management Activities
    • - Setting Priorities
    • - Defining Objectives
    • - Planning And Estimating
    • - Tracking/Status Reporting
    • - Change Control
    • - Step Wise Commitment
    • - Cost/Benefit Analysis
    • - Risk Assessments
    • - Interacting With Users
    • - Managing Vendors
    • - Post Implementation Reviews
    • - Quality Assurance Reviews
  • Installation Support Requirements
    • Large and complex system containing many tasks, tools and techniques.
    • That process requires training, guidance and a phased installation.
  • Designing phase
    How to Design a software
  • Design phase technical activities diagram
    SYIT 191-200
    45
  • Purpose of designing
    To transform the data model (developed in the analysis phase) into logical and physical information structure
    SYIT 191-200
    46
  • Design user interface standards and guidelines
    The GUI standards and guidelines are based on the requirements for the user interface identified in the analysis phase. Standards are needed to ensure:
    consistency of the GUI of different parts of the application or system
    usability of the application (e.g. reducing error in using the application)
    maintainability
    SYIT 191-200
    47
  • Design system architecture
    The technical architecture used by the application is described by presenting the various hardware, software and networking components, and their interfaces.
    SYIT 191-200
    48
  • Design software components
    The design of functionality in Web applications include e.g.
    navigation (functionality of control buttons)
    control of windows (moving between frames, opening and closing of pop-up windows)
    data input (HTML forms, cgi data transfers)
    data processing output (dynamically created HTML pages)
    SYIT 191-200
    49
  • Conclusion
    The structure imposed by this SDLC is specifically designed to maximize the
    probability of a successful software development effort.
    SYIT 191-200
    50