0% found this document useful (0 votes)
11 views5 pages

COSMIC Function Points in Estimation

The document serves as a study guide for software project management, covering key topics such as effort estimation, risk management, team dynamics, software quality, and activity planning. It outlines various estimation techniques, risk management frameworks, decision-making styles, quality management standards, and project scheduling methods. Each section provides essential methodologies and tools to effectively manage software projects and ensure quality outcomes.

Uploaded by

mattiyabilyas
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views5 pages

COSMIC Function Points in Estimation

The document serves as a study guide for software project management, covering key topics such as effort estimation, risk management, team dynamics, software quality, and activity planning. It outlines various estimation techniques, risk management frameworks, decision-making styles, quality management standards, and project scheduling methods. Each section provides essential methodologies and tools to effectively manage software projects and ensure quality outcomes.

Uploaded by

mattiyabilyas
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Project Management Study Guide

Effort Estimation (Chapter 5)


• Basis for Estimation: Use historical data from past projects or benchmarks to guide estimates
(adjusting for differences in tools or experience) 1 . Measure project size to gauge work: common
metrics include source lines of code (SLOC) or Function Points 2 . Size estimates help predict effort
and duration. (Person-months are often used: one person-month ≈ work by one person in one
month 3 .)
• Estimation Techniques: Several methods can be used:
• Expert judgment: Delphi or expert-opinion methods where experienced team members give
estimates 4 .
• Analogy: Compare with similar past projects to guess effort 4 .
• Parametric models: Algorithmic formulas (e.g. COCOMO) that use size and cost drivers to compute
effort 4 .
• Top-down vs Bottom-up: Top-down breaks a total estimate into parts; bottom-up estimates each task
individually and sums them 4 5 .
• COSMIC Full Function Points: An ISO standard for functional size. It counts data movements
(Entries, Exits, Reads, Writes) in user requirements to measure size 6 . COSMIC points are language-
independent and can be used to estimate effort, cost, and duration 6 .
• COCOMO II: A parametric cost model for modern software projects. It estimates effort (and cost/
schedule) from project size (in KLOC or Function Points) and project factors. It allows planning for a
new project using its characteristics 7 .
• Cost Estimation: Build on effort estimates by multiplying person-months by cost rates (including
salaries, overhead) and adding other expenses. Key cost drivers include project size, complexity,
team skills and location, technology stack, and infrastructure costs 8 .

Risk Management (Chapter 7)


• Risk Management Framework: An iterative process: Identify risks, Assess them, Plan responses, and
Manage/Monitor continuously 9 . This cycle is repeated as the project progresses.
• Risk Identification: Gather all possible risks (technical, project, organizational, external) early. Use
techniques like brainstorming, SWOT analysis, checklists, expert interviews or the Delphi method to
find risks 10 . Document each risk’s cause and potential impact.
• Risk Assessment: For each identified risk, estimate its probability and impact. Use a risk matrix
(likelihood vs. impact) or compute risk exposure = likelihood × impact. Prioritize risks (high likelihood
and impact first).
• Risk Planning: For major risks, develop response strategies in advance. Typical responses are:
avoidance, mitigation, transfer, or acceptance. Create a contingency plan and a trigger condition (sign
that a risk is occurring) for each risk 11 . Assign a risk owner responsible for executing the plan.
• Risk Management (Response/Control): Implement planned risk responses. Continuously monitor
risks and triggers. Re-assess risks regularly and adjust plans as needed 12 . This ensures new risks
are caught and responses remain effective.

1
• Schedule Risk Evaluation: Identify activities on the critical path (any delay here delays the project
13 ). Tasks on the critical path have zero slack, so they deserve extra attention. Include schedule

buffers or slack (float) to accommodate delays.


• PERT (Program Evaluation and Review Technique): Use three time estimates for each task:
optimistic (O), most likely (M), and pessimistic (P). Compute the expected duration as (O + 4M + P)/6
14 . This weighted average accounts for uncertainty.

• Monte Carlo Simulation: Model project uncertainty by simulating many scenarios. Randomly draw
task durations (based on distributions) for each trial, and compute the project finish time. Over
thousands of simulations, this shows a range of likely outcomes and the probability of meeting dates
15 .

Working in Teams (Chapter 12)


• Decision Making (12.3): Teams may use different decision styles:
• Authority: a leader makes the decision (fast but relies on one person’s judgment) 16 .
• Majority (Voting): decision follows the majority opinion; it’s fairer but some may disagree 17 .
• Consensus: discuss until everyone can agree or at least support the decision . Consensus can be
18

slow but leads to high commitment.


