1.軟體工程的概念
1.背景
為了克服軟體危機,2023年10月在北大西洋公約組織(nato)召開的電腦科學會議上,fritz bauer首次提出「軟體工程」的概念,試圖將工程化方法應用於軟體開發。
2.定義
軟體工程是指導計算機軟體開發和維護
的工程學科。採用工程的概念、原理、技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術
和當前能夠得到的最好的技術方法
結合起來,以經濟地
開發出高質量
的軟體並有效地維護
它。3.目標
軟體工程的目標是運用先進的軟體開發技術和管理方法來提高軟體的質量和生產率,也就是要以較短的週期、較低的成本生產出高質量的軟體產品,並最終實現軟體的工業化生產。
2.軟體質量的特性
軟體的質量可以用功能性
、可靠性
、可使用性
、效率、可維護性
、可移植性
6個特性來衡量。
功能性:是指軟體所實現的功能達到它的設計規範和滿足使用者需要的程度。
可靠性:是指在規定的時間和條件下,軟體能夠正常維持其工作的能力。
可使用性:是指為了使用該軟體所需要的能力。
效率:是指在規定的條件下用軟體實現某種功能所需要的計算機資源的有效性。
可維護性:是指當環境改變或者軟體執行發生故障時,為了使其恢復正常執行所做努力的程度。
可移植性:是指軟體從某一環境轉移到另一環境時所做努力的程度。
但在實際的軟體開發中,企圖使所有的質量目標同時達到理想的程度往往是不現實的。因為有些質量目標之間是彼此衝突的。質量目標之間的關係如下表所示:
功能性可靠性可使用性
效率可維護性
可移植性
功能性提高
提高可靠性
降低提高
可使用性
降低提高
提高效率
降低降低
降低可維護性
提高降低
提高可移植性
降低降低
3.軟體工程的基本原理
★按軟體生存週期分階段制訂計畫並認真實施
★堅持進行階段評審
★堅持嚴格的產品控制
★使用現代化程式設計技術
★明確責任
★用人少而精
★不斷改進開發過程
4.軟體生命週期
如同任何其他事物一樣,軟體也有乙個孕育、誕生、成長、成熟和衰亡的生存過程,我們稱這個為軟體生命週期或軟體生存期。
軟體生存期由軟體定義
、軟體開發
和執行維護
3個時期組成,每個時期又可分為若干個階段。
軟體定義階段的的主要任務是解決「做什麼」的問題,即確定工程的總目標和可行性;匯出實現工程目標應使用的策略及系統必須完成的功能;估計完成工程需要的資源和成本;制訂工程進度表。該時期的工作也就是常說的系統分析,由系統分析員完成。它通常又被分為3個階段:問題分析
,可行性研究
和需求分析
。軟體開發時期的主要任務是解決「如何做」的問題,即具體設計和實現在前乙個時期定義的軟體,通常由概要設計
,詳細設計
,編碼和測試
4個階段組成。
軟體執行維護時期的主要任務是使軟體持久地滿足使用者的需求,通常有4類維護轟動:
改正性維護,也就是診斷和改正在使用過程中發現的軟體錯誤;
適合性維護,即修改軟體以適應環境的變化;
完善性維護,即根據使用者的要求改進或擴充軟體,使它更完善;
預防性維護,即修改軟體為將來的維護活動預先做準備。
瀑布模型
5.軟體工程方法學
定義:在軟體生命週期全過程中使用的一整套技術的集合,也稱為范型(paradidigm)。
包含要素:方法、工具和過程。
1.結構化方法學
定義:把軟體生命週期的全過程依次劃分為若干個階段,然後順序地逐步完成每個階段的任務。使軟體開發的全過程以一種有條不絮的方式進行,從而有效保證了軟體開發的質量。在使軟體開發擺脫混亂和無序方面起到了重要作用。
缺點:是在適應需求變化方面不夠靈活,缺乏行為和資料二者有機結合的機制。
2.物件導向方法學
定義:把資料和行為看得同等重要,將資料和對資料的操作緊密地結合起來的方法。
軟體工程學習筆記
1 軟體工程的基本概念 軟體的概念 軟體 程式 文件 軟體是能夠完成預定義功能的可執行的電腦程式和使程式正常執行所需要的資料,加讓描述程式的操作和文件。程式 適合計算機處理的語句序列 它的目的是啥呢?是為了解決某個特殊的問題 文件 開發活動的記錄 用於通訊和交流,開發過程的管理和執行階段的維護 軟體...
軟體工程學習筆記一
軟體工程學習筆記一 我很小的時候就有夢想,想要當乙個極為優秀的程式設計師,因為覺得程式設計師非常的酷 非常帥,能操縱虛擬的世界,執行如此完美的邏輯,並造福他人,是一種高尚有趣的職業。現在這種嚮往,並沒有因為外界的許多因素而改變。最近開始學習軟體工程,其實較早的時候就自學過,有許多知識都忘了,現在再正...
軟體工程學習筆記一
軟體工程學習筆記一 我很小的時候就有夢想,想要當乙個極為優秀的程式設計師,因為覺得程式設計師非常的酷 非常帥,能操縱虛擬的世界,執行如此完美的邏輯,並造福他人,是一種高尚有趣的職業。現在這種嚮往,並沒有因為外界的許多因素而改變。最近開始學習軟體工程,其實較早的時候就自學過,有許多知識都忘了,現在再正...