A document discusses various software estimation techniques including function point analysis, COCOMO models, and cost drivers. Function point analysis breaks a system into functional components like inputs, outputs, inquiries and files that are assigned complexity weights and counts. COCOMO models like COCOMO I and COCOMO II estimate effort using size of the project and cost multipliers related to attributes of the product, computer system, personnel and project. Cost drivers help assess these multipliers to refine effort estimates.
Introduction to Software Project ManagementReetesh Gupta
This document provides an introduction to software project management. It defines what a project and software project management are, and discusses the key characteristics and phases of projects. Software project management aims to deliver software on time, within budget and meeting requirements. It also discusses challenges that can occur in software projects related to people, processes, products and technology. Effective project management focuses on planning, organizing, monitoring and controlling the project work.
The COCOMO model is a widely used software cost estimation model that predicts development effort and schedule based on project attributes. It includes basic, intermediate, and detailed models of increasing complexity. The intermediate model estimates effort as a function of source lines of code and cost drivers. The detailed model further incorporates the impact of cost drivers on development phases. COCOMO 2 expands on this with application composition, early design, reuse, and post-architecture models for different project stages.
The document discusses several key structures and components of operating systems, including:
1) System calls that provide interfaces to OS services like process control and file management.
2) The system call mechanism which generates interrupts to transfer control to the OS kernel.
3) System programs that perform tasks like file management and system status monitoring.
4) Operating system design approaches like layered structures, microkernels that separate kernel and services, and modular designs using loadable modules.
This document discusses software metrics and measurement. It describes how measurement can be used throughout the software development process to assist with estimation, quality control, productivity assessment, and project control. It defines key terms like measures, metrics, and indicators and explains how they provide insight into the software process and product. The document also discusses using metrics to evaluate and improve the software process as well as track project status, risks, and quality. Finally, it covers different types of metrics like size-oriented, function-oriented, and quality metrics.
The document provides an overview of the Software Engineering course for the second semester of the second year (B.Tech IT/II Sem-II). It includes details about the term, text books, unit syllabus, index of topics, and slides covering introductions to software engineering, the changing nature of software, software myths, generic views of process, the Capability Maturity Model Integration and personal and team software processes.
The COCOMO model is a widely used software cost estimation model developed by Barry Boehm in 1981. It predicts effort, schedule, and staffing needs based on project size and characteristics. The Basic COCOMO model uses three development modes (Organic, Semidetached, Embedded) and a simple formula to estimate effort and schedule based on thousands of delivered source instructions. However, its accuracy is limited as it does not account for various project attributes known to influence costs. Function Point Analysis is an alternative size measurement that counts different types of system functions and complexity factors to estimate effort and cost.
The document provides an overview of software cost estimation, outlining various methods used including algorithmic models like COCOMO, expert judgement, top-down and bottom-up approaches, and estimation by analogy. It discusses COCOMO in detail, including the original COCOMO 81 model and updated COCOMO II model, and emphasizes the importance of calibration for accurate estimates.
Introduction to Software Project ManagementReetesh Gupta
This document provides an introduction to software project management. It defines what a project and software project management are, and discusses the key characteristics and phases of projects. Software project management aims to deliver software on time, within budget and meeting requirements. It also discusses challenges that can occur in software projects related to people, processes, products and technology. Effective project management focuses on planning, organizing, monitoring and controlling the project work.
The COCOMO model is a widely used software cost estimation model that predicts development effort and schedule based on project attributes. It includes basic, intermediate, and detailed models of increasing complexity. The intermediate model estimates effort as a function of source lines of code and cost drivers. The detailed model further incorporates the impact of cost drivers on development phases. COCOMO 2 expands on this with application composition, early design, reuse, and post-architecture models for different project stages.
The document discusses several key structures and components of operating systems, including:
1) System calls that provide interfaces to OS services like process control and file management.
2) The system call mechanism which generates interrupts to transfer control to the OS kernel.
3) System programs that perform tasks like file management and system status monitoring.
4) Operating system design approaches like layered structures, microkernels that separate kernel and services, and modular designs using loadable modules.
This document discusses software metrics and measurement. It describes how measurement can be used throughout the software development process to assist with estimation, quality control, productivity assessment, and project control. It defines key terms like measures, metrics, and indicators and explains how they provide insight into the software process and product. The document also discusses using metrics to evaluate and improve the software process as well as track project status, risks, and quality. Finally, it covers different types of metrics like size-oriented, function-oriented, and quality metrics.
The document provides an overview of the Software Engineering course for the second semester of the second year (B.Tech IT/II Sem-II). It includes details about the term, text books, unit syllabus, index of topics, and slides covering introductions to software engineering, the changing nature of software, software myths, generic views of process, the Capability Maturity Model Integration and personal and team software processes.
The COCOMO model is a widely used software cost estimation model developed by Barry Boehm in 1981. It predicts effort, schedule, and staffing needs based on project size and characteristics. The Basic COCOMO model uses three development modes (Organic, Semidetached, Embedded) and a simple formula to estimate effort and schedule based on thousands of delivered source instructions. However, its accuracy is limited as it does not account for various project attributes known to influence costs. Function Point Analysis is an alternative size measurement that counts different types of system functions and complexity factors to estimate effort and cost.
The document provides an overview of software cost estimation, outlining various methods used including algorithmic models like COCOMO, expert judgement, top-down and bottom-up approaches, and estimation by analogy. It discusses COCOMO in detail, including the original COCOMO 81 model and updated COCOMO II model, and emphasizes the importance of calibration for accurate estimates.
The Constructive Cost Model (COCOMO) is an algorithmic software cost estimation model developed by Barry Boehm. The model uses a basic regression formula, with parameters that are derived from historical project data and current project characteristics.
Basic COCOMO compute software development effort (and cost) as a function of program size. Program size is expressed in estimated thousands of source lines of code (SLOC, KLOC).
The document discusses various topics related to software project management including:
1. Definitions of projects, jobs, and exploration and how software projects have more characteristics that make them difficult than other types of projects.
2. Typical project phases like initiating, planning, executing, controlling, and closing.
3. Distinguishing between different types of software projects and their approaches.
4. Key activities in project management like planning, organizing, staffing, directing, monitoring, and controlling.
This document discusses common myths held by software managers, developers, and customers. It describes myths such as believing formal standards and procedures are sufficient, thinking new hardware means high quality development, adding people to late projects will help catch up, and outsourcing means relaxing oversight. Realities discussed include standards not being used effectively, tools being more important than hardware, adding people making projects later, and needing management and control of outsourced projects. Developer myths like thinking the job is done once code runs and quality can't be assessed until code runs are addressed. The document emphasizes the importance of requirements, documentation, quality processes, and addressing change impacts.
The document defines the software development life cycle (SDLC) and its phases. It discusses several SDLC models including waterfall, prototype, iterative enhancement, and spiral. The waterfall model follows sequential phases from requirements to maintenance with no overlap. The prototype model involves building prototypes for user feedback. The iterative enhancement model develops software incrementally. The spiral model is divided into risk analysis, engineering, construction, and evaluation cycles. The document also covers software requirements, elicitation through interviews and use cases, analysis through data, behavioral and functional modeling, and documentation in a software requirements specification.
This document discusses software project management. It defines software as a collection of programs, instructions, key-value-character sets. It defines a project as a planned activity with specific objectives that is carried out over a predetermined time span in several phases with constrained resources. The key idea of software project management is planning, monitoring, and controlling software projects to ensure they satisfy real needs by identifying stakeholders and objectives. Proper management is important as surveys found most projects were late or over budget due to a lack of proven project management and risk management skills.
This document outlines the 10 step process for step-wise project planning for software projects. The 10 steps are: 1) identify project scope and objectives, 2) identify project infrastructure, 3) analyze project characteristics, 4) identify project products and activities, 5) estimate effort for each activity, 6) identify activity risks, 7) allocate resources, 8) review and publicize the plan, 9) execute the plan, and 10) conduct lower level planning as more details emerge. The goal of these steps is to ensure project tasks are well coordinated and meet objectives like timely completion through processes like stakeholder analysis, risk assessment, and resource planning.
The Waterfall model is a popular sequential model of the software development life cycle where each phase must be completed before the next begins. It consists of requirements, design, implementation, verification, and maintenance phases. Though simple to understand and manage, the Waterfall model works best for smaller, well-defined projects as it is inflexible to changes and produces no working software until late in the cycle.
The document discusses project planning in software engineering. It defines project planning and its importance. It describes the project manager's responsibilities which include project planning, reporting, risk management, and people management. It discusses challenges in software project planning. The RUP process for project planning is then outlined which involves creating artifacts like the business case and software development plan. Risk management is also a key part of project planning.
The document discusses context models and their use in system modeling. Context models illustrate the operational context of a system by showing what lies outside its boundaries, including other systems in the environment. They help define a system's boundaries and show how IT applications fit into the context of people and organizations. Two examples are provided: (1) a Mental Health Care Patient Management System (MHC-PMS) and its connections to other clinical systems; (2) an Automated Teller Machine (ATM) and its links to banking systems. Context models on their own do not show relationships between external systems, so additional models are needed.
The document discusses various aspects of requirements engineering including processes, techniques, challenges, and importance. It describes requirements elicitation, analysis, specification, validation, and management. Key points covered include feasibility studies, types of requirements, characteristics of good requirements, requirements traceability and evolution. Diagrams like use cases, activity diagrams and data flow diagrams are presented as examples of requirements specification outputs.
Effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input.
Effort estimation is essential for many people and different departments in an organization.
The document discusses the origins and drivers of software engineering as a discipline. It arose in response to frequent software project failures in the late 1960s, termed the "software crisis". Key points:
- Software engineering aims to apply systematic and quantifiable principles to software development and maintenance to improve quality, productivity and job satisfaction.
- It draws on computer science, management science, economics and other fields. Processes and models help manage complex software projects.
- Early process models included waterfall and prototyping. Later agile models like spiral emphasize iterative development and risk management over rigid phases.
The document discusses the prototype model in software development. It defines a prototype model as building a working prototype of the system before full development to allow users to evaluate proposals. The key steps are requirements analysis, quick design, building the prototype, getting customer evaluation and feedback, and refining the prototype iteratively until the user is satisfied. Prototype models have advantages like early assessment, clarifying requirements, and ensuring user requirements are met. However, they can also be time-consuming and expensive if multiple prototypes are needed before finding the perfect fit.
The document discusses key concepts and principles of software engineering practice. It covers the software development lifecycle including requirements analysis, planning, modeling, construction, testing, and deployment. It provides guidance on best practices for communication, modeling, design, coding, testing, and project management. The overall aim of software engineering is to develop reliable, maintainable and usable software that meets customer requirements.
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
The Evolving role of Software – Software – The changing Nature of Software – Legacy software, Introduction to CASE tools, A generic view of process– A layered Technology – A Process Framework – The Capability Maturity Model Integration (CMMI) – Process Assessment – Personal and Team Process Models. Product and Process. Process Models – The Waterfall Model – Incremental Process Models – Incremental Model – The RAD Model – Evolutionary Process Models – Prototyping – The Spiral Model – The Concurrent Development Model – Specialized Process Models – the Unified Process.
Component-based software engineering (CBSE) is a process that emphasizes designing and building systems using reusable software components. It emerged from failures of object-oriented development to enable effective reuse. CBSE follows a "buy, don't build" philosophy where requirements are met through available components rather than custom development. The CBSE process involves identifying components, qualifying them, adapting them if needed, and assembling them within an architectural design. This leverages reuse for increased quality, productivity, and reduced development time compared to traditional software engineering approaches.
Flow-oriented modeling represents how data objects are transformed as they move through a system. A data flow diagram (DFD) is the diagrammatic form used to depict this approach. DFDs show the flow of data through processes and external entities of a system using symbols like circles and arrows. They provide a unique view of how a system works by modeling the input, output, storage and processing of data from level to level.
This document discusses various techniques for estimating effort for software projects. It describes common challenges with software estimation like subjective nature and changing requirements. It then explains different estimation techniques like algorithmic models, expert judgment, analogy, top-down and bottom-up approaches. Specifically, it outlines the function point analysis technique and COCOMO model for estimating effort based on source lines of code and complexity factors. Finally, it lists some typical rules of thumb for software estimation from Capers Jones.
Estimation and measuring of software size within the atos gobal delivery plat...IWSM Mensura
The document discusses Atos' use of functional point analysis (FPA) for software estimation within its Global Delivery Platform (GDP). It describes how Atos uses FPA to estimate project size, calculate standard effort, and convert effort into cost. FPA is integrated into GDP's processes and phases to enable estimation of main build effort and full lifecycle effort. Historical FPA data collected within GDP is used to determine productivity ratios for estimation.
The Constructive Cost Model (COCOMO) is an algorithmic software cost estimation model developed by Barry Boehm. The model uses a basic regression formula, with parameters that are derived from historical project data and current project characteristics.
Basic COCOMO compute software development effort (and cost) as a function of program size. Program size is expressed in estimated thousands of source lines of code (SLOC, KLOC).
The document discusses various topics related to software project management including:
1. Definitions of projects, jobs, and exploration and how software projects have more characteristics that make them difficult than other types of projects.
2. Typical project phases like initiating, planning, executing, controlling, and closing.
3. Distinguishing between different types of software projects and their approaches.
4. Key activities in project management like planning, organizing, staffing, directing, monitoring, and controlling.
This document discusses common myths held by software managers, developers, and customers. It describes myths such as believing formal standards and procedures are sufficient, thinking new hardware means high quality development, adding people to late projects will help catch up, and outsourcing means relaxing oversight. Realities discussed include standards not being used effectively, tools being more important than hardware, adding people making projects later, and needing management and control of outsourced projects. Developer myths like thinking the job is done once code runs and quality can't be assessed until code runs are addressed. The document emphasizes the importance of requirements, documentation, quality processes, and addressing change impacts.
The document defines the software development life cycle (SDLC) and its phases. It discusses several SDLC models including waterfall, prototype, iterative enhancement, and spiral. The waterfall model follows sequential phases from requirements to maintenance with no overlap. The prototype model involves building prototypes for user feedback. The iterative enhancement model develops software incrementally. The spiral model is divided into risk analysis, engineering, construction, and evaluation cycles. The document also covers software requirements, elicitation through interviews and use cases, analysis through data, behavioral and functional modeling, and documentation in a software requirements specification.
This document discusses software project management. It defines software as a collection of programs, instructions, key-value-character sets. It defines a project as a planned activity with specific objectives that is carried out over a predetermined time span in several phases with constrained resources. The key idea of software project management is planning, monitoring, and controlling software projects to ensure they satisfy real needs by identifying stakeholders and objectives. Proper management is important as surveys found most projects were late or over budget due to a lack of proven project management and risk management skills.
This document outlines the 10 step process for step-wise project planning for software projects. The 10 steps are: 1) identify project scope and objectives, 2) identify project infrastructure, 3) analyze project characteristics, 4) identify project products and activities, 5) estimate effort for each activity, 6) identify activity risks, 7) allocate resources, 8) review and publicize the plan, 9) execute the plan, and 10) conduct lower level planning as more details emerge. The goal of these steps is to ensure project tasks are well coordinated and meet objectives like timely completion through processes like stakeholder analysis, risk assessment, and resource planning.
The Waterfall model is a popular sequential model of the software development life cycle where each phase must be completed before the next begins. It consists of requirements, design, implementation, verification, and maintenance phases. Though simple to understand and manage, the Waterfall model works best for smaller, well-defined projects as it is inflexible to changes and produces no working software until late in the cycle.
The document discusses project planning in software engineering. It defines project planning and its importance. It describes the project manager's responsibilities which include project planning, reporting, risk management, and people management. It discusses challenges in software project planning. The RUP process for project planning is then outlined which involves creating artifacts like the business case and software development plan. Risk management is also a key part of project planning.
The document discusses context models and their use in system modeling. Context models illustrate the operational context of a system by showing what lies outside its boundaries, including other systems in the environment. They help define a system's boundaries and show how IT applications fit into the context of people and organizations. Two examples are provided: (1) a Mental Health Care Patient Management System (MHC-PMS) and its connections to other clinical systems; (2) an Automated Teller Machine (ATM) and its links to banking systems. Context models on their own do not show relationships between external systems, so additional models are needed.
The document discusses various aspects of requirements engineering including processes, techniques, challenges, and importance. It describes requirements elicitation, analysis, specification, validation, and management. Key points covered include feasibility studies, types of requirements, characteristics of good requirements, requirements traceability and evolution. Diagrams like use cases, activity diagrams and data flow diagrams are presented as examples of requirements specification outputs.
Effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input.
Effort estimation is essential for many people and different departments in an organization.
The document discusses the origins and drivers of software engineering as a discipline. It arose in response to frequent software project failures in the late 1960s, termed the "software crisis". Key points:
- Software engineering aims to apply systematic and quantifiable principles to software development and maintenance to improve quality, productivity and job satisfaction.
- It draws on computer science, management science, economics and other fields. Processes and models help manage complex software projects.
- Early process models included waterfall and prototyping. Later agile models like spiral emphasize iterative development and risk management over rigid phases.
The document discusses the prototype model in software development. It defines a prototype model as building a working prototype of the system before full development to allow users to evaluate proposals. The key steps are requirements analysis, quick design, building the prototype, getting customer evaluation and feedback, and refining the prototype iteratively until the user is satisfied. Prototype models have advantages like early assessment, clarifying requirements, and ensuring user requirements are met. However, they can also be time-consuming and expensive if multiple prototypes are needed before finding the perfect fit.
The document discusses key concepts and principles of software engineering practice. It covers the software development lifecycle including requirements analysis, planning, modeling, construction, testing, and deployment. It provides guidance on best practices for communication, modeling, design, coding, testing, and project management. The overall aim of software engineering is to develop reliable, maintainable and usable software that meets customer requirements.
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
The Evolving role of Software – Software – The changing Nature of Software – Legacy software, Introduction to CASE tools, A generic view of process– A layered Technology – A Process Framework – The Capability Maturity Model Integration (CMMI) – Process Assessment – Personal and Team Process Models. Product and Process. Process Models – The Waterfall Model – Incremental Process Models – Incremental Model – The RAD Model – Evolutionary Process Models – Prototyping – The Spiral Model – The Concurrent Development Model – Specialized Process Models – the Unified Process.
Component-based software engineering (CBSE) is a process that emphasizes designing and building systems using reusable software components. It emerged from failures of object-oriented development to enable effective reuse. CBSE follows a "buy, don't build" philosophy where requirements are met through available components rather than custom development. The CBSE process involves identifying components, qualifying them, adapting them if needed, and assembling them within an architectural design. This leverages reuse for increased quality, productivity, and reduced development time compared to traditional software engineering approaches.
Flow-oriented modeling represents how data objects are transformed as they move through a system. A data flow diagram (DFD) is the diagrammatic form used to depict this approach. DFDs show the flow of data through processes and external entities of a system using symbols like circles and arrows. They provide a unique view of how a system works by modeling the input, output, storage and processing of data from level to level.
This document discusses various techniques for estimating effort for software projects. It describes common challenges with software estimation like subjective nature and changing requirements. It then explains different estimation techniques like algorithmic models, expert judgment, analogy, top-down and bottom-up approaches. Specifically, it outlines the function point analysis technique and COCOMO model for estimating effort based on source lines of code and complexity factors. Finally, it lists some typical rules of thumb for software estimation from Capers Jones.
Estimation and measuring of software size within the atos gobal delivery plat...IWSM Mensura
The document discusses Atos' use of functional point analysis (FPA) for software estimation within its Global Delivery Platform (GDP). It describes how Atos uses FPA to estimate project size, calculate standard effort, and convert effort into cost. FPA is integrated into GDP's processes and phases to enable estimation of main build effort and full lifecycle effort. Historical FPA data collected within GDP is used to determine productivity ratios for estimation.
The document outlines a course on system development and project management with a focus on software effort estimation. It provides the dates and times of the course sessions, which will cover topics like project planning, risk management, and software quality assurance. It also discusses challenges with software effort estimation and different taxonomy of estimation methods like function points, COCOMO II, expert estimation, and analogy-based approaches.
The document discusses various aspects of developing a test strategy for software projects. It covers topics like test levels, roles and responsibilities, test types, test methodologies, test estimation processes, risk analysis and management. Some key points include defining the scope, risks, test priorities and approach in the strategy. It also discusses test estimation techniques like use case points, function points and test case points to estimate the testing effort.
This document provides an overview of project evaluation and size and cost estimation in software project management. It discusses conducting an initial high-level project evaluation to assess strategic fit, technical feasibility, and economic viability before more detailed size and cost estimations are made. Size can be estimated using function point analysis or object point analysis, while costs are estimated via techniques like cost-benefit analysis, cash flow forecasting, and net present value/internal rate of return calculations. Accurate estimation is challenging, and positive attitudes and periodic revisions are important.
This document discusses various software project estimation methods, including bottom-up, top-down, parametric, and analogy-based estimation. It describes the COCOMO model for estimating software development effort and provides details on its constants, development effort multipliers, and the stages of analogy-based estimation. Function point models like Mark II and COSMIC are also summarized as methods of measuring software size.
Este documento describe el método COCOMO II para estimar el esfuerzo de desarrollo de software. COCOMO II utiliza ecuaciones matemáticas que toman como input métricas de tamaño como puntos de función o líneas de código. El esfuerzo se calcula considerando factores como la complejidad técnica del proyecto, el ambiente de desarrollo y el factor de conversión.
This document summarizes key aspects of project planning and estimation techniques discussed in a lecture. It covers topics like plan-driven vs agile development, project scheduling, estimation models like COCOMO II, and factors that affect estimation accuracy. Project planning involves breaking work into tasks, scheduling, and communicating the plan. Estimation can be experience-based or use algorithmic models factoring in attributes like size, team experience, and complexity.
This document discusses software project management. It begins by defining project management and its goals of supporting smooth development and reducing problems. It then discusses the four key aspects of effective software project management: people, product, process, and project. For each of these, it provides details on important considerations and best practices. It also discusses project planning, monitoring and control, termination. Finally, it defines important terms related to metrics and measurements for software projects.
The document discusses various techniques for planning software projects, including scoping the project, estimating effort and timelines, identifying risks, creating schedules, and developing control strategies. It covers estimating project size through techniques like function point analysis and lines of code counting. It also discusses decomposing projects into sub-problems and estimating effort for each through methods like problem-based estimation and process-based estimation using standard components. Data flow diagrams and entity relationship diagrams are presented as tools for modeling systems and defining requirements.
The document discusses software cost estimation techniques. It begins by introducing software productivity metrics like lines of code and function points. It then describes various estimation techniques, highlighting the COCOMO model. COCOMO is an algorithmic cost model that relates project size and factors to effort. It has different models for early design, reuse, and post-architecture. The document concludes by mentioning recent trends in software cost estimation like neural networks, analogy estimation, and Bayesian belief networks.
COCOMO II es un modelo para estimar el coste, esfuerzo y tiempo de un proyecto de desarrollo de software basado en la cantidad de líneas de código y factores multiplicadores. Usa constantes y modos (orgánico, semilibre y rígido) para calcular el salario mensual necesario y el tiempo de desarrollo total. Proporciona una estimación inicial útil pero no es fiable para proyectos muy pequeños debido a la subjetividad en la selección de variables.
Function Point Analysis & Cocomo. Two main estimation methods for structured and object oriented methodology estimations. Cocomo is widely used in estimating where Rational Unified Process is followed.
COCOMO I is a software cost estimation model published in 1981 by Barry Boehm. It uses a waterfall lifecycle approach and estimates development effort as a function of program size (measured in KDSI) and 15 cost drivers. The model has three levels - basic, intermediate, and detailed - with the detailed version incorporating impacts on each development phase. While transparent, it is difficult to accurately estimate size early on and vulnerable to misclassifying development mode. Success relies on tuning the model using organizational historical data.
The document discusses several popular effort estimation methodologies including function points and COCOMO. It provides examples of using function points and COCOMO I to estimate effort and schedule for a simple POWER function project estimated to be 100 lines of code. Estimates using different approaches were: 5 person days and 3 calendar days from personal experience, 7.9 person days and 7.9 calendar days from function points, and 6.7 person days and 1.5 calendar months from COCOMO I. The document notes challenges with estimation models and many professionals rely on their own experience and company data.
The document discusses software project planning and size estimation techniques. It describes lines of code counting, function point analysis, and the process for calculating unadjusted function points and complexity adjustment factors. Function point analysis involves identifying functional components and assigning weighted counts and complexity levels. The counts are then used to calculate the unadjusted function point total, which is adjusted based on complexity factors to determine the final function point estimate.
The document discusses different types of software metrics that can be used to measure various aspects of software development. Process metrics measure attributes of the development process, while product metrics measure attributes of the software product. Project metrics are used to monitor and control software projects. Metrics need to be normalized to allow for comparison between different projects or teams. This can be done using size-oriented metrics that relate measures to the size of the software, or function-oriented metrics that relate measures to the functionality delivered.
The document discusses software project planning and size estimation techniques. It describes estimating the size of a software project using lines of code counting, function point analysis, and examples. Function point analysis involves decomposing a system into functional units like inputs, outputs, files and inquiries. Each unit is assigned a complexity weight and counted. The weighted counts are summed to calculate unadjusted function points. Adjustments are then made based on complexity factors to determine the final function point count, which can be used to estimate effort, cost and schedule for a project. Three examples are provided to illustrate calculating function points for sample projects.
The COCOMO model estimates the effort required for software projects in terms of person-months. It exists in three forms - basic, intermediate, and advanced. The basic model computes effort as a function of lines of code, while the intermediate model considers additional cost drivers like product attributes, hardware attributes, personal attributes, and project attributes. These attributes receive ratings that adjust the effort multiplier. The advanced COCOMO is an empirically derived model that requires extensive parameter calibration. All forms provide estimates of effort, schedule, and staff required for a software project.
1. The document discusses software project planning and estimation techniques. It covers size estimation, cost estimation, development time estimation, and project scheduling.
2. The document discusses different techniques for estimating the size of a software project, including lines of code counting and function point analysis. It provides examples of how to apply function point analysis to estimate the size of a project.
3. Function point analysis breaks a project into different functional components or units and assigns weighted scores to each unit based on complexity. The counts are then adjusted based on other project factors to determine the total function points of the project, which can then estimate development effort.
Activities During Software Project Management, Process For Successful Projects, categories of functional units, Counting function points, Computing function points
This document discusses software metrics and function point analysis. It provides information on different types of software metrics including size-oriented, function-oriented, and attribute metrics. It then focuses on explaining function point analysis in detail. Function point analysis measures software size based on user requirements rather than lines of code. It involves counting various functional components and adjusting for complexity. The document provides steps to calculate unadjusted and adjusted function points for different examples. Overall, the document provides a comprehensive overview of software metrics with a focus on function point analysis methodology.
This document discusses various software metrics that can be used for software estimation, quality assurance, and maintenance. It describes black box metrics like function points and COCOMO, which focus on program functionality without examining internal structure. It also covers white box metrics, including lines of code, Halstead's software science, and McCabe's cyclomatic complexity, which measure internal program properties. Finally, it discusses using metrics like change rates and effort adjustment factors to estimate software maintenance costs.
Function point analysis is a method of estimating the size of a software or system by counting the number of inputs, outputs, inquiries, internal logical files and external interface files. It was introduced in 1979 as an alternative to simply counting lines of code. Function point analysis measures the software based on end user requirements rather than implementation details. It provides a consistent way to measure software across different projects, organizations and programming languages. The document provides an overview of function point analysis including its history, why it is needed, how it works and how it is used to estimate sizes of major software applications.
This document provides an overview of several software estimation techniques: lines of code estimation, function point estimation, three point estimation, work breakdown structure based estimation, use case based estimation, and estimation in agile projects. It discusses the basics of each technique, including counting lines of code, function points types, the three point estimation formula, how to create a work breakdown structure, and use case point estimation. Examples are provided to illustrate various techniques.
The document provides information on cost estimation techniques for software projects. It discusses how complexity, size, efforts, and time relate to each other in cost models. Size is typically measured in thousands of lines of code (KSLOC). Efforts are estimated by multiplying KSLOC by a productivity factor. For larger projects, a size penalty factor is included. Function point analysis is an alternative to estimating directly from KSLOC by evaluating inputs, outputs, interfaces, and files.
The document discusses software cost estimation and scheduling. It covers topics like software cost components, productivity measures, estimation techniques like function point analysis and lines of code, and project scheduling. Function point analysis measures functionality based on user requirements and design specifications by counting inputs, outputs, files, inquiries and interfaces. Estimates are adjusted based on complexity factors. Estimates are used to determine effort and schedule tasks on a project.
The document provides an overview of different techniques for estimating the size of software projects, including fuzzy logic sizing, standard component sizing, Delphi estimation, function points analysis, and extended metrics like feature points and 3D function points. It discusses estimating project schedule, costs, resources needed, and quality. Historical data, decomposition of tasks, and empirical cost models are recommended to achieve reliable estimates.
This document provides an overview of function point estimation techniques. It discusses counting practices, vocabulary, components like external inputs, outputs, inquiries and files. It covers the rating and weighting of different components. The document also discusses techniques like use case point estimation, ESB/SOA estimation and COSMIC functional size measurement. Key aspects covered are decomposing systems, defining business and technical factors, deriving size formulas and nominal values. Productivity relationships and various points to ponder regarding estimation techniques are also presented.
The document discusses software cost estimation techniques, specifically the COCOMO model. It describes the COCOMO model's approach of estimating software size, effort, duration and cost through three stages - basic, intermediate, and complete COCOMO. The basic COCOMO model provides equations to estimate effort in person-months and development time in months based on the estimated source code size (KLOC) for different product categories - organic, semi-detached, and embedded. Examples are provided to demonstrate how to apply the basic COCOMO equations.
The document discusses software cost estimation techniques, specifically the COCOMO model. It describes the COCOMO model's approach of estimating software size, effort, duration and cost through three stages - basic, intermediate, and complete COCOMO. The basic COCOMO model provides equations to estimate effort in person-months and development time in months based on the estimated source code size (KLOC) for different product categories - organic, semi-detached, and embedded. Examples are provided to demonstrate how to apply the basic COCOMO equations.
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
The document discusses software cost estimation techniques, specifically the COCOMO model. It describes the COCOMO model's approach of estimating software size, effort, duration and cost through three stages - basic, intermediate, and complete COCOMO. The basic COCOMO model uses lines of code (KLOC) to estimate effort in person-months and development time in months based on constants that vary for organic, semi-detached and embedded product types. An example application for an organic project is provided. Function point analysis is also introduced as an alternative to lines of code for size estimation.
The document discusses software estimation techniques. It describes estimating the size and cost of software projects using methods like lines of code counting, function point counting, and work breakdown structures. It discusses best practices for software estimation like explicitly defining project scope, using historical metrics, employing multiple techniques or estimators, and accounting for inherent uncertainty. The document then explains techniques like function point analysis in detail, including how to classify components, assign complexity weights, and compute the final function point count and estimation.
This document discusses measuring various aspects of a software development process and project. It describes measuring process components by determining the number of roles, activities, outputs, and tasks. It also discusses measuring a project using function points by identifying files, interfaces, inputs, outputs and inquiries. Finally, it describes measuring the complexity of UML artifacts like use case diagrams, class diagrams, and component diagrams by analyzing elements and relationships.
This document discusses software project management and cost estimation techniques. It defines software project management and describes its key components. It also outlines different types of projects, including discretionary, non-discretionary, simple, average and complex. Several cost estimation methods are explained in detail, including function points, line of code, constructive cost model 1 (COCOMO 1), constructive cost model 2 (COCOMO 2) and backing firing. Examples are provided to demonstrate how to use these methods to estimate project costs and effort.
The document discusses various techniques for estimating software effort, including parametric models, expert judgment, analogy, and bottom-up and top-down approaches. It describes the bottom-up approach as breaking a project into tasks, estimating effort for each, and summing totals. Top-down uses parametric models relating effort to system size and productivity factors. Function point analysis and COSMIC function points are presented as top-down methods to measure system size independently of programming language.
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxEduSkills OECD
Iván Bornacelly, Policy Analyst at the OECD Centre for Skills, OECD, presents at the webinar 'Tackling job market gaps with a skills-first approach' on 12 June 2024
Gender and Mental Health - Counselling and Family Therapy Applications and In...PsychoTech Services
A proprietary approach developed by bringing together the best of learning theories from Psychology, design principles from the world of visualization, and pedagogical methods from over a decade of training experience, that enables you to: Learn better, faster!
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
Chapter wise All Notes of First year Basic Civil Engineering.pptxDenish Jangid
Chapter wise All Notes of First year Basic Civil Engineering
Syllabus
Chapter-1
Introduction to objective, scope and outcome the subject
Chapter 2
Introduction: Scope and Specialization of Civil Engineering, Role of civil Engineer in Society, Impact of infrastructural development on economy of country.
Chapter 3
Surveying: Object Principles & Types of Surveying; Site Plans, Plans & Maps; Scales & Unit of different Measurements.
Linear Measurements: Instruments used. Linear Measurement by Tape, Ranging out Survey Lines and overcoming Obstructions; Measurements on sloping ground; Tape corrections, conventional symbols. Angular Measurements: Instruments used; Introduction to Compass Surveying, Bearings and Longitude & Latitude of a Line, Introduction to total station.
Levelling: Instrument used Object of levelling, Methods of levelling in brief, and Contour maps.
Chapter 4
Buildings: Selection of site for Buildings, Layout of Building Plan, Types of buildings, Plinth area, carpet area, floor space index, Introduction to building byelaws, concept of sun light & ventilation. Components of Buildings & their functions, Basic concept of R.C.C., Introduction to types of foundation
Chapter 5
Transportation: Introduction to Transportation Engineering; Traffic and Road Safety: Types and Characteristics of Various Modes of Transportation; Various Road Traffic Signs, Causes of Accidents and Road Safety Measures.
Chapter 6
Environmental Engineering: Environmental Pollution, Environmental Acts and Regulations, Functional Concepts of Ecology, Basics of Species, Biodiversity, Ecosystem, Hydrological Cycle; Chemical Cycles: Carbon, Nitrogen & Phosphorus; Energy Flow in Ecosystems.
Water Pollution: Water Quality standards, Introduction to Treatment & Disposal of Waste Water. Reuse and Saving of Water, Rain Water Harvesting. Solid Waste Management: Classification of Solid Waste, Collection, Transportation and Disposal of Solid. Recycling of Solid Waste: Energy Recovery, Sanitary Landfill, On-Site Sanitation. Air & Noise Pollution: Primary and Secondary air pollutants, Harmful effects of Air Pollution, Control of Air Pollution. . Noise Pollution Harmful Effects of noise pollution, control of noise pollution, Global warming & Climate Change, Ozone depletion, Greenhouse effect
Text Books:
1. Palancharmy, Basic Civil Engineering, McGraw Hill publishers.
2. Satheesh Gopi, Basic Civil Engineering, Pearson Publishers.
3. Ketki Rangwala Dalal, Essentials of Civil Engineering, Charotar Publishing House.
4. BCP, Surveying volume 1
हिंदी वर्णमाला पीपीटी, hindi alphabet PPT presentation, hindi varnamala PPT, Hindi Varnamala pdf, हिंदी स्वर, हिंदी व्यंजन, sikhiye hindi varnmala, dr. mulla adam ali, hindi language and literature, hindi alphabet with drawing, hindi alphabet pdf, hindi varnamala for childrens, hindi language, hindi varnamala practice for kids, https://www.drmullaadamali.com
Temple of Asclepius in Thrace. Excavation resultsKrassimira Luka
The temple and the sanctuary around were dedicated to Asklepios Zmidrenus. This name has been known since 1875 when an inscription dedicated to him was discovered in Rome. The inscription is dated in 227 AD and was left by soldiers originating from the city of Philippopolis (modern Plovdiv).
2. What makes a successful
project?
Delivering:
agreed functionality
on time
at the agreed cost
with the required
quality
Stages:
1. set targets
2. Attempt to achieve
targets
2
4. Over and under-estimating
Parkinson’s Law: ‘Work
expands to fill the time
available’
An over-estimate is
likely to cause project
to take longer than it
would otherwise
Brook’s Law:
putting more people
on late job make it
later
4
5. Basis for s/w estimation
Need historical data
Measure of work
Complexity
5
6. Bottom-up estimating
1. Break project into smaller and smaller
components
[2. Stop when you get to what one person can
do in one/two weeks]
3. Estimate costs for the lowest level activities
4. At each higher level calculate estimate by
adding estimates for lower levels
6
7. Top-down estimates
Produce overall
estimate using effort
driver (s)
distribute proportions
of overall estimate to
components
7
design code
overall
project
test
Estimate
100 days
30%
i.e.
30 days
30%
i.e.
30 days
40%
i.e. 40 days
8. Bottom-up versus top-down
Bottom-up
use when no past project data
identify all tasks that have to be done – so quite time-
consuming
use when you have no data about similar past projects
Top-down
produce overall estimate based on project cost drivers
based on past project data
divide overall estimate between jobs to be done
8
9. 9
Alan Albrecht while working for IBM, recognized the
problem in size measurement in the 1970s, and
developed a technique (which he called Function
Point Analysis), which appeared to be a solution to
the size measurement problem.
Function Count
Function Point
10. 10
The principle of Albrecht’s function point analysis
(FPA) is that a system is decomposed into
functional units.
Inputs : information entering the system
Outputs : information leaving the system
Enquiries : requests for instant access to
information
Internal logical files : information held within the
system
External interface files : information held by other system
that is used by the system being
analyzed.
2.Function Count(Cont.)
11. 11
The FPA functional units are shown in figure given below:
ILF
EIF
User
User
Other
applications
System
Outputs
Inputs
Inquiries
ILF: Internal logical
files
EIF: External interfaces
Fig. 3: FPAs functional units System
2.Function Count(Cont.)
12. 12
The five functional units are divided in two
categories:
(i) Data function types
Internal Logical Files (ILF): A user identifiable group
of logical related data or control information
maintained within the system.
2.Function Count(Cont.)
External Interface files (EIF): A user identifiable group
of logically related data or control information
referenced by the system, but maintained within
another system. This means that EIF counted for one
system, may be an ILF in another system.
13. 13
(ii) Transactional function types
External Input (EI): An EI processes data or control
information that comes from outside the system. The EI is
an elementary process, which is the smallest unit of activity
that is meaningful to the end user in the business.
External Output (EO): An EO is an elementary process that
generate data or control information to be sent outside the
system.
External Inquiry (EQ): An EQ is an elementary process that
is made up to an input-output combination that results in
data retrieval.
Software Project Planning
14. 14
Counting function points
Functional Units
Weighting factors
Low Average High
External Inputs (EI) 3 4 6
External Output (EO) 4 5 7
External Inquiries (EQ) 3 4 6
Internal logical files (ILF) 7 10 15
External Interface files (EIF) 5 7 10
Table 1 : Functional units with weighting factors
Software Project Planning
15. 15
Table 2: UFP calculation table
Count
Complexity
Complexity
Totals
Low x 3
Average x 4
High x 6
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Low x 4
Average x 5
High x 7
Low x 3
Average x 4
High x 6
Low x 7
Average x 10
High x 15
Low x 5
Average x 7
High x 10
Functional
Units
External
Inputs
(EIs)
External
Outputs
(EOs)
External
Inquiries
(EQs)
External
logical
Files (ILFs)
External
Interface
Files
(EIFs)
Functional
Unit Totals
Total Unadjusted Function Point Count
Software Project Planning
16. 16
Table 3 : Computing function points.
Rate each factor on a scale of 0 to 5.
20 3 541
ModerateNo
Influence
Average EssentialSignificantIncidental
Number of factors considered ( Fi )
1. Does the system require reliable backup and recovery ?
2. Is data communication required ?
3. Are there distributed processing functions ?
4. Is performance critical ?
5. Will the system run in an existing heavily utilized operational environment ?
6. Does the system require on line data entry ?
7. Does the on line data entry require the input transaction to be built over multiple screens or operations ?
8. Are the master files updated on line ?
9. Is the inputs, outputs, files, or inquiries complex ?
10. Is the internal processing complex ?
11. Is the code designed to be reusable ?
12. Are conversion and installation included in the design ?
13. Is the system designed for multiple installations in different organizations ?
14. Is the application designed to facilitate change and ease of use by the user ?
Software Project Planning
18. 18
Functions points may compute the following important metrics:
Productivity = FP / persons-months
Quality = Defects / FP
Cost = Rupees / FP
Documentation = Pages of documentation per FP
These metrics are controversial and are not universally
acceptable. There are standards issued by the International
Functions Point User Group (IFPUG, covering the Albrecht
method) and the United Kingdom Function Point User Group
(UFPGU, covering the MK11 method). An ISO standard for
function point method is also being developed.
Software Project Planning
19. 19
Example: 4.1
Consider a project with the following functional units:
Number of user inputs = 50
Number of user outputs = 40
Number of user enquiries = 35
Number of user files = 06
Number of external interfaces = 04
Assume all complexity adjustment factors and weighting
factors are average. Compute the function points for the
project.
Software Project Planning
20. 20
Solution
∑∑= =
=
5
1
3
1i J
ijij wZUFPUFP = 50 x 4 + 40 x 5 + 35 x 4 + 6 x 10 + 4 x 7
= 200 + 200 + 140 + 60 + 28 = 628
CAF = (0.65 + 0.01 ΣFi)
= (0.65 + 0.01 (14 x 3)) = 0.65 + 0.42 = 1.07
FP = UFP x CAF
= 628 x 1.07 = 672
UFP = Unadjusted Function Points.
CAF = Complexity adjustment factor.
FP = Function Points.
FP
We know
21. Function points Mark II
Developed by Charles R. Symons
‘Software sizing and estimating - Mk II FPA’,
Wiley & Sons, 1991.
Work originally for CCTA:
should be compatible with SSADM; mainly used in
UK
has developed in parallel to IFPUG FPs
21
22. Function points Mk II
continued
For each
transaction, count
data items input
(Ni)
data items output
(No)
entity types
accessed (Ne)
22
#entities
accessed
#input
items
#output
items
FP count = Ni * 0.58 + Ne * 1.66 + No * 0.26
25. COCOMO81
Based on industry productivity standards -
database is constantly updated
Allows an organization to benchmark its
software development productivity
Basic model
effort = c x sizek
C and k depend on the type of system: organic,
semi-detached, embedded
Size is measured in ‘kloc’ ie.Thousands of lines
of code
25
26. The COCOMO constants
System type c k
Organic (broadly,
information systems)
2.4 1.05
Semi-detached 3.0 1.12
Embedded (broadly,
real-time)
3.6 1.20
26
27. Development effort
multipliers (dem)
According to COCOMO, the major productivity drivers
include:
Product attributes: required reliability, database size,
product complexity
Computer attributes: execution time constraints,
storage constraints, virtual machine (VM) volatility
Personnel attributes: analyst capability, application
experience,VM experience, programming language
experience
Project attributes: modern programming practices,
software tools, schedule constraints
27
28. 28
Software Project Planning
Cost Drivers RATINGS
Very low Low Nominal High Very
high
Extra
high
Product Attributes
RELY
DATA
CPLX
Computer Attributes
TIME
STOR
VIRT
TURN
Multipliers of different cost drivers
1.651.301.151.000.850.70
--1.161.081.000.94--
--1.401.151.000.880.75
--1.151.071.000.87--
--1.301.151.000.87--
1.561.211.061.00----
1.661.301.111.00----
29. 29
Software Project Planning
Cost Drivers RATINGS
Very low Low Nominal High Very
high
Extra
high
Personnel Attributes
ACAP
AEXP
PCAP
VEXP
LEXP
Project Attributes
MODP
TOOL
SCED
--
--0.951.001.071.14
--0.901.001.101.21
0.700.861.001.171.42
0.820.911.001.131.29 --
0.710.861.001.191.46
1.101.041.001.081.23
0.830.911.001.101.24
0.820.911.001.101.24
Table 5: Multiplier values for effort calculations
--
--
--
--
--
--
31. Using COCOMO development
effort multipliers (dem)
An example: for analyst capability:
Assess capability as very low, low, nominal, high
or very high
Extract multiplier:
very low 1.46
low 1.19
nominal 1.00
high 0.80
very high 0.71
Adjust nominal estimate e.g. 32.6 x 0.80 = 26.8
staff months
31
33. 33
Table 8: Stages of COCOMO-II
Stage
No
Model Name Application for the
types of projects
Applications
Stage I
Stage II
Stage III
Application
composition estimation
model
Early design estimation
model
Post architecture
estimation model
Application
composition
Application generators,
infrastructure & system
integration
Application generators,
infrastructure & system
integration
In addition to application
composition type of projects, this
model is also used for prototyping
(if any) stage of application
generators, infrastructure & system
integration.
Used in early design stage of a
project, when less is known about
the project.
Used after the completion of the
detailed architecture of the project.
COCOMOII
Editor's Notes
This talk provides an overview of the basic steps needed to produce a project plan. The framework provided should allow students to identify where some of the particular issues discussed in other chapters are applied to the planning process. As the focus is on project planning, techniques to do with project control are not explicitly described. However, in practice, one element of project planning will be to decide what project control procedures need to be in place.
A key point here is that developers may in fact be very competent, but incorrect estimates leading to unachievable targets will lead to extreme customer dissatisfaction.
The answer to the problem of over-optimistic estimates might seem to be to pad out all estimates, but this itself can lead to problems. You might miss out to the competition who could underbid you, if you were tendering for work. Generous estimates also tend to lead to reductions in productivity. On the other hand, having aggressive targets in order to increase productivity could lead to poorer product quality.
Ask how many students have heard of Parkinson’s Law – the response could be interesting! It is best to explain that C. Northcote Parkinson was to some extent a humourist, rather than a heavyweight social scientist.
Note that ‘zeroth’ is what comes before first.
This is discussed in Section 5.3 of the text which also covers Brooks’Law.
The idea is that even if you have never done something before you can imagine what you could do in about a week.
Exercise 5.2 relates to bottom-up estimating
There is often confusion between the two approaches as the first part of the bottom-up approach is a top-down analysis of the tasks to be done, followed by the bottom-up adding up of effort for all the work to be done. Make sure you students understand this or it will return to haunt you (and them) at examination time.
Once again, just a reminder that the lecture is just an overview of concepts. Mark II FPs is a version of function points developed in the UK and is only used by a minority of FP specialists. The US-based IFPUG method (developed from the original Albrecht approach) is more widely used. I use the Mark II version because it has simpler rules and thus provides an easier introduction to the principles of FPs. Mark II FPs are explained in more detail in Section 5.9. If you are really keen on teaching the IFPUG approach then look at Section 5.10. The IFPUG rules are really quite tricky in places and for the full rules it is best to contact IFPUG.
For each transaction (cf use case) count the number of input types (not occurrences e.g. where a table of payments is input on a screen so the account number is repeated a number of times), the number of output types, and the number of entities accessed. Multiply by the weightings shown and sum. This produces an FP count for the transaction which will not be very useful. Sum the counts for all the transactions in an application and the resulting index value is a reasonable indicator of the amount of processing carried out. The number can be used as a measure of size rather than lines of code. See calculations of productivity etc discussed earlier.
There is an example calculation in Section 5.9 (Example 5.3) and Exercise 5.7 should give a little practice in applying the method.
Recall that the aim of this lecture is to give an overview of principles. COCOMO81 is the original version of the model which has subsequently been developed into COCOMO II some details of which are discussed in Section 5.12. For full details read Barry Boehm et al. Software estimation with COCOMO II Prentice-Hall 2002.
An interesting question is what a ‘semi-detached’ system is exactly. To my mind, a project that combines elements of both real-time and information systems (i.e. has a substantial database) ought to be even more difficult than an embedded system.
Another point is that COCOMO was based on data from very large projects. There are data from smaller projects that larger projects tend to be more productive because of economies of scale. At some point the diseconomies of scale caused by the additional management and communication overheads then start to make themselves felt.
Exercise 5.10 in the textbook provides practice in applying the basic model.
Virtual machine volatility is where the operating system that will run your software is subject to change. This could particularly be the case with embedded control software in an industrial environment.
Schedule constraints refers to situations where extra resources are deployed to meet a tight deadline. If two developers can complete a task in three months, it does not follow that six developers could complete the job in one month. There would be additional effort needed to divide up the work and co-ordinate effort and so on.