SlideShare a Scribd company logo
1 of 55
Download to read offline
Leiden Institute of Advanced Computer Science




   Software development
                 Selecting an appropriate software
                 development approach

                 Prof. Dr. Thomas Bäck




System‘s Development and Project Management - Prof. Dr. Thomas Bäck   1
Leiden Institute of Advanced Computer Science                           Dates

Feb. 1               14:45 – 17:30           Introduction, Project Description
Feb. 2               13:45 – 16:30           STEP WISE Approach to Project Planning
Feb. 9               13:10 – 15:45           Selecting an Appropriate Software Dev.
                                             Approach
Feb. 15              14:45 – 17:30           Activity Planning and Resource Allocation
Feb. 16              13:45 – 16:30           Software Effort Estimation
Feb. 22              14:45 – 17:30           Risk management, project escalation
Feb. 23              13:45 – 16:30           Project monitoring and control
Mar. 1               14:45 – 17:00           Exam
Mar. 2               13:45 – 16:30           Software Quality Assurance
Mar. 8               14:45 – 17:30           Managing People; Contract Management
Mar. 9               13:45 – 16:30           Various
Mar. 15              14:45 – 17:30           Trade Fair


                                                                                      2
Leiden Institute of Advanced Computer Science



3. Analyze project characteristics
      1. Identify project objectives           0. Select Project             2. Identify project infrastructure




                                         3. Analyze pr. characteristics


                                       4. Identify products and activities
                  Review lower
                  level detail
                                         5. Estimate effort for activity
                                                                                  For each activity

                                            6. Identify activity risks


   10. Lower level planning                  7. Allocate resources


       9. Execute plan                     8. Review / publicize plan




                                                                                                        3
Leiden Institute of Advanced Computer Science




Outcome

 !   Selection of most appropriate methodologies
     & technologies
 !   Impacts on
   !    Training requirements for development staff
   !    Types of staff to be recruited
   !    Development environment (HW & SW)
   !    System maintenance arrangements
 !   E.g. SSADM (Structured Systems Analysis
     and Design Methodology), UK standard.
                                                      4
Leiden Institute of Advanced Computer Science



Selection of software development
approaches
    !   In-house development: most of these issues
        resolved by IT planning and standards
    !   Software houses: more applicable as different
        customers have different needs
    !   Selection of approach governed by:
       !    Uncertainties of the project
       !    Properties of application to be buildt



                                                     5
Leiden Institute of Advanced Computer Science




Analyse project characteristics
    !   Data-oriented or process-oriented ?
    !   General tool or application specific software to be
        developed ?
    !   Particular type for which specific tools have been
        developed ?
        !    Concurrent processing ?
        !    Knowledge based ?
        !    Heavy use of computer graphics ?
    !   Safety critical ?
    !   Nature of HW/SW environment in which system will
        operate ?

                                                              6
Leiden Institute of Advanced Computer Science


Technical plan (part of the project plan)
    1. Introduction and summary constraints
        •    Character of the system to be developed
        •    Risks and uncertainties of project
        •    User requirements concerning implementation

    2. Recommended approach
        •    Selected methodology / process model
        •    Development methods
        •    Required software tools
        •    Target HW/SW environment

    3. Implementation
        •    Required development environment
        •    Required maintenance environment
        •    Required training

    4. Implications
        •    Project products and activities
        •    Financial
                                                           7
Leiden Institute of Advanced Computer Science


General approach
   !   Look at risks and uncertainties, e.g.
       !    Are requirements well understood ?
       !    Are technologies to be used well understood ?
   !   Look at the type of application being built, e.g.
       !    Information system ? Embedded system ?
       !    Criticality ? Differences between target and
            development environment ?
   !   Client‘s own requirements
       !    Need to use a particular model



                                                            8
Leiden Institute of Advanced Computer Science



SDLC Model: General approach
         Right Lifecycle Model                    Wrong Lifecycle Model

       •  Improve                                •  Slow, repeated work
          development speed                      •  Unnecessary work
       •  Improve quality                        •  Frustration
       •  Improve project
          tracking and control
       •  Minimize overhead
       •  Minimize risk
          exposure
       •  Improve client
          relationship
Leiden Institute of Advanced Computer Science


Choice of process models
     One-Shot                 Incremental               Evolutionary                  Agile

  •  Whole                  •  Application is         •  System is           •  Many
     application is            implemented               implemented            intermediary
     implemented               in steps                  via a number           prototypes
     in one go              •  Each step                 of versions         •  Very frequent
  •  Also known as             delivers a             •  Each version           user
     „waterfall“,              subset of                 is „exercised“         interaction
     „once-                    functionality             by users            •  No upfront
     through“, etc.         •  Functions in           •  Suggestions            specifications
                               the subset are            for                 •  Focus on
                               fully                     improvement            coding
                               implemented,              are made            •  Small projects
                               i.e., can be                                     only
                               used by client


             •  Waterfall        •  Spiral       •  Prototyping      •  Extreme
             •  V-Model          •  Staged-      •  SCRUM               Programming
                                    Delivery     •  DSDM
                                 •  RUP
             One-Shot            Incremental     Evolutionary        Agile
                                                                                              10
Leiden Institute of Advanced Computer Science



„Rules of thumb“

           IF Uncertainty
               high                 •  Evolutionary Approach


           IF Complexity
             high AND               •  Incremental Approach
          Uncertainty low

        IF Complexity low
         AND Uncertainty •  One-shot Approach
              low

                                    •  Evolutionary Approach or
         IF Schedule tight
                                    •  Incremental Approach
Leiden Institute of Advanced Computer Science




Lifecycle Models

ONE-SHOT APPROACHES
Leiden Institute of Advanced Computer Science


One-shot: The waterfall model
 Feasibility study

      User Requirements

                      Analysis

                          System Design

                                 Program Design

                                                 Coding

                                                     Testing

                                                          Operation
Leiden Institute of Advanced Computer Science




One-shot: The waterfall model (cont‘d)

                       Pros                                     Cons

      •  Imposes structure on                        •  Limited scope for
         complex projects                               flexibility/iterations
      •  Every stage needs to be                     •  Full requirements
         checked and signed off                         specification at the
         •  Eliminates midstream                        beginning
            changes                                     •  User specifications
      •  Good when quality                           •  No tangible product until
         requirements dominate                          the end
         cost and schedule
         requirements
Leiden Institute of Advanced Computer Science


      One-shot: The V-process model
                                      Validation process

    Feasibility study                                                         Review




                                                  Corrections
        User requirements                                           User acceptance


          System design                                                System test


                 Program design                                 Program testing


Another way of looking at                       Code
the waterfall model
Leiden Institute of Advanced Computer Science




Lifecycle Models

INCREMENTAL APPROACHES
Leiden Institute of Advanced Computer Science



Incremental delivery                                                           delivered
                                                                               system


 design   build    install    evaluate                                          increment
                                                                                    1
 first incremental delivery


                    design     build      install      evaluate                 increment
                                                                                    2
                     second incremental delivery

                                                                                increment
                                  design       build      install   evaluate        3
                                       third incremental delivery




                                                                                    17
The incremental plan outline
           Leiden Institute of Advanced Computer Science




 Characteristics of Increments
                                        !   Some steps will be pre-requisite
                                            because of physical dependencies
•  Steps ideally 1% to 5% of
   the total project                    !   Others may be in any order
•  Non-computer steps should
   be included                          !   Value to cost ratios may be used
•  Ideal if a step takes one                         !          Fraction V/C where
   month or less:
   •  Not more than three                                           •  V is a score 1-10 representing value to
      months                                                           customer (rated by customer)
•  Each step should deliver                                         •  C is a score 0-10 representing cost for
   some benefit to the user                                            developers (rated by developers)
