Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
! Throwaway Prototyping ! Evolutionary Prototyping ! Note: these terms are not widely agreed
!Purpose: !Purpose
" to learn more about the problem or its " to learn more about the problem or its
! formality
solution… solution… " informal: from meetings over coffee, to team get-togethers
" hence discard after the desired knowledge " …and to reduce risk by building parts of " formal: scheduled meetings, prepared participants, defined agenda, specific
is gained. the system early format, documented output
!Use: !Use: ! “Management reviews”
" early or late " incremental; evolutionary " E.g. preliminary design review (PDR), critical design review (CDR), …
!Approach: !Approach: " Used to provide confidence that the design is sound
" horizontal - build only one layer (e.g. UI) " vertical - partial implementation of all " Attended by management and sponsors (customers)
" “quick and dirty” layers;
" Usually a “dog-and-pony show”
!Advantages: " designed to be extended/adapted
" Learning medium for better convergence !Advantages: ! “Walkthroughs”
" Early delivery ! early testing ! less cost " Requirements not frozen " developer technique (usually informal)
" Successful even if it fails! " Return to last increment if error is found " used by development teams to improve quality of product
!Disadvantages: " Flexible(?) " focus is on finding defects
" Wasted effort if requirements change !Disadvantages: ! “(Fagan) Inspections”
rapidly " Can end up with complex, unstructured
" a process management tool (always formal)
" Often replaces proper documentation of system which is hard to maintain
the requirements " early architectural choice may be poor " used to improve quality of the development process
" May set customers’ expectations too high " Optimal solutions not guaranteed " collect defect data to analyze the quality of the process
" Can get developed into final product " Lacks control and direction " written output is important
" major role in training junior staff and transferring expertise
Brooks: “Plan to throw one away - you will anyway!”
© 2000-2003, Steve Easterbrook 17 © 2000-2003, Steve Easterbrook 18
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
! Can structure the review in different ways ! Usually there are too many requirements
! Ad-hoc ! Decide which to include in the first release
" Rely on expertise of the reviewers " Balancing quality, cost and time-to-market
! Checklist ! Assess each requirement’s importance to the project as a whole
" uses a checklist of questions/issues ! Assess the relative cost of each requirement
" checklists tailored to the kind of document (Porter et. al. have examples)
! Compute the cost-value trade-off:
! active reviews (perspective based reading)
" each reviewer reads for a specific purpose, using specialized questionnaires
" effectively different reviewers take different perspectives
30 High
The differences may matter
Value (percent)
! 25 priority
! E.g. Porter et. al. study indicates that: 20 Medium
" active reviews find more faults than ad hoc or checklist methods
priority
" no effective different between ad hoc and checklist methods 15
" the inspection meeting might be superfluous!
10
5 Low priority
5 10 15 20 25 30
Cost (percent)
© 2000-2003, Steve Easterbrook 23 © 2000-2003, Steve Easterbrook 24
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
! Create n x n matrix (for n requirements) Req1 Req2 Req3 Req4 …Also: should compute
Req1 1 1/3 2 4 the consistency index
! Compare each pair of requirements (because the pairwise
! For element (x,y) in the matrix enter: Req2 3 1 5 3 comparisons may not be
" 1 - if x and y are of equal value Normalise consistent)
" 3 - if x is slightly more preferred than y Req3 1/2 1/5 1 1/3
columns
" 5 - if x is strongly more preferred than y
" 7 - if x is very strongly more preferred than y Req4 1/4 1/3 3 1
" 9 - if x is extremely more preferred than y
! …and for (y,x) enter the reciprocal.
Req1 Req2 Req3 Req4 sum sum/4
! Estimate the eigenvalues: Sum
! E.g. “averaging over normalized columns” Req1 0.21 0.18 0.18 0.48 the 1.05 0.26
" Calculate the sum of each column rows
" Divide each element in the matrix by the sum of it’s column Req2 0.63 0.54 0.45 0.36 1.98 0.50
" Calculate the sum of each row
" Divide each row sum by the number of rows Req3 0.11 0.11 0.09 0.04 0.34 0.09
! This gives a value for each reqt: Req4 0.05 0.18 0.27 0.12 0.62 0.16
! …based on estimated percentage of total value of the project
© 2000-2003, Steve Easterbrook 25 © 2000-2003, Steve Easterbrook 26