+ All Categories
Home > Documents > Software Engineering CD Ac

Software Engineering CD Ac

Date post: 14-Apr-2018
Category:
Upload: shivaprasad-bolla
View: 216 times
Download: 0 times
Share this document with a friend

of 45

Transcript
  • 7/30/2019 Software Engineering CD Ac

    1/45

    SoftwareEngineering B

    SGandhi

  • 7/30/2019 Software Engineering CD Ac

    2/45

    What is Engineering and why

    do we need it? Better Quality

    Better Price

    Better Turnaround times

  • 7/30/2019 Software Engineering CD Ac

    3/45

    Better Turnaround times

    Software Engineering consists of

    Engineering Practices

    Management Practices

    Support Practices

    Engineering Practices are covered more in detail later

    Management Practices are about

    Estimations

    Planning

    Monitoring and Control

    BSGandhi

  • 7/30/2019 Software Engineering CD Ac

    4/45

    Quality Basics

    What is Quality

    Meeting the specifications

    Meeting the requirements

    Fitness for use

    Meeting the stated, implied and legal requirements

    Minimum loss to the society

  • 7/30/2019 Software Engineering CD Ac

    5/45

    How do we achieve Quality?

    Inspections & Testing - Quality Control

    Reviews, verifications, making sure that you are doing right

    Quality Assurance

    Process Approach

    TQM

    Six Sigma

    Quality by Design

  • 7/30/2019 Software Engineering CD Ac

    6/45

    Software Challenges

    Software is developed, not manufactured

    Software does not wear out

    Software is mostly custom built

    Software does not contain sub-assemblies from outsiders

    BSGandh

    i

  • 7/30/2019 Software Engineering CD Ac

    7/45

    Challenges (contd)

    Y2K problem !!!

    Some small programs and tools live longer than expected

    No visibility to decide how much is completed (during

    development)

    No proper estimation of effort and schedule

    BSGandh

    i

  • 7/30/2019 Software Engineering CD Ac

    8/45

    Myths

    Management

    We have a book containing all standards

    If we are behind schedule, we can add more programmers and

    catch up

    We can always decide to outsource if we do not know how tobuild

    BSGandh

    i

  • 7/30/2019 Software Engineering CD Ac

    9/45

    Myths (contd)

    Customer

    Basic requirements should be good enough to start coding. We

    can add more details of what we want later

    We agree that requirements continually change, but so what?

    Change can easily be accommodated since software is flexible

    BSGandh

    i

  • 7/30/2019 Software Engineering CD Ac

    10/45

    Myths (contd)

    Programmer

    Once we get the program to work, our job is done

    Until I finish coding, how do I assess the quality?

    The only deliverable work product is a working program

    Software engineering practices make us write more documents

    and slows down our workBSGandh

    i

  • 7/30/2019 Software Engineering CD Ac

    11/45

    Source: Standish Group Report (2001)

    11

    Project Failure Rates Software Projects

    Challenged

    Succeeded

    Failed 28%

    46%

    26%

  • 7/30/2019 Software Engineering CD Ac

    12/45

    Process approach

    What is a process

    A good process can deliver good output

    Engineering, Management and Support processes

    Software Development Life Cycle

    Phases of SDLC

    BSGandh

    i

  • 7/30/2019 Software Engineering CD Ac

    13/45

    Software Development

    Software life cycle processes that comprise the activities of

    Requirements analysis

    Design

    Coding

    Testing

    Installation & Acceptance

    User Support

    SoftwareProjectManagemen

    t

    13

  • 7/30/2019 Software Engineering CD Ac

    14/45

    Requirements Analysis

    Requirements specification of the characteristics to be possessed by

    the software project or service

    Requirements analysis elicitation, documentation, review and

    approval of requirements

    SoftwareProjectManagemen

    t

    14

  • 7/30/2019 Software Engineering CD Ac

    15/45

    Design

    Design logical view of the implementation of the solution meeting

    customer requirements

    Data design data structures, data base elements

    Architectural design sub-systems, modules and programs

    Interface design user and external environment

    SoftwareProjectManagemen

    t

    15

  • 7/30/2019 Software Engineering CD Ac

    16/45

    Coding

    Coding converting the logic specified in the design in to programs as

    per chosen programming language

    SoftwareProjectManagemen

    t

    16

  • 7/30/2019 Software Engineering CD Ac

    17/45

    Testing

    Testing to ensure that the product is working according to the

    requirements

    Levels of testing unit, module, integration, system and acceptance

    SoftwareProjectManagemen

    t

    17

  • 7/30/2019 Software Engineering CD Ac

    18/45

    Installation and Acceptance

    Developed software to be installed on the user environment

    User training

    User acceptance

    Softw

    areProjectManagemen

    t

    18

  • 7/30/2019 Software Engineering CD Ac

    19/45

    User Support

    Problem resolution

    Functionality enhancements

    Migration to new environments

    Softw

    areProjectManagemen

    t

    19

  • 7/30/2019 Software Engineering CD Ac

    20/45

    Process Architecture

    For all the software development activities the process architecture

    defines

    Entry and exit criteria

    Inputs and outputs

    Participants and responsibilities

    Activities to be carried out

    Verification and approval

    Standards

    Softw

    areProjectManagemen

    t

    20

  • 7/30/2019 Software Engineering CD Ac

    21/45

    Software Development Life

    Cycle Model A framework containing the processes, activities and the tasks

    involved in the development, operation and maintenance of a

    software product spanning the life of the system from the definition of

    its requirements to the termination of its use (ISO/IEC 12207)

    Softw

    areProjectManagemen

    t

    21

  • 7/30/2019 Software Engineering CD Ac

    22/45

    SDLC Models

    Waterfall model

    Spiral model

    Prototype model

    Iterative model

    Rapid application development model

    Softw

    areProjectManagemen

    t

    22

  • 7/30/2019 Software Engineering CD Ac

    23/45

    Waterfall Model

    Also known as classic life cycle model, linear sequential model

    This model suggests a systematic and sequential approach to software

    development that begins at requirements analysis and progresses

    through all life cycle phases sequentially

    Softw

    areProjectManagemen

    t

    23

  • 7/30/2019 Software Engineering CD Ac

    24/45

    Waterfall Model (Contd)

    Softw

    areProjectManagemen

    t

    24

    RA

    D

    C

    T

    I & A

    CS

  • 7/30/2019 Software Engineering CD Ac

    25/45

    Waterfall Model

    Softw

    areProjectManagemen

    t

    25

    System Testing

    Integration Testing

    Coding and Unit Testing

    Detailed Design

    High Level Design

    Software Requirement Specifications

    Users Software Requirements

    Acceptance Testing

    Warranty

  • 7/30/2019 Software Engineering CD Ac

    26/45

    Softw

    areProjectManagemen

    t

    26Project Management

    Software

    Development

    Quality

    Assurance

    Coding

    Contract WarrantyReview

    / Test

    Users Software

    Requirements

    AcceptanceTesting

    Software

    RequirementsSpecifications

    SystemTesting

    High LevelDesign

    IntegrationTesting

    DetailedDesign

    UnitTesting

    V MODELV MODEL

  • 7/30/2019 Software Engineering CD Ac

    27/45

    Waterfall Model (Contd)

    Development activities carried out sequentially

    Review and approval of each phase outputs

    Model does not permit going back and forth

    If any defect found, go back to the originating phase and start

    traversing sequentially all over again

    Softw

    areProjectManagemen

    t

    27

  • 7/30/2019 Software Engineering CD Ac

    28/45

    Waterfall Model (Contd)

    Suitable for projects where

    Requirements are clearly defined

    Small and medium term duration

    Stable technology

    Familiarity with the domain and development environments

    Softw

    areProjectManagemen

    t

    28

  • 7/30/2019 Software Engineering CD Ac

    29/45

    Waterfall Model (Contd)

    Advantages:

    Projects under control

    Pre-defined outputs at every phase

    Tracking changes is easy

    Early identification of slippages, if any

    Softw

    areProjectManagemen

    t

    29

  • 7/30/2019 Software Engineering CD Ac

    30/45

    Waterfall Model (Contd)

    Disadvantages:

    In real life, customer requirements do change

    Customer appraisal of completed work - not feasible always

    Phases can not run concurrently

    Softw

    areProjectManagemen

    t

    30

  • 7/30/2019 Software Engineering CD Ac

    31/45

    Spiral Model

    In a spiral model, software is developed in a series of incrementalreleases

    The spiral model is divided in to a number of framework activities or

    task regions

    Softw

    areProjectManagemen

    t

    31

  • 7/30/2019 Software Engineering CD Ac

    32/45

    Spiral Model (Contd)

    Softw

    areProjectManagemen

    t

    32

    R A

    D

    C

    T

    I&A

    S

  • 7/30/2019 Software Engineering CD Ac

    33/45

    Spiral Model (Contd)

    Suitable for large projects with multi-location implementation

    Each Spiral consists of a deliverable product

    Feedback of each spiral is incorporated in the next spiral

    Customer can start using the system after every spiral

    Each Spiral consists of a waterfall model

    Softw

    areProjectManagemen

    t

    33

  • 7/30/2019 Software Engineering CD Ac

    34/45

    Spiral Model (Contd)

    Advantages:

    Useful for large projects

    Customer requirements evolve over a period Early availability of usable system

    Disadvantages:

    Total blue print should be available in the beginning

    Basic concepts in the underlying layer can NOT be changedSoftw

    areProjectManagemen

    t

    34

  • 7/30/2019 Software Engineering CD Ac

    35/45

    Prototype Model

    A prototype model is a representation of a real life situation, which canbe evaluated by the user

    A prototype is developed based on the initial understanding of the

    customer requirements

    A visible working prototype helps customer to define the requirements

    Softw

    areProjectManagemen

    t

    35

  • 7/30/2019 Software Engineering CD Ac

    36/45

    Prototype model (contd)

    Softw

    areProjectManagement

    36

    Intial

    Requirements

    Design

    Code

    Test

    Design Code Test

  • 7/30/2019 Software Engineering CD Ac

    37/45

    Prototype Model (Contd)

    Prototype model is used for eliciting customer requirements as well asidentifying user machine interaction

    Prototype model is used in product development or for developing a

    new application for a customer

    Softw

    areProjectManagement

    37

  • 7/30/2019 Software Engineering CD Ac

    38/45

    Prototype Model (Contd)

    Advantages : Can be used when customer is not sure about what he

    wants

    Faster way of finalising the requirements Useful for new technologies and domains

    Disadvantage : A prototype if used in a production environment, may lack

    quality or maintainabilitySoftw

    areProjectManagement

    38

  • 7/30/2019 Software Engineering CD Ac

    39/45

    Incremental Models

    BSGandhi

  • 7/30/2019 Software Engineering CD Ac

    40/45

    BSGandhi

  • 7/30/2019 Software Engineering CD Ac

    41/45

    Agile Principles

    Highest Priority Customer Satisfaction

    Welcome changing requirements Even late in the

    development

    Deliver working software frequently

    Business people and developers work together

    Build Projects around motivated individuals

    Most efficient method of conveying information within

    development teams face to face

    Softw

    areProjectManagement

    41

  • 7/30/2019 Software Engineering CD Ac

    42/45

    Agile Principles (contd)

    Working software is the primary measure of progress

    Simplicity is essential

    Best performance of any individual will emerge from self-

    organizing teams

    Softw

    areProjectManagement

    42

  • 7/30/2019 Software Engineering CD Ac

    43/45

    Phases in Agile Models

    BSGandhi

  • 7/30/2019 Software Engineering CD Ac

    44/45

    Agile SDLC Models

    SCRUM

    Sprints

    Daily Stand-up meetings (Progress, Problems and Plan)

    SCRUM Master

    Backlog Sprints

    Softw

    areProjectManagement

    44

  • 7/30/2019 Software Engineering CD Ac

    45/45

    Agile SDLC Models

    Extreme Programming

    OO is the preferred development paradigm

    Only four phases Planning, Design, Code and Test

    User Stories that describe the functionality

    Design to follow keep it simple approach Coding - continuous refactoring and pair programming

    Softw

    areProjectManagement

    45


Recommended