•  Some steps will be physically                     !          Rather crude, but helpful and easy to
   dependent on others
                                                                do
                                        Step	
                             Value	
     C ost	
     Ratio	
     Rank	
  

                                        Profit	
  reports	
                   9	
        1	
          9	
      2nd	
  

                                        Online	
  database	
                  1	
        9	
       0.11	
       5th	
  

                                        Ad	
  hoc	
  enquiry	
                5	
        5	
          1	
       4th	
  

                                        Purchasing	
  plans	
                 9	
        4	
       2.25	
       3rd	
  
                                        Profit-­‐based	
  pay	
  for	
  
                                                                              9	
        0	
        inf	
       1st	
  
                                        managers	
  
Leiden Institute of Advanced Computer Science


Incremental delivery

                 Pros                                          Cons

 •  Feedback from earlier                          •  Loss of economy of scale
    stages used in later ones                         (some costs will be
 •  Shorter development                               repeated)
    thresholds (important                          •  „Software breakage“ (later
    when requirements are                             increments might change
    likely to change)                                 earlier increments)
 •  User gets some benefits
    earlier
 •  Project may be put aside
    temporarily
 •  Reduces „gold-
    plating“ (features
    requested but not used)
Leiden Institute of Advanced Computer Science



The spiral model                                           Spiral Model

                                                       •  Risk-oriented
                                                          lifecycle model
                                                       •  Breaks project into
                                                          miniprojects
                                                       •  Start on small
                                                          scale in the middle
                                                       •  Explore risks
                                                       •  Make plan to
                                                          handle risks
                                                       •  Commit to
                                                          approach for next
                                                          iteration
                                                       •  Terminates as a
                                                          waterfall-model
                                                          would
Leiden Institute of Advanced Computer Science



The spiral model (cont d)
                                        Each Iteration:

              •  Determine objectives, alternatives,
                 constraints
              •  Identify and resolve risks
              •  Evaluate alternatives
              •  Develop deliverables, verify correctness
              •  Plan next iteration
              •  Commit to approach for next iteration
              •  Each stage of development considers a
                 greater level of detail

 !   Early iterations are the cheapest
 !   Can incorporate other lifecycle models as iterations
 !   See Boehm s
     A spiral model of software development and enhancement
Leiden Institute of Advanced Computer Science



The spiral model (cont‘d)

                   Pros                                         Cons

     •  As costs increase,                             •  Complicated
        risks decrease                                 •  Requires
     •  At least as much                                  conscentious,
        management control                                attentive
        as waterfall                                      management
        (checkpoints)
     •  Early indications of
        insurmountable risks
Leiden Institute of Advanced Computer Science



Rational Unified Process                                      Macrocycle



                   Microcycle




                                                                   Image Source: Wikimedia

                        •       Serial in the large
                        •       Iterative in the small
                        •       Delivering incremental releases over time
                        •       Following proven best practices
Leiden Institute of Advanced Computer Science


RUP: Macrocycle
                                               Macrocycle

 Inception Phase                 Elaboration                   Construction               Transition Phase
                                 Phase                         Phase

  • Business Case                • Analysis of problem         • Iterative, incremental     • Deployment at
  • Project Boundaries            domain                        development of               customer
  • Success Criteria             • Baseline architecture        complete, executable        • Add-ons, bug fixes,
                                 • Project plan                 product                      …
  • Risk Analysis
                                 • Elimination of largest      • Remaining                  • Check, whether
  • Resource Estimation
                                  risks                         requirements and             project goals have
  • Working plan and                                            acceptance criteria
                                 • Global architecture                                       been achieved
   milestones
                                  decisions                    • Implementation             • Evaluation of work;
  • Executable prototype                                       • Testing                     process
   as proof-of-concept           • Prototype
                                                               • Check, whether system       improvements
  • Decision about               • Analysis of detailed
                                  system requirements,          and users are fit for
   continuation of
                                  architecture, risk            „going life“
   project, based on life-
   cycle project goals            management as
                                  decision point for
                                  transfer to next phase
Leiden Institute of Advanced Computer Science



RUP: Iterations
                                                                               Iteration:

                                                                          •  Steps within a
                                                                             single phase
                                                                          •  Results in
                                                                             release of a
                                                Image Source: Wikimedia      subset of total
                                                                             product
 Microcycle




                                                                          •  Runs through all
                                                                             work steps (with
                                                                             varying weights)
Leiden Institute of Advanced Computer Science



RUP: Roles & Activities
                                                                 Activities:

                                                         •  Responsibility of
                                                            a staff member
                                                         •  Defined Inputs
                                                            and Outputs
                                                         •  Can be split up
                                                            into single steps
                                                  •    About 30 role models
                                                  •    Can shift/change over time
                                                  •    Single staff member can play different
                                                       roles
Leiden Institute of Advanced Computer Science


Benefits of incremental delivery
    !   Feedback from early stages used in developing later
        stages
    !   Shorter development thresholds
        !    Important when requirements are likely to change
    !   User gets some benefits earlier
        !    May assist cash flow
    !   Project may be put aside temporarily
        !    More urgent jobs may emerge
    !   Reduces gold-plating i.e. features requested but
        not used



                                                                27
Leiden Institute of Advanced Computer Science



Possible disadvantages of incremental
delivery
    !   Loss of economy of scale
       !    Some costs will be repeated
    !   Software breakage
       !    Later increments might change earlier increments




                                                         28
Leiden Institute of Advanced Computer Science




Lifecycle Models

EVOLUTIONARY APPROACHES
Leiden Institute of Advanced Computer Science


Motivation
     Perceived disadvantages of structure methods

    •  Large amounts of documentation, largely
       unread
    •  Documentation has to be kept up-to-date
    •  Division into specialist groups and need to
       follow procedures stifles communication
    •  Users can be excluded from decision process
    •  Long lead times to deliver anything

           The Answer: Evolutionary Methods?
Leiden Institute of Advanced Computer Science




Evolutionary prototyping

                                                               Refine
                                   Design and                                        Complete
                                                             prototype
                 Initial           implement                                            and
                                                                until
                concept               initial                                         release
                                                            acceptable:
                                    prototpye                                        prototype
                                                             Iterations




  An iterative process of creating quickly and              •    Very useful when requirements are changing rapidly
                                                            •    Or when customer is reluctant to commit to a set of
 inexpensively live and working models to                        requirements
 test out requirements and assumptions                      •    Or when neither you or your customer understands the
                                                                 application area well
 Sprague and McNurlin
                                                            •    Or when developers are unsure of optimal architecture/
                                                                 algorithm to use
Leiden Institute of Advanced Computer Science




Evolutionary prototyping
                                      •  Throw-away
           Types                      •  Evolutionary


                                      •  Human-computer interface
           What?                      •  Functionality


      What is being                   •  Organizational prototype
                                      •  Hardware/software prototype („experimental“)
        learnt?                       •  Application prototype („exploratory“)

                                      •  Mockups
     To what extent?                  •  Simulated Interaction
                                      •  Partial working models: Vertical vs. horizontal




                                                                                           32
Leiden Institute of Advanced Computer Science



Evolutionary prototyping
                 Pros                                                Cons

 •  Learning by doing                                   •  Users may misunderstand
 •  Improved communication                                 the role of the prototype
 •  Improved user involvement                           •  Lack of project control and
 •  Feedback loop is                                       standards possible
    established                                         •  Additional expense for
 •  Reduces the need for                                   building prototype (throw-
    documentation                                          away)
 •  Reduces maintenance                                 •  Focus on user-friendly
    costs                                                  interface could be at
                                                           expense of machine
 •  Prototype can be used for                              efficiency
    producing expected results
Leiden Institute of Advanced Computer Science


