其實簡單來說,它就是一種問題解決思維,把乙個複雜的大問題分解為更小的子問題,從而化繁為簡、逐個擊破。
當然,當軟體工程被用於hello world這類簡單程式的開發時,你是看不到軟體工程的作用的,反而覺得增加麻煩。
只有當其被應用於大型、複雜、多人協同的軟體開發時,它才會顯示出巨大的作用。
ieee計算機協會將軟體工程定義為:
1)是應用系統化的、學科化的、定量的方法,來開發、執行和維護軟體,即:將工程應用到軟體。比如我們將搭房子的思想用來編寫程式,設計圖紙就對應於設計**;
2)是對(1)中各種方法的研究,即是說,軟體工程也是一門不斷完善的研究領域,不少模型與方法是通過學術**公之於眾的。
目標軟體工程的目標是在給定的時間和預算內,按照使用者的需求,開發易修改、高效、可靠、可維護、適應力強、可移動、可重用的軟體。
軟體工程工具,為軟體工程的過程和方法提供自動化或半自動化的工具支援。 將若干工具整合起來,與軟體工程資料庫和計算機系統構成乙個支援軟體開發的系統稱「計算機輔助軟體工程(case)」,系統中某一工具的資訊加工結果可以作為另一工具的輸入。整合的軟體工程工具再加上人的因素構成了軟體工程環境。比如建模工具rational rose、程式設計工具visual studio、測試工具loadrunner等。
軟體工程方法,是完成軟體工程專案的技術手段。它支援專案計畫和估算、系統和軟體需求分析、設計、程式設計、測試和維護。軟體工程方法依賴一組原則,它貫穿軟體工程的各個環節。軟體工程方法主要分兩類:結構化方法和物件導向方法。
軟體工程過程,貫穿軟體開發的各個環節,在各環節之間建立里程碑。管理者在軟體工程過程中對軟體開發的質量、進度、成本進行評估、管理和控制;技術人員採用相應的方法和工具生成軟體工程產品(模型、文件、資料、報告、**等)。
傳統的軟體工程 — 物件工程 — 過程工程 — 構件工程
第一代軟體工程—傳統的軟體工程
60年代末到70年代,2023年的nato會議為了克服「軟體危機」也同時提出了「軟體工程」的名詞,將軟體開發納入工程化的軌道,基本形成軟體工程的概念、框架、技術和方法。稱為傳統的軟體工程。
第二代軟體工程—物件工程
80年代中到90年代,物件導向的方法與技術得到發展,研究的重點轉移到物件導向的分析與設計,演化為一種完整的軟體開發方法和系統的技術體系,稱為物件工程。
第三代軟體工程—過程工程
80年代中開始,人們在軟體開發的實踐過程中認識到:提高軟體生產率,保證軟體質量的關鍵是「軟體過程」,是軟體開發和維護中的管理和支援能力,逐步形成軟體過程工程。
***軟體工程—構件工程
90年代起,基於構件(component)的開發方法取得重要進展,軟體系統的開發可通過使用現成的可復用構件組裝完成,而無需從頭開始構造,以此達到提高效率和質量,降低成本的目的。稱為構件工程。
軟體工程估算模型cocomo模型之父、軟體過程螺旋式模型之父:
使用階段性生命週期計畫的管理
進行連續的驗證
保證嚴格的產品控制
使用現代程式設計工具/工程實踐
保持清晰的責任分配
用更好更少的人
保持過程改進。
軟體工程的發展
萬物的生存都有乙個共同的規律,那就是發展,但是在發展的時候總是會發生一些變化,舊的被新的取代,物競天擇,適者生存。無非都是乙個從開始 廢棄的過程,指它被新事物代替,逐漸滿足不了人們的需求,從而進行變革。1.發展背景 軟體危機的出現 2.發展階段 1 程式設計階段 50至60年代 機器,彙編 2 程式...
軟體工程的概念
軟體工程的概念被定義為 為了經濟地獲得可靠的和能在實際機器上高效執行的軟體,而建立和使用的健全的工程規則。具體來說,軟體工程是借鑑傳統工程的原則和方法,以提高質量 降低成本為目的指導計算機軟體開發和維護的工程科學。軟體工程的根基在於對質量的關注,基礎是過程層,它定義了一組關鍵過程的框架,使得軟體能夠...
軟體工程導論 面向過程的軟體工程
軟體是由電腦程式 資料和維護程式的文件組成。軟體工程包括三個要素 方法 工具 過程。軟體工程的發展經歷了程式設計時期 程式系統時期和軟體工程時期。軟體生存週期是指乙個軟體從提出開發要求開始,直到該軟體報廢為止的整個時期。通常,軟體生存週期包括問題定義 可行性研究 需求分析 概要設計 詳細設計 編碼 ...