Module 12 - Software Cost Estimating Flashcards

(93 cards)

1
Q

Cost estimators need to estimate both software and hardware for a software development project. What is essential for them to understand?

A

How software and hardware estimates are developed, particularly significant cost drivers

This module focuses on the estimation of the software portion of software development projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the significance of COTS products in software development?

A

Aid in development and speed up the process

However, human factors still impact these projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the three categories that influence software development costs?

A
  • Size
  • System complexity
  • Development capability

These factors are similar to those influencing hardware development costs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How is size measured in software development?

A

By metrics such as Function Point (FP) counts, Software Lines of Code (SLOC), COSMIC Function Point (CFP) counts, or MARK II FP counts

New methodologies like agile development use story points or use case points.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

True or false: Complexity in software relates only to the functionality that the software must perform.

A

FALSE

Complexity can also be reflected in the language(s) and platform used.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the system engineering steps for software development?

A
  • System Requirements and Design
  • Software Requirements Analysis
  • Software Preliminary and Detailed Design
  • Code and Unit Test
  • Unit Integration and Test
  • Software System Test
  • System Test

These steps outline the fundamental process of software development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does the Work Breakdown Structure (WBS) provide for software acquisitions?

A

A defined and structured framework for breaking down projects into components

It facilitates estimation, tracking, and management.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the main cost drivers in software cost estimation?

A
  • Size
  • Complexity
  • Capability

These drivers influence the total cost of software projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the primary cost driver for software development?

A

Size of the development effort

Accurate size measurement is critical for good cost estimates.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is code size growth often caused by?

A

Requirements growth

This can result from poor understanding of requirements or the addition of new requirements during development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Fill in the blank: The first step in the software development process is __________.

A

System Requirements and Design

This step involves documenting requirements and defining the overall plan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the primary cause of code size growth?

A

Requirements growth

Requirements growth can stem from poor understanding of user needs, lack of stakeholder engagement, and new legal or market requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

List factors that contribute to requirements growth.

A
  • Poor understanding of user needs
  • Not engaging affected stakeholders
  • Poor requirements elucidation
  • New legal or market requirements
  • New capabilities identified by stakeholders

These factors can significantly increase software development costs and schedules.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

True or false: Code growth can occur due to a poor initial size estimate.

A

TRUE

Subjective estimates like SLOC can lead to optimistic bias affecting risk analysis and assumptions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What does SLOC stand for?

A

Source Lines of Code

SLOC includes executable instructions and data declarations but excludes comments, blanks, and continuation lines.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the advantages of using SLOC as a size measure?

A
  • Widely used in software cost estimating models
  • Many organizations have access to SLOC data
  • Can be easily counted using automated tools

Despite its subjectivity, SLOC remains a common measure in software estimation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the disadvantages of using SLOC?

A
  • Lack of defined rules can cause discrepancies
  • Dependent on language and platform
  • Varies greatly with developer skill and coding styles

These issues can lead to poor estimating and productivity variations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Fill in the blank: Equivalent Source Lines of Code (ESLOC) adjusts the count to reflect the effort required for _______.

A

adapted code

ESLOC accounts for design modifications, code modifications, and integration/testing efforts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is the equation to calculate ESLOC?

A

ESLOC = SLOC * [(0.40 * % design modified) + (0.30 * % code modified) + (0.30 * % integration and test)]

This equation reflects the effort required for new development based on adaptations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What are Function Points (FP) based on?

A

Functional User Requirements (FUR)

FPs were developed by IBM in the 1970s and are defined in the Counting Practices Manual (CPM).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

List the steps to count Function Points.

A
  • Determine the type of FP count
  • Identify the scope and boundaries
  • Count data and transaction function types
  • Calculate UFP and VAF
  • Calculate AFP

These steps help in obtaining a function point count for software projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the advantages of Function Points?

A
  • Can be performed early in the SDLC
  • Applicable throughout the project lifecycle
  • Agnostic to programming language and technology

FPs are not affected by programmer skills or coding styles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What are the disadvantages of Function Points?