DSDM: Dynamic systems development method
     !   UK-based consortium
     !   Arguably DSDM can be seen as replacement for SSADM (Structured
         Systems Analysis and Design Methodology)
     !   DSDM is more a project management approach than a development
         approach
                                                Nine core principles                                     feasibility

                                                                                                     business study

•    1. Active user involvement                               agree schedule                                                            implement

•    2. Teams empowered to make decisions          create
                                                                functional model    identify                               review       implementation     train
                                                   functional                       functional
•    3. Frequent delivery of products              prototype
                                                                 iteration
                                                                                    prototype
                                                                                                                           business                        users

                                                                                                                                  user approval and user
•    4. Fitness for business purpose                             review prototype                                                       guidelines


•    5. Iterative and incremental delivery
•    6. Changes are reversible                                                                       identify design
                                                                                                        prototype

•    7. Requirements base-lined at a high level                                     agree              design/build
                                                                                                                            review
                                                                                                                             design
                                                                                    schedule           iteration
•    8. Testing integrated with development                                                                                 prototype

                                                                                                 create design prototype
•    9. Collaborative and co-operative stakeholder approach
                                                                                                                                           34
Leiden Institute of Advanced Computer Science



DSDM                                  Key indicators

•    Visibility of functionality at user interface
•    Clear identification of all classes of users
•    Not too much complexity
•    Not large applications - split into components
•    Need for time constraints
•    Flexible high-level requirements


Time-Boxing:
!   Time-box fixed deadline by which something has to be delivered
!   Typically two to six weeks
!   MoSCoW priorities
       !    Must have - essential
       !    Should have - very important, but system could operate without
       !    Could have
       !    Want (won t have) - but probably won t get!
Leiden Institute of Advanced Computer Science
                                                           !"#$%&'$()*+',,$-$!"#".$/+)01$234$5167)7+28$()*+',,$9



SCRUM         !   Also, an agile approach
                   !"#"$%&'()*%+,-%.*/0(0'+1%2(3'455%63,7(31
                   /+)01$&2,$373'$6)',+)7;'4$)*8',$234$6)2+:7+',$6)*<7473=$:&'$;2,7+$,':06"$%&*,'$2)'$:&'$4'>73'
              !   Based on Sprints
                   >*)$:&'$%'21?$:&'$/+)01@2,:')$234$()*40+:$AB3')?$:&'$:&)''$+'3:)28$1'':73=$:C6',$2,$:&'
                     6823373=$1'':73=?$:&'$D278C$/+)01$234$:&'$/6)73:$)'<7'B?$2,$B'88$2,$:&'$)'E07)'4$;2,7+$2
                     321'8C$:&'$()*40+:$F2+G8*=?$:&'$/6)73:$F2+G8*=$234$:&'$F0)34*B3$+&2):$HI37;')=?$!JJKL"
                    Rugby term: Close-knit, shoulder-to-shoulder formation




                                                                          Image Source: Stettina.org

                                                     !""#$%&'%()*+,-+./0+12&#3+4&)20$$                 36
Leiden Institute of Advanced Computer Science




SCRUM                                                            Sprint: Rugby term: Close-knit,
                                                                 shoulder-to-shoulder formation




!   Creating a backlog (product owner) •          Daily Scrum
!   Sprint phase                                   –    Brief meeting every day
     !    Create sprint backlog
                                                   –    What have you done since the last meeting?
                                                   –    What will you do between now and the next meeting?
     !    Work on spring backlog
                                                   –    Is there anything preventing you from doing what you have
                                                        planned?
                                             •    Demonstration and Evaluation (Sprint finish)
                                                   –    Functioning software is demonstrated to a larger group
                                                   –    Basis for an evaluation meeting à start of next sprint
Leiden Institute of Advanced Computer Science



SCRUM
                            Product
 Product Owner                                  Sprint Backlog        SCRUM team         SCRUM Master
                            Backlog
•  Compiles all        •  To-do-list           •  Highest            •  5-9 people       •  Coaches team
   changes             •  Constantly              prioritized list   •  Self-organized   •  Removes
•  Prioritizes            reprioritized           for sprint         •  Joint               impediments
   functionalities                                                      responsibility   •  Constantly
•  Voice of the                                                      •  No fixed            works to
   customer                                                             project roles       provide best
                                                                                            possible
                                                                                            circumstances
                                                                                            for the team
                                                                                         •  Runs brief
                                                                                            meeting with
                                                                                            team every
                                                                                            day
Leiden Institute of Advanced Computer Science




Grady Booch s concern
   !   Booch, an OO authority, is concerned that with
       requirements driven projects:

       Conceptual integrity sometimes suffers because this
     is little motivation to deal with scalability, extensibility,
     portability, or reusability beyond what any vague
     requirement might imply

   !   Tendency towards a large number of discrete
       functions with little common infrastructure?


                                                              39
Leiden Institute of Advanced Computer Science



Prototyping as evolutionary delivery
     An iterative process of creating quickly and
    inexpensively live and working models to test out
    requirements and assumptions
                                     -- Sprague and McNurlin

    Main types:
    •  Throw away prototypes
    •  Evolutionary prototypes
    What is being prototyped?
    •  Human-computer interface
    •  Functionality



                                                        40
Leiden Institute of Advanced Computer Science




Reasons for prototyping
    !   Learning by doing
       !    Useful where requirements are only partially known
    !   Improved communication
       !    Users reluctant to read massive documents
       !    When system is live you get a better feeling for it
    !   Improved user involvement
       !    User ideas and requests are quickly implemented




                                                           41
Leiden Institute of Advanced Computer Science




Reasons for prototyping (cont d)
    !   Feedback loop is established
       !    Ensures that the specification is correct
    !   Reduces the need for documentation
       !    Debatable?
    !   Reduces maintenance costs i.e. changes
        after the application goes live
    !   Prototype can be used for producing
        expected results

                                                        42
Leiden Institute of Advanced Computer Science




Dangers of prototyping

    !   Users may misunderstand the role of the
        prototype
    !   Lack of project control and standards possible
    !   Additional expense of building prototype
    !   Focus on user-friendly interface could be at
        expense of machine efficiency




                                                     43
Leiden Institute of Advanced Computer Science




Other ways of categorizing prototyping
    !   What is being learnt?
       !    Organizational prototype
       !    Hardware/software prototype ( experimental )
       !    Application prototype ( exploratory )
    !   To what extent?
       !    Mock-ups
       !    Simulated interaction
       !    Partial working models: vertical versus horizontal


                                                            44
Leiden Institute of Advanced Computer Science




Lifecycle Models

AGILE APPROACHES
Leiden Institute of Advanced Computer Science




Agile methods
  !   Structured development methods have some
      perceived disadvantages
      !    Produce large amounts of documentation which is
           largely unread
      !    Documentation has to be kept up to date
      !    Division into specialist groups and need to follow
           procedures stifles communication
      !    Users can be excluded from decision process
      !    Long lead times to deliver anything, etc.
  !   The answer? Agile methods?

                                                         46
Leiden Institute of Advanced Computer Science


Agile methods




                                        Examples
        •  Extreme Programming
Leiden Institute of Advanced Computer Science




Extreme programming
   !   Associated with Kent Beck - see Extreme
       programming explained
   !   Developed originally on Chrysler C3 payroll
       (Smalltalk) project
   !   Agile methods include
       !    Jim Highsmith s Adaptive Software Development
            and
       !    Alistair Cocburn s Chrystal Lite
     methods

                                                      48
Leiden Institute of Advanced Computer Science


Extreme programming
                                         Characteristics

  •  Argues: Disctinction between design and building of software is
     artificial
  •  Code to be developed to meet current needs only
  •  Frequent re-factoring to keep code structured
  •  Increments of one to three weeks
  •  Customer can suggest improvement at any point
  •  Developers work in pairs
  •  Test cases and expected results devised before software design
  •  After testing of increment, test cases added to a consolidated
     set of test case

  !   Associated with Kent Beck - see Extreme programming explained
      !    Jim Highsmith s Adaptive Software Development and
      !    Alistair Cocburn s Chrystal Lite
