{"id":8142,"date":"2014-11-25T21:32:46","date_gmt":"2014-11-25T20:32:46","guid":{"rendered":"http:\/\/djalil.chafai.net\/blog\/?p=8142"},"modified":"2014-11-27T13:50:49","modified_gmt":"2014-11-27T12:50:49","slug":"sloccount-on-ojs","status":"publish","type":"post","link":"https:\/\/djalil.chafai.net\/blog\/2014\/11\/25\/sloccount-on-ojs\/","title":{"rendered":"SLOCCount on OJS"},"content":{"rendered":"<p><a href=\"http:\/\/djalil.chafai.net\/blog\/wp-content\/uploads\/2014\/11\/pkp_logo_vert3.png\"><img loading=\"lazy\" class=\"aligncenter wp-image-8146 size-full\" src=\"http:\/\/djalil.chafai.net\/blog\/wp-content\/uploads\/2014\/11\/pkp_logo_vert3.png\" alt=\"Public Knowledge Project\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">I have used recently the tool <a href=\"https:\/\/packages.debian.org\/stable\/sloccount\">sloccount<\/a> on the source code of the latest stable version of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Open_Journal_Systems\"><strong>Open Journal Systems<\/strong><\/a> (OJS 2.4.5). The result is given below. It suggests that the development from scratch of such a software is a non trivial expensive task: 18M USD.<\/p>\n<pre>SLOC\u00a0\u00a0 \u00a0Directory\u00a0\u00a0 \u00a0SLOC-by-Language (Sorted)\r\n193863\u00a0 lib\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 php=115818,xml=77854,sh=160,perl=31\r\n120061\u00a0 plugins\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 xml=61444,php=58126,sh=453,perl=38\r\n86143\u00a0\u00a0 locale\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 xml=86143\r\n31919\u00a0\u00a0 classes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 php=31919\r\n21965\u00a0\u00a0 help\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 xml=21965\r\n21619\u00a0\u00a0 rt\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 xml=21619\r\n14607\u00a0\u00a0 pages\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 php=14607\r\n5198\u00a0\u00a0\u00a0 dbscripts\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 xml=5198\r\n472\u00a0\u00a0\u00a0\u00a0 tools\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 php=472\r\n419\u00a0\u00a0\u00a0\u00a0 registry\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 xml=419\r\n373\u00a0\u00a0\u00a0\u00a0 controllers\u00a0\u00a0\u00a0\u00a0 php=373\r\n1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 top_dir\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 php=1\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 cache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (none)\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 docs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (none)\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 js\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (none)\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 public\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (none)\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 styles\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (none)\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 templates\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (none)\r\n\r\nTotals grouped by language (dominant language first):\r\nxml:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 274642 (55.30%)\r\nphp:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 221316 (44.56%)\r\nsh:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 613 (0.12%)\r\nperl:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 69 (0.01%)\r\n\r\nTotal Physical Source Lines of Code (SLOC)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 496,640\r\nDevelopment Effort Estimate, Person-Years (Person-Months) = 135.48 (1,625.75)\r\n(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))\r\nSchedule Estimate, Years (Months)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 3.46 (41.51)\r\n(Basic COCOMO model, Months = 2.5 * (person-months**0.38))\r\nEstimated Average Number of Developers (Effort\/Schedule)\u00a0 = 39.17\r\nTotal Estimated Cost to Develop\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = $ 18,301,446\r\n(average salary = $56,286\/year, overhead = 2.40).\r\nSLOCCount, Copyright (C) 2001-2004 David A. Wheeler\r\nSLOCCount is Open Source Software\/Free Software, licensed under the GNU GPL.\r\nSLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to\r\nredistribute it under certain conditions as specified by the GNU GPL license;\r\nsee the documentation for details.\r\nPlease credit this data as \"generated using David A. Wheeler's 'SLOCCount'.\"<\/pre>\n<p style=\"text-align: justify;\">The source code of common operating systems kernels (Microsoft Windows, Apple Mac OS, Linux, etc) has <a href=\"http:\/\/en.wikipedia.org\/wiki\/Source_lines_of_code\">dozens of millions of lines of code<\/a>, mostly in <a href=\"http:\/\/en.wikipedia.org\/wiki\/C_%28programming_language%29\">C<\/a> and in <a href=\"http:\/\/en.wikipedia.org\/wiki\/Assembly_language\">Assembler<\/a> while for OJS it is approximately half a million of lines of code in <a href=\"http:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a> and in <a href=\"http:\/\/en.wikipedia.org\/wiki\/XML\">XML<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have used recently the tool sloccount on the source code of the latest stable version of Open Journal Systems (OJS 2.4.5). The result is&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/djalil.chafai.net\/blog\/2014\/11\/25\/sloccount-on-ojs\/\">Continue reading<span class=\"screen-reader-text\">SLOCCount on OJS<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":12},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/posts\/8142"}],"collection":[{"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/comments?post=8142"}],"version-history":[{"count":16,"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/posts\/8142\/revisions"}],"predecessor-version":[{"id":8159,"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/posts\/8142\/revisions\/8159"}],"wp:attachment":[{"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/media?parent=8142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/categories?post=8142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/djalil.chafai.net\/blog\/wp-json\/wp\/v2\/tags?post=8142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}