text: 原始碼行數，簡稱LOC，是由計算程式原始碼的行數來估計計算機程式大小的軟體度量。原始碼行數一般會用來預計開發程式需要的人力及時間，若在軟體完成後，也可以用來估計或。計算方式.許多軟體上的比較都只和專案中原始碼行數的數量級有關。用原始碼行數來比較10,000行原始碼和100,000行原始碼的專案，會比比較20,000行和21,000行的專案要有效很多。有關原始碼行數的計算方式仍有許多不同意見，不過原始碼行數的數量級可以做為軟體複雜度及評估需要人時的一個指標。原始碼行數計算方式主要可分為兩種：實體原始碼行數。這兩種計算方式的具體定義也有很多種，不過最常用的實體原始碼行數是直接計算不考慮註解時，程式碼的行數。邏輯原始碼行數設法計算可執行的「敘述」的數量。但具體定義和使用的程式語言有關。要製作工具來計算實體原始碼行數比較容易，也比較容易說明其定義。不過實體原始碼行數會受到一些和邏輯無關的格式及程式風格影響，邏輯原始碼行數比較不會受到格式及程式風格影響。在實務上，計算原始碼行數時不一定會具體寫出其定義，而邏輯原始碼行數和實體原始碼行數之間會有顯著的差異。以下的C語言程式可以用來說明計算原始碼行數的模糊不清之處：for (i = 0; i &lt; 100; i++) printf("hello"); /* How many lines of code is this? */上例中有：依照程式設計者及程式設計風格的不同，上述一行實體原始碼行數的程式可以寫成以下多行的程式：/* Now how many lines of code is this? */for (i = 0; i &lt; 100; i++)printf("hello");此例中有甚至是「實體」及「邏輯」的原始碼行數都有許多不同的定義。羅伯特·E·帕克等人開發了定義SLOC值的一個框架，讓人可以謹慎的說明及定義其專案中用到的SLOC定義及量測方式。例如，大部份軟體會有程式碼複用，在回報量測結果時，如何決定是否要包括程式碼複用內容就很重要。起源.人們剛開始用原始碼行數來量度軟體長度時，當時最常用的語言都是行導向的程式語言。當時打孔卡是輸入程式的主要方式。一張打孔卡對應一行程式，打孔卡是一張一張的，要計算數量很方便。打孔卡也是程式開發者有形的產出，因此管理者利用計算打孔卡數量來計算程式開發者的生產力是相當合理的。現今最常使用的程式語言在格式上的限制不多，一行的字元數也不止是80個字或是96個字，而一行的文字不一定對應一行的程式碼。原始碼行數的計算方式.用原始碼行數來做為程式相關屬性的量度，有些會有些爭議。根據多次的實驗，已確認原始碼行數和開發者所花的工作量高度相關，SLOC越大的程式，開發需要花費的時間及工作量也比較多，因此SLOC若用來估計開發者花的心力，是相當有效的。不過SLOC和機能的相關性很低，熟練的程式設計者可能可以用較少的程式碼達到相同的機能，因此有可能SLOC較短的程式，其機能甚至有可能比。好的程式設計者會將有重複程式的模組整合成一個模組，提昇了程式的品質，但以SLOC的角度來看，反而讓SLOC減少了。而且，有經驗的程式設計者往往會負責最困難的模組，因此看起來不像其他程式設計者一樣的「有生產力」。甚至，沒有經驗的程式設計者往往會有程式碼重複的情形，一般而言不鼓勵程式碼重複，因為很不容易維護，很容易有錯，但是會有較多的SLOC。若用SLOC比較不同程式語言寫的程式，除非有針對不同語言的特性進行正規化，不然其準確度就更低了。各種的計算機語言都設法在簡潔及清楚這兩方面來取捨，有些強調簡潔，有些則強調清楚。以極端的例子來說，組合語言會需要上百行的程式，來完成APL語言幾個字即可完成的工作。以下是C語言及COBOL所寫的Hello World範例程式的比較：在使用SLOC來計算程式設計者的努力時，另一個常見的問題是人工寫的程式以及自動產生程式的差異。許多現代的軟體工具都可以在滑鼠點選一些設定，或是擺放物件之後，自動生成一大段的程式。例如只要將一些圖案移到工作區，就會自動產生對應控制元件的大量程式。這個工作量完全不能和寫裝置驅動程式的工作量相比。但兩者產生的程式碼長度可能差異不大，這也是用SLOC來計算的缺點。目前有許多成本、時程及工作量估計的模型，會用SLOC為輸入引數，包括等人建立，廣為使用的構造性成本模型準確程度有關。有些軟體工程研究者建議用代替SLOC，不過因為功能點和SLOC高度相關，而且無法自動計算，因為各研究者對此論點的看法還沒有共識。舉例.依照Vincent Maraia的統計，微軟 Windows NT中不同時期的作業系統其SLOC如下：針對Debian2.2版以後的作業系統，也有類似的統計，Debian GNU/Linux 2.2有55 million SLOC，依傳統私用程式的開發方式，需要14,005人年，需要花190億美金。評論.缺點.在公共廣播電視公司的記錄片《》中，微軟的執行長史蒂夫·巴爾默曾評論過計算原始碼行數的作法：在IBM裡有一種軟體中的文化，是要計算K-LOC，K-LOC就是一千行程式。專案有多大？這個專案大約是10K-LOC的專案，這個人是寫20K-LOC程式的人，這個程式碼有50K-LOC。IBM想要調整這種有關K-LOC以及員工薪資的作法。我們在OS/2上面花費了多少錢，也就是他們工作可換來的錢。你寫了多少K-LOC的程式？我們設法說服程式設計者，若開發者有好的想法，讓一個程式可以不需要20K-LOC的程式碼，只要4K-LOC的程式碼就可以達到相同目的，為什麼我們應該要少付一點錢？就因為他讓程式變的更小又更快了？讓K-LOC減少了？這是我們的方法論。
metadata: erhwenkuo/wikipedia-zhtw
metadata: 原始碼行數
metadata: https://zh.wikipedia.org/wiki?curid=6869683