• Organization/Team Structures (12.4): Common project structures are:
• Functional: team members remain in functional departments (e.g. QA, dev), and projects are handled
within those silos. The project manager has limited authority 19 .
• Projectized: a dedicated project team works under one project manager who has full authority. Staff
report primarily to the project hierarchy 20 .
• Matrix: hybrid of functional and projectized. Team members report both to a functional manager and
a project manager 21 . Depending on balance, a matrix can be weak, balanced, or strong in project
authority.
• Coordination Dependencies (12.5): How tasks depend on each other within a team:
• Pooled Interdependence: team members work independently; the project succeeds by combining
individual outputs (like bank branches each working separately) 22 .
• Sequential Interdependence: tasks flow in a sequence; one person’s output is the next person’s input
(assembly line style) 23 . Coordination follows a strict order.
• Reciprocal Interdependence: tasks require back-and-forth collaboration. Each person’s work affects
others and vice versa (as in an interactive design process) 24 . High communication is needed.

Software Quality (Chapter 13)


• ISO 9126 (13.5): An international standard defining software quality characteristics. It identifies six
key quality attributes: functionality, reliability, usability, efficiency, maintainability, and portability 25 .
These provide a structured way to evaluate product quality.
• Product vs. Process Metrics (13.6):
• Product metrics: measure attributes of the software product itself (size, complexity, performance
measures, defect counts). These help assess the product’s quality and predict future maintenance
needs 26 .
• Process metrics: measure the software development process (e.g. defect removal rates, effort per
phase, schedule performance). They help improve processes and productivity 27 .
• Product vs. Process Quality Management (13.7):

2
• Product quality management focuses on the final software product – ensuring it meets requirements
and is defect-free before delivery 28 . Activities include testing and inspection of deliverables.
• Process quality management focuses on the development process – defining standards and practices
(like peer reviews, continuous improvement) so that defects are prevented or found early 28 .
Techniques include process audits and adherence to quality procedures.
• Quality Management Systems (13.8): Organization-wide frameworks (e.g. ISO 9001) for quality
assurance. A QMS sets policies, procedures, and responsibilities to ensure projects consistently meet
quality standards. It ensures quality is built into every phase, not just tested at the end.
• Process Capability Models (13.9): Models like the CMMI or ISO/IEC 15504 (SPICE) assess how
mature an organization’s processes are. They define levels or areas of practice that guide
improvements. For example, ISO 15504 (SPICE) was derived from models like the CMM, and both
provide standards to evaluate and improve process capability 29 . Organizations use these models
to plan process improvement.
• Techniques to Enhance Quality (13.10): Practices that improve software quality include:
• Peer reviews/inspections: Formal or informal reviews of code, design, and documents to find defects
early 30 . Inspections use checklists and multiple reviewers; walkthroughs involve the author
explaining the work.
• Static analysis: Automated tools that analyze code or design without executing it (finding syntax
errors, code smells, security issues) 31 . This catches issues before testing or deployment.
• Coding standards and metrics: Enforcing style guides and measuring code complexity or duplicate
code to improve maintainability.
• Testing (13.11): Testing is the primary means to assure product quality. Levels include unit testing
(individual components), integration testing, system testing, and acceptance testing. Effective
testing finds defects by exercising the software in conditions similar to real use. (Automated test
frameworks and test plans help organize this effort.)
• Software Reliability (13.12): Reliability is the probability software runs without failure over a
specified period 32 . It reflects stability during operation. Metrics include MTBF (mean time between
failures) and failure rate. High reliability means users can depend on the software; reliability grows as
defects are found and fixed.

Activity Planning (Chapter 6)


• Projects and Activities (6.5): A project consists of many activities (tasks). Use a Work Breakdown
Structure (WBS) to list all tasks needed to complete the project. Each activity requires time and
resources and has start/end events.
• Sequencing and Scheduling (6.6): Determine the order of activities based on dependencies (which
tasks must precede others). Create a schedule by assigning start/finish dates to activities,
considering resource limits. Common tools are Gantt charts and network diagrams.
• Network Planning Models (6.7): Represent activities and dependencies in a network (graph). Two
styles: Activity-on-Node (AON) or Activity-on-Arrow (AOA). These models help calculate project
duration and critical path 33 . Networks make it clear which tasks depend on which.
• Formulating a Network Model (6.8): Identify all activities, their durations, and dependencies. In
AOA networks, draw activities as arrows from start to end events. Use dummy arrows if needed to
show dependencies without real work 34 . Ensure the network correctly reflects task order.
• Adding Time (6.9): Assign an estimated duration to each activity (e.g. in days). This turns the
network into a schedule model. You now have earliest and latest time information for analysis.

