Skip to content
- Courses
- DSA to Development
- Newly Launched!
- Master Django Framework
- Become AWS Certified
- For Working Professionals
- Data Science Training Program
- JAVA Backend Development (Live)
- DevOps Engineering (LIVE)
- For Students
- Placement Preparation Course
- Data Science (Live)
- Master Competitive Programming (Live)
- GATE Exam Courses
- GATE 2025 Crash Course (LIVE)
- All Courses
- Tutorials
- Data Structures & Algorithms
- DSA for Beginners
- Data Structures
- Arrays
- Matrix
- Strings
- Linked List
- Stack
- Queue
- Tree
- Generic Tree
- Binary Tree
- Binary Search Tree
- AVL Tree
- B Tree
- B+ Tree
- Red Black Tree
- Tree Data Structure Tutorial
- Heap
- Hashing
- Graph
- Set Data Structure
- Map Data Structure
- Advanced Data Structure
- Data Structures Tutorial
- Algorithms
- Analysis of Algorithms
- Searching Algorithms
- Linear Search
- Binary Search
- Searching Algorithms Tutorial
- Sorting Algorithms
- Selection Sort
- Bubble Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Counting Sort
- Radix Sort
- Bucket Sort
- Sorting Algorithms Tutorial
-
-
- Software Testing Course
- Software Engineering Tutorial
- Software Development Life Cycle
- Waterfall Model
- Software Requirements
- Software Measurement and Metrics
- Software Design Process
- System configuration management
- Software Maintenance
- Software Development Tutorial
- Software Testing Tutorial
- Product Management Tutorial
- Project Management Tutorial
- Agile Methodology
- Selenium Basics
Open In App
Last Updated : 27 Aug, 2024
1. Lines of Code (LOC) :
The line of code (LOC) metric is any line of text in a code that is not a comment or blank line, in any case of the number of statements or fragments of statements on the line. LOC consists of all lines containing program header files, declaration of any variable, and executable and non-executable statements. As Lines of Code (LOC) only counts the proportion of code, you can only utilize it to compare or estimate projects that utilize the same language and are programmed using the same coding standards.Example of Line of Code :
C++ void selSort(int x[], int n) { //Below function sorts an array in ascending order int i, j, min, temp; for (i = 0; i < n - 1; i++) { min = i; for (j = i + 1; j < n; j++) if (x[j] < x[min]) min = j; temp = x[i]; x[i] = x[min]; x[min] = temp; }}
So, now If LOC is simply a count of the number of lines then the above function shown contains 13 lines of code (LOC). But when comments and blank lines are ignored, the function shown above contains 12 lines of code (LOC).
2. Function Point (FP) :
In the function point metric, the number and type of functions held up by the software are used to find FPC (function point count).Example of function point :
Check out this article for a detailed example : Calculation of Function Point (FP)
Both function point and LOC are measurement units for the size of the software. The size of the software that is dependent on development is necessary to come up with accurate estimates of the effort, cost, and duration of a project. Most parametric estimation models such as the Constructive Cost Model (COCOMO) accept size conveyed in either FP or LOC as an input.For a comprehensive overview of LOC and FP, including detailed examples and calculations, explore our course, ” Complete Guide to Software Testing ,” at GeeksforGeeks.
Difference between LOC and Function Point :Function Point (FP) Line of Code (LOC) Function Point metric is specification-based. LOC metric is based on analogy. Function Point metric is language independent. LOC metric is dependent on language. Function Point metric is user-oriented. LOC metric is design-oriented. Function Point metric is extendible to Line of Code. It is changeable to FP (i.e. backfiring) Function Point is used for data processing systems LOC is used for calculating the size of the computer program Function Point can be used to portray the project time LOC is used for calculating and comparing the productivity of programmers. In general, people prefer the functional size of software indicated as Function Point for one very important reason, i.e, the size expressed using the Function point metric stays constant in any case and whichever language or languages are used.
Next Article
Function Oriented Design - Software Engineering
Please Login to comment...
Similar Reads
Lines of Code (LOC) in Software Engineering A line of code (LOC) is any line of text in a code that is not a comment or blank line, and also header lines, in any case of the number of statements or fragments of statements on the line. LOC consists of all lines containing the declaration of any variable, and executable and non-executable statements. Table of Content Features of Lines of Code 4 min read Differences between Point-to-Point and Multi-point Communication In this section, we shall see the differences between Point-to-Point and Multi-point Communication. In point-to-point communication, there is a dedicated link between two nodes, and in multi-point communication, the link is provided at all times for sharing the connection among nodes. Now, the differences between these to communicate with the help 2 min read Software Engineering | Calculation of Function Point (FP) Function Point (FP) is an element of software development which helps to approximate the cost of development early in the process. It may measures functionality from user's point of view. Counting Function Point (FP): Step-1: F = 14 * scale Scale varies from 0 to 5 according to character of Complexity Adjustment Factor (CAF). Below table shows scal 4 min read Introduction to Software Engineering - Software Engineering Software is a program or set of programs containing instructions that provide the desired functionality. Engineering is the process of designing and building something that serves a particular purpose and finds a cost-effective solution to problems. Table of Content What is Software Engineering?Key Principles of Software EngineeringMain Attributes 9 min read Difference between Software Engineering process and Conventional Engineering Process Software Engineering Process and Conventional Engineering Process, both are processes related to computers and development. In this article, we will see the similarities as well as differences between both, that is Software Engineering Process and the Conventional Engineering Process. Table of Content Software Engineering ProcessConventional Engine 4 min read Difference between Software Engineering and Computer Engineering Software engineering and Computer engineering are two distinct disciplines that focus on different aspects of computer systems. While both fields require a strong foundation in computer science and mathematics, software engineering is focused on software development processes, while computer engineering is focused on the physical components and sys 6 min read Differentiate between Write Through and Write Back Methods Prerequisite - Write Through and Write Back in Cache During a read operation, when the CPU determines a word in the cache, the main memory is not included in the transfer. Thus, there are two ways that the system can proceed when the operation is a write. 1. Write Through Method : The simplest method is to update the main memory with every memory w 2 min read Differentiate between find() and children() Methods Before looking at the differences between the find() and children() method. Let us briefly understand what are these and what they do. find(): This method is used to get all the filtered descendants of each element in the current set of matched elements. Syntax: $(selector).find('filter-expression') Parameter: A selector expression, element, or jQu 3 min read Differentiate between Cottage and Small Scale Industries The expression "cottage industry" alludes to assembling organizations that do the greater part of their work the hard way. India is perceived and known for its enhanced culture, painstaking work from conventional cabin ventures, and an extensive variety of cooking things, in addition to other things. Cotton winding around, cover winding around, sil 6 min read Differentiate between Direct and Indirect Use of Biodiversity Biodiversity is the diversity of living things from a variety of sources, including terrestrial, marine, and desert ecosystems as well as the ecological complexes to which they belong. This is the most complex and important feature of our planet. Life cannot be sustained without biodiversity. The term "biodiversity" was coined in 1985. It is import 7 min read Difference between Serial Line Internet Protocol (SLIP) and Point-to-Point Protocol (PPP) The main difference between the Serial Line Internet Protocol (SLIP) and Point-to-Point Protocol (PPP) is that Serial Line Internet Protocol is the Predecessor protocol of Point-to-Point Protocol. On the other hand, Point-to-Point Protocol is the Successor protocol of Serial Line Internet Protocol. Features of SLIP: Simple: SLIP is a simple protoco 4 min read Difference between Point to Point Link and Star Topology Network 1. Point to point link : This is the kind of topology that relies upon two functions i.e. Transmit and Receive. It is a type of communication network between two communication nodes where there is one transmitter and on the other end, there is the receiver. It is a kind of communication medium which have two endpoints or end nodes. They provide hig 4 min read Difference Between High-level Data Link Control (HDLC) and Point-to-Point Protocol (PPP) The main difference between High-level Data Link Control (HDLC) and Point-to-Point Protocol (PPP) is that High-level Data Link Control is the bit-oriented protocol, on the other hand, Point-to-Point Protocol is the byte-oriented protocol. Another difference between HDLC and PPP is that HDLC is implemented by Point-to-point configuration and also mu 5 min read Functional Point (FP) Analysis - Software Engineering Functional Point Analysis (FPA) is a software measurement technique used to assess the size and complexity of a software system based on its functionality. It involves categorizing the functions of the software, such as input screens, output reports, inquiries, files, and interfaces, and assigning weights to each based on their complexity. By quant 9 min read Reverse Engineering - Software Engineering Software Reverse Engineering is a process of recovering the design, requirement specifications, and functions of a product from an analysis of its code. It builds a program database and generates information from this.This article focuses on discussing reverse engineering in detail. What is Reverse Engineering?Reverse engineering can extract desig 6 min read Re-engineering - Software Engineering Software Re-engineering is a process of software development that is done to improve the maintainability of a software system. Re-engineering is the examination and alteration of a system to reconstitute it in a new form. This process encompasses a combination of sub-processes like reverse engineering, forward engineering, reconstructing, etc. Tab 8 min read Evolution of Software Engineering: From an Art To Engineering Discipline Software Engineering is a systematic and cost-effective technique for software development. It is an engineering approach to developing software. For example: If someone wants to travel from Punjab to Delhi. There are two approaches one can follow to achieve the same result: The normal approach is to go out and catch the bus/train that is available 13 min read Requirements Engineering Process in Software Engineering Requirements Engineering is the process of identifying, eliciting, analyzing, specifying, validating, and managing the needs and expectations of stakeholders for a software system. Table of Content What is Requirements Engineering?Requirements Engineering ProcessTools Involved in Requirement EngineeringAdvantages of Requirements Engineering Process 13 min read Difference between Computer Science Engineering and Computer Engineering There is no clear cut computer science engineering and computer engineering definition because there are a variety of tasks and functions where similarity also exists and they perform their task depending upon their industry and work. 1. Computer Science Engineering : It includes the study of analysis of algorithms, programming languages, operating 3 min read Difference between Forward Engineering and Reverse Engineering Forward engineering and reverse engineering are two approaches to software development, with different goals and processes. Forward engineering involves creating new software systems from scratch using given requirements and design specifications. It focuses on building new applications through a structured process of analysis, design, implementati 6 min read Software Business and Development - Software Engineering Software Business means selling software for the business or sometimes it is referred to as selling information about various software made for business purposes that are so-called business software. This article focuses on discussing Software Business and Development in detail. What is a Software Business? Software business is one of the commercia 3 min read Role and Responsibilities of a software Project Manager - Software Engineering A software project manager is the most important person inside a team who takes the overall responsibilities to manage the software projects and plays an important role in the successful completion of the projects. This article focuses on discussing the role and responsibilities of a software project manager. Table of Content Who is a Project Manag 5 min read Software Engineering | Schick-Wolverton software reliability model Prerequisite - Jelinski Moranda software reliability model The Schick-Wolverton (S-W) model is a modification to the J-M model. It is similar to the J-M model except that it further assumes that the failure rate at the ith time interval increases with time ti since the last debugging. In the model, the program failure rate function between the (i-1 4 min read Software Engineering | Responsibilities of Software Project Manager Software Project Management (SPM) is a sub-field of Project Management in which software projects are planned, implemented, monitored and controlled. It consists of three terms: Software, Project and Management. So, let us understand each term separately. Software includes a set of programs, documentation and user manual for a particular software p 3 min read Software Engineering - Hardware Reliability vs Software Reliability Reliability in software is software that has no failure and works in a special time period with a special environment. Hardware reliability is the probability of the absence of any hardware-related system malfunction for a given mission on the other hand software reliability is the probability that the software will provide a failure-free operation 3 min read Failure Curve for Software in Software Engineering Pre-requisites: Software Engineering In Software Engineering, the concept of a software failure curve is part of the hardware bathtub curve. According to the diagram, the failure rate is a function of time for Hardware. This curve shows that hardware exhibits a relatively high failure rate early in its life (these failures are often design or manuf 4 min read Identifying Software Development Metrics - Software Engineering Companies invest a fair proportion of their resources in the expensive staff that drive the development of technology on which an organization runs. It is therefore imperative to explore and quantitatively measure the performance of such investments by empowering teams with the ability to track their efficiency. This task is delegated to a designat 4 min read Software Quality Framework - Software Engineering Software Quality Framework is a model for software quality that ensures quality by connecting and integrating the different views of software quality. This article focuses on discussing the Software Quality Framework. What is a Software Quality Framework?Software Quality Framework connects the customer view with the developer's view of software qua 4 min read Software Evolution - Software Engineering Software Evolution is a term that refers to the process of developing software initially, and then timely updating it for various reasons, i.e., to add new features or to remove obsolete functionalities, etc. This article focuses on discussing Software Evolution in detail. What is Software Evolution?The software evolution process includes fundament 3 min read Characteristics of Good Software - Software Engineering Software is treated as good software using different factors. A software product is concluded as good software by what it offers and how well it can be used. The factors that decide the software properties are divided into three categories: Operational, Transitional, and Maintenance. What is a Good Software?Software engineering is the process of de 2 min readArticle Tags :
- Difference Between
- Software Engineering
- Software Testing
- Software Testing
Trending in News
View More- California Lawmakers Pass Bill to Limit AI Replicas
- Best 10 IPTV Service Providers in Germany
- Python 3.13 Releases | Enhanced REPL for Developers
- IPTV Anbieter in Deutschland - Top IPTV Anbieter Abonnements
- Content Improvement League 2024: From Good To A Great Article
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
-
- Data Structures & Algorithms
'); $('.spinner-loading-overlay').show(); jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id, check: true }), success:function(result) { jQuery.ajax({ url: writeApiUrl + 'suggestions/auth/' + `${post_id}/`, type: "GET", dataType: 'json', xhrFields: { withCredentials: true }, success: function (result) { $('.spinner-loading-overlay:eq(0)').remove(); var commentArray = result; if(commentArray === null || commentArray.length === 0) { // when no reason is availaible then user will redirected directly make the improvment. // call to api create-improvement-post $('body').append('
'); $('.spinner-loading-overlay').show(); jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id, }), success:function(result) { $('.spinner-loading-overlay:eq(0)').remove(); $('.improve-modal--overlay').hide(); $('.unlocked-status--improve-modal-content').css("display","none"); $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank'); $('.create-improvement-redirection-to-write')[0].click(); }, error:function(e) { $('.spinner-loading-overlay:eq(0)').remove(); var result = e.responseJSON; if(result.detail.non_field_errors.length){ $('.improve-modal--improve-content .improve-modal--improve-content-modified').text(`${result.detail.non_field_errors}.`); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); $('.improvement-reason-modal').hide(); } }, }); return; } var improvement_reason_html = ""; for(var comment of commentArray) { // loop creating improvement reason list markup var comment_id = comment['id']; var comment_text = comment['suggestion']; improvement_reason_html += `
${comment_text}
`; } $('.improvement-reasons_wrapper').html(improvement_reason_html); $('.improvement-bottom-btn').html("Create Improvement"); $('.improve-modal--improvement').hide(); $('.improvement-reason-modal').show(); }, error: function(e){ $('.spinner-loading-overlay:eq(0)').remove(); // stop loader when ajax failed; }, }); }, error:function(e) { $('.spinner-loading-overlay:eq(0)').remove(); var result = e.responseJSON; if(result.detail.non_field_errors.length){ $('.improve-modal--improve-content .improve-modal--improve-content-modified').text(`${result.detail.non_field_errors}.`); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); $('.improvement-reason-modal').hide(); } }, }); } else { if(loginData && !loginData.isLoggedIn) { $('.improve-modal--overlay').hide(); if ($('.header-main__wrapper').find('.header-main__signup.login-modal-btn').length) { $('.header-main__wrapper').find('.header-main__signup.login-modal-btn').click(); } return; } } }); $('.left-arrow-icon_wrapper').on('click',function(){ if($('.improve-modal--suggestion').is(":visible")) $('.improve-modal--suggestion').hide(); else{ $('.improvement-reason-modal').hide(); } $('.improve-modal--improvement').show(); }); function loadScript(src, callback) { var script = document.createElement('script'); script.src = src; script.onload = callback; document.head.appendChild(script); } function suggestionCall() { var suggest_val = $.trim($("#suggestion-section-textarea").val()); var array_String= suggest_val.split(" ") var gCaptchaToken = $("#g-recaptcha-response-suggestion-form").val(); var error_msg = false; if(suggest_val != "" && array_String.length >=4){ if(suggest_val.length <= 2000){ var payload = { "gfg_post_id" : `${post_id}`, "suggestion" : `
${suggest_val}
`, } if(!loginData || !loginData.isLoggedIn) // User is not logged in payload["g-recaptcha-token"] = gCaptchaToken jQuery.ajax({ type:'post', url: "https://apiwrite.geeksforgeeks.org/suggestions/auth/create/", xhrFields: { withCredentials: true }, crossDomain: true, contentType:'application/json', data: JSON.stringify(payload), success:function(data) { jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-section-textarea').val(""); jQuery('.suggest-bottom-btn').css("display","none"); // Update the modal content const modalSection = document.querySelector('.suggestion-modal-section'); modalSection.innerHTML = `
Thank You!
Your suggestions are valuable to us.
You can now also contribute to the GeeksforGeeks community by creating improvement and help your fellow geeks.
`; }, error:function(data) { jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Something went wrong."); jQuery('#suggestion-modal-alert').show(); error_msg = true; } }); } else{ jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Minimum 5 Words and Maximum Character limit is 2000."); jQuery('#suggestion-modal-alert').show(); jQuery('#suggestion-section-textarea').focus(); error_msg = true; } } else{ jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Enter atleast four words !"); jQuery('#suggestion-modal-alert').show(); jQuery('#suggestion-section-textarea').focus(); error_msg = true; } if(error_msg){ setTimeout(() => { jQuery('#suggestion-section-textarea').focus(); jQuery('#suggestion-modal-alert').hide(); }, 3000); } } document.querySelector('.suggest-bottom-btn').addEventListener('click', function(){ jQuery('body').append('
'); jQuery('.spinner-loading-overlay').show(); if(loginData && loginData.isLoggedIn) { suggestionCall(); return; } // load the captcha script and set the token loadScript('https://www.google.com/recaptcha/api.js?render=6LdMFNUZAAAAAIuRtzg0piOT-qXCbDF-iQiUi9KY', function() { setGoogleRecaptcha(); }); }); $('.improvement-bottom-btn.create-improvement-btn').click(function() { //create improvement button is clicked $('body').append('
'); $('.spinner-loading-overlay').show(); // send this option via create-improvement-post api jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id }), success:function(result) { $('.spinner-loading-overlay:eq(0)').remove(); $('.improve-modal--overlay').hide(); $('.improvement-reason-modal').hide(); $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank'); $('.create-improvement-redirection-to-write')[0].click(); }, error:function(e) { $('.spinner-loading-overlay:eq(0)').remove(); var result = e.responseJSON; if(result.detail.non_field_errors.length){ $('.improve-modal--improve-content .improve-modal--improve-content-modified').text(`${result.detail.non_field_errors}.`); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); $('.improvement-reason-modal').hide(); } }, }); });