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