1. 程式人生 > >淺談軟體工程

淺談軟體工程

對於一個沒有專案經驗的人來說,或許談軟體工程有點為之過早,不過在這裡我還是想表述下我對於軟體+工程的理解。

為什麼將軟體工程拆分為:軟體+工程,我覺得軟體是一個領域,而工程又是一個領域。現在我們把軟體和工程結合在一起,希望能夠開發出更好的軟體。在一開始學習語言的時候,認為一個“Hello World”就是一個軟體,不過現在我認為一個軟體應該具有市場,具有面向客戶的物件,能夠產生經濟價值。而平時我們在課堂上學的和課後練的充其量也就是個程式罷了。也就是說,一個軟體產品必須由一個完整的配置組成,軟體配置主要包括程式,文件和資料等成分。而非我們認識重視程式而忽視軟體配置的其餘成分的糊塗觀念。

現在談談工程,最初的工程我想應該是建築領域的,後來在軟體領域也引入了工程的概念。這意在說明軟體開發不是某種個體勞動的神祕技巧,而應該是一種組織良好,管理嚴密,各類人員協同配合,共同完成的工程專案。必須充分吸取和借鑑人類長期以來從事各種工程專案所積累的行之有效的原理,概念,技術和方法,特別要吸取幾十年來人類從事計算機硬體研究和開發的檢驗教訓【1

】。

把各自的特點和聯絡說完了之後,得出了一個結論:軟體工程 技術 管理。

在最近的思考中,發現自己犯了一個很嚴重的錯誤,就是太偏重於解決問題,而缺乏分析問題的能力,在一個程式中,我知其然而不知其所以然,當程式一旦發生變化時,我就手足無措,不知道問題出在什麼地方。而更令我感到自卑的就是,同是高中畢業的同學,他也選擇的是IT,在培訓機構呆了一年之後,現在已經找到了工作,開始立足社會了,而我的專案卻不知道還在何方。這不禁令我發出一句感慨:我們讀大學究竟讀的是什麼,大學生和非大學生的區別究竟是什麼?就我們的專業而言,也許一個專門的培訓機構培養出來的人比我們更容易找到工作。那麼我們讀這個大學,學這個專業,到底應該何去何從?如果你之前問我這個問題,我肯定答不上來,不過現在我想說的就是,大學生和非大學生最主要的區別不在於是否掌握了一門專業技能。如果是這樣的話,那大學跟技校也就沒有什麼兩樣了。而且就專業技能而言,大學生肯定還比不過技校生,因為技校廚師專業的學生第一節課可能就是學切菜,而假如大學開設了廚師專業,肯定要用兩年時間來研究廚師的社會使命,職業道德,歷史演變,階級屬性和學術分類【

2】。我們在大學學的技能僅是其次的,真正要學的是系統分析的能力。不管是在什麼行業,我們所面對的問題都是紛繁複雜而且瞬息萬變的,如果沒有系統分析,獨立思考的能力,就算把所有的書本吞進肚子,就算大學期間每次期末考試都得第一名,也絕對不可能在工作中脫穎而出。另外企業在應聘時都會有三個月的試用期這段時間就是主要看他的EQ和他的技術能力、理解學習成長能力,而不是片面只看他的現狀技術能力。一個不願意學習鑽研,沒有方法鑽研快速學習理解,推一下動一下,或者怎麼說都理解不了的,都需要統統辭掉。另外,對於心術不正有仇必報不服管教之類,早就掃出門外。一個講究吃穿用享受或者滿口髒話習慣毛病一堆或者不孝順父母或者滿口介詞的人堅決不能要【
3】。再者一個專業的培訓機構,他教給學員的只是如何去做,就好像軟體培訓一樣,他教會你的只是一門或者兩門語言,我們都知道計算機行業更新是很快的,也許幾年之後,一門新的技術出來了,你不會?怎麼辦?找培訓機構嗎?等你找到培訓機構,學習結束之後,也許一個新的技術又革新了,你又去找又去學。。。你一直追趕著潮流的步伐,一刻都不想停下來,害怕被out,可是你這樣已經被行業out 了。試問,從九十年代一直能“活”到現在的企業又有幾家,微軟,甲骨文。。。。???你有沒有想過他們是像你一樣一直在追趕潮流還是一直引領潮流?一個軟體產品就比如說IE瀏覽器,現在已經發布到了IE9 吧,可是在IE2IE3 的時候IE 瀏覽器只不過是不入流的軟體罷了。可是微軟不斷的更新,不斷地改進,最終從追趕潮流到現在的引領潮流!難道這一切對我們還處在迷茫的大學生來說不應該好好的思考下嗎?總之,我們在大學學技能僅僅是其次的,真正要學的是分析和解決問題的能力!

在談完了分析和解決問題之後,現在來給大家看一段程式碼:“

主函式(空){

有一個整型 a;

輸入(a;

如果 等於 5;

就輸出:你輸對了!

否則 

就輸出:錯誤!

}4】”

不知道大家看完了這個程式碼之後有一種什麼感覺,我當初看完之後我就想到了一個詞“換湯不換藥”,然後我就大聲地笑了。。。可是笑過之後我有一個疑問:為什麼在軟體領域,外國人比我們先行一步了,這都不重要,關鍵是為什麼我們和他們的差距那麼大了?為什麼我們就不能有屬於自己的程式語言,有屬於自己的作業系統了?究其歷史,文藝復興以來,源遠流長的科學精神和逐步形成的學術規範,使西方國家在自然科學的各個領域取得了壟斷性的優勢;也正是這樣的傳統,使美國的產業界與教育界越來越緊密地結合,計算機學科中的許多泰山北斗同時身處科研和教學的最前線,由此而產生的經典科學著作,不僅規劃了研究的範疇,還揭示了學術的源變,既遵循學術規範,又具有學者的個性,其價值並不會因年月的流逝而減退【5】。而我國從1991年引進網際網路,在這之前又有幾個人知道何為 http ? 我國的計算機產業迅速發展,但是又有幾家能夠走向世界,遍地開花的軟體小作坊,帶給我們的是計算機行業的繁榮,還是在這種繁榮下掩蓋的改革?猿之於為人,學會製作和使用工具是最重要的標誌。因而我們不知道語言只是工具這句話,究竟是對語言的膜拜,還是漠視。程式猿之於程式設計師,這兩者之間的鴻溝又有多大了?

1】:張海藩 軟體工程 清華大學出版社 2010

2】:覃彪喜 讀大學究竟讀什麼 南方日報出版社 2008

3】:阿朱   走出軟體作坊 電子工業出版社  2009

4】:來源於CSDN

5】:Bruce Eckel Thinking in java Fourth Edition China Machine Press 2007