SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
-
Upload
openlearninglab -
Category
Education
-
view
1.999 -
download
0
description
Transcript of SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
![Page 1: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/1.jpg)
Leiden Institute of Advanced Computer Science
Software development
Selecting an appropriate software development approach Prof. Dr. Thomas Bäck
1 System‘s Development and Project Management - Prof. Dr. Thomas Bäck
![Page 2: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/2.jpg)
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
![Page 3: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/3.jpg)
Leiden Institute of Advanced Computer Science
3. Analyze project characteristics
3
1. Identify project objectives 0. Select Project 2. Identify project infrastructure
3. Analyze pr. characteristics
4. Identify products and activities
5. Estimate effort for activity
6. Identify activity risks
7. Allocate resources
8. Review / publicize plan 9. Execute plan
10. Lower level planning
For each activity
Review lower level detail
![Page 4: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/4.jpg)
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
![Page 5: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/5.jpg)
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
![Page 6: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/6.jpg)
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
![Page 7: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/7.jpg)
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
![Page 8: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/8.jpg)
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
![Page 9: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/9.jpg)
Leiden Institute of Advanced Computer Science
SDLC Model: General approach
Right Lifecycle Model
• Improve development speed
• Improve quality • Improve project
tracking and control • Minimize overhead • Minimize risk
exposure • Improve client
relationship
Wrong Lifecycle Model
• Slow, repeated work • Unnecessary work • Frustration
![Page 10: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/10.jpg)
Leiden Institute of Advanced Computer Science
Choice of process models
10
One-Shot
• Whole application is implemented in one go
• Also known as „waterfall“, „once-through“, etc.
Incremental
• Application is implemented in steps
• Each step delivers a subset of functionality
• Functions in the subset are fully implemented, i.e., can be used by client
Evolutionary
• System is implemented via a number of versions
• Each version is „exercised“ by users
• Suggestions for improvement are made
Agile
• Many intermediary prototypes
• Very frequent user interaction
• No upfront specifications
• Focus on coding
• Small projects only
• Waterfall • V-Model
One-Shot
• Spiral • Staged-
Delivery • RUP
Incremental
• Prototyping • SCRUM • DSDM
Evolutionary
• Extreme Programming
Agile
![Page 11: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/11.jpg)
Leiden Institute of Advanced Computer Science
„Rules of thumb“
• Evolutionary Approach IF Uncertainty high
• Incremental Approach IF Complexity
high AND Uncertainty low
• One-shot Approach IF Complexity low AND Uncertainty
low
• Evolutionary Approach or • Incremental Approach IF Schedule tight
![Page 12: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/12.jpg)
Leiden Institute of Advanced Computer Science
ONE-SHOT APPROACHES Lifecycle Models
![Page 13: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/13.jpg)
Leiden Institute of Advanced Computer Science
One-shot: The waterfall model Feasibility study
User Requirements
System Design
Coding
Operation
Testing
Analysis
Program Design
![Page 14: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/14.jpg)
Leiden Institute of Advanced Computer Science
One-shot: The waterfall model (cont‘d)
Pros
• Imposes structure on complex projects
• Every stage needs to be checked and signed off • Eliminates midstream
changes • Good when quality
requirements dominate cost and schedule requirements
Cons
• Limited scope for flexibility/iterations
• Full requirements specification at the beginning • User specifications
• No tangible product until the end
![Page 15: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/15.jpg)
Leiden Institute of Advanced Computer Science
One-shot: The V-process model
Feasibility study
User requirements
System design
Program design Program testing
Code
System test
User acceptance
Review
Cor
rect
ions
Another way of looking at the waterfall model
Validation process
![Page 16: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/16.jpg)
Leiden Institute of Advanced Computer Science
INCREMENTAL APPROACHES Lifecycle Models
![Page 17: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/17.jpg)
Leiden Institute of Advanced Computer Science
Incremental delivery
17
increment 1
increment 2
increment 3
first incremental delivery
second incremental delivery
third incremental delivery
delivered system
design build install evaluate
design build install evaluate
design build install evaluate
![Page 18: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/18.jpg)
Leiden Institute of Advanced Computer Science The incremental plan outline
Characteristics of Increments
• Steps ideally 1% to 5% of the total project
• Non-computer steps should be included
• Ideal if a step takes one month or less: • Not more than three
months • Each step should deliver
some benefit to the user • Some steps will be physically
dependent on others
! Some steps will be pre-requisite because of physical dependencies
! Others may be in any order ! Value to cost ratios may be used
! Fraction V/C where • V is a score 1-10 representing value to
customer (rated by customer) • C is a score 0-10 representing cost for
developers (rated by developers)
! Rather crude, but helpful and easy to do
Step Value Cost 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 managers 9 0 inf 1st
![Page 19: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/19.jpg)
Leiden Institute of Advanced Computer Science
Incremental delivery
Pros
• Feedback from earlier stages used in later ones
• Shorter development thresholds (important when requirements are likely to change)
• User gets some benefits earlier
• Project may be put aside temporarily
• Reduces „gold-plating“ (features requested but not used)
Cons
• Loss of economy of scale (some costs will be repeated)
• „Software breakage“ (later increments might change earlier increments)
![Page 20: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/20.jpg)
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
![Page 21: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/21.jpg)
Leiden Institute of Advanced Computer Science
The spiral model (cont‘d)
! Early iterations are the cheapest ! Can incorporate other lifecycle models as iterations ! See Boehm’s
A spiral model of software development and enhancement
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
![Page 22: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/22.jpg)
Leiden Institute of Advanced Computer Science
The spiral model (cont‘d)
Pros
• As costs increase, risks decrease
• At least as much management control as waterfall (checkpoints)
• Early indications of insurmountable risks
Cons
• Complicated • Requires
conscentious, attentive management
![Page 23: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/23.jpg)
Leiden Institute of Advanced Computer Science
Rational Unified Process
Microcycle
Macrocycle
• Serial in the large • Iterative in the small • Delivering incremental releases over time • Following proven best practices
Image Source: Wikimedia
![Page 24: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/24.jpg)
Leiden Institute of Advanced Computer Science
RUP: Macrocycle
Inception Phase
• Business Case • Project Boundaries • Success Criteria • Risk Analysis • Resource Estimation • Working plan and milestones
• Executable prototype as proof-of-concept
• Decision about continuation of project, based on life-cycle project goals
Elaboration Phase
• Analysis of problem domain
• Baseline architecture • Project plan • Elimination of largest risks
• Global architecture decisions
• Prototype • Analysis of detailed system requirements, architecture, risk management as decision point for transfer to next phase
Construction Phase
• Iterative, incremental development of complete, executable product
• Remaining requirements and acceptance criteria
• Implementation • Testing • Check, whether system and users are fit for „going life“
Transition Phase
• Deployment at customer
• Add-ons, bug fixes, …
• Check, whether project goals have been achieved
• Evaluation of work; process improvements
Macrocycle
![Page 25: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/25.jpg)
Leiden Institute of Advanced Computer Science
RUP: Iterations
Microcycle
Iteration:
• Steps within a single phase
• Results in release of a subset of total product
• Runs through all work steps (with varying weights)
Image Source: Wikimedia
![Page 26: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/26.jpg)
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
![Page 27: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/27.jpg)
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
![Page 28: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/28.jpg)
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
![Page 29: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/29.jpg)
Leiden Institute of Advanced Computer Science
EVOLUTIONARY APPROACHES Lifecycle Models
![Page 30: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/30.jpg)
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?
![Page 31: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/31.jpg)
Leiden Institute of Advanced Computer Science
Evolutionary prototyping
Initial concept
Design and implement
initial prototpye
Refine prototype
until acceptable: Iterations
Complete and
release prototype
“An iterative process of creating quickly and inexpensively live and working models to test out requirements and assumptions’’ Sprague and McNurlin
• Very useful when requirements are changing rapidly • Or when customer is reluctant to commit to a set of
requirements • Or when neither you or your customer understands the
application area well • Or when developers are unsure of optimal architecture/
algorithm to use
![Page 32: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/32.jpg)
Leiden Institute of Advanced Computer Science
Evolutionary prototyping
32
• Throw-away • Evolutionary Types
• Human-computer interface • Functionality What?
• Organizational prototype • Hardware/software prototype („experimental“) • Application prototype („exploratory“)
What is being learnt?
• Mockups • Simulated Interaction • Partial working models: Vertical vs. horizontal
To what extent?
![Page 33: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/33.jpg)
Leiden Institute of Advanced Computer Science
Evolutionary prototyping
Pros
• Learning by doing • Improved communication • Improved user involvement • Feedback loop is
established • Reduces the need for
documentation • Reduces maintenance
costs • Prototype can be used for
producing expected results
Cons
• Users may misunderstand the role of the prototype
• Lack of project control and standards possible
• Additional expense for building prototype (throw-away)
• Focus on user-friendly interface could be at expense of machine efficiency
![Page 34: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/34.jpg)
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
34
Nine core principles
• 1. Active user involvement • 2. Teams empowered to make decisions • 3. Frequent delivery of products • 4. Fitness for business purpose • 5. Iterative and incremental delivery • 6. Changes are reversible • 7. Requirements base-lined at a high level • 8. Testing integrated with development • 9. Collaborative and co-operative stakeholder approach
feasibility
business study
functional model iteration
agree schedule
identify functional prototype
review prototype
create functional prototype
design/build iteration
identify design prototype
review design prototype
agree schedule
create design prototype
implementation
implement
train users
user approval and user guidelines
review business
![Page 35: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/35.jpg)
Leiden Institute of Advanced Computer Science
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-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!
Time-Boxing:
DSDM
![Page 36: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/36.jpg)
Leiden Institute of Advanced Computer Science
SCRUM ! Also, an agile approach ! Based on “Sprints”
36
Rugby term: Close-knit, shoulder-to-shoulder formation
!"#$%&'$()*+',,$-$!"#".$/+)01$234$5167)7+28$()*+',,$9*3:)*8
!"#"$%&'()*%+,-%.*/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'4$)*8',$
>*)$:&'$%'21?$:&'$/+)01@2,:')$234$()*40+:$AB3')?$:&'$:&)''$+'3:)28$1'':73=$:C6',$2,$:&'$/6)73:$
6823373=$1'':73=?$:&'$D278C$/+)01$234$:&'$/6)73:$)'<7'B?$2,$B'88$2,$:&'$)'E07)'4$;2,7+$2):7>2+:,$
321'8C$:&'$()*40+:$F2+G8*=?$:&'$/6)73:$F2+G8*=$234$:&'$F0)34*B3$+&2):$HI37;')=?$!JJKL"
!""#$%&'%()*+,-+./0+12+4&)20$$
!"#$%&'#(
M,$6*73:'4$:*$B7:&73$:&'$73:)*40+:7*3$:*$:&7,$:&',7,$2:$7:,$>7),:$62='?$/+)01$4'>73',$+'):273$)*8',$
682C73=$62):$B7:&73$:&'$6)*+',,"$D7,:73=07,&73=$;':B''3$67=,$234$+&7+G'3$7:$4'>73',$:&'$7347<74028,$
;'73=$N+*117::'4N$234$:&*,'$*38C$N73<*8<'4N"$%&7,$47<7,7*3$73:*$:B*$62):,$12)G,$:&'$7347<74028,$
47)'+:8C$62):7+762:73=$73$:&'$4'<'8*61'3:$*>$:&'$6)*40+:$234$:&'$6)*O'+:P,$,0++',,?$234$:&*,'$;'73=$
73:')',:'4$234$73<*8<'4$;0:$*38C$7347)'+:8C$2>>'+:'4$;C$:&'$6)*O'+:P,$,0++',,"
/:2))73=$:&'$:&'$:'21?$:&'$/+)01@2,:')$234$:&'$()*40+:$AB3')?$:&'$N67=,N$2)'$)',6*3,7;8'$*>$:&'$
6)*40+:$+)'2:7*3"$%&'$:'21$:C67+288C$+*3,7,:,$*>$.-K$6'*68'$B7:&$+)*,,->03+:7*328$,G788,$234$7,$73$
+&2)='$*>$4',7=3? $4'<'8*61'3:? $:',:73=$234$4'87<')C" $%&'$/+)01@2,:')$ 7, $,*1'B&2:$2$3'B$)*8'$
4'<'8*6'4"$Q7:&$2$:')1$4'87;')2:'8C$+&*,'3$:*$47,:73=07,&$&7,$)*8'$>)*1$:&2:$*>$2$3*)128$6)*O'+:$
1232=') $ :&' $/+)01@2,:') $ 7, $1*)' $ *> $ 2 $ >2+787:2:*) $ *) $ +*2+& $ :* $ :&' $ :'21 $2, $ :&' $ :'21$ 7, $ ,'8>-
*)=237R73="$S'$7,$'3,0)73=$:&2:$:&'$)08',$*>$/+)01$2)'$>*88*B'4?$)'1*<',$716'471'3:,$>)*1$:&'$
:'21$234$7,$73$+&2)='$*>$7168'1'3:73=$/+)01$B7:&73$:&'$*)=237R2:7*3P,$+08:0)'$H/+&B2;')?$!JJTL"$
%&'$()*40+:$AB3')$7,$:&'$<*7+'$*>$:&'$+0,:*1')$*3$,7:'?$,71782)8C$:*$U($H+*162)'$:*$82,:$,'+:7*3L"$
S'$B)7:',$:&'$V,')$/:*)7',$234$6)7*)7:7R',$:&'1$B7:&73$:&'$()*40+:$F2+G8*="
%&'$N+&7+G'3N $2)' $2+:73= $ 7347)'+:8C $40)73= $ :&' $682C? $ :&'C $2)'$+*3,7,:73= $*> $288 $ :&'$,:2G'&*84'),$
#.
Image Source: Stettina.org
![Page 37: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/37.jpg)
Leiden Institute of Advanced Computer Science
! Creating a backlog (product owner) ! Sprint phase
! Create sprint backlog ! Work on spring backlog
• Daily Scrum – Brief meeting every day – What have you done since the last meeting? – What will you do between now and the next meeting? – 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
Sprint: Rugby term: Close-knit, shoulder-to-shoulder formation
SCRUM
![Page 38: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/38.jpg)
Leiden Institute of Advanced Computer Science
SCRUM Product Owner
• Compiles all changes
• Prioritizes functionalities
• Voice of the customer
Product Backlog
• To-do-list • Constantly
reprioritized
Sprint Backlog
• Highest prioritized list for sprint
SCRUM team
• 5-9 people • Self-organized • Joint
responsibility • No fixed
project roles
SCRUM Master
• Coaches team • Removes
impediments • Constantly
works to provide best possible circumstances for the team
• Runs brief meeting with team every day
![Page 39: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/39.jpg)
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
![Page 40: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/40.jpg)
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
40
Main types: • ‘Throw away’ prototypes • Evolutionary prototypes What is being prototyped? • Human-computer interface • Functionality
![Page 41: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/41.jpg)
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
![Page 42: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/42.jpg)
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
![Page 43: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/43.jpg)
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
![Page 44: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/44.jpg)
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
![Page 45: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/45.jpg)
Leiden Institute of Advanced Computer Science
AGILE APPROACHES Lifecycle Models
![Page 46: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/46.jpg)
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
![Page 47: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/47.jpg)
Leiden Institute of Advanced Computer Science
‘Agile‘ methods
Examples • Extreme Programming
![Page 48: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/48.jpg)
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
![Page 49: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/49.jpg)
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
![Page 50: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/50.jpg)
Leiden Institute of Advanced Computer Science
Lifecycle Models Overview Capability Pure Waterfall Spiral RUP,
Increments Evolutionary
Works with poorly understood requirements
Poor Excellent Fair to Excellent Excellent
Works with poorly understood architecture
Poor Excellent Fair to Excellent Poor to Fair
Produces highly reliable system Excellent Excellent Excellent Fair
Produces system with large growth envelope
Excellent Excellent Excellent Excellent
Manages risk Poor Excellent Fair Fair
Can be constrained by a predefined schedule
Fair Fair Fair Poor
Has low overhead Poor Fair Excellent Fair
Allows for midcourse corrections Poor Fair Fair Excellent
Provides customer with progress visibility
Poor Excellent Fair Excellent
Provides management with progress visibility
Fair Excellent Fair to Excellent Fair
Requires little manager or developer sophistication
Fair Poor Poor to Fair Poor
![Page 51: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/51.jpg)
Leiden Institute of Advanced Computer Science
A FEW FINAL REMARKS Lifecycle Models
![Page 52: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/52.jpg)
Leiden Institute of Advanced Computer Science
Construction vs Installation
! One-shot or incremental installation – any construction approach possible
! Evolutionary installation implies evolutionary construction
52
yes yes no
yes yes no
yes yes yes
one-shot incremental evolutionary
one-shot
incremental
evolutionary
installation
cons
truct
ion
![Page 53: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/53.jpg)
Leiden Institute of Advanced Computer Science
Iterative process management
53
micro-process
Iterate asrequired
macro-processstop/check-point
micro-process
Iterate asrequired
macro-processstop/check-point
micro-process
Iterate asrequired
macro-processstop/check-point
Closely related to waterfall model
![Page 54: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/54.jpg)
Leiden Institute of Advanced Computer Science
„Rules of thumb“
• Evolutionary Approach IF Uncertainty high
• Incremental Approach IF Complexity
high AND Uncertainty low
• One-shot Approach IF Complexity low AND Uncertainty
low
• Evolutionary Approach or • Incremental Approach IF Schedule tight
Students, be aware of this in student projects !
![Page 55: SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf](https://reader036.fdocuments.in/reader036/viewer/2022070302/548dd7f0b479597e6a8b4aa9/html5/thumbnails/55.jpg)
Leiden Institute of Advanced Computer Science
Conclusions
55