軟體工程的思想目的和其他學科的工程方法(比如土木工程等)並無太大差異,主要是降低軟體系統的複雜性、提高其可控性,以此在軟體開發、維護、測試等各個階段提高效率。
其實要了解軟體工程「有什麼用」,最好能了解軟體開發過程有多複雜(或者說為什麼稱之為「複雜」)。如果只是乙個geek自己隨便開發上千行**的小系統,其實並不需要傳統的軟體工程方法。但是,如果開發的系統的規模上公升到萬行乃至十萬行左右的規模,加上軟體中各行**間存在的千絲萬縷的聯絡,普通人(即使是常常具有自我智力優越感的程式設計師)要繼續開發並且維護這樣乙個系統就會變得捉襟見肘了。當現實中存在這種情況時,程式設計師們往往會說,這個系統「太複雜了」,或者會說這個系統「太亂了」。複雜原因在於程式設計師面對的問題規模(萬行乃至於十萬行左右的系統中千絲萬縷的**邏輯)超過了他人腦所能處理的極限。面對現實問題,比如,乙個銀行系統,我們很難改變它本身的規模,因為銀行業務本身就很龐大,但是人們能做到的是降低那「龐然大物」內部的邏輯複雜性。更重要的是,很多時候,程式設計師在開發乙個軟體功能時並不需要完全了解整個系統的所有細節,他只需要專注於某個區域性。這樣,相比於系統規模,減少系統內部的邏輯耦合就更為重要。由此,軟體工程的核心目的就在於做到這一點,簡而言之,我們需要讓整個軟體系統「大而不亂」,井井有條。如果了解軟體工程領域的相關知識,就會發現軟體工程的準則,比如高內聚低耦合、構件化軟體開發以及關注點分離等等,都是圍繞這一目的提出的。
當然,軟體工程本身是乙個很大的範疇,軟體工程方面的研究也紛繁複雜,但最終目的都是要減少程式設計師工作的負荷並提高軟體需求、設計、開發、測試、維護的效率。
其實這種所謂的工程化思想本質上是一種分治思想,當人們遇到複雜性過高的現實問題,都會「不由自主」地去採取這種方法。掌握這種思想其實也可以解決自己生活中的不少「複雜」問題。
dev null有什麼用
把 dev null 看作 黑洞 它非常等價於乙個只寫檔案.所有寫入它的內容都會永遠丟失.而嘗試從它那兒讀取內容則什麼也讀不到.然而,dev null 對命令列和指令碼都非常的有用.禁止 標準輸出 cat filename dev null 禁止 標準錯誤 rm badname 2 dev null...
技術有什麼用?
技術有什麼用?收藏 最近在cto俱樂部的乙個討論分享,關於技術和創新的作用 技術向底層延伸,應該是科技,技術向上層延伸,應該是應用,如果單純把技術看作工具,編碼,實現或一種生存的手段,那就太狹隘了。二戰期間,美國和蘇聯都因為戰爭的因素,發展了高精尖技術,二戰結束,美國把可以商業化的科研產品交給了企業...
LDAP有什麼用?
對ldap最直白的解釋 1 認證的煩惱 小明的公司有很多it系統,比如郵箱 svn jenkins jira,vpn,wifi.等等 新人入職時需要在每個系統中申請一遍賬號,每個系統對使用者名稱和密碼的要求還不一樣,實在是煩人。這還不算,按照公司的策略,這些密碼每隔三個月還得更改一次,每次都是一次大...