1. 程式人生 > >軟體工程與軟體科學的區別

軟體工程與軟體科學的區別

軟體科學 與 軟體工程,好像都跟軟體相關。
很多大學生在選擇專業時,好像也沒有太搞清楚到底有什麼不同,畢業後好像都是從事程式設計工作。

但實際上,我們看託尼 霍爾(Tony Hoare)的比較表,大概能有個概念:

電腦科學 軟體工程
發現和研究長期的,客觀的真理 短期的實際結果(具體的軟體會過時)
理想化 對各種因素的折中
確定性,完美,通用性 對不確定性和風險的管理,足夠好,具體的應用
各個學科獨立深入研究,做出成果 關注和應用各個相關學科的知識,解決問題
理論的統一 百花齊放的實踐方法
強調原創性 最好的,成熟的實踐方法
形式化,追求簡明的公式 在實踐中建立起來的靈感和直覺
正確性 可靠性



那麼為什麼很多學生在學習時,沒有感覺很實質的區別呢?

中國大陸高校大多設有與“電腦科學”相關的院系。除了學術水平名列前茅的幾個學校,其他學校的這些院系大部分老師做的都是偏工程方面的研究(所謂的“橫向工程”),大部分學生畢業後也投身於解決具體的工程問題,這跟軟體學院/軟體工程系(院)的研究和培養方向非常雷同。這是目前中國IT產業發展的現狀,但並不是說世界上沒有人研究電腦科學的各個領域,或者說電腦科學就等同於軟體工程。

——–《構建之法:現代軟體工程》周欣