SE206 - Unit 2: Enhanced Framework for Agile Effort Estimation

Glossary of Terms

In the proposed framework, this represents the combined, fuzzified effect of various COCOMO cost drivers (like product, platform, personnel, project attributes) used in the Iteration Effort Estimation Model (IEEM). Calculated using formula (8).

An iterative and incremental approach to software development performed cooperatively to produce high-quality software meeting changing user requirements. Designed to deal with change and uncertainty.

A common defuzzification method used to convert a fuzzy output set (resulting from fuzzy inference) into a single crisp numerical value. Calculated using formula (7).

A widely used algorithmic software cost estimation model that predicts effort and duration based on project size (e.g., KLOC) and various cost drivers. Versions include Basic, Intermediate (COCOMO-81), and COCOMO II.

An updated version of COCOMO, developed upon COCOMO-81. It includes models for different stages (Early Design, Post-Architecture) and uses 5 Scaling Factors and 17 Effort Multipliers (Cost Drivers) rated on levels like Very Low to Extra High.

Factors in COCOMO models that influence the effort required for a project (e.g., Required Reliability (RELY), Product Complexity (CPLX), Analyst Capability (ACAP), Use of Software Tools (TOOL)). They adjust the nominal effort estimate.

The process of converting a fuzzy output (represented by a membership function or a fuzzy set) from a fuzzy inference system into a single, precise (crisp) number.

In the proposed framework's velocity calculation (IEEM), these are factors representing dynamic aspects expected during an iteration (e.g., expected team changes, new tools, stakeholder delays). Used in formula (9).

In Intermediate COCOMO, the product of the selected cost driver ratings. It multiplies the nominal effort to get the adjusted effort estimate (Effort_adj = Effort_in * EAF).

The first phase/model in the proposed framework. It provides an initial effort estimate *before* the project architecture is fully defined, using fuzzy logic on COCOMO II early design factors (like PREC, FLEX, RESL, TEAM, PMAT) and KLOC.

The process of predicting the amount of effort (typically in person-months or person-hours) required to develop a software system. Used for budgeting, planning, bidding, and risk analysis.

In the proposed framework's velocity calculation (IEEM), these are factors representing inherent team or environmental friction (e.g., team composition, process maturity, team dynamics). Used in formula (9).

A system that uses fuzzy set theory and fuzzy logic (IF-THEN rules) to map inputs to outputs. It involves fuzzification, rule evaluation (inference engine), and defuzzification.

A form of many-valued logic dealing with reasoning that is approximate rather than fixed and exact. It uses linguistic variables (e.g., "Low", "Nominal", "High") and membership functions to handle uncertainty and imprecision, suitable for complex systems like effort estimation.

The process of converting crisp (precise) input values into fuzzy sets, represented by membership degrees (between 0 and 1) in various linguistic categories (e.g., converting a KLOC value into degrees of membership in "Small", "Medium", "Large").

The second phase/model in the proposed framework, used *after* the project architecture is defined. It estimates effort for each iteration based on Story Points, adjusted COCOMO factors (ACF), and calculated Velocity (derived from fuzzy FR and DF factors).

In the proposed framework, the calculated effort for an iteration, expressed in adjusted story points. It combines the original Story Points (SP) with the influence of the Adjusted COCOMO Factors (ACF). Calculated using formula (10).

A short, time-bound cycle (often 1-4 weeks) in Agile development during which a team produces a potentially shippable increment of software.

Thousands of Lines of Code. A common, though often criticized, unit for measuring the size of a software project, used as input in models like COCOMO and the fuzzy EEEM.

In fuzzy logic, a curve or function (e.g., triangular, trapezoidal) that defines how each point in the input space is mapped to a membership value (or degree of membership) between 0 and 1 for a particular fuzzy set.

A metric used to evaluate the accuracy of an estimation model. It measures the absolute difference between the predicted effort and the actual effort, relative to the actual effort. Formula: |Actual Effort - Predicted Effort| / Actual Effort.

Prediction Level. A metric evaluating estimation accuracy, defined as the percentage of projects whose MRE is less than or equal to a specified level L (e.g., PRED(0.25) is the percentage of projects with MRE <= 0.25).

In COCOMO II, these are five factors (PREC, FLEX, RESL, TEAM, PMAT) that account for economies or diseconomies of scale, affecting the exponent in the effort equation.

A relative unit of measure used in Agile development (especially Scrum) to estimate the overall effort required to fully implement a product backlog item or user story. It considers complexity, uncertainty, and volume of work. Often uses a Fibonacci-like sequence (1, 2, 3, 5, 8, ...).

A short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer. Often follows the format: "As a [type of user], I want [some goal] so that [some reason]."

A measure of the amount of work (typically in Story Points) a team can complete during a single iteration (Sprint). It's used for planning future iterations. In the proposed framework, it's calculated using fuzzy logic on Friction Factors (FR) and Dynamic Factors (DF) via formula (9).

Key Concepts from the Presentation

