【IT168 評論】眾所周知,軟體總是存在缺陷的。問題是,有多少人針對軟體質量做系統性的研究和分析呢?比如說,到底誰的問題最大,是大眾追捧的Java,還是奮力直追的C、C++,抑或久經沙場的Cobol?最近,一份可靠的調查為我們揭開了謎底。該調查組從 745個抽樣應用程式的分析中得出結論,目前世界上有許多軟體存在一些潛在的缺陷,在某種程度上為企業和機構帶來了一定的風險。
何謂技術債(Technical Debt)
所謂「債」指的是債務,不管什麼類型的債,總歸不是什麼好事。科技債也一樣,像這樣一類為程序構造設計、編碼帶來風險的程序被冠名為「技術債」(Technical Debt),Technical Debt指的是由於軟體架構設計的致命缺陷造成了嚴重的災難,因其嚴重性也一直受到越來越多的關注。
電影《無間道》的一句經典臺詞「出來混,遲早要還的」。對於70年代的電腦程式的開發專家來講,他們是怎麼也沒有想到這些電腦程式那麼有生命力,居然能活到21世紀。而由此帶來的是叱吒風雲的「千年蟲問題」。
因此,說起「技術債」(Technical Debt),就不得不談到一個石破驚天的血案「千年蟲」。計算機2000年問題,又叫做"2000年病毒"、"千年蟲"、或"千年病毒".縮寫為"Y2K".是指在某些使用了電腦程式的智能系統(包括計算機系統、自動控制晶片等)中,由於其中的年份只使用兩位十進位數來表示,因此當系統進行(或涉及到)跨世紀的日期處理運算時(如多個日期之間的計算或比較等),就會出現錯誤的結果,進而引發各種各樣的系統功 能紊亂甚至崩潰。
軟體質量評估不容小覷
無論是由於業務決策的失誤還是編程能力的欠缺,那些性能糟糕的代碼都可能導致電腦系統崩潰、安全漏洞、性能衰弱、或者數據損壞等。而且,代碼修複本身又是一件耗費成本、花費技術精力的差事。因此軟體質量評估不容小覷。
通常,我們在軟體的測試與評估時,主要側重於功能特徵、可靠特徵、易用特徵和效率特徵等幾個方面。在評價活動的具體實施中,應該把被評估軟體的研製任務書作為主要依據。
Cast Software是一款軟體質量評估工具,專用於評估軟體工程架構的穩健性和應用程式的編碼質量,它系統分析了745個應用程式,總共涵蓋365萬行代碼。上周四發布了一份分析結果的詳細報告指出,Cast分析了來自將近12個行業中的160個國家的應用程式。該分析結果包含了1800多種應用程式開發中的違規類型。這些應用程式是用多種程式語言編寫而成,包括Java EE, Cobol, .Net, C, C++ 等等。根據每小時修復違規代碼的開銷為$75的標準來統計的結果表明,平均修復每行Technical Debt代碼需要花費$3.61。
軟體質量評估:Cobol榮獲最佳選擇 Java App問題最多
COBOL是一種面向數據處理的、面向文件的、面向過程(POL)的高級程式語言。最早的高級程式語言之一,是世界上第一個廣泛使用的高級程式語言,也是數據處理領域最為廣泛的程序設計語言。經過40多年的不斷修改、豐富完善和標準化,COBOL已發展為多種版本的龐大語言 COBOL程序,在財會工作、統計報表、計劃編制、情報檢索、人事管理等數據管理及商業數據處理領域,都有著廣泛的應用。
COBOL的重要性可以用這句話來描述:世界上70%的數據都是用COBOL語言處理的,並且90%的ATM事務處理用的都是COBOL語言。每天在線處理的COBOL事務有300億次。500強中有492家(包括全部的100強)使用了COBOL語言,目前在COBOL方面的投資已經超過3萬億美元,,據稱用COBOL書寫的程序超過了1000億行,並且以每年大約50億行代碼的速度在增長。
Java EE(Java Platform,Enterprise Edition)是sun公司推出的企業級應用程式版本。這個版本以前稱為 J2EE。能夠為我們幫助開發和部署可移植、健壯、可伸縮且安全的伺服器端 Java 應用程式。Java EE 是在 Java SE 的基礎上構建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程式。
從程式語言的角度上看,Java EE造成的損失最壞,每行代碼花費高達$5.42,而Cobol則前景最好,每行代碼費用低至$1.26。
Cast的首席科學家Bill Curtis表示,他相信Cobol是最佳選擇,因為Cobol的編程代碼更為完善。在歲月的變更中,程式設計師「摸爬滾打三十年了」,早就修復了一些致命性的缺陷。
至於Java,Curtis表示,「目前有很多人跟風擠進Java領域,但是並不具備堅實的計算科學背景。」我們不難想像這樣一個讓人驚悚的實現,有很多人在編寫代碼,但是他們對軟體工程卻並不內行。
各公司紛紛熱炒「技術債」
技術債務(Technical Debt)一直是個老生常談的話題。「但是這個形象的比喻更容易被研究者接受,因為他們覺得Technical Debt真實地描述了他們工作的方式,而且與它們的工作息息相關」。
Cast的研究成果也越發受到IT企業的重視,特別體現在Technical Debt的理解上。國家科學基金項目的調查員,Maryland大學信息系統部的教授Carolyn Seaman表示,有越來越多的人開始關注Technical Debt,因為這個形象的比喻和大家已經產生了共鳴。Seaman還表示,提高軟體質量的一大障礙是不太明確什麼樣的開發策略和開發方法可以提高軟體的質量。
去年,Gartner呼應了這個主題,將這個術語定義為「IT Debt」。IT研究公司將世界範圍的IT研究維護費用從2010年的500億美元調升至一萬億美元。
在將注意力轉移到Technical Debt上時,這會導致開發人員偷工減料。有時候,適當的偷工減料是必要的,但是忽略事實卻是不可容忍的。
這兩年以來,有越來越多的人開始關注Technical Debt。目前只有少量的代碼來說明Technical Debt,在如何償還Technical Debt、以及何時償還、如何根據Technical Debt來改變需求方面還缺乏相應的指南。參考英文:http://www.computerworld.com/s/article/9222503/Java_apps_have_most_flaws_Cobol_apps_the_least_study_finds?taxonomyId=11&pageNumber=1