Software Engineering Ch22

20
3/18/2009 3/18/2009 S.Sreenivasa Rao S.Sreenivasa Rao 1 1 Chapter 22 Chapter 22 Process and Project Metrics Process and Project Metrics

description

Material

Transcript of Software Engineering Ch22

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 11

    Chapter 22Chapter 22Process and Project MetricsProcess and Project Metrics

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 22

    A Good Manager MeasuresA Good Manager Measures

    measurementmeasurement

    What do weWhat do weuse as ause as abasis?basis? size?size? function?function?

    project metricsproject metrics

    process metricsprocess metricsprocessprocess

    productproduct

    product metricsproduct metrics

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 33

    Why Do We Measure?Why Do We Measure?

    assess the status of an ongoing project track potential risks uncover problem areas before they go critical, adjust work flow or tasks, evaluate the project teams ability to control

    quality of software work products.

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 44

    Process Measurement

    We measure the efficacy of a software process We measure the efficacy of a software process indirectly. indirectly. That is, we derive a set of metrics based on the outcomes that That is, we derive a set of metrics based on the outcomes that

    can be derived from the process. can be derived from the process. Outcomes include Outcomes include measures of errors uncovered before release of the softwaremeasures of errors uncovered before release of the software defects delivered to and reported by enddefects delivered to and reported by end--usersusers work products delivered (productivity)work products delivered (productivity) human effort expendedhuman effort expended calendar time expendedcalendar time expended schedule conformanceschedule conformance other measures.other measures.

    We also derive process metrics by measuring the We also derive process metrics by measuring the characteristics of specific software engineering tasks. characteristics of specific software engineering tasks.

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 55

    Process Metrics Guidelines Use common sense and organizational sensitivity when Use common sense and organizational sensitivity when

    interpreting metrics data.interpreting metrics data. Provide regular feedback to the individuals and teams who Provide regular feedback to the individuals and teams who

    collect measures and metrics.collect measures and metrics. DonDont use metrics to appraise individuals.t use metrics to appraise individuals. Work with practitioners and teams to set clear goals and Work with practitioners and teams to set clear goals and

    metrics that will be used to achieve them.metrics that will be used to achieve them. Never use metrics to threaten individuals or teams.Never use metrics to threaten individuals or teams. Metrics data that indicate a problem area should not be Metrics data that indicate a problem area should not be

    considered considered negative.negative. These data are merely an indicator These data are merely an indicator for process improvement.for process improvement.

    DonDont obsess on a single metric to the exclusion of other t obsess on a single metric to the exclusion of other important metrics.important metrics.

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 66

    Software Process Improvement

    SPI

    Process model

    Improvement goals

    Process metrics

    Process improvementrecommendations

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 77

    Process MetricsProcess Metrics QualityQuality--relatedrelated

    focus on quality of work products and deliverablesfocus on quality of work products and deliverables ProductivityProductivity--relatedrelated

    Production of workProduction of work--products related to effort expendedproducts related to effort expended Statistical SQA dataStatistical SQA data

    error categorization & analysiserror categorization & analysis Defect removal efficiencyDefect removal efficiency

    propagation of errors from process activity to activitypropagation of errors from process activity to activity Reuse dataReuse data

    The number of components produced and their degree of The number of components produced and their degree of reusabilityreusability

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 88

    Project Metrics used to minimize the development schedule by making the used to minimize the development schedule by making the

    adjustments necessary to avoid delays and mitigate potential proadjustments necessary to avoid delays and mitigate potential problems blems and risksand risks

    used to assess product quality on an ongoing basis and, when used to assess product quality on an ongoing basis and, when necessary, modify the technical approach to improve quality.necessary, modify the technical approach to improve quality.

    every project should measure:every project should measure: inputsinputsmeasures of the resources (e.g., people, tools) required to do tmeasures of the resources (e.g., people, tools) required to do the he

    work.work. outputsoutputsmeasures of the deliverables or work products created during themeasures of the deliverables or work products created during the

    software engineering process.software engineering process. resultsresultsmeasures that indicate the effectiveness of the deliverables.measures that indicate the effectiveness of the deliverables.

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 99

    Typical Project MetricsTypical Project Metrics

    Effort/time per software engineering taskEffort/time per software engineering task Errors uncovered per review hourErrors uncovered per review hour Scheduled vs. actual milestone datesScheduled vs. actual milestone dates Changes (number) and their characteristicsChanges (number) and their characteristics Distribution of effort on software engineering Distribution of effort on software engineering

    taskstasks

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1010

    Metrics GuidelinesMetrics Guidelines Use common sense and organizational sensitivity when Use common sense and organizational sensitivity when

    interpreting metrics data.interpreting metrics data. Provide regular feedback to the individuals and teams who Provide regular feedback to the individuals and teams who

    have worked to collect measures and metrics.have worked to collect measures and metrics. DonDont use metrics to appraise individuals.t use metrics to appraise individuals. Work with practitioners and teams to set clear goals and Work with practitioners and teams to set clear goals and

    metrics that will be used to achieve them.metrics that will be used to achieve them. Never use metrics to threaten individuals or teams.Never use metrics to threaten individuals or teams. Metrics data that indicate a problem area should not be Metrics data that indicate a problem area should not be

    considered considered negative.negative. These data are merely an indicator These data are merely an indicator for process improvement.for process improvement.

    DonDont obsess on a single metric to the exclusion of other t obsess on a single metric to the exclusion of other important metrics.important metrics.

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1111

    Typical SizeTypical Size--Oriented MetricsOriented Metrics errors per KLOC (thousand lines of code)errors per KLOC (thousand lines of code) defects per KLOCdefects per KLOC $ per LOC$ per LOC pages of documentation per KLOCpages of documentation per KLOC errors per personerrors per person--monthmonth Errors per review hourErrors per review hour LOC per personLOC per person--monthmonth $ per page of documentation$ per page of documentation

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1212

    Typical FunctionTypical Function--Oriented MetricsOriented Metrics

    errors per FP (thousand lines of errors per FP (thousand lines of code)code) defects per FPdefects per FP $ per FP$ per FP pages of documentation per FPpages of documentation per FP FP per personFP per person--monthmonth

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1313

    Comparing LOC and FPComparing LOC and FPProgramming LOC per Function pointLanguage avg. median low high

    Ada 154 - 104 205Assembler 337 315 91 694C 162 109 33 704C++ 66 53 29 178COBOL 77 77 14 400Java 63 53 77 -JavaScript 58 63 42 75Perl 60 - - -PL/1 78 67 22 263Powerbuilder 32 31 11 105SAS 40 41 33 49Smalltalk 26 19 10 55SQL 40 37 7 110Visual Basic 47 42 16 158

    Representative values developed by QSM

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1414

    Why Opt for FP?Why Opt for FP?

    Programming language independentProgramming language independent Used readily countable characteristics that Used readily countable characteristics that

    are determined early in the software processare determined early in the software process Does not Does not penalizepenalize inventive (short) inventive (short)

    implementations that use fewer LOC that implementations that use fewer LOC that other more clumsy versionsother more clumsy versions Makes it easier to measure the impact of Makes it easier to measure the impact of

    reusable componentsreusable components

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1515

    ObjectObject--Oriented MetricsOriented Metrics Number of Number of scenario scriptsscenario scripts (use(use--cases)cases) Number of Number of support classessupport classes ((required to

    implement the system but are not immediately related to the problem domain) Average number of support classes per key

    class (analysis class) Number of subsystems (an aggregation of

    classes that support a function that is visible to the end-user of a system)

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1616

    WebE Project MetricsWebE Project Metrics Number of static Web pages (the end-user has no control

    over the content displayed on the page) Number of dynamic Web pages (end-user actions result in

    customized content displayed on the page) Number of internal page links (internal page links are

    pointers that provide a hyperlink to some other Web page within the WebApp)

    Number of persistent data objects Number of external systems interfaced Number of static content objects Number of dynamic content objects Number of executable functions

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1717

    Measuring QualityMeasuring Quality

    CorrectnessCorrectness the degree to which a the degree to which a program operates according to specificationprogram operates according to specification MaintainabilityMaintainabilitythe degree to which a the degree to which a

    program is amenable to changeprogram is amenable to change IntegrityIntegritythe degree to which a program is the degree to which a program is

    impervious to outside attackimpervious to outside attack UsabilityUsabilitythe degree to which a program is the degree to which a program is

    easy to useeasy to use

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1818

    Defect Removal EfficiencyDefect Removal Efficiency

    DRE = E /(E + D)

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

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1919

    Metrics for Small OrganizationsMetrics for Small Organizations time (hours or days) elapsed from the time a request is

    made until evaluation is complete, tqueue. effort (person-hours) to perform the evaluation, Weval. time (hours or days) elapsed from completion of evaluation

    to assignment of change order to personnel, teval. effort (person-hours) required to make the change, Wchange. time required (hours or days) to make the change, tchange. errors uncovered during work to make change, Echange. defects uncovered after change is released to the

    customer base, Dchange.

  • 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 2020

    Establishing a Metrics ProgramEstablishing a Metrics Program Identify your business goals. Identify what you want to know or learn. Identify your subgoals. Identify the entities and attributes related to your subgoals. Formalize your measurement goals. Identify quantifiable questions and the related indicators that

    you will use to help you achieve your measurement goals. Identify the data elements that you will collect to construct the

    indicators that help answer your questions. Define the measures to be used, and make these definitions

    operational. Identify the actions that you will take to implement the

    measures. Prepare a plan for implementing the measures.

    Chapter 22Process and Project MetricsA Good Manager MeasuresWhy Do We Measure?Process MeasurementProcess Metrics GuidelinesSoftware Process ImprovementProcess MetricsProject MetricsTypical Project MetricsMetrics GuidelinesTypical Size-Oriented MetricsTypical Function-Oriented MetricsComparing LOC and FPWhy Opt for FP?Object-Oriented MetricsWebE Project MetricsMeasuring QualityDefect Removal EfficiencyMetrics for Small OrganizationsEstablishing a Metrics Program