Agile Software Development & Estimation Challenges

Agile development is iterative and incremental, designed to handle changing requirements. Key characteristics include modularity, short cycles, time-boxing, adaptability, and collaboration.

Estimating effort in Agile can be challenging, especially for large-scale projects, due to:

  • Coordination overhead between teams.
  • Uncertainty and evolving requirements.
  • Difficulty scaling traditional estimation methods.
  • Need for continuous planning and re-estimation.

Common Estimation Techniques

Two prominent techniques discussed:

  • COCOMO (Constructive Cost Model): Algorithmic model predicting effort/duration based on size (e.g., KLOC) and cost drivers.
    • Basic COCOMO: Simple model with size and project type (Organic, Semi-detached, Embedded). Formula: Effort = A * (Size)^B
    • Intermediate COCOMO: Adds 15 cost drivers (grouped by Product, Computer, Personnel, Project) adjusting nominal effort via EAF. Formula: EAF = Product(EM_i), Effort_adj = Effort_in * EAF
    • COCOMO II: More sophisticated, with Early Design and Post-Architecture sub-models, 5 Scaling Factors, and 17 Effort Multipliers (Cost Drivers).
  • Story Points Method: Relative sizing unit in Agile. Considers complexity, effort, uncertainty. Uses sequences (like Fibonacci) and team estimation (e.g., Planning Poker). Calculates effort based on total story points and team velocity. Formulas:
    • User Story Effort: Effort = Sum(Complexity * ILF * Story Size) (Note: PDF formula is slightly different: Sum(Complexity * ILF * Story Size) - assuming ILF=1 or part of complexity)
    • Velocity: Based on team's past performance or initial estimates (e.g., Velocity = Initial_Velocity * DF * FR in the proposed model).
    • Project Time: Time = Total Effort / (Velocity * Working Days/Month)

The COCOMO Imprecision Problem & Fuzzy Logic Solution

COCOMO relies on selecting discrete ratings (e.g., Low, Nominal, High) for cost drivers, each mapping to a precise multiplier. However, real-world assessment is often imprecise (e.g., "slightly higher than Nominal"). This leads to estimation inaccuracies if the actual situation falls between rating categories.

Fuzzy Logic is proposed to address this:

  • Linguistic Variables: Use terms like "Very Low", "Low", "Nominal", "High", "Very High", "Extra High".
  • Membership Functions: Define how a crisp input (e.g., KLOC, assessment of a factor) belongs to these fuzzy sets (e.g., a project might be 70% "Medium" size and 30% "Large"). Triangular functions are used in the presentation.
  • Fuzzy Inference: Use IF-THEN rules based on expert knowledge (e.g., IF RELY is High AND CPLX is Very High THEN Effort_Multiplier is High).
  • Defuzzification: Convert the resulting fuzzy output back to a crisp number using methods like Center of Area (COA). Formula: COA = Sum(mu(x) * x) / Sum(mu(x))

This allows the model to handle the inherent vagueness and uncertainty in estimating cost drivers and size.

The Proposed Enhanced Framework

