軟體工程與電腦科學(《構件之法》讀書筆記)

2022-02-01 09:33:26 字數 1143 閱讀 7332

軟體=程式+軟體工程。所謂軟體,就是集可維護性,健壯性,使用性等諸多特性於一體的程式與文件的集合體。而在開發人員開發軟體的整個流程中,其過程不僅僅是把**敲出來,執行成功便可以完事,在開發階段,還需要我們開發人員利用軟體工程思想對軟體進行事先的規劃。

《構建之法》一書將軟體開發的不同階段比作「玩具階段」、「業餘愛好者階段」、「探索階段」、「成熟的產業階段」。當我們開發的軟體越來越大時,功能也越來越複雜,動輒幾百萬行**,巨大的工作強度讓乙個人開發顯得力不從心,這時軟體需求分析和團隊協作就顯得尤為重要。這也就是軟體工程所強調的團隊協作,這樣的模式也叫作-團隊模式。書中形象的將各種模式比作成「窩蜂模式」、「主治醫師模式」、「明星模式」、「社群模式」、「業餘劇團模式」、「秘密團隊模式」、「**團隊模式」、「交響樂團隊模式」、「爵士樂團隊模式」、「功能團隊模式」、「官僚模式」。在開發軟體過程中,需要用uml物件導向統一建模語言,對即將開發的軟體和系統進行建模,然後,是分工明確的**編寫環節,最後要進行軟體除錯,在軟體的使用階段,開發人員需要維護軟體,並定期推出更新。所以,軟體開發是一項複雜且需要團隊協作的工程。可以這麼說:軟體是人類創造的最複雜的系統型別。

在大多數工科學校裡,基本上都有一門叫作「電腦科學」的學科。和軟體工程學科相比,雖然兩門學科都是計算機類的學科,但是兩者之間也是有很多不同之處的。「電腦科學」這一學術領域可以分為下面這些偏理論的領域:「計算理論」、「資訊和編碼理論」、「演算法和資料結構」、「形式化方法」、「程式語言」。相比之下,軟體工程則是屬於偏實踐的領域。包括現在熱門的「人工智慧」、「人機互動」、「安全學和密碼學」等。根據我們對軟體特性及工程這一概念的了解,可以看到,電腦科學中的理論研究部分,大多從形式上證明,與數學,離散數學,數理邏輯密切相關;電腦科學中與實踐相關的部分都是和資料及其他學科發生關係;軟體工程則和人的行為、現實社會的需求息息相關的。軟體工程的研究目標(軟體的開發、運營和維護)中都有「人」的出現,這些「人」可以是專案需求的提供者,可以是軟體的開發人員,還可以是軟體的使用者。這一特徵與其他電腦科學的子領域有明顯的不同。軟體工程專業和電腦科學這兩個專業的學生所學的知識略微有所差別,而他們的側重點則有很大的差別。電腦科學是發現和研究長期的、客觀的真理,理論統一,強調原創性,形式化、追求簡明的公式,是理想化的;軟體工程專業側重於短期的實際效果(具體的軟體會過時),對各種因素進行折衷,對不確定性和風險進行控制管理,強調在實踐中建立起來的靈感和直覺,追求最好的、成熟的實踐方法。

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

1 首先,軟體工程是一門學科,用於研究用工程化方法構建和維護有效的 實用的和高質量的軟體 而電腦科學是一門科學領域,用於研究計算機及其周圍各種現象和規律的科學,亦即研究計算機系統結構 程式系統 即軟體 人工智慧以及計算本身的性質和問題。所以從本質上來說,我認為電腦科學包含了軟體工程,而軟體工程只是電...

電腦科學和軟體工程的區別

微軟windows部門總裁 steven sinofsky上週離職,接替者是他的助手julie larson gree。兩人有著不同的教育背景 根據微軟 的介紹,steven sinofsky擁有麻薩諸塞大學的電腦科學碩士學位和康奈爾大學的榮譽學士學位,larson green擁有西雅圖大學的軟體工...

計算機學科 軟體工程

軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。它涉及到程式語言 資料庫 軟體開發工具 系統平台 標準 設計模式等方面。軟體工程一直以來都缺乏乙個統一的定義,很多學者 組織機構都...