A
  • Requires training to apply CPM rules
  • More time-consuming than subjective methods
  • Does not measure technical or non-functional requirements

IFPUG has developed SNAP to address non-functional requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What factors drive software complexity?

A
  • Language
  • Function
  • Hardware limitations
  • Number of modules
  • Amount of integration
  • Percent of new code
  • Quality of development

Complexity is assumed to be a cost driver, although statistical analysis is limited.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
True or false: The programming language used can affect the **cost of software development**.
TRUE ## Footnote Different languages require varying amounts of code to execute the same function, impacting cost and complexity.
26
What does the **function** of software refer to?
The intended use of the software and the degree of reliability and testing required ## Footnote Different applications have varying characteristics that influence development efforts.
27
List some **application types** according to the PRICE Systems’ PRICE S model.
* Statistical/Mathematical * String Manipulation * Graphical User Interface (GUI) * Data Storage and Retrieval * Online Communications * Real Time ## Footnote Each application type has unique characteristics affecting development.
28
What does **capability** encompass in software development?
* Skill * Experience * Conditions under which personnel are working ## Footnote Capability factors include application experience, schedule constraints, and tools experience.
29
Fill in the blank: Software development should be done faster, better, and cheaper by more _______ developers.
experienced ## Footnote Skilled developers can offset higher costs with increased productivity.
30
The **analogy** to hardware in software development compares the difference between an apprentice and a _______.
master craftsman ## Footnote This analogy highlights the impact of skill level on productivity.
31
What must even the best software engineers do when developing a new type of software?
* Invest time learning * Understand specific requirements ## Footnote Experience in one area does not guarantee proficiency in another.
32
What do **development tools** like Computer-Aided Software Engineering (CASE) do?
* Automate manual functions * Help track and manage development * Facilitate communication and coordination ## Footnote These tools aim to improve development capability.
33
True or false: Compressing a schedule can lead to more opportunity for failed communication and coordination.
TRUE ## Footnote Increased pressure may cause developers to cut corners, affecting quality.
34
Problems discovered during which phase are typically less costly to fix?
design phase ## Footnote Fixes made during coding and testing usually take longer and require more effort.
35
The relationship between **personnel capability** and effort is generally accepted to be _______.
inverse ## Footnote Better developers spend less time developing the same code than less skilled developers.
36
What is the **COCOMO II equation** used for?
Estimating person-months of effort ## Footnote It factors in size, complexity, and capability.
37
In the example scenario, how many **SLOC** does the proposed system require?
100,000 SLOC ## Footnote This size is divided among three components.
38
What are the **three solutions** proposed for the software system?
* Original solution (100,000 SLOC) * Barebones approach (50,000 SLOC) * Feature-rich solution (150,000 SLOC) ## Footnote The owner wants to estimate the cost of these options.
39
The **effort** for a project of size 100 KSLOC with nominal complexity is approximately how many person-months?
465 person-months ## Footnote This is based on the COCOMO II equation.
40
What happens to the cost if the complexity of the software is very high?
Increases significantly ## Footnote High complexity has a multiplier greater than one, increasing effort.
41
What is the **impact of capability** on cost in software development?
High capability reduces effort ## Footnote The product of effort multipliers varies based on developer skill.
42
What is the formula for calculating **calendar months** in software development?
T_dev = C * (PM_NS)^(D + 0.2 * [E - B]) * SCED% ## Footnote This formula incorporates various factors affecting development time.
43
If the schedule is compressed by 25%, what is the SCED%?
75% ## Footnote SCED% represents the percentage of schedule compression.
44
What is the scheduled effort for developing the 100,000 SLOC solution with no compression?
Between 25 and 30 months ## Footnote Exact calculations provide a more precise estimate.
45
To meet an 18-month deadline, what must be calculated regarding the schedule?
Amount of schedule compression (1 - SCED%) ## Footnote This is necessary to determine how to meet the new timeline.
46
What does **SCED %** represent in schedule compression?
Schedule Compression Percentage ## Footnote SCED % is calculated to determine how much the schedule must be compressed to meet a deadline.
47
To meet an **eighteen-calendar month** deadline, the schedule must be compressed by _______.
34% ## Footnote This is calculated as 1 - SCED %, where SCED % is derived from the project parameters.
48
What does **PDSS** stand for in software development?
Post-Deployment Software Support ## Footnote PDSS refers to the support needed for software during the Operations and Support phase.
49
List the three types of **software maintenance**.
* Corrective maintenance * Adaptive maintenance * Perfective maintenance ## Footnote Each type addresses different aspects of software upkeep.
50
True or false: Software maintenance is similar to hardware maintenance because both degrade over time.
FALSE ## Footnote Software does not degrade like hardware; it may uncover bugs or encounter new problems instead.
51
What are the three forms of a **prototype** in the evolutionary process?
* A paper or software model * A working product for customer use * A similar existing product for evaluation ## Footnote Prototypes help in gathering customer feedback during development.
52
Define **programming paradigm**.
A fundamental style of programming demonstrating how solutions to problems are formulated in a programming language ## Footnote It contrasts with methodology, which is a style of solving specific software engineering problems.
53
What is the **Waterfall** methodology in software development?
A traditional lifecycle development model that follows a sequential process ## Footnote It is appropriate when requirements are known and stable.
54
List the **benefits** of the **incremental development** methodology.
* Provides capability faster * Allows user feedback to influence later increments * Spreads risk across smaller increments ## Footnote This method results in better quality products due to iterative improvements.
55
What is the main **pitfall** of the **evolutionary process**?
More difficult to model with no defined ending ## Footnote It may take longer than the waterfall method due to ongoing changes.
56
What does **LCC** stand for in software lifecycle?
Life Cycle Cost ## Footnote LCC includes all costs incurred during the software's operational phase.
57
What is the purpose of **software cost estimating models**?
To estimate software maintenance costs ## Footnote These models often do not account for additional support efforts like help desk functions.
58
What is the **goal** of object-oriented programming?
To determine interchangeable parts and focus on developing them ## Footnote This approach allows for assembling software from pre-developed objects.
59
What is the **incremental model** in software development?
A refinement to the waterfall process where software is built in increments of functionality ## Footnote This allows for user feedback and gradual delivery of capabilities.
60
What is the **Spiral** methodology in software development?
A model that includes additional risk and analysis phases ## Footnote It allows for iterative development with risk management.
61
What are the **key components** of the software development lifecycle?
* System-level requirements * Implementation * Maintenance ## Footnote These components guide the overall development process.
62
What are the **three phases** of the software development process described?
* Prototype with limited functions * Adaptation of prototype code * Integration and testing of new features ## Footnote The phases illustrate the evolutionary approach to software development.
63
Who proposed the **spiral model** and in what year?
Barry Boehm in 1988 ## Footnote The spiral model emphasizes risk assessment and planning throughout the development process.
64
What are the **four quadrants** of the spiral model?
* Definition of objectives * Evaluation of alternatives and risk assessment * Development tasks * Planning for the next phase ## Footnote Each spiral progresses through these quadrants as development continues.
65
True or false: The **spiral model** does not include risk assessment.
FALSE ## Footnote The spiral model incorporates risk assessment and planning at each stage of development.
66
What are the **two most common techniques** used in software cost estimation?
* Analogy * Parametric ## Footnote These techniques help in estimating costs based on previous projects and mathematical relationships.
67
In the **analogy method**, what is the basis for estimating costs?
Comparative analysis of similar systems ## Footnote Adjustments are made to account for differences between the new and comparable systems.
68
What is the **COCOMO II equation** used for?
Estimating labor in software development ## Footnote The equation is PM = A * SLOC^E * EM, where PM is person-months.
69
What does **SLOC** stand for in the context of software estimation?
Source Lines of Code ## Footnote SLOC is a measure used to estimate the size and complexity of software.
70
What is the **benefit** of the spiral model?
Emphasizes risk mitigation and analysis ## Footnote This approach allows for continuous assessment of risks throughout development.
71
What is a **challenge** faced in software estimation regarding system definition?
Incomplete set of requirements ## Footnote Estimators must work with technical experts to define a notional system that satisfies known requirements.
72
What is the impact of **rapid technological developments** on software estimation?
Requires updates to COTS software and potential re-integration ## Footnote Changes in technology can affect the cost and complexity of software development.
73
What should estimators consider regarding **COTS packages**?
* Customization needs * Integration with existing systems ## Footnote Understanding these factors is crucial for accurate cost estimation.
74
What is the purpose of **CERs** in software estimation?
Develop statistical inferences relating costs to technical parameters ## Footnote CERs can range from simple rules of thumb to complex regression equations.
75
What does **EM** represent in the COCOMO II equation?
Effort multiplier ## Footnote EM reflects factors such as software complexity and developer skill.
76
What is the **total estimated effort** for the mail-order company project?
406 hours ## Footnote This includes adjustments for setup, data load, implementation, and training.
77
What is the **fully-burdened labor rate** used in the mail-order company example?
$100K/year ## Footnote This rate is based on a standard ratio of 1920 work hours in a year.
78
What does **Sizing Estimating Relationships (SERs)** refer to?
Estimating methodologies for determining system size ## Footnote SERs can include analogy, parametric, and expert opinion.
79
What is a **pitfall** of the spiral model?
Hard to put on contract and may take longer ## Footnote These challenges can complicate project management and timelines.
80
What does COTS stand for in software development?
Commercial Off-The-Shelf ## Footnote COTS refers to ready-made software products that can be purchased and used without significant customization.
81
Name the **three distinct branches** of software development cost estimation.
* Quality * Calibration * Growth and Demand ## Footnote Each branch addresses different aspects of estimating software development costs.
82
What is the primary concern when developing software?
Ensuring that the **software code** functions properly ## Footnote Proper project management involves breaking down development into manageable components and verifying them at each phase.
83
Fill in the blank: The **costs** to develop and implement new business processes should be considered as well.
costs ## Footnote This consideration is crucial when adapting to new systems.
84
What are typical **defect measures** collected to assist in project management?
* Total number of defects identified * Defects open and closed * Number of failed fixes * Defect severity * Location of the defect * Defect injection phase * Defect density ## Footnote These measures help assess software quality and project management effectiveness.
85
True or false: COTS packages often have **code visibility**.
FALSE ## Footnote COTS packages may use proprietary development languages, limiting access to the source code.
86
What is a common method of estimating software development costs?
Use of **parametric models** such as COCOMO II ## Footnote These models are based on industry data and require calibration for unique project aspects.
87
What is the primary cause of **code growth** in software projects?
Requirements growth, also known as **scope creep** ## Footnote This occurs when new capabilities are demanded due to changes in market, user, or environmental needs.
88
What is McCabe's **cyclomatic complexity**?
A measure for software quality that captures the number of linearly independent paths through a program module ## Footnote It helps assess the complexity of the software.
89
Fill in the blank: The **development team** must still perform the functions of requirements definition, design, and test when using COTS products.
development team ## Footnote This is necessary even though the overall project effort may be reduced.
90
What is the **rule of thumb** for determining 'Build vs. Buy' regarding COTS software?
If ~80% of the required functionality can be delivered by the COTS software with little or no customization required, then **buy** is likely the better option ## Footnote This guideline helps in making cost-effective decisions.
91
What are the three important **equations** related to software estimating?
* ESLOC/FPs for redesign, re-implementation, and re-test * CER for software development effort in person-months * Schedule CER for estimating duration of software development effort ## Footnote These equations are key algorithms from the COCOMO II model.
92
What does **ESLOC** stand for?
Estimated Source Lines of Code ## Footnote It is used in estimating software development effort.
93
What is the impact of **labor market conditions** on software development costs?
They can affect labor rates and the quality of personnel performing the work ## Footnote A tight labor market may lead to higher rates or less qualified personnel.