程式設計一定要除錯嗎?
上網時間 : 2005年05月25日
對所有的程式設計人員來說,除錯是必要的工作,還是顯示出這個產業的尚未成熟?其他產業的專業人士並不會花費一半的時間來找出設計中的錯誤,但為什麼程式設計人員必須要這麼做?
Jim Turley
根據統計,整個軟體開發時間中,有五成是花在撰寫程式碼,而另外五成則是用來除錯。我想,由於這樣的情況行之有年,大部分人可能都會認為,50/50的分配應該是合理的。
但仔細想想,為什麼程式設計需要這麼多的調整與糾錯工作?其他的專業人士決不會像我們一樣,認為這麼多的修正是必須的。建築師不會將大樓蓋好後,然後再看看它會不會倒下來;其他的船舶、飛機和農業機械工程師,也大多都是將東西製造出來後,就能使用。
與程式設計師類似,硬體工程師也需要進行一些除錯的工作。他們設計、測試、找出錯誤,然後再重新設計。當然,對晶片設計來說,這是不具經濟效益的,他們必須儘量能在第一次設計時就成功。
難 道除錯真的是軟體工程領域中必備的本質與固有特性?或是,這只是我們長久以來不願改變的工作方式?或許,50/50的時間規則是這個產業尚未成熟的一種象 徵,可能還要花上更久的時間才也可能突破。我們知道,在90年代初期,那時的汽車製造商也是得不停的修改,才能將車子真正做出來,但現在,汽車的製造方式 早已不可同日而語。同樣地,近百年來醫藥科學的進步,醫生為病患進行試驗以找出病灶的次數也大幅減少。
理智上,我認為在未來的數十年中, 軟體開發將變得更正規化與更有紀律,會較類似於機械或化學工程。但是,情緒上,我卻很不忍心程式設計人員將會失去這「軟性」的一面。撰寫程式是有趣的,但 如果嵌入式軟體將成為每日生活中的一部份,從全球經濟發展的歷程來看,顯然,軟體的撰寫流程就一定會被要求變得更為嚴格、正確、與正式。如果真是這樣,程 式設計人員就會多出50%的多餘時間了!
作者:Jim Turley,Embedded Systems Programming 主編