Leiden Institute of Advanced Computer Science


Lifecycle Models Overview
  Capability                         Pure Waterfall   Spiral      RUP,                Evolutionary
                                                                  Increments
  Works with poorly understood       Poor             Excellent   Fair to Excellent   Excellent
  requirements
  Works with poorly understood       Poor             Excellent   Fair to Excellent   Poor to Fair
  architecture
  Produces highly reliable system    Excellent        Excellent   Excellent           Fair

  Produces system with large         Excellent        Excellent   Excellent           Excellent
  growth envelope
  Manages risk                       Poor             Excellent   Fair                Fair

  Can be constrained by a            Fair             Fair        Fair                Poor
  predefined schedule
  Has low overhead                   Poor             Fair        Excellent           Fair

  Allows for midcourse corrections   Poor             Fair        Fair                Excellent

  Provides customer with progress    Poor             Excellent   Fair                Excellent
  visibility
  Provides management with           Fair             Excellent   Fair to Excellent   Fair
  progress visibility
  Requires little manager or         Fair             Poor        Poor to Fair        Poor
  developer sophistication
Leiden Institute of Advanced Computer Science




Lifecycle Models

A FEW FINAL REMARKS
Leiden Institute of Advanced Computer Science



Construction vs Installation
                                                                   installation

                                                one-shot           incremental    evolutionary
    construction




                          one-shot                  yes                yes            no

                       incremental                  yes                yes            no

                       evolutionary                 yes                yes            yes


    !   One-shot or incremental installation – any construction
        approach possible
    !   Evolutionary installation implies evolutionary construction

                                                                                             52
Leiden Institute of Advanced Computer Science



Iterative process management
   Closely related              macro-process
   to waterfall model                micro-
                                                                stop/check-
                                                                point
                                     process


                                       Iterate  as
                                       required




                                                macro-process
                                                                                  stop/check-
                                                     micro-                       point
                                                     process


                                                       Iterate  as
                                                       required




                                                                 macro-process
                                                                                                stop/check-
                                                                        micro-                  point
                                                                        process


                                                                          Iterate  as
                                                                          required

                                                                                                   53
Leiden Institute of Advanced Computer Science



„Rules of thumb“
           IF Uncertainty
               high                 •  Evolutionary Approach


           IF Complexity
             high AND               •  Incremental Approach
          Uncertainty low

        IF Complexity low
         AND Uncertainty •  One-shot Approach
              low

                                    •  Evolutionary Approach or
         IF Schedule tight
                                    •  Incremental Approach


                                                          Students, be aware of
                                                          this in student projects !
Leiden Institute of Advanced Computer Science



Conclusions




                                                     55

More Related Content

What's hot

software project management
software project managementsoftware project management
software project managementdeep sharma
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 
software engineering
software engineeringsoftware engineering
software engineeringramyavarkala
 
Agile & Open Unified Processes
Agile & Open Unified ProcessesAgile & Open Unified Processes
Agile & Open Unified Processesdcsunu
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringRasan Samarasinghe
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMajane Padua
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
SDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocationSDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocationOpenLearningLab
 
International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)inventionjournals
 
Software Engineering- Observations about Testing
Software Engineering-  Observations about TestingSoftware Engineering-  Observations about Testing
Software Engineering- Observations about TestingTrinity Dwarka
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factorsNancyBeaulah_R
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Jkumararaja
 
SDPM - Lecture 6 - Risk management and project escalation
SDPM - Lecture 6 - Risk management and project escalationSDPM - Lecture 6 - Risk management and project escalation
SDPM - Lecture 6 - Risk management and project escalationOpenLearningLab
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
 

What's hot (20)

2 Process
2 Process2 Process
2 Process
 
software project management
software project managementsoftware project management
software project management
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
Software Lifecycle
Software LifecycleSoftware Lifecycle
Software Lifecycle
 
software engineering
software engineeringsoftware engineering
software engineering
 
Agile & Open Unified Processes
Agile & Open Unified ProcessesAgile & Open Unified Processes
Agile & Open Unified Processes
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
 
SECh123
SECh123SECh123
SECh123
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
SDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocationSDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocation
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)
 
Software Engineering- Observations about Testing
Software Engineering-  Observations about TestingSoftware Engineering-  Observations about Testing
Software Engineering- Observations about Testing
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Slides chapters 24-25
Slides chapters 24-25Slides chapters 24-25
Slides chapters 24-25
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)
 
SDPM - Lecture 6 - Risk management and project escalation
SDPM - Lecture 6 - Risk management and project escalationSDPM - Lecture 6 - Risk management and project escalation
SDPM - Lecture 6 - Risk management and project escalation
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 

Viewers also liked (20)

Ob Jcm Ppt
Ob Jcm PptOb Jcm Ppt
Ob Jcm Ppt
 
Pio 123 slide_psikologi_industri_dan_organisasi
Pio 123 slide_psikologi_industri_dan_organisasiPio 123 slide_psikologi_industri_dan_organisasi
Pio 123 slide_psikologi_industri_dan_organisasi
 
Unit 2 spm
Unit 2 spmUnit 2 spm
Unit 2 spm
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
 
Robbins9 ppt16
Robbins9 ppt16Robbins9 ppt16
Robbins9 ppt16
 
Jcm ppoint
Jcm ppointJcm ppoint
Jcm ppoint
 
Hackman & oldham model..pbpp 2103
Hackman & oldham model..pbpp 2103Hackman & oldham model..pbpp 2103
Hackman & oldham model..pbpp 2103
 
Psikologi Industri dan Organisasi: Job Characteristic Model
Psikologi Industri dan Organisasi: Job Characteristic ModelPsikologi Industri dan Organisasi: Job Characteristic Model
Psikologi Industri dan Organisasi: Job Characteristic Model
 
Job characteristics model (JCM)
Job characteristics model (JCM) Job characteristics model (JCM)
Job characteristics model (JCM)
 
Job characteristics model
Job characteristics modelJob characteristics model
Job characteristics model
 
The job characteristics model
The job characteristics modelThe job characteristics model
The job characteristics model
 
Spm unit 1
Spm unit 1Spm unit 1
Spm unit 1
 
Spm unit 5
Spm unit 5Spm unit 5
Spm unit 5
 
Job characteristic model
Job characteristic modelJob characteristic model
Job characteristic model
 
Spm unit 3
Spm unit 3Spm unit 3
Spm unit 3
 
Spm unit 4
Spm unit 4Spm unit 4
Spm unit 4
 
Spm unit2
Spm unit2Spm unit2
Spm unit2
 
Software project management
Software project managementSoftware project management
Software project management
 
Job design
Job designJob design
Job design
 
Job design
Job designJob design
Job design
 

Similar to SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf

SDPM - Lecture 8 - Software quality assurance
SDPM - Lecture 8 - Software quality assuranceSDPM - Lecture 8 - Software quality assurance
SDPM - Lecture 8 - Software quality assuranceOpenLearningLab
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdmguestc990b6
 
Effective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationEffective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationJonathan Arnowitz
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
SDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project PlanningSDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project PlanningOpenLearningLab
 
Key Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning ImplementationKey Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning ImplementationAlithya
 
Agile and Secure
Agile and SecureAgile and Secure
Agile and SecureDenim Group
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
Online Tv Music Channel Presentation
Online Tv Music Channel PresentationOnline Tv Music Channel Presentation
Online Tv Music Channel PresentationMiguel Rodrigues
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Marvin Heery
 