3
• Forward Pass (6.10): Calculate the earliest start (ES) and earliest finish (EF) for each activity by moving
forward through the network. ES of a task is the maximum EF of its predecessors 35 . This finds the
soonest everything can be done.
• Backward Pass (6.11): Calculate the latest finish (LF) and latest start (LS) by moving backward from the
project’s end. LF of an activity is the minimum LS of its successors 36 . This finds how late tasks can
happen without delaying the project.
• Critical Path (6.12): The critical path is the longest path through the network (sum of durations). It
determines the minimum project duration. Any delay of a critical task delays the whole project 13 .
Identify this path after forward/backward passes; tasks on it have zero slack.
• Activity Float (6.13): Float (or slack) is how long an activity can slip without delaying project end. It’s
calculated as LS – ES (or LF – EF) for the task 37 . Tasks on the critical path have zero float, while
others have positive float. Float shows scheduling flexibility.
• Shortening Project Duration (6.14): To accelerate the schedule:
• Fast tracking: Perform some tasks in parallel that were originally sequential (riskier due to
dependency overlap).
• Crashing: Add resources to critical tasks (e.g. more people or overtime) to reduce their duration 38 .
Both methods can raise cost or risk, so use only on critical tasks.
• Identifying Critical Activities (6.15): Critical activities are those on the critical path (float = 0). These
require close monitoring. Delays here directly extend the project duration.
• Activity-on-Arrow Networks (6.16): In AOA diagrams, tasks are drawn as arrows between event
nodes 33 . This style (also called arrow diagrams) makes dependencies explicit. Sometimes dummy
activities (dotted arrows) are used to correctly represent complex dependencies without adding work
34 . Use AOA if you prefer visualizing events as nodes.

Sources: Key points are drawn from software project management literature and standards (including
Hughes/Cotterell/Mall and other references) 1 6 14 39 22 25 26 28 9 10 13 35 32 , ensuring
up-to-date explanations.

1 2 3 4 5 Unit- 5 Software Effort Estimation-slides | PDF | Software | System


[Link]

6 COSMIC functional size measurement - Wikipedia


[Link]

7 COCOMO Model-Software Engineering - GeeksforGeeks


[Link]

8 Software Development Cost Estimation: How Do It Right


[Link]

9 11 12 Practical Risk Management Approach | PMI


[Link]

10 Top 10 risk identification techniques for successful project management | Birdview


[Link]

13 35 36 37 38 Use Critical Path Method (CPM) for Project Management [2025] • Asana
[Link]

4
14 Program Evaluation and Review Technique (PERT) in Six Sigma - [Link]
[Link]

15 Understanding the Monte Carlo Analysis in Project Management - Project Management Academy
Resources
[Link]

16 17 18 39 How to Use Consensus Decision-Making for Project Management


[Link]

19 20 21 Project Organizational Structure | Smartsheet


[Link]
srsltid=AfmBOoqQwUNBiSMifkw29KKYb6H3es5qT78AJTAllOB4Uu_7t25AGi4D

22 23 24 Interdependence (Pooled, Sequential, Reciprocal) | Organization Design Forum (ODF)


[Link]

25 ISO/IEC 9126 in Software Engineering - GeeksforGeeks


[Link]

26 27 Software Quality Management Metrics


[Link]

28 Differentiate between product quality and process quality


[Link]

29 ISO/IEC 15504 - Wikipedia


[Link]

30 31 Static Testing: Enhancing Software Quality and Productivity - Testlio


[Link]

32 Reliability vs. Availability: Key Metrics for System Perform | Atlassian


[Link]

33 34 What is an Arrow Diagram? Activity Network, CPM, and PERT Charts | ASQ
[Link]

Common questions

Powered by AI

A matrix organizational structure in project management imbues a dual-reporting setup, where team members report to both functional and project managers. It blends the strengths of functional structures, which leverage specialized departmental skills and efficiency, and projectized structures, which focus on flexibility and quick project-oriented decision-making . This can lead to increased flexibility and better resource utilization but may also cause conflicts in authority and priorities due to dual management points . In contrast, functional structures may limit project manager authority and slow project decisions, while projectized structures can lead to redundancy and resource inefficiency when handling multiple projects or maintaining non-essential resources . Therefore, the matrix aims to balance project agility with departmental efficiency, requiring clear roles and robust conflict resolution mechanisms to optimize organizational effectiveness .

To shorten project duration using network planning models, strategies such as fast tracking and crashing can be employed. Fast tracking involves executing some tasks in parallel that were initially planned sequentially, thereby overlapping phases and compressing schedule time . However, this method increases the risk of quality issues due to reduced time for adjustments and dependency management . Crashing entails adding resources to critical tasks, such as more personnel or overtime, to accelerate task completion times . While effective, crashing can inflate costs and overstress team members, potentially leading to productivity loss or burnout . Both strategies focus efforts on tasks on the critical path, as these directly influence overall project duration, but require careful consideration of resource availability and risk management to balance time-saving with potential negative impacts .

