Knowledge

Source lines of code

Source đź“ť

619:
However, functionality is less well correlated with SLOC: skilled developers may be able to develop the same functionality with far less code, so one program with fewer SLOC may exhibit more functionality than another similar program. Counting SLOC as productivity measure has its caveats, since a developer can develop only a few lines and yet be far more productive in terms of functionality than a developer who ends up creating more lines (and generally spending more effort). Good developers may merge multiple code modules into a single module, improving the system yet appearing to have negative productivity because they remove code. Furthermore, inexperienced developers often resort to
1300:, programmers can write relatively little code and achieve high levels of functionality. For example, instead of writing a program to create a window and draw a button, a user with a GUI tool can use drag-and-drop and other mouse operations to place components on a workspace. Code that is automatically generated by a GUI tool is not usually taken into consideration when using LOC methods of measurement. This results in variation between languages; the same task that can be done in a single line of code (or no code at all) in one language may require several lines of code in another. 1339:, how much they did. How many K-LOCs did you do? And we kept trying to convince them – hey, if we have – a developer's got a good idea and he can get something done in 4K-LOCs instead of 20K-LOCs, should we make less money? Because he's made something smaller and faster, less K-LOC. K-LOCs, K-LOCs, that's the methodology. Ugh! Anyway, that always makes my back just crinkle up at the thought of the whole thing. 124: 1185: 572: 226: 36: 77: 1274:
LOC may exhibit more functionality than another similar program. In particular, LOC is a poor productivity measure of individuals, because a developer who develops only a few lines may still be more productive than a developer creating more lines of code â€“ even more: some good refactoring like "extract method" to get rid of
952:, and reported that Red Hat Linux version 7.1 (released April 2001) contained over 30 million physical SLOC. He also extrapolated that, had it been developed by conventional proprietary means, it would have required about 8,000 person-years of development effort and would have cost over $ 1 billion (in year 2000 U.S. dollars). 1289:
application would be different. The lines of code needed to develop the application would certainly not be the same. As a consequence, the amount of effort required to develop the application would be different (hours per function point). Unlike lines of code, the number of function points will remain constant.
1247:
Scope for automation of counting: since line of code is a physical entity, manual counting effort can be easily eliminated by automating the counting process. Small utilities may be developed for counting the LOC in a program. However, a logical code counting utility developed for a specific language
959:
version 2.2 (also known as "Potato"); this operating system was originally released in August 2000. This study found that Debian GNU/Linux 2.2 included over 55 million SLOC, and if developed in a conventional proprietary way would have required 14,005 person-years and cost US$ 1.9 billion to develop.
337:
of lines of code in a project. Using lines of code to compare a 10,000-line project to a 100,000-line project is far more useful than when comparing a 20,000-line project with a 21,000-line project. While it is debatable exactly how to measure lines of code, discrepancies of an order of magnitude can
1284:
Developer's experience: implementation of a specific logic differs based on the level of experience of the developer. Hence, number of lines of code differs from person to person. An experienced developer may implement certain functionality in fewer lines of code than another developer of relatively
1303:
Problems with multiple languages: in today's software scenario, software is often developed in more than one language. Very often, a number of languages are employed depending on the complexity and requirements. Tracking and reporting of productivity and defect rates poses a serious problem in this
618:
SLOC measures are somewhat controversial, particularly in the way that they are sometimes misused. Experiments have repeatedly confirmed that effort is highly correlated with SLOC, that is, programs with larger SLOC values take more time to develop. Thus, SLOC can be effective in estimating effort.
1311:
Psychology: a programmer whose productivity is being measured in lines of code will have an incentive to write unnecessarily verbose code. The more management is focusing on lines of code, the more incentive the programmer has to expand his code with unneeded complexity. This is undesirable, since
1273:
Lack of cohesion with functionality: though experiments have repeatedly confirmed that while effort is highly correlated with LOC, functionality is less well correlated with LOC. That is, skilled developers may be able to develop the same functionality with far less code, so one program with less
1334:
In IBM there's a religion in software that says you have to count K-LOCs, and a K-LOC is a thousand lines of code. How big a project is it? Oh, it's sort of a 10K-LOC project. This is a 20K-LOCer. And this is 50K-LOCs. And IBM wanted to sort of make it the religion about how we got paid. How much
1307:
Lack of counting standards: there is no standard definition of what a line of code is. Do comments count? Are data declarations included? What happens if a statement extends over several lines? – These are the questions that often arise. Though organizations like SEI and IEEE have published some
1288:
Difference in languages: consider two applications that provide the same functionality (screens, reports, databases). One of the applications is written in C++ and the other application written in a language like COBOL. The number of function points would be exactly the same, but aspects of the
817:
simply by dragging an icon onto a workspace. The work involved in creating this code cannot reasonably be compared to the work necessary to write a device driver, for instance. By the same token, a hand-coded custom GUI class could easily be more demanding than a simple device driver; hence the
357:
is the number of statement-terminating semicolons). It is much easier to create tools that measure physical SLOC, and physical SLOC definitions are easier to explain. However, physical SLOC measures are more sensitive to logically irrelevant formatting and style conventions than logical SLOC.
1355:
When the Lisa team was pushing to finalize their software in 1982, project managers started requiring programmers to submit weekly forms reporting on the number of lines of code they had written. Bill Atkinson thought that was silly. For the week in which he had rewritten QuickDraw’s region
553:
were the main form of data entry for programming. One punched card usually represented one line of code. It was one discrete object that was easily counted. It was the visible output of the programmer, so it made sense to managers to count lines of code as a measurement of a programmer's
533:) and others developed a framework for defining SLOC values, to enable people to carefully explain and define the SLOC measure used in a project. For example, most software systems reuse code, and determining which (if any) reused code to include is important when reporting a measure. 345:
There are two major types of SLOC measures: physical SLOC (LOC) and logical SLOC (LLOC). Specific definitions of these two measures vary, but the most common definition of physical SLOC is a count of lines in the text of the program's source code excluding comment lines.
1269:
Lack of accountability: lines-of-code measure suffers from some fundamental problems. Some think that it isn't useful to measure the productivity of a project using only results from the coding phase, which usually accounts for only 30% to 35% of the overall
808:
Another increasingly common problem in comparing SLOC metrics is the difference between auto-generated and hand-written code. Modern software tools often have the capability to auto-generate enormous amounts of code with a few clicks of a mouse. For instance,
1255:
are said to be more of an objective metric which cannot be imagined as being a physical entity, it exists only in the logical space. This way, LOC comes in handy to express the size of software among programmers with low levels of
558:". Today, the most commonly used computer languages allow a lot more leeway for formatting. Text lines are no longer limited to 80 or 96 columns, and one line of text no longer necessarily corresponds to one line of code. 1610:
Debian 7.0 was released in May 2013. The number is an estimate published on 2012-02-13, using the code base which would become Debian 7.0, using the same software method as for the data published by David A. Wheeler.
1356:
calculation routines to be six times faster and 2000 lines shorter, he put “-2000″ on the form. After a few more weeks the managers stopped asking him to fill out the form, and he gladly complied.
1248:
cannot be used for other languages due to the syntactical and structural differences among languages. Physical LOC counters, however, have been produced which count dozens of languages.
349:
Logical SLOC attempts to measure the number of executable "statements", but their specific definitions are tied to specific computer languages (one simple logical SLOC measure for
844:
instead of SLOC as a measure of functionality, but since function points are highly correlated to SLOC (and cannot be automatically measured) this is not a universally held view.
960:
Later runs of the tools used report that the following release of Debian had 104 million SLOC, and as of year 2005, the newest release is going to include over 213 million SLOC.
1304:
case, since defects cannot be attributed to a particular language subsequent to integration of the system. Function point stands out to be the best measure of size in this case.
1308:
guidelines in an attempt to standardize counting, it is difficult to put these into practice especially in the face of newer and newer languages being introduced every year.
840:. While these models have shown good predictive power, they are only as good as the estimates (particularly the SLOC estimates) fed to them. Many have advocated the use of 1259:
Ubiquitous measure: LOC measures have been around since the earliest days of software. As such, it is arguable that more LOC data is available than any other size measure.
626:
SLOC counting exhibits further accuracy issues at comparing programs written in different languages unless adjustment factors are applied to normalize languages. Various
1668: 1251:
An intuitive metric: line of code serves as an intuitive metric for measuring the size of software because it can be seen, and the effect of it can be visualized.
1719: 1614: 1281:
Adverse impact on estimation: because of the fact presented under point #1, estimates based on lines of code can adversely go wrong, in all possibility.
821:
There are several cost, schedule, and effort estimation models which use SLOC as an input parameter, including the widely used Constructive Cost Model (
1872: 598: 582: 358:
However, SLOC measures are often stated without giving their definition, and logical SLOC can often be significantly different from physical SLOC.
1956: 1866: 1376: 1925: 1366: 98: 85: 1547: 141: 49: 814: 1503: 1945: 1917: 1228: 277: 207: 63: 188: 1546:
González-Barahona, Jesús M.; Miguel A. Ortuño Pérez; Pedro de las Heras Quirós; José Centeno González; Vicente Matellán Olivera.
810: 160: 1869:
Resource Standard Metrics (RSM) defines "effective lines of code" as a realistics code metric independent of programming style.
1371: 586: 240: 236: 1814:
Forecasting Field Defect Rates Using a Combined Time-based and Metric–based Approach a Case Study of OpenBSD (CMU-ISRI-05-125)
1195: 530: 145: 317:. SLOC is typically used to predict the amount of effort that will be required to develop a program, as well as to estimate 167: 1823: 1715: 1433: 174: 444:
Depending on the programmer and coding standards, the above "line" of code could be written on many separate lines:
1618: 1414: 1586: 1971: 1456: 156: 55: 1691:"Linux Kernel Development: How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It" 1664: 1293: 1210: 647: 635: 350: 318: 1784: 1640: 623:, which is highly discouraged as it is more bug-prone and costly to maintain, but it results in higher SLOC. 1344: 1312:
increased complexity can lead to increased cost of maintenance and increased effort required for bug fixing.
1206: 590: 252: 134: 90: 1297: 1812: 1651:
86 million lines of source code that was ported to run on an entirely new architecture with zero hiccups.
1483: 1394:
Possibly including the whole iLife suite, not just the operating system and usually bundled applications.
1747: 1759: 1694: 1322: 354: 1555: 639: 361:
Consider this snippet of C code as an example of the ambiguity encountered when determining SLOC:
181: 334: 1929: 1848: 1913: 631: 627: 546: 525:
Even the "logical" and "physical" SLOC values can have a large number of varying definitions.
1532: 1507: 521:
1 comment line: tools must account for all code and comments regardless of comment placement.
1835: 1487: 956: 833: 541:
At the time when SLOC was introduced as a metric, the most commonly used languages, such as
310: 1252: 322: 306: 1949: 1488: 634:
would require hundreds of lines of code to perform the same task as a few characters in
1275: 1085: 841: 620: 526: 1690: 1965: 1348: 1327: 830: 550: 518:
2 logical lines of code (LLOC): what about all the work writing non-statement lines?
862: 1422:, Center for Systems and Software Engineering, University of Southern California 1046: 826: 549:, were line-oriented languages. These languages were developed at the time when 314: 123: 1839: 962: 857: 852:
According to Vincent Maraia, the SLOC values for various operating systems in
555: 1296:
tools: with the advent of GUI-based programming languages and tools such as
853: 630:
balance brevity and clarity in different ways; as an extreme example, most
76: 1071: 837: 430: 339: 1849:"Software Size Measurement: A Framework for Counting Source Statements" 1590: 1058: 945: 542: 515:
4 physical lines of code (LOC): is placing braces work to be estimated?
17: 1873:
Effective Lines of Code eLOC Metrics for popular Open Source Software
822: 434: 1880: 1689:
Greg Kroah-Hartman; Jonathan Corbet; Amanda McPherson (April 2012).
1213:. Statements consisting only of original research should be removed. 949: 651: 643: 1875:
Linux Kernel 2.6.17, Firefox, Apache HTTPD, MySQL, PHP using RSM.
1336: 1895: 1413:
Vu Nguyen; Sophia Deeds-Rubin; Thomas Tan; Barry Boehm (2007),
1716:"Summary, Outlook, Statistics - The H Open: News and Features" 1317: 1178: 565: 219: 117: 70: 29: 27:
Software metric used to measure the size of a computer program
313:
by counting the number of lines in the text of the program's
1824:"From the Ground Up: The DIMACS Software Security Workshop" 1733: 1734:"Linux-Kernel durchbricht die 20-Millionen-Zeilen-Marke" 1285:
less experience does, though they use the same language.
1278:
and keep it clean will mostly reduce the lines of code.
1202: 248: 1926:"Tanenbaum outlines his vision for a grandma-proof OS" 1957:
Folklore.org: Macintosh Stories: -2000 Lines Of Code
1946:"Metrics collection tools for C and C++ Source Code" 1615:"Debian Wheezy: US$ 19 Billion. Your price... FREE!" 1533:"More Than a Gigabuck: Estimating GNU/Linux's Size" 1434:"Quantifying the Benefits of Using Function Points" 654:(a language known for being particularly verbose). 148:. Unsourced material may be challenged and removed. 813:automatically generate all the source code for a 1748:"a short history of lines of code (loc) metrics" 638:. The following example shows a comparison of a 1847:Park, Robert E.; et al. (31 August 1992). 1811:Li, Luo; Herbsleb, Jim; Shaw, Mary (May 2005). 1526: 1524: 1330:criticized the use of counting lines of code: 338:be clear indicators of software complexity or 1867:Definitions of Practical Source Lines of Code 1580: 1578: 1576: 1574: 1572: 1486:. Microsoft. January 11, 2011. Archived from 1451: 1449: 1447: 1445: 1443: 1441: 8: 1548:"Counting potatoes: the size of Debian 2.2" 1351:in 1982 found problems with this practice: 64:Learn how and when to remove these messages 1504:"A history of Windows - Microsoft Windows" 1641:"Live from WWDC 2006: Steve Jobs Keynote" 1229:Learn how and when to remove this message 554:productivity, even referring to such as " 449:/* Now how many lines of code is this? */ 333:Many useful comparisons involve only the 278:Learn how and when to remove this message 208:Learn how and when to remove this message 656: 585:: vague phrasing that often accompanies 251:by adding descriptive text and removing 101:of all important aspects of the article. 1484:"How Many Lines of Code in Windows XP?" 1405: 1387: 1377:Cost estimation in software engineering 1896:"Counting Source Lines of Code (SLOC)" 1367:Software development effort estimation 97:Please consider expanding the lead to 417:/* How many lines of code is this? */ 7: 1760:"MacPaint and QuickDraw Source Code" 1469:This in turn cites Vincent Maraia's 1457:"How Many Lines of Code in Windows?" 146:adding citations to reliable sources 1785:"Folklore.org: -2000 Lines Of Code" 955:A similar study was later made of 25: 1853:Technical Report CMU/SEI-92-TR-20 1822:McGraw, Gary (March–April 2003). 1473:as the source of the information. 811:graphical user interface builders 45:This article has multiple issues. 1722:from the original on 2013-12-19. 1714:Thorsten Leemhuis (2012-10-01). 1663:Thorsten Leemhuis (2009-12-03). 1183: 570: 429:2 logical lines of code (LLOC) ( 224: 122: 75: 34: 1894:Wheeler, David A. (June 2001). 1671:from the original on 2013-12-19 1531:David A. Wheeler (2001-06-30). 1459:. Knowing.NET. December 6, 2005 1372:Estimation (project management) 325:once the software is produced. 133:needs additional citations for 89:may be too short to adequately 53:or discuss these issues on the 531:Software Engineering Institute 426:1 physical line of code (LOC), 309:used to measure the size of a 99:provide an accessible overview 1: 1817:. Carnegie-Mellon University. 944:David A. Wheeler studied the 860:product line are as follows: 1924:Howard Dahdah (2007-01-24). 1665:"What's new in Linux 2.6.32" 1506:. 2012-09-21. Archived from 818:shortcoming of this metric. 1828:IEEE Security & Privacy 1639:Jobs, Steve (August 2006). 1209:the claims made and adding 1988: 1912:(2nd ed.). Prentice Hall. 1840:10.1109/MSECP.2003.1193213 815:graphical control elements 597:Such statements should be 511:In this example we have: 422:In this example we have: 1910:Modern Operating Systems 1416:A SLOC Counting Standard 764:"hello, world" 728: 683: 677:"hello, world" 671: 446: 363: 319:programming productivity 1345:Computer History Museum 802:(excluding whitespace) 253:less pertinent examples 1358: 1341: 1326:, Microsoft executive 950:Linux operating system 825:) series of models by 797:(excluding whitespace) 562:Usage of SLOC measures 157:"Source lines of code" 1908:Tanenbaum, Andrew S. 1353: 1332: 640:"hello world" program 355:programming languages 1695:The Linux Foundation 1323:Triumph of the Nerds 1165:Linux kernel pre-4.2 948:distribution of the 599:clarified or removed 291:Source lines of code 142:improve this article 1143:Linux kernel 2.6.35 1132:Linux kernel 2.6.32 1121:Linux kernel 2.6.29 935:Windows Server 2003 329:Measurement methods 249:improve the article 1879:Wheeler, David A. 1613:James Bromberger. 1585:Robles, Gregorio. 1335:money we made off 1194:possibly contains 1110:Linux kernel 2.6.0 1099:Linux kernel 2.4.2 710:"hello, world 632:assembly languages 628:computer languages 335:order of magnitude 1952:on June 19, 2020. 1587:"Debian Counting" 1343:According to the 1239: 1238: 1231: 1196:original research 1172: 1171: 942: 941: 806: 805: 616: 615: 547:assembly language 500:"hello" 411:"hello" 297:), also known as 288: 287: 280: 270: 269: 218: 217: 210: 192: 116: 115: 68: 16:(Redirected from 1979: 1972:Software metrics 1953: 1948:. Archived from 1940: 1938: 1937: 1928:. Archived from 1905: 1903: 1902: 1890: 1888: 1887: 1856: 1843: 1818: 1799: 1798: 1796: 1795: 1789:www.folklore.org 1781: 1775: 1774: 1772: 1771: 1756: 1750: 1744: 1738: 1737: 1730: 1724: 1723: 1711: 1705: 1704: 1702: 1701: 1686: 1680: 1679: 1677: 1676: 1660: 1654: 1653: 1648: 1647: 1636: 1630: 1629: 1627: 1626: 1617:. Archived from 1608: 1602: 1601: 1599: 1598: 1589:. Archived from 1582: 1567: 1566: 1564: 1563: 1554:. Archived from 1543: 1537: 1536: 1528: 1519: 1518: 1516: 1515: 1500: 1494: 1493: 1491: 1480: 1474: 1471:The Build Master 1467: 1465: 1464: 1453: 1436: 1430: 1424: 1423: 1421: 1410: 1395: 1392: 1347:Apple Developer 1234: 1227: 1223: 1220: 1214: 1211:inline citations 1187: 1186: 1179: 1154:Linux kernel 3.6 969:Operating system 963: 957:Debian GNU/Linux 869:Operating system 863: 800:Lines of code: 6 795:Lines of code: 4 790:Lines of code: 1 783: 780: 777: 774: 771: 768: 765: 762: 759: 756: 753: 750: 747: 744: 741: 738: 735: 732: 723: 720: 717: 714: 711: 708: 705: 702: 699: 696: 693: 690: 687: 678: 675: 657: 621:code duplication 611: 608: 602: 574: 573: 566: 507: 504: 501: 498: 495: 492: 489: 486: 483: 480: 477: 474: 471: 468: 465: 462: 459: 456: 453: 450: 418: 415: 412: 409: 406: 403: 400: 397: 394: 391: 388: 385: 382: 379: 376: 373: 370: 367: 311:computer program 283: 276: 265: 262: 256: 228: 227: 220: 213: 206: 202: 199: 193: 191: 150: 126: 118: 111: 108: 102: 79: 71: 60: 38: 37: 30: 21: 1987: 1986: 1982: 1981: 1980: 1978: 1977: 1976: 1962: 1961: 1943: 1935: 1933: 1923: 1900: 1898: 1893: 1885: 1883: 1878: 1863: 1846: 1821: 1810: 1807: 1805:Further reading 1802: 1793: 1791: 1783: 1782: 1778: 1769: 1767: 1758: 1757: 1753: 1745: 1741: 1736:. 30 June 2015. 1732: 1731: 1727: 1713: 1712: 1708: 1699: 1697: 1688: 1687: 1683: 1674: 1672: 1662: 1661: 1657: 1645: 1643: 1638: 1637: 1633: 1624: 1622: 1612: 1609: 1605: 1596: 1594: 1584: 1583: 1570: 1561: 1559: 1545: 1544: 1540: 1530: 1529: 1522: 1513: 1511: 1502: 1501: 1497: 1482: 1481: 1477: 1468: 1462: 1460: 1455: 1454: 1439: 1431: 1427: 1419: 1412: 1411: 1407: 1403: 1398: 1393: 1389: 1385: 1363: 1266: 1253:Function points 1244: 1235: 1224: 1218: 1215: 1200: 1188: 1184: 1177: 972:SLOC (million) 872:SLOC (million) 850: 842:function points 836:and Galorath's 801: 796: 792:(no whitespace) 791: 785: 784: 781: 778: 775: 772: 769: 766: 763: 760: 757: 754: 751: 748: 745: 742: 739: 736: 733: 730: 725: 724: 721: 718: 715: 712: 709: 706: 703: 700: 697: 694: 691: 689:<stdio.h> 688: 685: 680: 679: 676: 673: 612: 606: 603: 596: 575: 571: 564: 539: 509: 508: 505: 502: 499: 496: 493: 490: 487: 484: 481: 478: 475: 472: 469: 466: 463: 460: 457: 454: 451: 448: 440:1 comment line. 420: 419: 416: 413: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 365: 331: 323:maintainability 307:software metric 284: 273: 272: 271: 266: 260: 257: 246: 229: 225: 214: 203: 197: 194: 151: 149: 139: 127: 112: 106: 103: 96: 84:This article's 80: 39: 35: 28: 23: 22: 15: 12: 11: 5: 1985: 1983: 1975: 1974: 1964: 1963: 1960: 1959: 1954: 1941: 1921: 1906: 1891: 1876: 1870: 1862: 1861:External links 1859: 1858: 1857: 1844: 1819: 1806: 1803: 1801: 1800: 1776: 1751: 1739: 1725: 1706: 1681: 1655: 1631: 1603: 1568: 1538: 1520: 1495: 1492:on 2022-02-26. 1475: 1437: 1425: 1404: 1402: 1399: 1397: 1396: 1386: 1384: 1381: 1380: 1379: 1374: 1369: 1362: 1359: 1314: 1313: 1309: 1305: 1301: 1290: 1286: 1282: 1279: 1276:redundant code 1271: 1265: 1262: 1261: 1260: 1257: 1249: 1243: 1240: 1237: 1236: 1191: 1189: 1182: 1176: 1173: 1170: 1169: 1166: 1163: 1159: 1158: 1155: 1152: 1148: 1147: 1144: 1141: 1137: 1136: 1133: 1130: 1126: 1125: 1122: 1119: 1115: 1114: 1111: 1108: 1104: 1103: 1100: 1097: 1093: 1092: 1089: 1083: 1079: 1078: 1075: 1069: 1065: 1064: 1061: 1056: 1053: 1052: 1049: 1044: 1040: 1039: 1036: 1033: 1029: 1028: 1025: 1022: 1018: 1017: 1014: 1011: 1007: 1006: 1003: 1000: 996: 995: 992: 989: 985: 984: 981: 978: 974: 973: 970: 967: 940: 939: 936: 933: 929: 928: 925: 922: 918: 917: 914: 911: 907: 906: 903: 902:Windows NT 4.0 900: 896: 895: 892: 891:Windows NT 3.5 889: 885: 884: 881: 880:Windows NT 3.1 878: 874: 873: 870: 867: 849: 846: 804: 803: 798: 793: 787: 786: 731:identification 729: 726: 684: 681: 672: 668: 667: 664: 661: 614: 613: 607:September 2013 578: 576: 569: 563: 560: 538: 535: 529:(while at the 527:Robert E. Park 523: 522: 519: 516: 447: 442: 441: 438: 433:statement and 427: 364: 330: 327: 286: 285: 268: 267: 232: 230: 223: 216: 215: 130: 128: 121: 114: 113: 93:the key points 83: 81: 74: 69: 43: 42: 40: 33: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1984: 1973: 1970: 1969: 1967: 1958: 1955: 1951: 1947: 1942: 1932:on 2007-01-27 1931: 1927: 1922: 1919: 1918:0-13-092641-8 1915: 1911: 1907: 1897: 1892: 1882: 1877: 1874: 1871: 1868: 1865: 1864: 1860: 1854: 1850: 1845: 1841: 1837: 1833: 1829: 1825: 1820: 1816: 1815: 1809: 1808: 1804: 1790: 1786: 1780: 1777: 1765: 1761: 1755: 1752: 1749: 1743: 1740: 1735: 1729: 1726: 1721: 1717: 1710: 1707: 1696: 1692: 1685: 1682: 1670: 1666: 1659: 1656: 1652: 1642: 1635: 1632: 1621:on 2014-02-23 1620: 1616: 1607: 1604: 1593:on 2013-03-14 1592: 1588: 1581: 1579: 1577: 1575: 1573: 1569: 1558:on 2008-05-03 1557: 1553: 1549: 1542: 1539: 1534: 1527: 1525: 1521: 1510:on 2012-09-21 1509: 1505: 1499: 1496: 1490: 1485: 1479: 1476: 1472: 1458: 1452: 1450: 1448: 1446: 1444: 1442: 1438: 1435: 1429: 1426: 1418: 1417: 1409: 1406: 1400: 1391: 1388: 1382: 1378: 1375: 1373: 1370: 1368: 1365: 1364: 1360: 1357: 1352: 1350: 1349:Bill Atkinson 1346: 1340: 1338: 1331: 1329: 1328:Steve Ballmer 1325: 1324: 1319: 1310: 1306: 1302: 1299: 1295: 1291: 1287: 1283: 1280: 1277: 1272: 1268: 1267: 1264:Disadvantages 1263: 1258: 1254: 1250: 1246: 1245: 1241: 1233: 1230: 1222: 1212: 1208: 1204: 1198: 1197: 1192:This section 1190: 1181: 1180: 1174: 1167: 1164: 1161: 1160: 1156: 1153: 1150: 1149: 1145: 1142: 1139: 1138: 1134: 1131: 1128: 1127: 1123: 1120: 1117: 1116: 1112: 1109: 1106: 1105: 1101: 1098: 1095: 1094: 1090: 1087: 1084: 1081: 1080: 1076: 1073: 1070: 1067: 1066: 1062: 1060: 1057: 1055: 1054: 1050: 1048: 1045: 1042: 1041: 1037: 1034: 1031: 1030: 1026: 1023: 1020: 1019: 1015: 1012: 1009: 1008: 1004: 1001: 998: 997: 993: 990: 987: 986: 982: 979: 976: 975: 971: 968: 965: 964: 961: 958: 953: 951: 947: 937: 934: 931: 930: 926: 923: 920: 919: 916:more than 29 915: 912: 909: 908: 904: 901: 898: 897: 893: 890: 887: 886: 882: 879: 876: 875: 871: 868: 865: 864: 861: 859: 855: 847: 845: 843: 839: 835: 832: 831:PRICE Systems 828: 824: 819: 816: 812: 799: 794: 789: 788: 727: 682: 670: 669: 665: 662: 659: 658: 655: 653: 649: 645: 641: 637: 633: 629: 624: 622: 610: 600: 594: 592: 588: 584: 579:This article 577: 568: 567: 561: 559: 557: 552: 551:punched cards 548: 544: 536: 534: 532: 528: 520: 517: 514: 513: 512: 445: 439: 436: 432: 428: 425: 424: 423: 362: 359: 356: 352: 347: 343: 341: 336: 328: 326: 324: 320: 316: 312: 308: 304: 300: 299:lines of code 296: 292: 282: 279: 264: 254: 250: 244: 242: 238: 233:This article 231: 222: 221: 212: 209: 201: 198:February 2010 190: 187: 183: 180: 176: 173: 169: 166: 162: 159: â€“  158: 154: 153:Find sources: 147: 143: 137: 136: 131:This article 129: 125: 120: 119: 110: 100: 94: 92: 87: 82: 78: 73: 72: 67: 65: 58: 57: 52: 51: 46: 41: 32: 31: 19: 1950:the original 1944:C. M. Lott. 1934:. Retrieved 1930:the original 1909: 1899:. Retrieved 1884:. Retrieved 1852: 1834:(2): 59–66. 1831: 1827: 1813: 1792:. Retrieved 1788: 1779: 1768:. Retrieved 1766:. 2010-07-18 1763: 1754: 1742: 1728: 1709: 1698:. Retrieved 1684: 1673:. Retrieved 1658: 1650: 1644:. Retrieved 1634: 1623:. Retrieved 1619:the original 1606: 1595:. Retrieved 1591:the original 1560:. Retrieved 1556:the original 1551: 1541: 1512:. Retrieved 1508:the original 1498: 1489:the original 1478: 1470: 1461:. Retrieved 1428: 1415: 1408: 1390: 1354: 1342: 1333: 1321: 1320:documentary 1315: 1298:Visual Basic 1225: 1216: 1193: 1086:Linux kernel 954: 943: 913:Windows 2000 851: 820: 807: 625: 617: 604: 591:unverifiable 583:weasel words 580: 540: 524: 510: 443: 421: 360: 348: 344: 332: 302: 298: 294: 290: 289: 274: 258: 247:Please help 235:may contain 234: 204: 195: 185: 178: 171: 164: 152: 140:Please help 135:verification 132: 104: 88: 86:lead section 61: 54: 48: 47:Please help 44: 1881:"SLOCCount" 1256:experience. 1047:OpenSolaris 827:Barry Boehm 642:written in 593:information 556:card images 437:statement), 315:source code 1936:2007-01-29 1901:2003-08-12 1886:2003-08-12 1794:2021-04-15 1770:2021-04-15 1700:2012-04-10 1675:2009-12-24 1646:2007-02-16 1625:2014-02-07 1597:2007-02-16 1562:2003-08-12 1552:debian.org 1514:2021-03-26 1463:2010-08-30 1401:References 1292:Advent of 1242:Advantages 1219:April 2011 1203:improve it 1162:2015-06-30 1035:Debian 7.0 1024:Debian 5.0 1013:Debian 4.0 1002:Debian 3.1 991:Debian 3.0 980:Debian 2.2 924:Windows XP 858:Windows NT 740:program-id 241:irrelevant 168:newspapers 107:April 2012 50:improve it 1207:verifying 1091:0.010239 854:Microsoft 752:procedure 581:contains 340:man-hours 237:excessive 91:summarize 56:talk page 1966:Category 1720:Archived 1669:Archived 1361:See also 1072:Mac OS X 838:SEER-SEM 829:et al., 761:display 755:division 734:division 686:#include 305:), is a 261:May 2012 243:examples 1316:In the 1270:effort. 1201:Please 1175:Utility 1059:FreeBSD 946:Red Hat 848:Example 776:program 767:goback 543:FORTRAN 537:Origins 182:scholar 18:Kaylock 1916:  1746:IFPUG 1432:IFPUG 983:55–59 905:11–12 834:True S 823:COCOMO 716:" 704:printf 666:COBOL 650:, and 587:biased 494:printf 435:printf 405:printf 353:-like 184:  177:  170:  163:  155:  1420:(PDF) 1383:Notes 1168:20.2 1157:15.9 1146:13.5 1135:12.6 1124:11.0 779:hello 746:hello 674:PRINT 660:BASIC 652:COBOL 644:BASIC 189:JSTOR 175:books 1914:ISBN 1337:OS/2 1151:2012 1140:2010 1129:2009 1118:2009 1113:5.2 1107:2003 1102:2.4 1096:2001 1088:0.01 1082:1991 1074:10.4 1068:2005 1063:8.8 1051:9.7 1043:2009 1038:419 1032:2012 1027:324 1021:2009 1016:283 1010:2007 1005:215 999:2005 994:104 988:2002 977:2000 966:Year 932:2003 921:2001 910:2000 899:1996 894:7–8 888:1994 883:4–5 877:1993 866:Year 695:main 545:and 473:< 387:< 295:SLOC 161:news 1836:doi 1764:CHM 1318:PBS 1294:GUI 1205:by 1077:86 938:50 927:45 856:'s 773:end 692:int 636:APL 589:or 476:100 452:for 431:for 390:100 366:for 321:or 303:LOC 239:or 144:by 1968:: 1851:. 1830:. 1826:. 1787:. 1762:. 1718:. 1693:. 1667:. 1649:. 1571:^ 1550:. 1523:^ 1440:^ 719:); 713:\n 698:() 646:, 503:); 485:++ 414:); 399:++ 342:. 59:. 1939:. 1920:. 1904:. 1889:. 1855:. 1842:. 1838:: 1832:1 1797:. 1773:. 1703:. 1678:. 1628:. 1600:. 1565:. 1535:. 1517:. 1466:. 1232:) 1226:( 1221:) 1217:( 1199:. 782:. 770:. 758:. 749:. 743:. 737:. 722:} 707:( 701:{ 663:C 648:C 609:) 605:( 601:. 595:. 506:} 497:( 491:{ 488:) 482:i 479:; 470:i 467:; 464:0 461:= 458:i 455:( 408:( 402:) 396:i 393:; 384:i 381:; 378:0 375:= 372:i 369:( 351:C 301:( 293:( 281:) 275:( 263:) 259:( 255:. 245:. 211:) 205:( 200:) 196:( 186:· 179:· 172:· 165:· 138:. 109:) 105:( 95:. 66:) 62:( 20:)

Index

Kaylock
improve it
talk page
Learn how and when to remove these messages

lead section
summarize
provide an accessible overview

verification
improve this article
adding citations to reliable sources
"Source lines of code"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
excessive
irrelevant
improve the article
less pertinent examples
Learn how and when to remove this message
software metric
computer program
source code
programming productivity
maintainability
order of magnitude

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