Agile product development and management
Agile product development and managementAgile product development and management
Agile product development and managementAshwinee Kumar
 
Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02Cognizant
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview SessionBahaa Farouk
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdfJayanthi Kannan MK
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionFlorian Wilhelm
 

Similar to SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf (20)

SDPM - Lecture 8 - Software quality assurance
SDPM - Lecture 8 - Software quality assuranceSDPM - Lecture 8 - Software quality assurance
SDPM - Lecture 8 - Software quality assurance
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
Effective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationEffective Prototyping Process for Software Creation
Effective Prototyping Process for Software Creation
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
SDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project PlanningSDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project Planning
 
Key Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning ImplementationKey Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning Implementation
 
Unit1
Unit1Unit1
Unit1
 
Agile and Secure
Agile and SecureAgile and Secure
Agile and Secure
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Online Tv Music Channel Presentation
Online Tv Music Channel PresentationOnline Tv Music Channel Presentation
Online Tv Music Channel Presentation
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
 
Agile product development and management
Agile product development and managementAgile product development and management
Agile product development and management
 
Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview Session
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
 
Mosp spring 2011
Mosp spring 2011Mosp spring 2011
Mosp spring 2011
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 

More from OpenLearningLab

Requirements Engineering - Werkcollege 2012: 05-Estimating+Planning
Requirements Engineering - Werkcollege 2012: 05-Estimating+PlanningRequirements Engineering - Werkcollege 2012: 05-Estimating+Planning
Requirements Engineering - Werkcollege 2012: 05-Estimating+PlanningOpenLearningLab
 
Requirements Engineering - Werkcollege 2012: 04-Documentation
Requirements Engineering - Werkcollege 2012: 04-DocumentationRequirements Engineering - Werkcollege 2012: 04-Documentation
Requirements Engineering - Werkcollege 2012: 04-DocumentationOpenLearningLab
 
Requirements Engineering - Werkcollege 2012: 03-Elicitation
Requirements Engineering - Werkcollege 2012: 03-ElicitationRequirements Engineering - Werkcollege 2012: 03-Elicitation
Requirements Engineering - Werkcollege 2012: 03-ElicitationOpenLearningLab
 
Requirements Engineering - Werkcollege 2012: 02-Stakeholders
Requirements Engineering - Werkcollege 2012: 02-StakeholdersRequirements Engineering - Werkcollege 2012: 02-Stakeholders
Requirements Engineering - Werkcollege 2012: 02-StakeholdersOpenLearningLab
 
Re werkcollege12-02-stakeholders
Re werkcollege12-02-stakeholdersRe werkcollege12-02-stakeholders
Re werkcollege12-02-stakeholdersOpenLearningLab
 
Requirements Engineering - Werkcollege 2012: 01-introduction
Requirements Engineering - Werkcollege 2012: 01-introductionRequirements Engineering - Werkcollege 2012: 01-introduction
Requirements Engineering - Werkcollege 2012: 01-introductionOpenLearningLab
 
Managing Innovation_innovation governance
Managing Innovation_innovation governanceManaging Innovation_innovation governance
Managing Innovation_innovation governanceOpenLearningLab
 
Managing Innovation_innovation system
Managing Innovation_innovation systemManaging Innovation_innovation system
Managing Innovation_innovation systemOpenLearningLab
 
Managing Innovation_entrepreneurship and transformation
Managing Innovation_entrepreneurship and transformation Managing Innovation_entrepreneurship and transformation
Managing Innovation_entrepreneurship and transformation OpenLearningLab
 
Managing Innovation_organization of innovation
Managing Innovation_organization of innovationManaging Innovation_organization of innovation
Managing Innovation_organization of innovationOpenLearningLab
 
Managing Innovation_innovation concepts
Managing Innovation_innovation conceptsManaging Innovation_innovation concepts
Managing Innovation_innovation conceptsOpenLearningLab
 
Managing Innovation_Introduction to Innovation
Managing Innovation_Introduction to InnovationManaging Innovation_Introduction to Innovation
Managing Innovation_Introduction to InnovationOpenLearningLab
 
SDPM - Lecture 9 - Managing people and organizing teams
SDPM - Lecture 9 - Managing people and organizing teamsSDPM - Lecture 9 - Managing people and organizing teams
SDPM - Lecture 9 - Managing people and organizing teamsOpenLearningLab
 
SDPM - Lecture 7 - Project monitoring and control
SDPM - Lecture 7 - Project monitoring and controlSDPM - Lecture 7 - Project monitoring and control
SDPM - Lecture 7 - Project monitoring and controlOpenLearningLab
 
SDPM - Lecture 4a - MS Project – High Level Introduction
SDPM - Lecture 4a - MS Project – High Level IntroductionSDPM - Lecture 4a - MS Project – High Level Introduction
SDPM - Lecture 4a - MS Project – High Level IntroductionOpenLearningLab
 
SDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendor
SDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendorSDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendor
SDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendorOpenLearningLab
 
SDPM - Lecture 1 - Introduction
SDPM - Lecture 1 - IntroductionSDPM - Lecture 1 - Introduction
SDPM - Lecture 1 - IntroductionOpenLearningLab
 
Research Seminar - Thesis Projects for ICTiB
Research Seminar - Thesis Projects for ICTiBResearch Seminar - Thesis Projects for ICTiB
Research Seminar - Thesis Projects for ICTiBOpenLearningLab
 
Session09 corporate andsocialentrepreneurship
Session09 corporate andsocialentrepreneurshipSession09 corporate andsocialentrepreneurship
Session09 corporate andsocialentrepreneurshipOpenLearningLab
 
Session08 entrepreneurship andtransformation
Session08 entrepreneurship andtransformationSession08 entrepreneurship andtransformation
Session08 entrepreneurship andtransformationOpenLearningLab
 

More from OpenLearningLab (20)

Requirements Engineering - Werkcollege 2012: 05-Estimating+Planning
Requirements Engineering - Werkcollege 2012: 05-Estimating+PlanningRequirements Engineering - Werkcollege 2012: 05-Estimating+Planning
Requirements Engineering - Werkcollege 2012: 05-Estimating+Planning
 
Requirements Engineering - Werkcollege 2012: 04-Documentation
Requirements Engineering - Werkcollege 2012: 04-DocumentationRequirements Engineering - Werkcollege 2012: 04-Documentation
Requirements Engineering - Werkcollege 2012: 04-Documentation
 
Requirements Engineering - Werkcollege 2012: 03-Elicitation
Requirements Engineering - Werkcollege 2012: 03-ElicitationRequirements Engineering - Werkcollege 2012: 03-Elicitation
Requirements Engineering - Werkcollege 2012: 03-Elicitation
 
Requirements Engineering - Werkcollege 2012: 02-Stakeholders
Requirements Engineering - Werkcollege 2012: 02-StakeholdersRequirements Engineering - Werkcollege 2012: 02-Stakeholders
Requirements Engineering - Werkcollege 2012: 02-Stakeholders
 
Re werkcollege12-02-stakeholders
Re werkcollege12-02-stakeholdersRe werkcollege12-02-stakeholders
Re werkcollege12-02-stakeholders
 
Requirements Engineering - Werkcollege 2012: 01-introduction
Requirements Engineering - Werkcollege 2012: 01-introductionRequirements Engineering - Werkcollege 2012: 01-introduction
Requirements Engineering - Werkcollege 2012: 01-introduction
 
Managing Innovation_innovation governance
Managing Innovation_innovation governanceManaging Innovation_innovation governance
Managing Innovation_innovation governance
 
Managing Innovation_innovation system
Managing Innovation_innovation systemManaging Innovation_innovation system
Managing Innovation_innovation system
 
Managing Innovation_entrepreneurship and transformation
Managing Innovation_entrepreneurship and transformation Managing Innovation_entrepreneurship and transformation
Managing Innovation_entrepreneurship and transformation
 