Static analysis plays a significant role in improving software quality management by enabling code inspection without executing the program. This technique identifies potential bugs, code smells, security vulnerabilities, and compliance with coding standards early in the software development process . By catching issues before the code enters testing phases, static analysis reduces the defect load on testing teams and leads to higher quality code from the start . Additionally, automated tools for static analysis provide quick feedback to developers, enhancing coding practices and maintaining consistent code quality, ultimately leading to more predictable and less costly software projects . It complements other quality assurance techniques like testing and peer reviews, forming a holistic approach to managing software quality .

Different decision-making styles in software project teams—authority, majority, and consensus—each have distinct impacts on project outcomes. An authoritative style, where a leader makes decisions, can be fast but may rely too heavily on one person's judgment, potentially overlooking diverse perspectives . Majority voting, which decides based on the majority opinion, is perceived as fair but can leave some team members dissatisfied if their views are not considered . Consensus decision-making involves extended discussions until all members agree or at least support the decision, leading to greater team commitment; however, it can be time-consuming, risking delays in project timelines . Trading off speed for thoroughness and commitment to decisions is a critical consideration for balancing efficiency and team satisfaction .

In project management, interdependencies describe how tasks and team efforts are linked. Pooled interdependence occurs when team members work independently, and their outputs are combined to form the final product; this allows for flexible scheduling but requires strong integration processes . Sequential interdependence denotes a situation where tasks must be completed in a specific sequence, causing each team member's output to directly affect the next step; thus, scheduling and task handoffs become critical . Reciprocal interdependence involves a back-and-forth interaction where team members rely on each other’s continuous input and adjustments, necessitating high levels of communication and collaboration . These interdependencies influence the choice of project management strategies, from integration methods in pooled settings to strict scheduling in sequential and collaborative tools for reciprocal arrangements .

Monte Carlo Simulation and PERT are quantitative techniques that help address uncertainties in project scheduling by providing probabilistic insights. Monte Carlo Simulation involves running simulations that predict a range of possible project outcomes by accounting for variations in task durations based on probability distributions, offering a statistical probability of meeting project timelines . PERT, meanwhile, uses three-point time estimates—optimistic, most likely, and pessimistic—to calculate an expected task duration, offering a weighted average that considers uncertainty. This method highlights the impact of variability on the project's critical path and completion probability . Together, these techniques provide data-driven insights to optimize scheduling decisions and manage risks effectively, improving reliability and predictability of project timelines .

Process capability models such as CMMI influence software process improvements by providing structured frameworks that measure the maturity of an organization's processes, guiding improvements through defined levels of practice . These models help organizations assess current process maturity and lay out a roadmap to enhance process efficiency, predictability, and overall effectiveness . By doing so, they systematically reduce defects and rework, improving project success rates through enhanced quality management and control . CMMI fosters a culture of continuous improvement and quality assurance, aligning process improvements with business objectives, thus directly impacting project success by enhancing process transparency, reliability, and risk management capabilities .

Functional size measurement methods like COSMIC Full Function Points enhance the accuracy of software effort estimation by providing a standardized, language-independent way to quantify the size of software based on data movements—entries, exits, reads, and writes—related to user requirements . This methodology goes beyond just counting lines of code or basic functions by considering how software components interact and move data, resulting in estimates that are more reflective of actual user needs and system functionalities . COSMIC Functional Points offer a consistent measure applicable across different technologies and contexts, improving the prediction of effort, cost, and duration by aligning closely with the operational objectives of the software under consideration . As a result, these measurements provide a reliable basis for comparing projects of different types or scales, ensuring more precise planning and resource allocation .

Risk management in software projects is iterative, involving repeated cycles of identifying, assessing, planning responses, and monitoring risks . Continuous monitoring ensures that new risks are promptly identified and that response plans remain effective as project environments and other factors evolve . Reassessment helps adjust previously identified risks' likelihood and impact, prioritizing actions to mitigate high-risk scenarios first . This iterative approach is crucial due to the dynamic nature of software development, where scope changes, technological advancements, and external factors continuously affect risk profiles . Iteration allows adapting strategies to reduce the likelihood of negative outcomes and capitalize on opportunities, ensuring project resilience and success .

COCOMO II, a parametric cost estimation model, offers advantages such as the ability to incorporate detailed project size and characteristics, leading to more accurate estimations; it also accommodates modern software projects and scales well with changes in scope . However, it requires detailed input data, which may not be readily available early in the project, and is complex to implement . In comparison, expert judgment methods like Delphi provide flexibility and are easy to execute but depend heavily on the experts' subjective insights . Analogy methods allow for quick estimates based on past projects but may not account for unique aspects of new projects . Each method presents trade-offs between accuracy, ease of use, and data requirements, influencing the choice of estimation technique depending on project phases and resources available .

You might also like