The presentation introduces a framework combining Story Points and COCOMO II using Fuzzy Logic. It consists of two main models:

  1. Early Effort Estimation Model (EEEM):
    • Purpose: Provides an initial effort estimate *before* detailed architecture is known (envisioning phase).
    • Inputs: Fuzzy representations of KLOC, 5 COCOMO II Scaling Factors (PREC, FLEX, RESL, TEAM, PMAT), and 7 Early Design Effort Multipliers (RCPX, RUSE, PDIF, PERS, PREX, SCED, FCIL).
    • Process: Uses fuzzy inference to generate intermediate fuzzy outputs (E*, M') which are then combined.
    • Output: Initial Estimated Fuzzy Effort (IEF Effort).
  2. Iteration Effort Estimation Model (IEEM):
    • Purpose: Estimates effort for each iteration *after* architecture is defined (construction phase).
    • Inputs: Fuzzy representations of Dynamic Factors (DF), Friction Factors (FR), COCOMO II Post-Architecture Attributes (grouped: Product, Platform, Personnel, Project - 17 total used for ACF), and Story Points (SP) for the iteration.
    • Process: Calculates fuzzy Velocity (V) from FR/DF, calculates Adjusted COCOMO Factors (ACF) from attributes, then calculates Iteration Story Points (ISP).
    • Output: Iteration Effort (derived from ISP and Velocity), which updates the overall project effort estimate.

The overall workflow involves Envisioning (EEEM), Iteration Planning, Iteration Execution (IEEM for estimation), Construction, Deployment, and potentially Retirement.

Key Formulas in the Proposed Framework

  • Center of Area (Defuzzification - Eq. 7): COA = Sum[x=a to b](mu_A(x) * x) / Sum[x=a to b](mu_A(x))
  • Adjusted COCOMO Factors (ACF - Eq. 8): ACF = Sum[i=1 to 19](mu_A(x)_i * EM_i) (Note: Slides mention 17 attributes for post-arch, but formula uses 19 EMs. Assuming it covers all relevant factors.)
  • Velocity (V - Eq. 9): V = (Product[i=1 to 4] mu_A(x)_i * FR_i) * (Product[j=1 to 9] mu_A(y)_j * DF_j) (Note: Formula uses Pi notation for product/multiplication across fuzzy factors.)
  • Iteration Story Points (ISP - Eq. 10): ISP = Sum[I=1 to num_stories](SP_I + (0.1 * ACF))
  • Project Time (PT - Eq. 11): T = (ISP / V) * (1 / working_days_per_month)

Experimental Analysis and Results

The framework was evaluated using:

  • Dataset: COCOMONASA2 (data from 6 NASA centers).
  • Metrics:
    • Magnitude of Relative Error (MRE): MRE = |Actual Effort - Predicted Effort| / Actual Effort (Eq. 12)
    • Prediction Level (PRED(L)): Percentage of projects with MRE <= L. Formula: PRED(L) = (k / N) * 100 (Eq. 13), where k is count of projects with MRE <= L, N is total projects.

Results: The presentation showed example calculations for ISP and a summary table for 10 projects. The key outcome highlighted was an improvement in accuracy:

  • The proposed model increased the PRED(0.25) value from 70% to 80% compared to some baseline (likely standard COCOMO or another method, though baseline isn't explicitly stated on the slide).
  • Mean MRE (MMER) reported as 0.25 for the proposed model on the sample projects.

Conclusion:** The framework, using fuzzy logic to combine Story Points and COCOMO factors, potentially reduces risk and improves estimation accuracy, especially in the constructive iteration phase.

Essay Questions

The proposed enhanced framework consists of two distinct estimation models operating at different stages of an Agile project:

  1. Early Effort Estimation Model (EEEM):
    • Purpose: To provide an initial, high-level effort estimate during the project's early stages (Envisioning phase), *before* the detailed software architecture has been defined. It helps in preliminary planning and feasibility assessment.
    • Timing: Used after initial requirements gathering but before detailed design or iteration planning begins.
    • Approach: It utilizes Fuzzy Logic applied to inputs relevant at this early stage, primarily KLOC (estimated size) and COCOMO II's 5 Scaling Factors (PREC, FLEX, RESL, TEAM, PMAT) and 7 early design Effort Multipliers (like RCPX, PERS, etc.).
  2. Iteration Effort Estimation Model (IEEM):
    • Purpose: To provide more refined effort estimates for individual iterations *after* the project architecture is established and during the construction phase. It helps in detailed iteration planning and tracking progress.
    • Timing: Used iteratively during the project's construction iterations, starting after the EEEM phase and detailed architecture definition.
    • Approach: It integrates Agile concepts (Story Points, Velocity) with COCOMO II factors using Fuzzy Logic. Inputs include Story Points for the iteration, fuzzy assessments of Friction Factors (FR) and Dynamic Factors (DF) to calculate Velocity, and fuzzy assessments of 17 COCOMO II post-architecture attributes to calculate the Adjusted COCOMO Factors (ACF).

In summary, EEEM offers a preliminary estimate based on early, less certain information, while IEEM provides ongoing, more detailed estimates iteration by iteration, incorporating both Agile metrics and refined COCOMO factors within a fuzzy logic framework.

Fuzzy Logic is central to the proposed framework's approach to handling the uncertainty and vagueness common in software effort estimation, particularly addressing the imprecision of COCOMO cost driver ratings.

Role of Fuzzy Logic:

  • Handling Imprecision: Traditional COCOMO requires selecting discrete ratings (e.g., Nominal, High) for cost drivers, each mapping to a single multiplier value. However, real-world assessments are often subjective and fall between categories (e.g., "slightly higher than nominal"). Fuzzy Logic allows representing these inputs using linguistic variables (Very Low, Low, Nominal, High, Very High, Extra High) and membership functions (often triangular in this framework). This means an input can belong partially to multiple categories simultaneously (e.g., a KLOC value might be 60% 'Medium' and 40% 'Large'), capturing the inherent imprecision.
  • Modeling Subjectivity: Factors like 'Team Cohesion' (TEAM) or 'Analyst Capability' (ACAP) are inherently subjective. Fuzzy Logic provides a natural way to model these qualitative assessments using fuzzy sets and rules.
  • Combining Diverse Factors: The framework uses fuzzy inference systems (collections of IF-THEN rules) to combine various inputs (like KLOC, Scaling Factors, Cost Drivers, FR, DF) in a way that reflects expert knowledge about how these factors interact to influence effort.
  • Generating Crisp Outputs: After fuzzy inference, the resulting fuzzy output (representing estimated effort, velocity, or adjustment factors) is converted back into a precise numerical value using defuzzification methods like the Center of Area (COA), making the result usable for planning.

Addressing COCOMO Imprecision Specifically:

  • Instead of forcing an estimator to choose a single rating like 'Low' (e.g., multiplier 1.10 for TOOL) or 'Nominal' (multiplier 1.00), Fuzzy Logic allows the estimator to provide an input (perhaps on a continuous scale or through linguistic terms) that results in partial membership in both 'Low' and 'Nominal'.
  • The fuzzy inference engine then processes this partial membership through its rule base.
  • The final defuzzified output (e.g., a specific multiplier value like 1.04) reflects this "in-between" assessment, leading to a potentially more accurate and realistic effort adjustment than forcing a choice between discrete, predefined levels. The presentation slide on 'COCOMO Imprecision Problem' illustrates this where an input of 36% might fall between 'Low' (35%) and 'Nominal' (55%), and fuzzy logic can produce a nuanced multiplier instead of defaulting to either 1.10 or 1.00.

Story Points and COCOMO II represent different approaches to software effort estimation:

Story Point Method:

  • Nature: Relative, unit-less measure used primarily within Agile teams (especially Scrum).
  • Basis: Estimates the overall effort (complexity, uncertainty, volume) to complete a user story relative to other stories. Often uses non-linear scales (e.g., Fibonacci).
  • Process: Team-based estimation (e.g., Planning Poker). Effort is derived from total points and team's measured Velocity.
  • Strengths: Fast, team-centric, avoids tying estimates directly to time initially, accounts for team-specific factors implicitly through Velocity, good for iterative planning.
  • Weaknesses: Relative nature makes comparison across teams difficult, Velocity can fluctuate, less effective for very early-stage estimation before team/stories exist, doesn't explicitly model external cost factors.

COCOMO II:

  • Nature: Algorithmic model producing absolute effort estimates (e.g., Person-Months).
  • Basis: Estimates effort based on project size (e.g., KLOC, Function Points) adjusted by numerous Cost Drivers (Effort Multipliers) and Scaling Factors representing project, product, platform, and personnel characteristics.
  • Process: Requires inputting size and rating various factors based on project characteristics. Formulas calculate effort.
  • Strengths: Provides absolute estimates useful for budgeting/bidding, considers a wide range of quantifiable factors, models economies/diseconomies of scale, has different models for different project stages.
  • Weaknesses: Requires detailed inputs that may be unavailable early on, sensitive to input accuracy (size, ratings), can be complex, suffers from imprecision in rating factors, less adaptable to rapid changes within iterations.

How the Proposed Framework Leverages Both:

The framework aims to combine the strengths by:

  • Using COCOMO II Factors for Context: It incorporates COCOMO II's comprehensive set of Scaling Factors and Cost Drivers (Effort Multipliers) to provide a structured way of accounting for project context (team capability, complexity, platform, process maturity etc.). This addresses a weakness of relying solely on Story Points/Velocity.
  • Using Story Points for Iteration Scope: It uses Story Points (SP) as the measure of work scope *within* an iteration, leveraging the team-based, relative sizing common in Agile.
  • Integrating via Fuzzy Logic: Fuzzy Logic acts as the bridge. It takes the COCOMO factors (handled fuzzily to mitigate imprecision) and combines their influence into an Adjusted COCOMO Factor (ACF).
  • Adjusting Story Points: The framework calculates Iteration Story Points (ISP) by adjusting the raw Story Points (SP) based on the ACF (ISP = Sum(SP_I + 0.1*ACF)). This essentially modulates the iteration's scope estimate based on the broader project context defined by COCOMO factors.
  • Calculating Fuzzy Velocity: It also uses fuzzy logic on Agile-relevant factors (FR/DF) to calculate Velocity (V), which then translates the ISP into time (Project Time T).

By doing this, the IEEM phase aims for an iteration estimate that reflects both the team's relative sizing (SP) and the objective project characteristics (COCOMO factors), handled with the flexibility of fuzzy logic.

Based on the diagram for the Early Effort Estimation Model (EEEM) on slide 28, the key inputs and outputs are:

Inputs:

The inputs are processed through Fuzzification stages before entering the core logic:

  1. COCOMO II Scaling Factors (Group B): These five factors capture project scale characteristics:
    • PREC (Precedentedness)
    • FLEX (Development Flexibility)
    • RESL (Architecture / Risk Resolution)
    • TEAM (Team Cohesion)
    • PMAT (Process Maturity)
  2. COCOMO II Early Design Effort Multipliers (Group Below B): These seven factors adjust effort based on early project characteristics:
    • RCPX (Required Software Reliability & Complexity) - *Note: Diagram shows RCPX, likely combining RELY/CPLX or similar*
    • RUSE (Required Reusability)
    • PDIF (Platform Difficulty)
    • PERS (Personnel Capability) - *Note: Diagram shows PERS, likely combining ACAP/PCAP*
    • PREX (Personnel Experience) - *Note: Diagram shows PREX, likely combining APEX/PLEX/LTEX*
    • SCED (Required Development Schedule)
    • FCIL (Facilities)
    • *Note: The specific mapping of diagram labels (RCPX, PERS, PREX) to standard COCOMO II factors might need clarification, but these are the labels shown entering the second fuzzy block.*
  3. Project Size (Group A):
    • KLOC (Kilo Lines of Code): The estimated size of the project in thousands of lines of code.

Outputs:

The fuzzy inputs are processed through fuzzy inference systems and defuzzification stages to produce intermediate and final outputs:

  1. Intermediate Output E*: The defuzzified result from processing the Scaling Factors (Group B). This likely represents a scale exponent or adjustment related to project scale.
  2. Intermediate Output M': The defuzzified result from processing the Early Design Effort Multipliers (Group below B). This likely represents a combined effort multiplier adjustment.
  3. Intermediate Output from KLOC: The diagram shows KLOC (Group A) feeding into the final multiplication step, presumably after its own fuzzification/defuzzification or direct use in a formula.
  4. Final Output (IEF Effort): The diagram shows E*, M', and the processed KLOC input being combined (indicated by the multiplier symbol ⊗) to produce the final Initial Estimated Fuzzy Effort (IEF Effort). This is the main output of the EEEM phase.

Based on the diagram for the Iteration Effort Estimation Model (IEEM) on slide 32, the key inputs and outputs are:

Inputs:

The inputs are processed through Fuzzification stages or used directly:

  1. Velocity Factors (Top Fuzzy Block): These factors determine the team's speed:
    • DF (Dynamic Factors): Factors reflecting expected changes or events during the iteration (e.g., team changes, delays). (Slide 36 lists 9 DFs)
    • FR (Friction Factors): Factors reflecting inherent team/environment characteristics (e.g., team composition, process). (Slide 36 lists 4 FRs)
  2. COCOMO Post-Architecture Attributes (Bottom Fuzzy Block): These factors adjust effort based on defined architecture and project details (17 factors mentioned on slide 18, grouped):
    • Product Attributes (e.g., RELY, CPLX, RUSE, DOCU - *Note: FAIL, CPLX, RUSE, SECU shown on slide 33*)
    • Platform Attributes (e.g., TIME, STOR, PVOL - *Note: PLAT, PVOL shown on slide 33*)
    • Personnel Attributes (e.g., ACAP, PCAP, APEX - *Note: ACAP, PCAP, PCON, APEX, PLEX, LTEX, TOOL, SITE shown on slide 33*)
    • Project Attributes (e.g., TOOL, SITE, SCED - *Note: PREC, FLEX, RESL, TEAM, PCUS shown on slide 33*)
    • *Note: There's overlap/difference between slide 18 grouping and slide 33 list/grouping, but the diagram intends to cover these post-architecture factors.*
  3. Iteration Scope:
    • Story Points (SP): The sum of story points allocated to the current iteration. This is a direct input, not fuzzified in this diagram depiction.

Outputs:

  1. Velocity: The defuzzified output from the top fuzzy block (processing DF and FR). Represents the calculated team velocity for the iteration.
  2. Adjusted COCOMO Factors (ACF): The defuzzified output from the bottom fuzzy block (processing the post-architecture attributes). Represents the combined effect of COCOMO factors on the iteration's effort.
  3. Effort / Iteration Effort: The central 'Effort' block takes Story Points, ACF, and Velocity as inputs. It likely calculates the Iteration Story Points (ISP) using SP and ACF (as per Eq. 10), and then uses Velocity (V) to determine the final 'Iteration Effort' (possibly in time units, as per Eq. 11, or adjusted points).
  4. Update Project Effort: The calculated 'Iteration Effort' is then used to update the overall project effort estimate (indicated by the multiplier/update symbol ⊗).

The 'COCOMO Imprecision Problem' arises because the standard COCOMO model requires estimators to map their assessment of a cost driver onto one of several discrete rating levels (e.g., Very Low, Low, Nominal, High, Very High, Extra High). Each level corresponds to a single, fixed Effort Adjustment Factor (EAF multiplier).

The presentation illustrates this using the TOOL (Use of Software Tools) cost driver:

  • Slide 19 shows linguistic ratings (Very Low to Extra High) mapped to percentage ranges of tool usage/capability (e.g., Low=35%, Nominal=55%, High=75%).
  • Slide 20 shows the corresponding Scaling Factor (SF) or EAF multiplier for each rating (e.g., Low=1.10, Nominal=1.00, High=0.91, Very High=0.83).

The Problem:

Imagine an estimator assesses the project's tool usage and judges it to be slightly better than 'Low' but definitely not 'Nominal'. Let's say their assessment corresponds quantitatively to 36% based on some internal scale (as shown highlighted on slide 20).

  • The 'Low' rating covers up to 35% and has a multiplier of 1.10.
  • The 'Nominal' rating starts at 55% (implicitly, the range is centered) and has a multiplier of 1.00.

In standard COCOMO, the estimator is forced to choose one of the discrete ratings. They might choose 'Low' (SF=1.10) because 36% is closer to 35% than 55%. Or they might round up or make a subjective call. There's no standard way to represent the "in-between" state accurately.

This forced selection introduces inaccuracy because the true impact of the 36% tool usage might be slightly different from the impact associated with the strict 35% 'Low' boundary. The fixed multiplier (1.10 or 1.00) doesn't reflect the nuance of the 36% assessment.

Fuzzy Logic Solution (Implied): Fuzzy Logic would allow the 36% input to have partial membership in both the 'Low' and 'Nominal' fuzzy sets. The fuzzy inference process would then combine these partial memberships, and defuzzification (e.g., COA) would yield a specific multiplier (perhaps 1.08 or 1.09, something between 1.00 and 1.10) that more accurately reflects the 36% assessment, thus addressing the imprecision problem.

In Agile development, Velocity is typically a measure of the amount of work (usually in Story Points) a team completes within one iteration (Sprint). It reflects the team's demonstrated capacity and is used for future planning.

In the proposed framework's Iteration Effort Estimation Model (IEEM), Velocity (V) is not just a historical measure but is calculated proactively for an upcoming iteration using fuzzy logic to account for anticipated conditions. It represents the *expected* rate of progress for the next iteration.

Calculation using Equation (9):

Equation (9) is given as:

V = (Π4i=1 μA(x)i ⋅ FRi) ⋅ (Π9j=1 μA(y)j ⋅ DFj)

Let's break this down:

  • μA(x)i and μA(y)j: These represent the membership functions for the fuzzy sets associated with the Friction Factors (FR) and Dynamic Factors (DF) respectively. They determine the degree to which the current assessment of each factor belongs to its fuzzy linguistic representation (e.g., how much does 'Team Composition' belong to the 'High Friction' set).
  • FRi (Friction Factors): These are factors representing inherent or persistent characteristics that might impede or affect the team's baseline speed. The presentation (slide 36) lists 4 FRs: Team composition, Process, Environmental factors, Team dynamic. The formula implies these are combined multiplicatively (Π notation for product) after being weighted by their fuzzy membership degrees.
  • DFj (Dynamic Factors): These are factors representing anticipated changes or events specific to the upcoming iteration that could influence the team's velocity. The presentation (slide 36) lists 9 DFs: Expected team change, New tools, Vendor defect, External responsibilities, Personal issues, Stakeholder delay, Ambiguity, Environment changes, Relocation. Similar to FRs, these are combined multiplicatively after fuzzy weighting.
  • Overall Calculation: The fuzzy-weighted product of the Friction Factors is multiplied by the fuzzy-weighted product of the Dynamic Factors. The final result, V, is the calculated fuzzy Velocity for the iteration. *Note: The formula shown produces a fuzzy-weighted combination; the actual implementation likely involves fuzzy inference rules combining these factors and then defuzzification (like COA) to get a crisp Velocity value as shown in the IEEM diagram (slide 32).* The formula itself primarily shows the components involved.

In essence, the framework calculates an expected Velocity by starting with an implicit baseline (often 1.0) and adjusting it based on the combined, fuzzified impact of anticipated friction and dynamic events for the specific iteration.

MRE and PRED(L) are standard metrics used to evaluate the accuracy of software effort estimation models.

Magnitude of Relative Error (MRE):

  • Definition: MRE measures the relative size of the estimation error for a single project, regardless of whether the estimate was too high or too low.
  • Formula (Eq. 12): MRE = |Actual Effort - Predicted Effort| / Actual Effort
  • Interpretation: A lower MRE indicates a more accurate estimate for that specific project. An MRE of 0.1 means the estimate was off by 10% of the actual effort.

Prediction Level (PRED(L)):

  • Definition: PRED(L) measures the overall accuracy of an estimation model across a dataset of projects. It represents the percentage of projects in the dataset whose MRE is less than or equal to a specified threshold L.
  • Formula (Eq. 13): PRED(L) = (k / N) * 100, where 'k' is the number of projects with MRE ≤ L, and 'N' is the total number of projects in the dataset.
  • Interpretation: A common threshold used is L=0.25. PRED(0.25) tells us the percentage of projects that were estimated within 25% of their actual effort. A higher PRED(0.25) value indicates a more accurate model overall for practical purposes.

Use in Evaluating the Framework:

The presentation used these metrics to assess the performance of the proposed enhanced framework using data from the COCOMONASA2 dataset. For each project in the dataset (or a sample, as shown in the results table), the framework's predicted effort was compared against the actual effort to calculate the MRE. The PRED(0.25) was then calculated based on the MRE values for all projects in the sample.

Key Result Highlighted:

The conclusion (slide 45) explicitly states:

"Moreover, the use of the proposed model increases the value of PRED from 70% to 80%. As a result, the accuracy of effort estimation improved."

While the specific threshold (L) for PRED is not mentioned on that concluding slide, it's commonly L=0.25 in estimation research. This result indicates that the proposed framework successfully estimated the effort for 80% of the projects within the specified accuracy threshold (likely 25%), an improvement over a baseline performance of 70%.

In the COCOMO II model, Cost Drivers (also called Effort Multipliers) and Scaling Factors are parameters used to adjust the nominal effort estimate based on various characteristics of the project, product, platform, and personnel.

Cost Drivers (Effort Multipliers - EMs):

  • Role: These factors multiply the base effort estimate to account for specific project attributes that increase or decrease the required effort. There are 17 EMs in the Post-Architecture model.
  • Rating: Each EM is rated on a scale typically ranging from Very Low (VL) to Extra High (XH). Each rating corresponds to a specific numerical multiplier. A multiplier > 1.0 increases effort, while < 1.0 decreases it, relative to the 'Nominal' rating (which always has a multiplier of 1.0).
  • Examples from Presentation (Slide 33 Table):
    • Product Factors: FAIL (Failure Intensity Objective - renamed from RELY/RELY?), CPLX (Product Complexity), RUSE (Required Reusability), SECU (Security Requirements)
    • Platform Factors: PLAT (Platform Volatility - renamed from PVOL?), PVOL (Platform Volatility)
    • Personnel Factors: ACAP (Analyst Capability), PCAP (Programmer Capability), PCON (Personnel Continuity), APEX (Application Experience), PLEX (Platform Experience), LTEX (Language and Tool Experience), TOOL (Use of Software Tools), SITE (Multisite Development)
    • Project Factors: PREC (Precedentedness - *used as SF too*), FLEX (Development Flexibility - *used as SF too*), RESL (Architecture/Risk Resolution - *used as SF too*), TEAM (Team Cohesion - *used as SF too*), PCUS (Process Maturity - *likely PMAT, used as SF too*)
    • *Note: Slide 33 seems to list some Scaling Factors under Project Factors, which is slightly unusual but reflects the table shown.*

Scaling Factors (SFs):

  • Role: These five factors adjust the exponent 'E' in the COCOMO II effort equation (Effort = A * SizeE * Product(EMs)). They account for economies or diseconomies of scale – how effort changes disproportionately with size depending on these factors.
  • Rating: Like EMs, they are rated from Very Low (VL) to Extra High (XH), influencing the value of the exponent E.
  • The Five Scaling Factors (Slide 24):
    • PREC (Precedentedness): How familiar the team is with this type of project.
    • FLEX (Development Flexibility): Degree of flexibility in requirements and development process.
    • RESL (Architecture / Risk Resolution): Extent to which risks have been identified and mitigated early.
    • TEAM (Team Cohesion): How well the team collaborates and communicates.
    • PMAT (Process Maturity): Maturity level of the development process used (e.g., based on CMMI).

In essence, Scaling Factors modify the overall relationship between size and effort, while Cost Drivers/Effort Multipliers provide finer-grained adjustments based on specific project attributes.

The presentation outlines several challenges specific to applying Agile methods on a large scale:

Challenges Mentioned (Slides 5-6):

  • Interfacing with other organizational units (HR, Marketing, Sales, Product Management).
  • Realizing continuous testing and handling increased maintenance.
  • Increased effort with more releases.
  • Management overhead for coordination between multiple teams.
  • Late discovery of detailed dependencies due to lack of focus on overall design.
  • Long requirements engineering duration due to complex decision processes.
  • Difficulty creating and maintaining requirements priority lists.
  • Waiting times in the process (e.g., design waiting for requirements).
  • Reduced test coverage due to project shortages or lack of independent testing.

How Accurate Effort Estimation Might Mitigate Challenges:

An accurate effort estimation framework, like the proposed one using EEEM and IEEM with fuzzy logic, can help address several of these challenges, although it's not a complete solution:

  • Improved Planning & Coordination (Mitigates Overhead, Waiting Times): More reliable effort estimates (from both EEEM and IEEM) allow for better release planning, iteration planning, and resource allocation across teams. This can reduce coordination overhead and minimize waiting times by providing a clearer picture of required effort and duration for different pieces of work. Knowing the estimated effort for dependencies can help sequence work more effectively.
  • Better Prioritization (Mitigates Priority List Difficulty): Effort estimates (like ISP) provide crucial input for prioritizing the product backlog. When the Product Owner understands the relative effort required for different features (user stories), they can make more informed trade-offs between business value and implementation cost, leading to more stable and realistic priority lists (Value/Effort ratio).
  • Realistic Release Planning (Mitigates Increased Effort/Releases): EEEM provides an early overall estimate, and IEEM refines estimates iteration by iteration. This helps in setting realistic expectations for release scope and timelines, potentially managing the number and content of releases more effectively rather than having release effort spiral unexpectedly.
  • Risk Management (Mitigates Late Discovery, Test Coverage): The framework explicitly includes factors like Risk Resolution (RESL) and Complexity (CPLX). By forcing consideration of these factors during estimation, potential risks might be identified earlier. Furthermore, accurate effort allocation derived from estimation can ensure sufficient time is budgeted for crucial activities like integration testing, potentially improving test coverage.
  • Resource Management (Mitigates Coordination, Shortages): Better estimates help in forecasting resource needs more accurately, aiding coordination with HR and potentially highlighting potential resource shortages earlier in the planning cycle.

While estimation alone doesn't solve coordination or requirements complexity, providing a more reliable and adaptive forecast of the effort involved gives managers and teams a crucial tool for better planning, prioritization, and risk management in complex large-scale Agile environments.

Defuzzification is the final step in a fuzzy inference system. Its purpose is to convert the fuzzy output set, which represents the result of the fuzzy reasoning process (often as a combined shape across several output membership functions), back into a single, precise, crisp numerical value that can be used for practical decision-making or control.

The Center of Area (COA) method, also known as Center of Gravity (COG) or Centroid method, is one of the most common and intuitive defuzzification techniques.

Equation (7) represents the COA calculation for a continuous output variable:

COA = ∫ [x * μA(x) dx] / ∫ [μA(x) dx]

*(The presentation slide shows a discrete version, which is more common in practical computation):*

COA = Σ [xi * μA(xi)] / Σ [μA(xi)] (Summed over all relevant points xi in the output universe)

Explanation of the (Discrete) COA Process:

  1. Identify the Output Fuzzy Set: After the fuzzy inference engine applies the rules, the result is often an aggregated fuzzy set (a shape) defined over the range of possible output values (e.g., possible effort multipliers, velocity values). Let's call this aggregated membership function μA(x).
  2. Discretize the Output Range: The range of possible output values (the x-axis) is typically divided into a series of discrete points (xi).
  3. Calculate Weighted Sum (Numerator): For each discrete point xi, multiply the point's value (xi) by its corresponding membership degree in the aggregated fuzzy set (μA(xi)). Sum up all these products. This gives the numerator: Σ [xi * μA(xi)]. This represents the "moment" or "weighted value" sum.
  4. Calculate Total Area (Denominator): Sum up the membership degrees (μA(xi)) for all the discrete points xi. This gives the denominator: Σ [μA(xi)]. This represents the "area" under the discrete membership function.
  5. Divide to Find Centroid: Divide the weighted sum (numerator) by the total area (denominator). The result is the COA, which represents the "balance point" or "center of gravity" of the aggregated fuzzy output set. This crisp value is the final output of the fuzzy system.

Essentially, COA finds the point on the output scale where the fuzzy set would "balance" if it were a physical shape, providing a representative crisp value for the fuzzy result.

Equation (10) in the presentation defines the calculation for Iteration Story Points (ISP) within the Iteration Effort Estimation Model (IEEM):

ISP = Σnumber of storiesI=1 (SPI + (0.1 * ACF))

Explanation of the Calculation:

This formula calculates the total adjusted effort for an iteration, expressed in a modified Story Point unit (ISP). It does this by summing up an adjusted value for each individual user story (indexed by 'I') planned for the iteration.

Components:

  1. SPI (Story Points for Story I):
    • This represents the original, estimated size of the individual user story 'I' in standard Story Points, as determined by the Agile team (e.g., using Planning Poker). It reflects the team's relative assessment of the effort, complexity, and uncertainty for that specific story.
  2. ACF (Adjusted COCOMO Factors):
    • This is a crucial output derived earlier in the IEEM (calculated via Equation 8). It represents the combined, fuzzified influence of the 17 COCOMO II post-architecture cost drivers/effort multipliers (related to product, platform, personnel, and project attributes). It quantifies the overall project context's impact on effort, adjusted for the specific characteristics assessed for this project. A higher ACF indicates factors that tend to increase effort (e.g., high complexity, low team experience), while a lower ACF suggests factors that decrease effort.
  3. (0.1 * ACF):
    • This term represents an adjustment applied to *each* story point estimate. The ACF value is scaled down (multiplied by 0.1 in this specific formula - this scaling factor might be empirically derived or calibrated). This scaled ACF value is then *added* to the original Story Points (SPI) for each story.
    • The purpose of this addition is to incorporate the broader project context (captured by COCOMO factors in ACF) into the iteration's effort calculation. If the project context is challenging (high ACF), the effort for each story (in terms of ISP) is slightly increased. If the context is favorable (low ACF), the effort might be slightly decreased (if ACF could be negative or the formula adjusted, although typically ACF > 0 based on EMs >= 0.7).
  4. Σ (Summation):
    • The adjusted value (SPI + 0.1 * ACF) is calculated for each story ('I') planned for the iteration, and these values are summed up to get the total ISP for the iteration.

In essence, ISP is not just the sum of raw Story Points but an adjusted sum that reflects both the team's relative sizing (SP) and the objectively assessed project characteristics (ACF), providing a more context-aware measure of the iteration's workload used subsequently with Velocity (V) to estimate time (T).

Fill in the Blank Questions

True/False Questions

Multiple Choice Questions