Managing Innovation_organization of innovation
Managing Innovation_organization of innovationManaging Innovation_organization of innovation
Managing Innovation_organization of innovation
 
Managing Innovation_innovation concepts
Managing Innovation_innovation conceptsManaging Innovation_innovation concepts
Managing Innovation_innovation concepts
 
Managing Innovation_Introduction to Innovation
Managing Innovation_Introduction to InnovationManaging Innovation_Introduction to Innovation
Managing Innovation_Introduction to Innovation
 
SDPM - Lecture 9 - Managing people and organizing teams
SDPM - Lecture 9 - Managing people and organizing teamsSDPM - Lecture 9 - Managing people and organizing teams
SDPM - Lecture 9 - Managing people and organizing teams
 
SDPM - Lecture 7 - Project monitoring and control
SDPM - Lecture 7 - Project monitoring and controlSDPM - Lecture 7 - Project monitoring and control
SDPM - Lecture 7 - Project monitoring and control
 
SDPM - Lecture 4a - MS Project – High Level Introduction
SDPM - Lecture 4a - MS Project – High Level IntroductionSDPM - Lecture 4a - MS Project – High Level Introduction
SDPM - Lecture 4a - MS Project – High Level Introduction
 
SDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendor
SDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendorSDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendor
SDPM - Lecture 2a - Project evaluation – for the buyer, and for the vendor
 
SDPM - Lecture 1 - Introduction
SDPM - Lecture 1 - IntroductionSDPM - Lecture 1 - Introduction
SDPM - Lecture 1 - Introduction
 
Research Seminar - Thesis Projects for ICTiB
Research Seminar - Thesis Projects for ICTiBResearch Seminar - Thesis Projects for ICTiB
Research Seminar - Thesis Projects for ICTiB
 
Session09 corporate andsocialentrepreneurship
Session09 corporate andsocialentrepreneurshipSession09 corporate andsocialentrepreneurship
Session09 corporate andsocialentrepreneurship
 
Session08 entrepreneurship andtransformation
Session08 entrepreneurship andtransformationSession08 entrepreneurship andtransformation
Session08 entrepreneurship andtransformation
 

Recently uploaded

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 

Recently uploaded (20)

TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 

SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf

  • 1. Leiden Institute of Advanced Computer Science Software development Selecting an appropriate software development approach Prof. Dr. Thomas Bäck System‘s Development and Project Management - Prof. Dr. Thomas Bäck 1
  • 2. Leiden Institute of Advanced Computer Science Dates Feb. 1 14:45 – 17:30 Introduction, Project Description Feb. 2 13:45 – 16:30 STEP WISE Approach to Project Planning Feb. 9 13:10 – 15:45 Selecting an Appropriate Software Dev. Approach Feb. 15 14:45 – 17:30 Activity Planning and Resource Allocation Feb. 16 13:45 – 16:30 Software Effort Estimation Feb. 22 14:45 – 17:30 Risk management, project escalation Feb. 23 13:45 – 16:30 Project monitoring and control Mar. 1 14:45 – 17:00 Exam Mar. 2 13:45 – 16:30 Software Quality Assurance Mar. 8 14:45 – 17:30 Managing People; Contract Management Mar. 9 13:45 – 16:30 Various Mar. 15 14:45 – 17:30 Trade Fair 2
  • 3. Leiden Institute of Advanced Computer Science 3. Analyze project characteristics 1. Identify project objectives 0. Select Project 2. Identify project infrastructure 3. Analyze pr. characteristics 4. Identify products and activities Review lower level detail 5. Estimate effort for activity For each activity 6. Identify activity risks 10. Lower level planning 7. Allocate resources 9. Execute plan 8. Review / publicize plan 3
  • 4. Leiden Institute of Advanced Computer Science Outcome !   Selection of most appropriate methodologies & technologies !   Impacts on !  Training requirements for development staff !  Types of staff to be recruited !  Development environment (HW & SW) !  System maintenance arrangements !   E.g. SSADM (Structured Systems Analysis and Design Methodology), UK standard. 4
  • 5. Leiden Institute of Advanced Computer Science Selection of software development approaches !   In-house development: most of these issues resolved by IT planning and standards !   Software houses: more applicable as different customers have different needs !   Selection of approach governed by: !  Uncertainties of the project !  Properties of application to be buildt 5
  • 6. Leiden Institute of Advanced Computer Science Analyse project characteristics !   Data-oriented or process-oriented ? !   General tool or application specific software to be developed ? !   Particular type for which specific tools have been developed ? !  Concurrent processing ? !  Knowledge based ? !  Heavy use of computer graphics ? !   Safety critical ? !   Nature of HW/SW environment in which system will operate ? 6
  • 7. Leiden Institute of Advanced Computer Science Technical plan (part of the project plan) 1. Introduction and summary constraints •  Character of the system to be developed •  Risks and uncertainties of project •  User requirements concerning implementation 2. Recommended approach •  Selected methodology / process model •  Development methods •  Required software tools •  Target HW/SW environment 3. Implementation •  Required development environment •  Required maintenance environment •  Required training 4. Implications •  Project products and activities •  Financial 7
  • 8. Leiden Institute of Advanced Computer Science General approach !   Look at risks and uncertainties, e.g. !  Are requirements well understood ? !  Are technologies to be used well understood ? !   Look at the type of application being built, e.g. !  Information system ? Embedded system ? !  Criticality ? Differences between target and development environment ? !   Client‘s own requirements !  Need to use a particular model 8
  • 9. Leiden Institute of Advanced Computer Science SDLC Model: General approach Right Lifecycle Model Wrong Lifecycle Model •  Improve •  Slow, repeated work development speed •  Unnecessary work •  Improve quality •  Frustration •  Improve project tracking and control •  Minimize overhead •  Minimize risk exposure •  Improve client relationship
  • 10. Leiden Institute of Advanced Computer Science Choice of process models One-Shot Incremental Evolutionary Agile •  Whole •  Application is •  System is •  Many application is implemented implemented intermediary implemented in steps via a number prototypes in one go •  Each step of versions •  Very frequent •  Also known as delivers a •  Each version user „waterfall“, subset of is „exercised“ interaction „once- functionality by users •  No upfront through“, etc. •  Functions in •  Suggestions specifications the subset are for •  Focus on fully improvement coding implemented, are made •  Small projects i.e., can be only used by client •  Waterfall •  Spiral •  Prototyping •  Extreme •  V-Model •  Staged- •  SCRUM Programming Delivery •  DSDM •  RUP One-Shot Incremental Evolutionary Agile 10
  • 11. Leiden Institute of Advanced Computer Science „Rules of thumb“ IF Uncertainty high •  Evolutionary Approach IF Complexity high AND •  Incremental Approach Uncertainty low IF Complexity low AND Uncertainty •  One-shot Approach low •  Evolutionary Approach or IF Schedule tight •  Incremental Approach
  • 12. Leiden Institute of Advanced Computer Science Lifecycle Models ONE-SHOT APPROACHES
  • 13. Leiden Institute of Advanced Computer Science One-shot: The waterfall model Feasibility study User Requirements Analysis System Design Program Design Coding Testing Operation
  • 14. Leiden Institute of Advanced Computer Science One-shot: The waterfall model (cont‘d) Pros Cons •  Imposes structure on •  Limited scope for complex projects flexibility/iterations •  Every stage needs to be •  Full requirements checked and signed off specification at the •  Eliminates midstream beginning changes •  User specifications •  Good when quality •  No tangible product until requirements dominate the end cost and schedule requirements
  • 15. Leiden Institute of Advanced Computer Science One-shot: The V-process model Validation process Feasibility study Review Corrections User requirements User acceptance System design System test Program design Program testing Another way of looking at Code the waterfall model
  • 16. Leiden Institute of Advanced Computer Science Lifecycle Models INCREMENTAL APPROACHES
  • 17. Leiden Institute of Advanced Computer Science Incremental delivery delivered system design build install evaluate increment 1 first incremental delivery design build install evaluate increment 2 second incremental delivery increment design build install evaluate 3 third incremental delivery 17
  • 18. The incremental plan outline Leiden Institute of Advanced Computer Science Characteristics of Increments !   Some steps will be pre-requisite because of physical dependencies •  Steps ideally 1% to 5% of the total project !   Others may be in any order •  Non-computer steps should be included !   Value to cost ratios may be used •  Ideal if a step takes one !  Fraction V/C where month or less: •  Not more than three •  V is a score 1-10 representing value to months customer (rated by customer) •  Each step should deliver •  C is a score 0-10 representing cost for some benefit to the user developers (rated by developers) •  Some steps will be physically !  Rather crude, but helpful and easy to dependent on others do Step   Value   C ost   Ratio   Rank   Profit  reports   9   1   9   2nd   Online  database   1   9   0.11   5th   Ad  hoc  enquiry   5   5   1   4th   Purchasing  plans   9   4   2.25   3rd   Profit-­‐based  pay  for   9   0   inf   1st   managers  
  • 19. Leiden Institute of Advanced Computer Science Incremental delivery Pros Cons •  Feedback from earlier •  Loss of economy of scale stages used in later ones (some costs will be •  Shorter development repeated) thresholds (important •  „Software breakage“ (later when requirements are increments might change likely to change) earlier increments) •  User gets some benefits earlier •  Project may be put aside temporarily •  Reduces „gold- plating“ (features requested but not used)
  • 20. Leiden Institute of Advanced Computer Science The spiral model Spiral Model •  Risk-oriented lifecycle model •  Breaks project into miniprojects •  Start on small scale in the middle •  Explore risks •  Make plan to handle risks •  Commit to approach for next iteration •  Terminates as a waterfall-model would
  • 21. Leiden Institute of Advanced Computer Science The spiral model (cont d) Each Iteration: •  Determine objectives, alternatives, constraints •  Identify and resolve risks •  Evaluate alternatives •  Develop deliverables, verify correctness •  Plan next iteration •  Commit to approach for next iteration •  Each stage of development considers a greater level of detail !   Early iterations are the cheapest !   Can incorporate other lifecycle models as iterations !   See Boehm s A spiral model of software development and enhancement
  • 22. Leiden Institute of Advanced Computer Science The spiral model (cont‘d) Pros Cons •  As costs increase, •  Complicated risks decrease •  Requires •  At least as much conscentious, management control attentive as waterfall management (checkpoints) •  Early indications of insurmountable risks
  • 23. Leiden Institute of Advanced Computer Science Rational Unified Process Macrocycle Microcycle Image Source: Wikimedia •  Serial in the large •  Iterative in the small •  Delivering incremental releases over time •  Following proven best practices
  • 24. Leiden Institute of Advanced Computer Science RUP: Macrocycle Macrocycle Inception Phase Elaboration Construction Transition Phase Phase Phase • Business Case • Analysis of problem • Iterative, incremental • Deployment at • Project Boundaries domain development of customer • Success Criteria • Baseline architecture complete, executable • Add-ons, bug fixes, • Project plan product … • Risk Analysis • Elimination of largest • Remaining • Check, whether • Resource Estimation risks requirements and project goals have • Working plan and acceptance criteria • Global architecture been achieved milestones decisions • Implementation • Evaluation of work; • Executable prototype • Testing process as proof-of-concept • Prototype • Check, whether system improvements • Decision about • Analysis of detailed system requirements, and users are fit for continuation of architecture, risk „going life“ project, based on life- cycle project goals management as decision point for transfer to next phase
  • 25. Leiden Institute of Advanced Computer Science RUP: Iterations Iteration: •  Steps within a single phase •  Results in release of a Image Source: Wikimedia subset of total product Microcycle •  Runs through all work steps (with varying weights)
  • 26. Leiden Institute of Advanced Computer Science RUP: Roles & Activities Activities: •  Responsibility of a staff member •  Defined Inputs and Outputs •  Can be split up into single steps •  About 30 role models •  Can shift/change over time •  Single staff member can play different roles
  • 27. Leiden Institute of Advanced Computer Science Benefits of incremental delivery !   Feedback from early stages used in developing later stages !   Shorter development thresholds !  Important when requirements are likely to change !   User gets some benefits earlier !  May assist cash flow !   Project may be put aside temporarily !  More urgent jobs may emerge !   Reduces gold-plating i.e. features requested but not used 27
  • 28. Leiden Institute of Advanced Computer Science Possible disadvantages of incremental delivery !   Loss of economy of scale !  Some costs will be repeated !   Software breakage !  Later increments might change earlier increments 28
  • 29. Leiden Institute of Advanced Computer Science Lifecycle Models EVOLUTIONARY APPROACHES
  • 30. Leiden Institute of Advanced Computer Science Motivation Perceived disadvantages of structure methods •  Large amounts of documentation, largely unread •  Documentation has to be kept up-to-date •  Division into specialist groups and need to follow procedures stifles communication •  Users can be excluded from decision process •  Long lead times to deliver anything The Answer: Evolutionary Methods?
  • 31. Leiden Institute of Advanced Computer Science Evolutionary prototyping Refine Design and Complete prototype Initial implement and until concept initial release acceptable: prototpye prototype Iterations An iterative process of creating quickly and •  Very useful when requirements are changing rapidly •  Or when customer is reluctant to commit to a set of inexpensively live and working models to requirements test out requirements and assumptions •  Or when neither you or your customer understands the application area well Sprague and McNurlin •  Or when developers are unsure of optimal architecture/ algorithm to use
  • 32. Leiden Institute of Advanced Computer Science Evolutionary prototyping •  Throw-away Types •  Evolutionary •  Human-computer interface What? •  Functionality What is being •  Organizational prototype •  Hardware/software prototype („experimental“) learnt? •  Application prototype („exploratory“) •  Mockups To what extent? •  Simulated Interaction •  Partial working models: Vertical vs. horizontal 32
  • 33. Leiden Institute of Advanced Computer Science Evolutionary prototyping Pros Cons •  Learning by doing •  Users may misunderstand •  Improved communication the role of the prototype •  Improved user involvement •  Lack of project control and •  Feedback loop is standards possible established •  Additional expense for •  Reduces the need for building prototype (throw- documentation away) •  Reduces maintenance •  Focus on user-friendly costs interface could be at expense of machine •  Prototype can be used for efficiency producing expected results
  • 34. Leiden Institute of Advanced Computer Science DSDM: Dynamic systems development method !   UK-based consortium !   Arguably DSDM can be seen as replacement for SSADM (Structured Systems Analysis and Design Methodology) !   DSDM is more a project management approach than a development approach Nine core principles feasibility business study •  1. Active user involvement agree schedule implement •  2. Teams empowered to make decisions create functional model identify review implementation train functional functional •  3. Frequent delivery of products prototype iteration prototype business users user approval and user •  4. Fitness for business purpose review prototype guidelines •  5. Iterative and incremental delivery •  6. Changes are reversible identify design prototype •  7. Requirements base-lined at a high level agree design/build review design schedule iteration •  8. Testing integrated with development prototype create design prototype •  9. Collaborative and co-operative stakeholder approach 34
  • 35. Leiden Institute of Advanced Computer Science DSDM Key indicators •  Visibility of functionality at user interface •  Clear identification of all classes of users •  Not too much complexity •  Not large applications - split into components •  Need for time constraints •  Flexible high-level requirements Time-Boxing: !   Time-box fixed deadline by which something has to be delivered !   Typically two to six weeks !   MoSCoW priorities !  Must have - essential !  Should have - very important, but system could operate without !  Could have !  Want (won t have) - but probably won t get!
  • 36. Leiden Institute of Advanced Computer Science !"#$%&'$()*+',,$-$!"#".$/+)01$234$5167)7+28$()*+',,$9 SCRUM !   Also, an agile approach !"#"$%&'()*%+,-%.*/0(0'+1%2(3'455%63,7(31 /+)01$&2,$373'$6)',+)7;'4$)*8',$234$6)2+:7+',$6)*<7473=$:&'$;2,7+$,':06"$%&*,'$2)'$:&'$4'>73' !   Based on Sprints >*)$:&'$%'21?$:&'$/+)01@2,:')$234$()*40+:$AB3')?$:&'$:&)''$+'3:)28$1'':73=$:C6',$2,$:&' 6823373=$1'':73=?$:&'$D278C$/+)01$234$:&'$/6)73:$)'<7'B?$2,$B'88$2,$:&'$)'E07)'4$;2,7+$2 321'8C$:&'$()*40+:$F2+G8*=?$:&'$/6)73:$F2+G8*=$234$:&'$F0)34*B3$+&2):$HI37;')=?$!JJKL" Rugby term: Close-knit, shoulder-to-shoulder formation Image Source: Stettina.org !""#$%&'%()*+,-+./0+12&#3+4&)20$$ 36
  • 37. Leiden Institute of Advanced Computer Science SCRUM Sprint: Rugby term: Close-knit, shoulder-to-shoulder formation !   Creating a backlog (product owner) •  Daily Scrum !   Sprint phase –  Brief meeting every day !  Create sprint backlog –  What have you done since the last meeting? –  What will you do between now and the next meeting? !  Work on spring backlog –  Is there anything preventing you from doing what you have planned? •  Demonstration and Evaluation (Sprint finish) –  Functioning software is demonstrated to a larger group –  Basis for an evaluation meeting à start of next sprint
  • 38. Leiden Institute of Advanced Computer Science SCRUM Product Product Owner Sprint Backlog SCRUM team SCRUM Master Backlog •  Compiles all •  To-do-list •  Highest •  5-9 people •  Coaches team changes •  Constantly prioritized list •  Self-organized •  Removes •  Prioritizes reprioritized for sprint •  Joint impediments functionalities responsibility •  Constantly •  Voice of the •  No fixed works to customer project roles provide best possible circumstances for the team •  Runs brief meeting with team every day
  • 39. Leiden Institute of Advanced Computer Science Grady Booch s concern !   Booch, an OO authority, is concerned that with requirements driven projects: Conceptual integrity sometimes suffers because this is little motivation to deal with scalability, extensibility, portability, or reusability beyond what any vague requirement might imply !   Tendency towards a large number of discrete functions with little common infrastructure? 39
  • 40. Leiden Institute of Advanced Computer Science Prototyping as evolutionary delivery An iterative process of creating quickly and inexpensively live and working models to test out requirements and assumptions -- Sprague and McNurlin Main types: •  Throw away prototypes •  Evolutionary prototypes What is being prototyped? •  Human-computer interface •  Functionality 40
  • 41. Leiden Institute of Advanced Computer Science Reasons for prototyping !   Learning by doing !  Useful where requirements are only partially known !   Improved communication !  Users reluctant to read massive documents !  When system is live you get a better feeling for it !   Improved user involvement !  User ideas and requests are quickly implemented 41
  • 42. Leiden Institute of Advanced Computer Science Reasons for prototyping (cont d) !   Feedback loop is established !  Ensures that the specification is correct !   Reduces the need for documentation !  Debatable? !   Reduces maintenance costs i.e. changes after the application goes live !   Prototype can be used for producing expected results 42
  • 43. Leiden Institute of Advanced Computer Science Dangers of prototyping !   Users may misunderstand the role of the prototype !   Lack of project control and standards possible !   Additional expense of building prototype !   Focus on user-friendly interface could be at expense of machine efficiency 43
  • 44. Leiden Institute of Advanced Computer Science Other ways of categorizing prototyping !   What is being learnt? !  Organizational prototype !  Hardware/software prototype ( experimental ) !  Application prototype ( exploratory ) !   To what extent? !  Mock-ups !  Simulated interaction !  Partial working models: vertical versus horizontal 44
  • 45. Leiden Institute of Advanced Computer Science Lifecycle Models AGILE APPROACHES
  • 46. Leiden Institute of Advanced Computer Science Agile methods !   Structured development methods have some perceived disadvantages !  Produce large amounts of documentation which is largely unread !  Documentation has to be kept up to date !  Division into specialist groups and need to follow procedures stifles communication !  Users can be excluded from decision process !  Long lead times to deliver anything, etc. !   The answer? Agile methods? 46
  • 47. Leiden Institute of Advanced Computer Science Agile methods Examples •  Extreme Programming
  • 48. Leiden Institute of Advanced Computer Science Extreme programming !   Associated with Kent Beck - see Extreme programming explained !   Developed originally on Chrysler C3 payroll (Smalltalk) project !   Agile methods include !  Jim Highsmith s Adaptive Software Development and !  Alistair Cocburn s Chrystal Lite methods 48
  • 49. Leiden Institute of Advanced Computer Science Extreme programming Characteristics •  Argues: Disctinction between design and building of software is artificial •  Code to be developed to meet current needs only •  Frequent re-factoring to keep code structured •  Increments of one to three weeks •  Customer can suggest improvement at any point •  Developers work in pairs •  Test cases and expected results devised before software design •  After testing of increment, test cases added to a consolidated set of test case !   Associated with Kent Beck - see Extreme programming explained !  Jim Highsmith s Adaptive Software Development and !  Alistair Cocburn s Chrystal Lite
  • 50. Leiden Institute of Advanced Computer Science Lifecycle Models Overview Capability Pure Waterfall Spiral RUP, Evolutionary Increments Works with poorly understood Poor Excellent Fair to Excellent Excellent requirements Works with poorly understood Poor Excellent Fair to Excellent Poor to Fair architecture Produces highly reliable system Excellent Excellent Excellent Fair Produces system with large Excellent Excellent Excellent Excellent growth envelope Manages risk Poor Excellent Fair Fair Can be constrained by a Fair Fair Fair Poor predefined schedule Has low overhead Poor Fair Excellent Fair Allows for midcourse corrections Poor Fair Fair Excellent Provides customer with progress Poor Excellent Fair Excellent visibility Provides management with Fair Excellent Fair to Excellent Fair progress visibility Requires little manager or Fair Poor Poor to Fair Poor developer sophistication
  • 51. Leiden Institute of Advanced Computer Science Lifecycle Models A FEW FINAL REMARKS
  • 52. Leiden Institute of Advanced Computer Science Construction vs Installation installation one-shot incremental evolutionary construction one-shot yes yes no incremental yes yes no evolutionary yes yes yes !   One-shot or incremental installation – any construction approach possible !   Evolutionary installation implies evolutionary construction 52
  • 53. Leiden Institute of Advanced Computer Science Iterative process management Closely related macro-process to waterfall model micro- stop/check- point process Iterate as required macro-process stop/check- micro- point process Iterate as required macro-process stop/check- micro- point process Iterate as required 53
  • 54. Leiden Institute of Advanced Computer Science „Rules of thumb“ IF Uncertainty high •  Evolutionary Approach IF Complexity high AND •  Incremental Approach Uncertainty low IF Complexity low AND Uncertainty •  One-shot Approach low •  Evolutionary Approach or IF Schedule tight •  Incremental Approach Students, be aware of this in student projects !
  • 55. Leiden Institute of Advanced Computer Science Conclusions 55