記錄軟體工程基礎的學習過程,第一篇:軟體工程基礎概念。
什麼是軟體?
什麼是軟體工程?
理解工程之前先理解什麼是科學和技術。
科學是對自然本質及其執行規律的探索、發現和揭示,然後被歸納為公認的真理。科學以發現核心,純粹出於好奇心,往往沒有實際目的。
簡單來說,技術就是改善人來生活的手段。技術講究的是技巧,其目的性明確,就是改善人類的方方面面,它的體現可以是方法,裝置,工具,儀器儀表等。
如人來最開始託運東西基本靠人力,牲口;車輪的應用使得效率得到了提高,再到瓦特改良蒸汽機,又使得交通運輸效率大為提高,再到現在的高鐵,運輸效率更是得到了巨大發展。
工程是科學和技術的整合應用,目的是為了解決實際的問題。工程通過科學和技術,在一定條件下(如 人,財,物)進行整合優化和綜合優化,有目的地完成設計,構建,執行等專案。
工程的特點主要是如下四點:
系統性:工程之間往往有聯絡,相輔相成,又或互相制約。
複雜性:工程與社會影響、工程規模、工程限制等諸多因素有關。
交叉性:工程設計多學科知識運用,如後文要談的軟體工程涉及的學科就包含了數學、管理學和電腦科學等學科知識。
綜合性:工程目標之間相互聯絡,又互相矛盾(所以要多目標優化)。
軟體=程式+資料+文件。資料是讓程式能正常執行的資訊和配置。文件是有助於我們理解程式的資訊集合。
軟體不是傳統意義的製造出來的,而是研發出來的。那麼既然是研發出來的,軟體的產品管理和產品保護就會有困難。(個人理解是既然是研發,則無史可鑑,產品的維護則充滿未知數)。
軟體不會被"用壞"。這就導致軟體維護困難。硬體壞了,可以把壞的地方替換掉,軟體出錯,你還得找那個地方出錯,而找錯並改錯所消耗的代價是巨大的。
軟體成本難以估計。這就導致軟體專案計畫可能會失敗。
系統軟體。系統軟體是計算機系統不可或缺的一部分,其與硬體聯絡緊密,協調計算機系統各部分正確工作。如作業系統,裝置驅動程式和通訊處理程式。
支援軟體。協助使用者開發軟體的工具性軟體。如程式編譯器,自動化測試軟體。
應用軟體。為使得計算機系統獲得某個功能的而專門開發的軟體。如office,qq,**等等。
注意:支軟軟體和應用軟體的界限不是很明確,如 字處理軟體 即可支援軟體開發,又可當做應用軟體。
軟體工程是指導軟體開發和維護的一門學科。其涉及學科有數學,管理科學,電腦科學等。其手段是 採用工程化的概念,原理,技術和方法對軟體進行開發和維護,把經過時間證明正確的管理措施和當前能夠得到最好的技術方法相結合。目的在於以較少的代價獲取高質量的軟體。
簡明扼要的說,軟體工程是一門指導軟體開發和維護思想,旨在通過正確的管理措施和優秀的技術方法,花較小的代價,獲得更高質量的軟體產品。
boehm提出軟體工程的7條基本原理。
至於為什麼提,讓我這個level 1的人去理解level 100的前輩的思想還是有點難為我了,但是從中可以理解到軟體工程非常注重管理手段(有6處體現了管理手段)。
補充:至於軟體工程為什麼提出來,我沒有過多去了解,記得應該是軟體的需求急劇式增長,基於軟體本身的特點(研發,不老化等等)和 軟體開發和維護的管理手段不好,導致軟體危機,進而人們吸取了教訓,提出了軟體工程。
害,寫完收工。
軟體工程1 軟體工程概念
軟體工程是 將系統化的 嚴格約束的 可量化的方法應用於軟體的開發 執行和維護,即將工程化應用於軟體 計算機科學技術百科全書 軟體工程是應用電腦科學 數學 邏輯學及管理科學等原理,開發軟體的工程。軟體工程借鑑傳統工程的原則 方法,以提高質量 降低成本和改進演算法。其中,電腦科學 數學用於構建模型與演算...
軟體工程 概念
1 軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式,資料及其文件的完整集合 2 程式是按事先設計的功能和效能要求執行的指令序列 軟體的分類 1 系統軟體 作業系統 資料庫管理系統 裝置驅動 通訊處理程式等 2 支撐軟體 文字編輯程式 檔案格式程式等 3 應用軟體 各個領域軟體 軟體工作方式...
軟體工程概念
1 工程的含義 工程是將理論和知識應用於實踐的科學,以便經濟有效地解決問題。大規模的設計與建造 複雜問題與目標分解 團隊協作與過程控制 2 什麼是軟體工程 軟體工程是將 系統性的 規範化的 可定量的方法應用於軟體的開發 執行和維護,即工程化應用到軟體上 對 中所述方法的研究。3 軟體工程的目標 創造...