Software Estimation Techniques Quiz
47 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which technique is based on an educated guess from past experience?

  • Empirical (correct)
  • Analytical
  • Statistical
  • Heuristic
  • Analytical techniques derive required results from simple assumptions.

    True (A)

    What does LOC stand for in software size metrics?

    Lines of Code

    The simplest and most widely used software size metric is ___ .

    <p>LOC</p> Signup and view all the answers

    Match the software estimation techniques with their descriptions:

    <p>Empirical = Based on past experience Heuristic = Expressed in mathematical terms Analytical = Derived from simple assumptions Statistical = Uses data analysis techniques</p> Signup and view all the answers

    Which of the following is not a disadvantage of using LOC?

    <p>Measures structural complexity (D)</p> Signup and view all the answers

    Using LOC as a metric penalizes higher level programming languages.

    <p>True (A)</p> Signup and view all the answers

    Name one disadvantage of using LOC as a size metric.

    <p>It correlates poorly with quality and efficiency of code.</p> Signup and view all the answers

    Which of the following is NOT a part of the Function Point metric calculation?

    <p>Algorithm Complexity (B)</p> Signup and view all the answers

    The Function Point metric is considered language dependent.

    <p>False (B)</p> Signup and view all the answers

    What is the main drawback of the Function Point metric?

    <p>The size of a function is considered independent of its complexity.</p> Signup and view all the answers

    In the Delphi Estimation technique, experts never ________ each other to discuss their viewpoints.

    <p>meet</p> Signup and view all the answers

    Match the size estimation technique with its description:

    <p>Expert Judgement = Estimates made by individual experts based on their experience. Delphi Estimation = Estimates prepared independently followed by Rationale sharing. Heuristic Estimation = Uses established rules or characteristics to make estimates. COCOMO Model = A model proposed by Boehm for cost estimation.</p> Signup and view all the answers

    Which of the following techniques aims to overcome individual bias in estimation?

    <p>Delphi Estimation (D)</p> Signup and view all the answers

    The COCOMO model is focused on improving the accuracy of Function Point metrics.

    <p>False (B)</p> Signup and view all the answers

    What is the primary aim of Feature Point metric?

    <p>To include Algorithm Complexity in addition to the Function Point metric.</p> Signup and view all the answers

    What is the estimated effort for a software product that has 32,000 lines of source code?

    <p>91 PM (B)</p> Signup and view all the answers

    Intermediate COCOMO model uses cost drivers to refine initial estimates.

    <p>True (A)</p> Signup and view all the answers

    What does the Basic COCOMO model primarily depend on for its estimates?

    <p>Product size</p> Signup and view all the answers

    If stringent reliability requirements are required, initial estimates are scaled __________.

    <p>upwards</p> Signup and view all the answers

    Match the following cost driver classes with their descriptions:

    <p>Product = Inherent complexity and reliability requirements Computer = Execution time and storage requirements Personnel = Experience of personnel Development Environment = Sophistication of development tools</p> Signup and view all the answers

    Which factor is NOT considered by the basic and intermediate COCOMO models?

    <p>Sub-system complexity (D)</p> Signup and view all the answers

    The Complete COCOMO model estimates the cost of the entire system in one go without breaking it down into subsystems.

    <p>False (B)</p> Signup and view all the answers

    What is the role of CASE tools in the estimation process according to Intermediate COCOMO?

    <p>They affect the effort and development time.</p> Signup and view all the answers

    Which part of the Management Information System is classified as semi-detached?

    <p>Database part (C)</p> Signup and view all the answers

    Halstead's Software Science estimates size, development effort, and development time.

    <p>True (A)</p> Signup and view all the answers

    What does Ck represent in Putnam’s expression related to software development?

    <p>state of technology constant</p> Signup and view all the answers

    The Rayleigh curve is specified by two parameters: Effort and time at which the curve reaches its __________.

    <p>maximum</p> Signup and view all the answers

    Match the following elements with their descriptions:

    <p>Operators = Basic functional units in programming Operands = Data items in a program KLOC = Thousands of Lines of Code Rayleigh-Norden curve = Relation between delivered lines of code and effort</p> Signup and view all the answers

    What is represented by the area under the Rayleigh curve?

    <p>Total personnel required (D)</p> Signup and view all the answers

    In which year did Putnam study staffing of software projects?

    <p>1976</p> Signup and view all the answers

    The state of technology constant (Ck) is same for both poor and excellent development environments.

    <p>False (B)</p> Signup and view all the answers

    What does the Rayleigh curve indicate about the number of engineers over the course of a project?

    <p>It initially increases, reaches a peak, and then decreases. (C)</p> Signup and view all the answers

    Compressing a project's delivery schedule by more than 25% is likely to lead to a successful outcome.

    <p>False (B)</p> Signup and view all the answers

    What is the primary observation made by Putnam regarding schedule compression and effort?

    <p>A small compression in the delivery schedule can result in a substantial penalty on human effort.</p> Signup and view all the answers

    According to Putnam's model, K is represented by the formula K = L^3/Ck^3td^4 or K = C1/td^4, where C1 is a constant equal to _____.

    <p>L^3/Ck^3</p> Signup and view all the answers

    What is the relationship between effort and chronological delivery time as stated in the example?

    <p>Nonlinear (D)</p> Signup and view all the answers

    According to the Rayleigh curve, approximately 40% of the area is located to the right of td.

    <p>False (B)</p> Signup and view all the answers

    What happens to the number of project staff after system testing according to the Rayleigh Curve?

    <p>The number of project staff falls until product installation and delivery.</p> Signup and view all the answers

    Which situation is best suited for a chief programmer team?

    <p>When early completion is essential and the task is well understood (A)</p> Signup and view all the answers

    The chief programmer team approach eliminates the risk of single point failure.

    <p>False (B)</p> Signup and view all the answers

    What does the Rayleigh curve illustrate in software product development?

    <p>The staffing level during the life cycle of a software product development.</p> Signup and view all the answers

    Heuristic techniques in software cost estimation assume that characteristics of a software product can be modeled by a __________.

    <p>mathematical expression</p> Signup and view all the answers

    Which of the following best describes mixed control team organization?

    <p>It combines democratic and chief-programmer team approaches (A)</p> Signup and view all the answers

    Match the cost estimation techniques with their descriptions:

    <p>Empirical Techniques = Based on systematic guesses by experts Heuristic Techniques = Modeling software characteristics with mathematical expressions Analytical Techniques = Deriving estimates from basic assumptions Expert Judgement = Utilizes the knowledge of experienced professionals</p> Signup and view all the answers

    Which estimation technique assumes that product size directly correlates with the effort needed for development?

    <p>Empirical Techniques</p> Signup and view all the answers

    Analytical techniques rely on historical data for making estimates.

    <p>False (B)</p> Signup and view all the answers

    Flashcards

    Software Project Management Plan (SPMP)

    A document that outlines the project plan, including estimates, resources, schedules, and risk management.

    Software Cost Estimation: Size Estimation

    The first step in cost estimation involves determining the size of the software product.

    Software Cost Estimation Techniques

    Techniques used to estimate software development effort, cost, and duration.

    Empirical Cost Estimation

    A method that relies on past experience to estimate software development costs.

    Signup and view all the flashcards

    Analytical Cost Estimation

    This approach uses mathematical formulas and relationships to estimate costs based on software characteristics.

    Signup and view all the flashcards

    Lines of Code (LOC)

    Lines of Code (LOC) is a widely used metric for measuring software size, but it has limitations.

    Signup and view all the flashcards

    Disadvantages of LOC

    LOC can vary based on coding style and does not reflect quality or efficiency.

    Signup and view all the flashcards

    LOC Limitations

    LOC focuses on textual complexity and does not capture structural or logical complexity, making it difficult to accurately assess effort.

    Signup and view all the flashcards

    Lines of Code (LOC) Metric

    A software sizing metric that counts the number of lines of code in a program. It is simple to use but can be unreliable because it doesn't account for code complexity or different programming languages.

    Signup and view all the flashcards

    Function Point Metric

    A software sizing metric that accounts for the functionality of a software system by assigning points to different types of inputs, outputs, inquiries, files, and interfaces.

    Signup and view all the flashcards

    Feature Point Metric

    A variation of the Function Point Metric that adds a complexity parameter to account for the algorithms used in the software.

    Signup and view all the flashcards

    Expert Judgement

    A size estimation technique that relies on the judgement of a single expert. It is prone to bias based on the individual's experience and knowledge.

    Signup and view all the flashcards

    Delphi Estimation

    A size estimation technique that involves a group of experts who independently estimate the size of a project. Their estimates are then shared and discussed, and the process is repeated until a consensus is reached. This helps to mitigate the problem of individual bias found in Expert Judgement.

    Signup and view all the flashcards

    Heuristic Estimation Techniques

    A broad category of size estimation techniques that rely on mathematical formulas to predict the size of a software project based on certain characteristics or variables.

    Signup and view all the flashcards

    COCOMO Model

    A specific example of a multivariable heuristic estimation model that uses a set of factors and formulas to estimate the effort required to develop a software project. These factors include the size of the project, the complexity of the project, the experience of the developers, and the quality requirements.

    Signup and view all the flashcards

    Basic COCOMO Assumption

    Software development effort and time depend solely on the size of the software product.

    Signup and view all the flashcards

    Beyond Size: Factors Affecting Effort

    Several factors other than size influence software development effort and time, like reliability requirements, tools used, and data volume.

    Signup and view all the flashcards

    Intermediate COCOMO: Refined Estimation

    Intermediate COCOMO model considers these additional factors using cost drivers, refining the initial estimate from the basic model.

    Signup and view all the flashcards

    Scaling Estimates based on Factors

    Factors like using modern programming practices decrease initial estimates, while strict reliability requirements increase them.

    Signup and view all the flashcards

    Rating Cost Drivers

    Cost drivers are rated on a scale of 1 to 3 to reflect their impact on development, then multiplied with the initial estimate.

    Signup and view all the flashcards

    Cost Driver Classes

    Cost driver classes categorize factors: product complexity, computer constraints, personnel experience, and development environment.

    Signup and view all the flashcards

    Limitations of Basic and Intermediate COCOMO

    Basic and intermediate COCOMO models treat software as a single entity, neglecting the potential differences among its components.

    Signup and view all the flashcards

    Complete COCOMO: Sub-system Breakdown

    Complete COCOMO addresses this by estimating each sub-system individually and combining costs for an accurate overall estimate.

    Signup and view all the flashcards

    Halstead's Software Science

    A software development model that estimates project size, effort, and time using a combination of software parameters, including the number of operators and operands.

    Signup and view all the flashcards

    Rayleigh Curve

    A curve representing the number of full-time personnel required at any time during a development project. The curve reaches its maximum at a specific time (td) and has a total area (K) under it.

    Signup and view all the flashcards

    Putnam's Model

    A software development model that estimates software development effort and time based on the number of lines of code (LOC) and a state-of-technology constant (Ck) that accounts for factors affecting productivity.

    Signup and view all the flashcards

    Ck (State-of-Technology Constant)

    The state of technology constant (Ck) in Putnam's model, reflecting factors affecting programmer productivity. A lower value (e.g., 2) indicates poor development environments with limited methodology and documentation.

    Signup and view all the flashcards

    td (Time to Maximum Effort)

    The time at which the Rayleigh curve reaches its maximum, indicating the peak effort required during a project.

    Signup and view all the flashcards

    K (Total Effort)

    The total area under the Rayleigh Curve, representing the total effort expended on a development project.

    Signup and view all the flashcards

    Incremental Model

    The Software Development process model that works by developing and deploying the system in small portions.

    Signup and view all the flashcards

    Waterfall Model

    The Software Development process model that works by developing and deploying the whole system at once.

    Signup and view all the flashcards

    Peak of the Rayleigh Curve

    The point on the Rayleigh Curve where the number of engineers reaches its maximum, typically coinciding with system testing and product release.

    Signup and view all the flashcards

    Schedule Compression in Putnam's Model

    Putnam's model claims that compressing the development time by even a relatively small amount can result in a significant increase in effort, and thus cost.

    Signup and view all the flashcards

    Schedule Expansion in Putnam's Model

    Putnam's model suggests that extending the schedule beyond a certain point leads to significant gains in efficiency, lowering the overall effort required.

    Signup and view all the flashcards

    Boehm's 75% Rule

    A rule of thumb stating that compressing a software project's schedule beyond 25% of the original estimate is unlikely to succeed.

    Signup and view all the flashcards

    Point of Diminishing Returns

    The point beyond which adding more resources to a project will not significantly reduce the development time.

    Signup and view all the flashcards

    Ck=8 Environment

    A software development environment with a Ck value of 8, indicating a good environment for software development.

    Signup and view all the flashcards

    Chief Programmer Team

    A team structure where a single, highly skilled programmer takes on a leadership role, responsible for design, coding, and overall project management.

    Signup and view all the flashcards

    Mixed Control Team

    A team structure that combines aspects of both democratic and chief programmer teams. It focuses communication on a smaller, skilled group, while still providing input opportunities for the wider team.

    Signup and view all the flashcards

    Software Cost Estimation

    The process of estimating the resources, time, and cost required to develop software. This involves determining the size of the product first, then using that to estimate effort.

    Signup and view all the flashcards

    Schedule Change and Effort

    The relationship between changes in a project's schedule and the corresponding effort required. The relationship is often non-linear, meaning a small schedule change can have a significant impact on the effort needed.

    Signup and view all the flashcards

    Study Notes

    Software Project Management (Lecture 9)

    • Software projects frequently fail due to flawed project management practices
    • Effective software project management aims to enable teams of engineers to work efficiently toward successful project completion
    • Responsibilities of project managers include writing project proposals, estimating costs, scheduling, staffing, monitoring and controlling projects, managing software configuration, risk management, and preparing managerial reports
    • Project managers' roles are varied and broadly categorized into project planning and project monitoring/control
    • Project planning occurs after feasibility is established and involves tasks like effort, cost, and resource estimation, scheduling, team organization, planning for risk, and creating miscellaneous plans
    • Planning requires meticulous care to avoid unrealistic time and resource estimates, leading to delays, customer dissatisfaction, decreased team morale, poor quality work, and project failure,

    Introduction to Project Planning

    • Sliding window planning involves planning in phases, preventing premature commitments, enabling more accurate planning as project progresses
    • A Software Project Management Plan (SPMP) document is created after planning is complete, detailing the finalized project plans

    Organization of SPMP Document

    • Includes introduction (objectives, functions, constraints), project estimates, resource plans, schedules (work breakdown structure, task network, Gantt/PERT charts), risk management plan, tracking and control plan, and other miscellaneous plans

    Software Cost Estimation

    • Cost estimation involves determining product size, then effort, duration, and finally cost
    • There are three main approaches to software cost estimation: Empirical, Heuristic, and Analytical

    Software Cost Estimation Techniques

    • Empirical techniques rely on past experience to make educated guesses
    • Heuristic techniques mathematically express characteristics to be estimated
    • Analytical techniques derive results from simple assumptions

    Software Size Metrics

    • Lines of Code (LOC) is the simplest and most common metric, but it is affected by coding style, not reflective of code quality/efficiency, and doesn't account for higher level programming languages or code reuse

    • Function Point (FP) metric overcomes some of LOC's limitations by considering inputs, outputs, inquiries, files, and interfaces as measures of product functionality, instead of code volume

    Empirical Size Estimation Techniques

    • Expert judgment relies on experts' guesses but can be biased
    • Delphi estimation attempts to mitigate bias by having experts independently estimate, providing rationale, and then re-estimating based on feedback, without meeting to discuss

    Heuristic Estimation Techniques

    • Single-variable models estimate parameters based on a single characteristic
    • Multivariable models estimate parameters based on multiple characteristics (often more accurate)

    COCOMO Model

    • The COCOMO (Constructive Cost Model) model, developed by Boehm, categorizes software development into organic, semidetached, and embedded types, which roughly correspond to application, utility, and system programs, respectively.

    • The COCOMO model provides equations for estimating effort (programmer-months) and development time (months) based on product size (KLOC) for each category

    Basic COCOMO Model

    • Effort = a1 (KLOC)a2
    • Tdev = b1 (Effort)b2

    Development Effort and Time

    • Specific equations are provided for organic, semidetached, and embedded development categories
    • Effort and development (Tdev) are roughly super-linear with problem size
    • Development times don't double when problem size doubles
    • Similar development times are seen across all three product categories

    Intermediate COCOMO Model

    • Refining basic COCOMO by using 15 cost drivers (multipliers) to account for factors other than size
    • Cost drivers include product characteristics (complexity, reliability), computer environment, personnel, and development environment factors, such as Modern programming techniques and tools, reliability requirements, data handling, and staff experience

    Complete COCOMO Model

    • Separate cost estimation for each sub-system before summing for overall cost and improving accuracy

    Halstead's Software Science

    • An analytical technique used to estimate software size, development effort, and development time
    • Relies on primitive program parameters (operators, operands) to derive expressions related to program size, volume, and language level

    Staffing Level Estimation

    • Number of personnel isn't constant throughout a software project. The Rayleigh Curve model, based on R&D project analysis (1958), describes workforce needed over time. A maximum staffing level is typically reached near the system testing phase and then steadily declines through project completion

    • Putnam's work and Jensen's model also relate delivered lines of software code (a size measure) to staffing, development effort, and time

    Effect of Schedule Change on Cost

    • Significant schedule compression can severely increase project costs (nonlinear relationship)
    • There's a limit beyond 75% of the nominal (planned) time where further compression is not effective and can be counterproductive
    • Jensen's model attempts to soften the effect of schedule compression for smaller and medium-sized projects by providing additional aspects to better model this aspect of the project

    Project Organization Structures

    • Functional organization: Engineers in specialized groups (specification, design, coding) -Advantages: specialization, ease of staffing, good documentation
    • Project organization: Assigned engineers for the entire duration of the project -Advantages: saves time, job rotation
    • Team Structures: Variations exist, incorporating different concepts of team leadership, communication, and support (Chief Programmer, Democratic, Mixed
      • Chief Programmer: Single authoritative team lead
      • Democratic: team based on less authoritarian structure, good for less structured or research-oriented work

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Test your knowledge on software estimation techniques, including LOC, Function Points, and Delphi method. This quiz covers definitions, advantages, disadvantages, and matching techniques with their descriptions. Perfect for students and professionals in software engineering.

    More Like This

    Software Effort Estimation
    10 questions
    Software Project Effort Estimation
    38 questions
    Software Estimation Techniques
    10 questions
    Use Quizgecko on...
    Browser
    Browser