+ All Categories
Home > Documents > jmmod3se

jmmod3se

Date post: 07-Apr-2018
Category:
Upload: madhu-sudhan
View: 216 times
Download: 0 times
Share this document with a friend

of 65

Transcript
  • 8/6/2019 jmmod3se

    1/65

    1

    Project ManagementConceptsProject ManagementConcepts

  • 8/6/2019 jmmod3se

    2/65

    2

    The 4 PsThe 4 Ps People the mostimportantelementofa

    successful project Product the software to be built

    Process the setof frameworkactivities

    and software engineeringtasks to getthejob done

    Project allwork requiredto make theproducta reality

    People the mostimportantelementofa

    successful project Product the software to be built

    Process the setof frameworkactivities

    and software engineeringtasks to getthejob done

    Project allwork requiredto make theproducta reality

  • 8/6/2019 jmmod3se

    3/65

    3

    StakeholdersStakeholders Senior managers who define the business issues thatoftenhave

    significantinfluence onthe project. Project(technical) managers who mustplan, motivate, organize,and

    controlthe practitioners who do software work. Practitioners who deliverthe technical skills thatare necessaryto

    engineera productorapplication. Customers who specifythe requirements forthe software to be

    engineeredand other stakeholders who have a peripheral interestintheoutcome.

    End-users who interactwiththe software once itis released forproduction use.

    Senior managers who define the business issues thatoftenhavesignificantinfluence onthe project.

    Project(technical) managers who mustplan, motivate, organize,and

    controlthe practitioners who do software work. Practitioners who deliverthe technical skills thatare necessaryto

    engineera productorapplication. Customers who specifythe requirements forthe software to be

    engineeredand other stakeholders who have a peripheral interestintheoutcome.

    End-users who interactwiththe software once itis released forproduction use.

  • 8/6/2019 jmmod3se

    4/65

    4

    Software TeamsSoftware TeamsHowto lead?

    Howto organize?

    Howto motivate?

    Howto collaborate?

    Howto create good ideas?

  • 8/6/2019 jmmod3se

    5/65

    5

    Team LeaderTeam Leader The MOI Model:

    Motivation. The abilityto encourage (bypush or pull) technicalpeople to produce to their bestability.

    Organization. The abilityto mold existing processes (or inventnewones) thatwill enable the initial conceptto be translated into a finalproduct.

    Ideas or innovation. The abilityto encourage people to create and

    feel creative evenwhentheymustworkwithin bounds establishedfora particular software productorapplication.

    The MOI Model:Motivation. The abilityto encourage (bypush or pull) technicalpeople to produce to their bestability.

    Organization. The abilityto mold existing processes (or inventnewones) thatwill enable the initial conceptto be translated into a finalproduct.

    Ideas or innovation. The abilityto encourage people to create and

    feel creative evenwhentheymustworkwithin bounds establishedfora particular software productorapplication.

  • 8/6/2019 jmmod3se

    6/65

    6

    Software TeamsSoftware Teams The difficultyofthe problem to be solved The size ofthe resultantprogram(s) in lines of code or function points The time thatthe team will staytogether (team lifetime) The degree to whichthe problem can be modularized The required qualityand reliabilityofthe system to be built The rigidityofthe deliverydate The degree of sociability(communication) required forthe project

    The difficultyofthe problem to be solved The size ofthe resultantprogram(s) in lines of code or function points The time thatthe team will staytogether (team lifetime) The degree to whichthe problem can be modularized The required qualityand reliabilityofthe system to be built The rigidityofthe deliverydate The degree of sociability(communication) required forthe project

    The following factors mustbe consideredwhen selectingThe following factors mustbe consideredwhen selectinga software projectteam structure ...a software projectteam structure ...

  • 8/6/2019 jmmod3se

    7/65

    7

    Organizational ParadigmsOrganizational Paradigms Closed paradigmstructures ateam along atraditionalhierarchyof

    authority Random paradigmstructures ateam looselyand depends on individual

    initiative ofthe team members Open paradigmattempts to structure ateam ina mannerthatachieves

    some ofthe controls associatedwiththe closed paradigm butalso muchofthe innovationthatoccurs when usingthe random paradigm

    Synchronous paradigmrelies onthe natural compartmentalization ofaproblem and organizes team members to work on pieces ofthe problem

    with little active communicationamongthemselves

    Closed paradigmstructures ateam along atraditionalhierarchyofauthority

    Random paradigmstructures ateam looselyand depends on individual

    initiative ofthe team members Open paradigmattempts to structure ateam ina mannerthatachieves

    some ofthe controls associatedwiththe closed paradigm butalso muchofthe innovationthatoccurs when usingthe random paradigm

    Synchronous paradigmrelies onthe natural compartmentalization ofaproblem and organizes team members to work on pieces ofthe problem

    with little active communicationamongthemselves

    suggested byConstantine [CON93]

  • 8/6/2019 jmmod3se

    8/65

    8

    Avoid Team ToxicityAvoid Team Toxicity A frenziedworkatmosphere inwhichteam members waste energyand

    lose focus onthe objectives ofthe workto be performed. High frustration caused bypersonal, business, ortechnological factors

    thatcause frictionamongteam members. Fragmented or poorlycoordinated procedures ora poorlydefined or

    improperlychosen process modelthatbecomes a roadblocktoaccomplishment.

    Unclear definition of roles resulting ina lack ofaccountabilityandresultantfinger-pointing.

    Continuous and repeated exposure to failurethatleads to a loss ofconfidence anda lowering of morale.

    A frenziedworkatmosphere inwhichteam members waste energyandlose focus onthe objectives ofthe workto be performed.

    High frustration caused bypersonal, business, ortechnological factors

    thatcause frictionamongteam members. Fragmented or poorlycoordinated procedures ora poorlydefined or

    improperlychosen process modelthatbecomes a roadblocktoaccomplishment.

    Unclear definition of roles resulting ina lack ofaccountabilityandresultantfinger-pointing.

    Continuous and repeated exposure to failurethatleads to a loss ofconfidence anda lowering of morale.

  • 8/6/2019 jmmod3se

    9/65

    9

    Agile TeamsAgile Teams Team members musthave trustin one another.

    The distribution of skills mustbe appropriate to the problem.

    Mavericks mayhave to be excluded from the team, ifteam cohesivenessis to be maintained.

    Team is self-organizing

    Anadaptive team structure

    Uses elements ofConstantines random, open,and synchronous

    paradigmsSignificantautonomy

    Team members musthave trustin one another.

    The distribution of skills mustbe appropriate to the problem.

    Mavericks mayhave to be excluded from the team, ifteam cohesivenessis to be maintained.

    Team is self-organizing

    Anadaptive team structure

    Uses elements ofConstantines random, open,and synchronous

    paradigmsSignificantautonomy

  • 8/6/2019 jmmod3se

    10/65

    10

    Team Coordination &CommunicationTeam Coordination &Communication Formal, impersonalapproaches include software engineering documents and

    work products (including source code),technical memos, projectmilestones,schedules,and projectcontroltools (Chapter 23), change requests and relateddocumentation, errortracking reports,and repositorydata (see Chapter 26).

    Formal, interpersonal procedures focus on qualityassurance activities (Chapter25) appliedto software engineeringwork products.These include status reviewmeetings and designand code inspections.

    Informal, interpersonal procedures include group meetings for informationdisseminationand problem solvingand collocation of requirements anddevelopmentstaff.

    Electronic communication encompasses electronic mail, electronic bulletinboards,and byextension, video-based conferencing systems.

    Interpersonalnetworking includes informal discussions withteam members andthose outside the projectwho mayhave experience or insightthatcanassistteam members.

    Formal, impersonalapproaches include software engineering documents andwork products (including source code),technical memos, projectmilestones,schedules,and projectcontroltools (Chapter 23), change requests and relateddocumentation, errortracking reports,and repositorydata (see Chapter 26).

    Formal, interpersonal procedures focus on qualityassurance activities (Chapter25) appliedto software engineeringwork products.These include status reviewmeetings and designand code inspections.

    Informal, interpersonal procedures include group meetings for informationdisseminationand problem solvingand collocation of requirements anddevelopmentstaff.

    Electronic communication encompasses electronic mail, electronic bulletinboards,and byextension, video-based conferencing systems.

    Interpersonalnetworking includes informal discussions withteam members andthose outside the projectwho mayhave experience or insightthatcanassistteam members.

  • 8/6/2019 jmmod3se

    11/65

    11

    The Product ScopeThe Product Scope Scope:

    Context.Howdoes the software to be builtfitinto a larger

    system, product, or business contextandwhatconstraints areimposedas a resultofthe context?

    Information objectives. Whatcustomer-visible data objects(Chapter8) are producedas outputfrom the software? Whatdata objects are required for input?

    Functionand performance. Whatfunction does the softwareperform to transform inputdata into output?Are anyspecialperformance characteristics to be addressed?

    Software projectscope mustbe unambiguous and understandable atthemanagementandtechnical levels.

    Scope:

    Context.Howdoes the software to be builtfitinto a larger

    system, product, or business contextandwhatconstraints areimposedas a resultofthe context?

    Information objectives. Whatcustomer-visible data objects(Chapter8) are producedas outputfrom the software? Whatdata objects are required for input?

    Functionand performance. Whatfunction does the softwareperform to transform inputdata into output?Are anyspecialperformance characteristics to be addressed?

    Software projectscope mustbe unambiguous and understandable atthemanagementandtechnical levels.

  • 8/6/2019 jmmod3se

    12/65

    12

    Problem DecompositionProblem Decomposition Sometimes called partitioning or problem elaboration

    Once scope is defined

    Itis decomposed into constituentfunctions

    Itis decomposed into user-visible data objects

    or

    Itis decomposed into a setof problem classes

    Decomposition process continues untilall functions or problemclasses have been defined

    Sometimes called partitioning or problem elaboration

    Once scope is defined

    Itis decomposed into constituentfunctions

    Itis decomposed into user-visible data objects

    or

    Itis decomposed into a setof problem classes

    Decomposition process continues untilall functions or problemclasses have been defined

  • 8/6/2019 jmmod3se

    13/65

    13

    The ProcessThe Process Once a process frameworkhas been established

    Consider projectcharacteristics

    Determine the degree of rigor required

    Define atask setfor each software engineeringactivity

    Task set=Software engineeringtasks

    Work products

    Qualityassurance points

    Milestones

    Once a process frameworkhas been established

    Consider projectcharacteristics

    Determine the degree of rigor required

    Define atask setfor each software engineeringactivity

    Task set=Software engineeringtasks

    Work products

    Qualityassurance points

    Milestones

  • 8/6/2019 jmmod3se

    14/65

    14

    Melding the Problemand the ProcessMelding the Problemand the Process

  • 8/6/2019 jmmod3se

    15/65

    15

    The ProjectThe Project Projects getinto trouble when

    Software people dontunderstandtheir customers needs.The productscope is poorlydefined.

    Changes are managed poorly.The chosentechnologychanges.Business needs change [orare ill-defined].Deadlines are unrealistic.Users are resistant.Sponsorship is lost[orwas never properlyobtained].

    The projectteam lacks people withappropriate skills.Managers [and practitioners]avoid bestpractices and lessons learned.

    Projects getinto trouble when Software people dontunderstandtheir customers needs.The productscope is poorlydefined.

    Changes are managed poorly.The chosentechnologychanges.Business needs change [orare ill-defined].Deadlines are unrealistic.Users are resistant.Sponsorship is lost[orwas never properlyobtained].

    The projectteam lacks people withappropriate skills.Managers [and practitioners]avoid bestpractices and lessons learned.

  • 8/6/2019 jmmod3se

    16/65

    16

    Common-Sense Approachto ProjectsCommon-Sense Approachto Projects Startonthe rightfoot. This is accomplished byworkinghard (veryhard) to

    understandthe problem thatis to be solvedandthen setting realistic objectivesand expectations.

    Maintain momentum.The projectmanager mustprovide incentives to keepturnover of personnelto anabsolute minimum,the team should emphasizequalityin everytask itperforms,and senior managementshould do everything

    possible to stayoutofthe teams way. Track progress. Fora software project, progress is trackedas work products

    (e.g., models, source code, sets oftestcases) are producedandapproved (usingformaltechnical reviews) as partofa qualityassurance activity.

    Make smartdecisions. In essence,the decisions ofthe projectmanagerandthesoftware team should be to keep itsimple.

    Conducta postmortem analysis. Establisha consistentmechanism forextracting lessons learned for each project.

    Startonthe rightfoot. This is accomplished byworkinghard (veryhard) tounderstandthe problem thatis to be solvedandthen setting realistic objectivesand expectations.

    Maintain momentum.The projectmanager mustprovide incentives to keepturnover of personnelto anabsolute minimum,the team should emphasizequalityin everytask itperforms,and senior managementshould do everything

    possible to stayoutofthe teams way. Track progress. Fora software project, progress is trackedas work products

    (e.g., models, source code, sets oftestcases) are producedandapproved (usingformaltechnical reviews) as partofa qualityassurance activity.

    Make smartdecisions. In essence,the decisions ofthe projectmanagerandthesoftware team should be to keep itsimple.

    Conducta postmortem analysis. Establisha consistentmechanism forextracting lessons learned for each project.

  • 8/6/2019 jmmod3se

    17/65

    17

    To Get to the Essenceof a ProjectTo Get to the Essenceof a Project Whyis the system being developed?

    Whatwill be done?

    Whenwill itbe accomplished? Who is responsible?

    Where are theyorganizationallylocated?

    Howwillthe job be done technicallyand managerially?

    Howmuch of each resource (e.g., people, software,tools,database) will be needed?

    Whyis the system being developed?

    Whatwill be done?

    Whenwill itbe accomplished? Who is responsible?

    Where are theyorganizationallylocated?

    Howwillthe job be done technicallyand managerially?

    Howmuch of each resource (e.g., people, software,tools,database) will be needed?

    BarryBoehm

  • 8/6/2019 jmmod3se

    18/65

    18

    Critical PracticesCritical Practices Formal risk management

    Empirical costand schedule estimation

    Metrics-based projectmanagement

    Earned value tracking

    Defecttrackingagainstqualitytargets

    People aware projectmanagement

    Formal risk management

    Empirical costand schedule estimation

    Metrics-based projectmanagement

    Earned value tracking

    Defecttrackingagainstqualitytargets

    People aware projectmanagement

  • 8/6/2019 jmmod3se

    19/65

    19

    Process and ProjectMetrics

    Process and ProjectMetrics

  • 8/6/2019 jmmod3se

    20/65

    20

    A Good Manager MeasuresA Good Manager Measures

    measurementmeasurement

    Whatdo weWhatdo weuse as ause as abasis?basis? size?size? function?function?

    projectmetricsprojectmetrics

    process metricsprocess metricsprocessprocess

    productproduct

    productmetricsproductmetrics

  • 8/6/2019 jmmod3se

    21/65

    21

    Why Do We Measure?Why Do We Measure? assess the status ofan ongoing project

    track potential risks uncover problem areas before theygo

    critical,

    adjustwork flowortasks, evaluate the projectteams abilityto control

    qualityof software work products.

    assess the status ofan ongoing project

    track potential risks uncover problem areas before theygo

    critical,

    adjustwork flowortasks, evaluate the projectteams abilityto control

    qualityof software work products.

  • 8/6/2019 jmmod3se

    22/65

    22

    Process MeasurementProcess Measurement We measure the efficacyofa software process indirectly.

    Thatis,we derive a setof metrics based onthe outcomes thatcan bederived from the process.

    Outcomes include measures of errors uncovered before release ofthe software defects deliveredto and reported byend-users work products delivered (productivity) human effortexpended calendartime expended schedule conformance

    other measures. We also derive process metrics bymeasuringthe characteristics of

    specific software engineeringtasks.

    We measure the efficacyofa software process indirectly.Thatis,we derive a setof metrics based onthe outcomes thatcan bederived from the process.

    Outcomes include measures of errors uncovered before release ofthe software defects deliveredto and reported byend-users work products delivered (productivity) human effortexpended calendartime expended schedule conformance

    other measures. We also derive process metrics bymeasuringthe characteristics of

    specific software engineeringtasks.

  • 8/6/2019 jmmod3se

    23/65

    23

    Process Metrics GuidelinesProcess Metrics Guidelines Use common sense and organizational sensitivitywhen interpreting

    metrics data. Provide regular feedbackto the individuals andteams who collect

    measures and metrics. Dontuse metrics to appraise individuals. Workwith practitioners andteams to setcleargoals and metrics thatwill

    be usedto achieve them. Never use metrics to threaten individuals orteams. Metrics datathatindicate a problem area shouldnotbe considered

    negative.These dataare merelyan indicator for process improvement. Dontobsess ona single metricto the exclusion of other important

    metrics.

    Use common sense and organizational sensitivitywhen interpretingmetrics data.

    Provide regular feedbackto the individuals andteams who collect

    measures and metrics. Dontuse metrics to appraise individuals. Workwith practitioners andteams to setcleargoals and metrics thatwill

    be usedto achieve them. Never use metrics to threaten individuals orteams. Metrics datathatindicate a problem area shouldnotbe considered

    negative.These dataare merelyan indicator for process improvement. Dontobsess ona single metricto the exclusion of other important

    metrics.

  • 8/6/2019 jmmod3se

    24/65

    24

    Software Process ImprovementSoftware Process Improvement

    SPI

    Process model

    Improvementgoals

    Process metrics

    Process improvementrecommendations

  • 8/6/2019 jmmod3se

    25/65

    25

    Process MetricsProcess Metrics Quality-related

    focus on qualityofwork products and deliverables

    Productivity-relatedProduction ofwork-products relatedto effortexpended StatisticalSQA data

    error categorization & analysis

    Defectremoval efficiencypropagation of errors from process activityto activity

    Reuse dataThe number of components producedandtheir degree of reusability

    Quality-relatedfocus on qualityofwork products and deliverables

    Productivity-relatedProduction ofwork-products relatedto effortexpended StatisticalSQA data

    error categorization & analysis

    Defectremoval efficiencypropagation of errors from process activityto activity

    Reuse dataThe number of components producedandtheir degree of reusability

  • 8/6/2019 jmmod3se

    26/65

    26

    Project MetricsProject Metrics usedto minimize the developmentschedule bymakingthe adjustments

    necessaryto avoid delays and mitigate potential problems and risks

    usedto assess productqualityonan ongoing basis and,whennecessary, modifythe technicalapproachto improve quality.

    everyprojectshould measure:

    inputsmeasures ofthe resources (e.g., people,tools) requiredto do thework.

    outputsmeasures ofthe deliverables orwork products created duringthe

    software engineering process.

    resultsmeasures thatindicate the effectiveness ofthe deliverables.

    usedto minimize the developmentschedule bymakingthe adjustmentsnecessaryto avoid delays and mitigate potential problems and risks

    usedto assess productqualityonan ongoing basis and,whennecessary, modifythe technicalapproachto improve quality.

    everyprojectshould measure:

    inputsmeasures ofthe resources (e.g., people,tools) requiredto do thework.

    outputsmeasures ofthe deliverables orwork products created duringthe

    software engineering process.

    resultsmeasures thatindicate the effectiveness ofthe deliverables.

  • 8/6/2019 jmmod3se

    27/65

    27

    Typical Project MetricsTypical Project Metrics Effort/time per software engineeringtask

    Errors uncovered per reviewhour Scheduled vs.actual milestone dates

    Changes (number) andtheir characteristics

    Distribution of efforton software engineeringtasks

    Effort/time per software engineeringtask

    Errors uncovered per reviewhour Scheduled vs.actual milestone dates

    Changes (number) andtheir characteristics

    Distribution of efforton software engineeringtasks

  • 8/6/2019 jmmod3se

    28/65

    28

    Metrics GuidelinesMetrics Guidelines Use common sense and organizational sensitivitywhen interpreting

    metrics data. Provide regular feedbackto the individuals andteams who have worked

    to collectmeasures and metrics. Dontuse metrics to appraise individuals. Workwith practitioners andteams to setcleargoals and metrics thatwill

    be usedto achieve them. Never use metrics to threaten individuals orteams. Metrics datathatindicate a problem area shouldnotbe considered

    negative.These dataare merelyan indicator for process improvement. Dontobsess ona single metricto the exclusion of other important

    metrics.

    Use common sense and organizational sensitivitywhen interpretingmetrics data.

    Provide regular feedbackto the individuals andteams who have worked

    to collectmeasures and metrics. Dontuse metrics to appraise individuals. Workwith practitioners andteams to setcleargoals and metrics thatwill

    be usedto achieve them. Never use metrics to threaten individuals orteams. Metrics datathatindicate a problem area shouldnotbe considered

    negative.These dataare merelyan indicator for process improvement. Dontobsess ona single metricto the exclusion of other important

    metrics.

  • 8/6/2019 jmmod3se

    29/65

    29

    Typical Size-Oriented MetricsTypical Size-Oriented Metrics errors per KLOC(thousand lines of code) defects per KLOC

    $per LOC pages of documentation per KLOC errors per person-month Errors per reviewhour LOCper person-month $per page of documentation

    errors per KLOC(thousand lines of code) defects per KLOC

    $per LOC pages of documentation per KLOC errors per person-month Errors per reviewhour LOCper person-month $per page of documentation

  • 8/6/2019 jmmod3se

    30/65

    30

    Typical Function-Oriented MetricsTypical Function-Oriented Metrics errors per FP (thousand lines of code)

    defects per FP $per FP

    pages of documentation per FP

    FP per person-month

    errors per FP (thousand lines of code)

    defects per FP $per FP

    pages of documentation per FP

    FP per person-month

  • 8/6/2019 jmmod3se

    31/65

    31

    Comparing LOC and FPComparing LOC and FPProgramming LOC per Function point

    Language avg. median low high

    Ada 154 - 10 205Assembler 337 315 91 69C 162 109 33 70C++ 66 53 29 178

    COBOL 77 77 1 00Java 63 53 77 -JavaScript 58 63 2 75Perl 60 - - -PL/1 78 67 22 263Powerbuilder 32 31 11 105SAS 40 1 33 9Smalltalk 26 19 10 55SQL 40 37 7 110Visual Basic 47 2 16 158

    Representative values developed byQSM

  • 8/6/2019 jmmod3se

    32/65

    32

    Why Opt for FP?Why Opt for FP? Programming language independent

    Used readilycountable characteristics thataredetermined earlyinthe software process

    Does notpenalize inventive (short) implementationsthatuse fewer LOCthatother more clumsyversions

    Makes iteasierto measure the impactof reusablecomponents

    Programming language independent

    Used readilycountable characteristics thataredetermined earlyinthe software process

    Does notpenalize inventive (short) implementationsthatuse fewer LOCthatother more clumsyversions

    Makes iteasierto measure the impactof reusablecomponents

  • 8/6/2019 jmmod3se

    33/65

    33

    Object-Oriented MetricsObject-Oriented Metrics Number of scenario scripts (use-cases)

    Number of supportclasses (requiredto implementthe system butare notimmediatelyrelatedto theproblem domain)

    Average number of supportclasses per keyclass

    (analysis class) Number of subsystems (anaggregation of classes

    thatsupporta functionthatis visible to the end-user ofa system)

    Number of scenario scripts (use-cases)

    Number of supportclasses (requiredto implementthe system butare notimmediatelyrelatedto theproblem domain)

    Average number of supportclasses per keyclass

    (analysis class) Number of subsystems (anaggregation of classes

    thatsupporta functionthatis visible to the end-user ofa system)

  • 8/6/2019 jmmod3se

    34/65

    34

    WebE Project MetricsWebE Project Metrics Number of static Web pages (the end-userhas no control overthe

    contentdisplayed onthe page) Number of dynamic Web pages (end-useractions resultin customized

    contentdisplayed onthe page) Number of internal page links (internal page links are pointers that

    provide ahyperlinkto some other Web page withinthe WebApp) Number of persistentdata objects Number of external systems interfaced Number of static contentobjects

    Number of dynamic contentobjects Number of executable functions

    Number of static Web pages (the end-userhas no control overthecontentdisplayed onthe page)

    Number of dynamic Web pages (end-useractions resultin customized

    contentdisplayed onthe page) Number of internal page links (internal page links are pointers that

    provide ahyperlinkto some other Web page withinthe WebApp) Number of persistentdata objects Number of external systems interfaced Number of static contentobjects

    Number of dynamic contentobjects Number of executable functions

  • 8/6/2019 jmmod3se

    35/65

    35

    Measuring QualityMeasuring Quality Correctness the degree to whicha program

    operates accordingto specification

    Maintainabilitythe degree to whicha program isamenable to change

    Integritythe degree to whicha program is

    impervious to outside attack Usabilitythe degree to whicha program is easyto

    use

    Correctness the degree to whicha programoperates accordingto specification

    Maintainabilitythe degree to whicha program isamenable to change

    Integritythe degree to whicha program is

    impervious to outside attack Usabilitythe degree to whicha program is easyto

    use

  • 8/6/2019 jmmod3se

    36/65

    36

    Defect Removal EfficiencyDefect Removal Efficiency

    DRE = E /(E+D)

    E is the number of errors found before delivery ofthe software to the end-userD is the number of defects found after delivery.

  • 8/6/2019 jmmod3se

    37/65

    37

    Metrics forSmallOrganizationsMetrics forSmallOrganizations time (hours or days) elapsed from the time a requestis made until

    evaluation is complete,tqueue. effort(person-hours) to perform the evaluation, Weval.

    time (hours or days) elapsed from completion of evaluationtoassignmentof change orderto personnel,teval. effort(person-hours) requiredto make the change, Wchange. time required (hours or days) to make the change,tchange. errors uncovered duringworkto make change,Echange. defects uncoveredafter change is releasedto the customer base,

    Dchange.

    time (hours or days) elapsed from the time a requestis made untilevaluation is complete,tqueue.

    effort(person-hours) to perform the evaluation, Weval.

    time (hours or days) elapsed from completion of evaluationtoassignmentof change orderto personnel,teval. effort(person-hours) requiredto make the change, Wchange. time required (hours or days) to make the change,tchange. errors uncovered duringworkto make change,Echange. defects uncoveredafter change is releasedto the customer base,

    Dchange.

  • 8/6/2019 jmmod3se

    38/65

    38

    Establishing a MetricsProgramEstablishing a MetricsProgram Identifyyour business goals. Identifywhatyou wantto knowor learn. Identifyyour subgoals.

    Identifythe entities andattributes relatedto your subgoals. Formalize your measurementgoals. Identifyquantifiable questions andthe related indicators thatyou will use to help

    you achieve your measurementgoals. Identifythe data elements thatyou will collectto constructthe indicators that

    help answeryour questions. Define the measures to be used,and make these definitions operational. Identifythe actions thatyou willtake to implementthe measures. Prepare a plan for implementingthe measures.

    Identifyyour business goals. Identifywhatyou wantto knowor learn. Identifyyour subgoals.

    Identifythe entities andattributes relatedto your subgoals. Formalize your measurementgoals. Identifyquantifiable questions andthe related indicators thatyou will use to help

    you achieve your measurementgoals. Identifythe data elements thatyou will collectto constructthe indicators that

    help answeryour questions. Define the measures to be used,and make these definitions operational. Identifythe actions thatyou willtake to implementthe measures. Prepare a plan for implementingthe measures.

  • 8/6/2019 jmmod3se

    39/65

    39

    Chapter 3Estimation forSoftware

    Projects

    Chapter 3Estimation forSoftware

    Projects

    Software Engineering:A PractitionersApproach,6th editionbyRogerS. Pressman

  • 8/6/2019 jmmod3se

    40/65

    40

    Software Project PlanningSoftware Project PlanningThe overall goal of project planning is toThe overall goal of project planning is toestablish a pragmatic strategy for controlling,establish a pragmatic strategy for controlling,tracking, and monitoring a complex technicaltracking, and monitoring a complex technicalproject.project.

    Why?Why?

    So the end result gets done on time, withSo the end result gets done on time, with

    quality!quality!

  • 8/6/2019 jmmod3se

    41/65

    41

    Project Planning Task Set-IProject Planning Task Set-I Establish projectscope

    Determine feasibility Analyze risks

    Define required resources

    Determine require human resourcesDefine reusable software resources

    Identifyenvironmental resources

    Establish projectscope

    Determine feasibility Analyze risks

    Define required resources

    Determine require human resourcesDefine reusable software resources

    Identifyenvironmental resources

  • 8/6/2019 jmmod3se

    42/65

  • 8/6/2019 jmmod3se

    43/65

    43

    EstimationEstimation Estimation of resources, cost,and schedule fora software

    engineering effortrequires

    experienceaccess to goodhistorical information (metrics

    the courage to committo quantitative predictions whenqualitative information is allthatexists

    Estimation carries inherentriskandthis risk leads touncertainty

    Estimation of resources, cost,and schedule fora softwareengineering effortrequires

    experienceaccess to goodhistorical information (metrics

    the courage to committo quantitative predictions whenqualitative information is allthatexists

    Estimation carries inherentriskandthis risk leads touncertainty

  • 8/6/2019 jmmod3se

    44/65

    44

    Write it Down!Write it Down!

    SoftwareSoftwareProjectProject

    PlanPlan

    ProjectScopeProjectScopeEstimatesEstimatesRisksRisksScheduleScheduleControl strategyControl strategy

  • 8/6/2019 jmmod3se

    45/65

    45

    To Understand Scope ...To Understand Scope ... Understandthe customers needs

    understandthe business context understandthe projectboundaries

    understandthe customers motivation

    understandthe likelypaths for change

    understandthat...

    Understandthe customers needs

    understandthe business context understandthe projectboundaries

    understandthe customers motivation

    understandthe likelypaths for change

    understandthat...Evenwhenyou understand,Evenwhenyou understand,nothing is guaranteed!nothing is guaranteed!

  • 8/6/2019 jmmod3se

    46/65

    46

    What is Scope?What is Scope? Software scope describes

    the functions and features thatare to be deliveredto end-users

    the datathatare inputand outputthe content thatis presentedto users as a consequence of usingthe software

    the performance, constraints, interfaces,and reliabilitythatboundthe system.

    Scope is defined using one oftwo techniques:Anarrative description of software scope is developedaftercommunicationwithall stakeholders.

    A setof use-cases is developed byend-users.

    Software scope describes

    the functions and features thatare to be deliveredto end-users

    the datathatare inputand outputthe content thatis presentedto users as a consequence of usingthe software

    the performance, constraints, interfaces,and reliabilitythatboundthe system.

    Scope is defined using one oftwo techniques:Anarrative description of software scope is developedaftercommunicationwithall stakeholders.

    A setof use-cases is developed byend-users.

  • 8/6/2019 jmmod3se

    47/65

    47

    ResourcesResources

    project

    people

    skills

    er

    loc tion

    reus lesoft re

    OTScomponents

    full-experiencecomponents

    newcomponents

    part.-experiencecomponents

    environment

    har ware

    softwaretools

    networkresources

  • 8/6/2019 jmmod3se

    48/65

  • 8/6/2019 jmmod3se

    49/65

    49

    Estimation TechniquesEstimation Techniques Past(similar) projectexperience

    Conventional estimationtechniquestask breakdownand effortestimates

    size (e.g., FP) estimates

    Empirical models

    Automatedtools

    Past(similar) projectexperience

    Conventional estimationtechniquestask breakdownand effortestimates

    size (e.g., FP) estimates

    Empirical models

    Automatedtools

  • 8/6/2019 jmmod3se

    50/65

    50

    Estimation AccuracyEstimation Accuracy Predicated on

    the degree to whichthe plannerhas properlyestimatedthe size ofthe productto be built

    the abilityto translate the size estimate into human effort, calendartime,and dollars (a function ofthe availabilityof reliable softwaremetrics from pastprojects)

    the degree to whichthe projectplan reflects the abilities ofthesoftware team

    the stabilityof productrequirements andthe environmentthatsupports the software engineering effort.

    Predicated on

    the degree to whichthe plannerhas properlyestimatedthe size ofthe productto be built

    the abilityto translate the size estimate into human effort, calendartime,and dollars (a function ofthe availabilityof reliable softwaremetrics from pastprojects)

    the degree to whichthe projectplan reflects the abilities ofthesoftware team

    the stabilityof productrequirements andthe environmentthatsupports the software engineering effort.

  • 8/6/2019 jmmod3se

    51/65

    51

    FunctionalDecompositionFunctionalDecomposition

    functionalfunctional

    decompositiondecomposition

    StatementStatement

    ofofScopeScope Perform a GrammaticalPerform a Grammatical

    parseparse

  • 8/6/2019 jmmod3se

    52/65

    52

    Conventional Methods:LOC/FP ApproachConventional Methods:LOC/FP Approach

    compute LOC/FP using estimates ofinformation domain values

    use historical datato build estimates forthe project

    compute LOC/FP using estimates ofinformation domain values

    use historical datato build estimates forthe project

  • 8/6/2019 jmmod3se

    53/65

    53

    Process-Based EstimationProcess-Based EstimationObt i fr r ss fr rkObt i fr r ss fr rk

    li tili tif ti sf ti s

    frameworkactivitiesframeworkactivities

    EffortrequiredtoEffortrequiredtoaccomplishaccomplisheach frameworkactivityeach frameworkactivityfor eachapplicationfor eachapplicationfunctionfunction

  • 8/6/2019 jmmod3se

    54/65

    54

    Process-Based Estimation ExampleProcess-Based Estimation ExampleActiv ity

    Task

    Functio n

    UICF

    2D GA

    3DGA

    DSM

    PCF

    CGD F

    DAM

    Tota ls

    % effort

    CC P la nn ingRis k

    An a lys is E ng ine e r i ngCons tru ction

    Re le a s e Tota lsCE

    an a lys is des i gn code tes t

    0.25 0.25 0.25 3.50 20.50 4.50 16.50 46.00

    1% 1% 1% 8% 45% 10% 36%

    CC = customer communication CE = customer evaluation

    0.50

    0.75

    0.500.50

    0.500.25

    2.50

    4.00

    4.003.00

    3.002.00

    0.40

    0.60

    1.001.00

    0.750.50

    5.002.00

    3.001.50

    1.501.50

    8.40

    7.35

    8.506.00

    5.754.25

    0.50 2.00 0.50 2.00 5.00

    n/an/a

    n/an/an/an/an/a

    Based on an average burdened labor rate of $8, per month, theBased on an average burdened labor rate of $8, per month, thetotal estimated project cost is $368, and the estimated effort is 46total estimated project cost is $368, and the estimated effort is 46personperson--months.months.

  • 8/6/2019 jmmod3se

    55/65

  • 8/6/2019 jmmod3se

    56/65

  • 8/6/2019 jmmod3se

    57/65

  • 8/6/2019 jmmod3se

    58/65

    58

    COCOMO-IICOCOMO-II COCOMO II is actuallyahierarchyof estimation models thataddress the

    followingareas:

    Application composition model.Used duringthe earlystages ofsoftware engineering,when prototyping of user interfaces,consideration of software and system interaction,assessmentofperformance,and evaluation oftechnologymaturityare paramount.

    Earlydesign stage model.Used once requirements have beenstabilizedand basic software architecture has been established.

    Post-architecture-stage model.Used duringthe construction ofthesoftware.

    COCOMO II is actuallyahierarchyof estimation models thataddress thefollowingareas:

    Application composition model.Used duringthe earlystages ofsoftware engineering,when prototyping of user interfaces,consideration of software and system interaction,assessmentofperformance,and evaluation oftechnologymaturityare paramount.

    Earlydesign stage model.Used once requirements have beenstabilizedand basic software architecture has been established.

    Post-architecture-stage model.Used duringthe construction ofthesoftware.

  • 8/6/2019 jmmod3se

    59/65

    59

    The Software EquationThe Software EquationA dynamic multivariable modelA dynamic multivariable model

    E = [LO

    C x BE = [LO

    C x B.333.333

    /P]/P]33

    x (1/tx (1/t44

    ))wherewhere

    E = effort in personE = effort in person--months or personmonths or person--yearsyearst = project duration in months or yearst = project duration in months or years

    B = special skills factorB = special skills factorP = productivity parameterP = productivity parameter

  • 8/6/2019 jmmod3se

    60/65

    60

    Estimation forOO Projects-IEstimation forOO Projects-I Develop estimates using effortdecomposition, FPanalysis,andany

    other methodthatis applicable for conventionalapplications. Using object-orientedanalysis modeling (Chapter8), develop use-cases

    and determine a count. From the analysis model, determine the number of keyclasses (calledanalysis classes inChapter8).

    Categorize the type of interface forthe applicationand develop amultiplier for supportclasses:

    Interface type Mul tiplierNo GUI 2.0Text-based user interface 2.25GUI 2.5Complex GUI 3.0

    Develop estimates using effortdecomposition, FPanalysis,andanyother methodthatis applicable for conventionalapplications.

    Using object-orientedanalysis modeling (Chapter8), develop use-cases

    and determine a count. From the analysis model, determine the number of keyclasses (calledanalysis classes inChapter8).

    Categorize the type of interface forthe applicationand develop amultiplier for supportclasses:

    Interface type Mul tiplierNo GUI 2.0Text-based user interface 2.25GUI 2.5Complex GUI 3.0

  • 8/6/2019 jmmod3se

    61/65

    61

    Estimation forOO Projects-IIEstimation forOO Projects-II Multiplythe number of keyclasses (step 3) bythe multiplier

    to obtainan estimate forthe number of supportclasses.

    Multiplythe totalnumber of classes (key+ support) bytheaverage number ofwork-units per class. Lorenzand Kiddsuggest15to 20 person-days per class.

    Cross checkthe class-based estimate bymultiplyingtheaverage number ofwork-units per use-case

    Multiplythe number of keyclasses (step 3) bythe multiplierto obtainan estimate forthe number of supportclasses.

    Multiplythe totalnumber of classes (key+ support) bytheaverage number ofwork-units per class. Lorenzand Kiddsuggest15to 20 person-days per class.

    Cross checkthe class-based estimate bymultiplyingtheaverage number ofwork-units per use-case

  • 8/6/2019 jmmod3se

    62/65

    62

    Estimation forAgile ProjectsEstimation forAgile Projects Each user scenario (a mini-use-case) is considered separatelyfor estimation

    purposes. The scenario is decomposed into the setof software engineeringtasks thatwill

    be requiredto develop it. Eachtask is estimated separately. Note: estimation can be based onhistorical

    data,an empirical model, or experience.Alternatively,the volume ofthe scenario can be estimated in LOC, FP or some othervolume-oriented measure (e.g., use-case count).

    Estimates for eachtaskare summedto create an estimate forthe scenario.Alternatively,the volume estimate forthe scenario is translated into effortusinghistorical data.

    The effortestimates forall scenarios thatare to be implemented foragivensoftware incrementare summedto develop the effortestimate forthe increment.

    Each user scenario (a mini-use-case) is considered separatelyfor estimationpurposes.

    The scenario is decomposed into the setof software engineeringtasks thatwillbe requiredto develop it.

    Eachtask is estimated separately. Note: estimation can be based onhistoricaldata,an empirical model, or experience.

    Alternatively,the volume ofthe scenario can be estimated in LOC, FP or some othervolume-oriented measure (e.g., use-case count).

    Estimates for eachtaskare summedto create an estimate forthe scenario.Alternatively,the volume estimate forthe scenario is translated into effortusinghistorical data.

    The effortestimates forall scenarios thatare to be implemented foragivensoftware incrementare summedto develop the effortestimate forthe increment.

  • 8/6/2019 jmmod3se

    63/65

    63

    The Make-Buy DecisionThe Make-Buy Decision

    system Xsystem Xreusereuse

    simple (0.30)simple (0.30)

    difficult(0.70)difficult(0.70)

    minorminor changeschanges

    (0.40)(0.40)

    majormajorchangeschanges

    (0.60)(0.60)

    simple (0.20)simple (0.20)

    complex (0.80)complex (0.80)

    majormajor changeschanges (0.30)(0.30)

    minorminor changeschanges

    (0.70)(0.70)

    $380,000$380,000

    $450,000$450,000

    $275,000$275,000

    $310,000$310,000

    $490,000$490,000

    $210,000$210,000

    $400,000$400,000

    buybuy

    contractcontract

    withoutchanges (0.60)withoutchanges (0.60)

    with changes (0.40)with changes (0.40)

    $350,000$350,000

    $500,000$500,000

    buildbuild

  • 8/6/2019 jmmod3se

    64/65

    64

    Computing Expected CostComputing Expected Cost((path probability ) x (estimated path cost)path probability ) x (estimated path cost)

    ii ii

    For example, the expected cost to build is:For example, the expected cost to build is:

    expectedcost = .3 ($38 K) + .7 ($ K)expectedcost = .3 ($38 K) + .7 ($ K)

    similarly,similarly,

    expectedcost =expectedcost =$382K$382Kexpectedcost =expectedcost =$267K$267Kexpectedcost =expectedcost =$ K$ K

    b ildb ild

    reusreuseebuybuy

    contcontrr

    expected cost=expected cost=

    = $ 29= $ 29 KK

  • 8/6/2019 jmmod3se

    65/65