一、軟體
1、定義
軟體是計算機系統中與硬體相互依存的另一部分,它包括程式、資料及相關文件的完整集合。其中,程式是按事先設計的功能和效能要求執行的指令序列;資料是使程式能正常操縱資訊的資料結構;文件是與程式開發、維護和使用有關的**材料。
2、軟體的特徵
3、軟體的分類
二、軟體危機
1、定義
軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常執行的軟體才具有的, 實際上,幾乎所有軟體都不同程度地存在這些問題。
概括地說,軟體危機包含下述兩方面的問題:
(1)如何開發軟體,以滿足對軟體日益增⻓的需求
(2)如何維護數量不斷膨脹的已有軟體
2、軟體危機的典型表現
3、軟體危機產生的原因
(1)與軟體本身的特點有關
(2)和軟體開發與維護的方法不正確有關
4、軟體危機的解決途徑
(1)首先應該對軟體有乙個正確的認識。應該徹底消除在計算機系統早期發展階段形成的「軟體就是程式」的錯誤觀念。乙個軟體必須由乙個完整的配置組成。
(2)更重要的是,必須充分認識到軟體開發不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程專案。
(3)必須充分吸取和借鑑人類⻓期以來從事各種工程專案所積累的有效的原理、概念、技術和方法,特別要吸取幾十年來人類從事計算機硬體研究和開發的經驗教訓。
(4)應該推廣使用在實踐中總結出來的開發軟體的成功的技術和方法,並且研究探索更好更有效的技術和方法,盡快消除在計算機系統早期發展階段形成的一些錯誤概念和做法。
(5)應該開發和使用更好的軟體工具。
總之,為了解決軟體危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟體工程正是從管理和技術兩方面研究如何更好地開發和維護計算機軟體的一⻔新興學科。
三、軟體工程
1、定義
概括地說,軟體工程是指導計算機軟體開發和維護的一⻔工程學科。採用工程的概念、原理、技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟體並有效地維護它,這就是軟體工程。
2、ieee關於軟體工程的定義
(1)應用系統化的、學科化的、定量的方法,來開發、執行和維護軟體,即,將工程應用到軟體。
(2)對(1)中各種方法的研究。
3、基本原理
4、三個時期
(1)軟體定義:確定工程總目標:可行性、採用的策略,需求完成的功能,需要的資源和成本,工程進度表。
包括:問題定義,可行性研究,需求分析。
(2)軟體開發:具體設計和實現。
包括:概要設計、詳細設計(系統設計),編碼和單元測試、綜合測試(系統實現)
(3)軟體維護:使軟體持久地滿足使用者需要。
改正錯誤,適應新環境,滿足新需求。
5、6個階段
(1)問題定義:「要解決的問題是什麼?」
提出關於問題性質、工程目標和規模的全面報告。
(3)需求分析:「為了解決問題,目標系統必須做到什麼?」 確定目標系統所應具備的功能,建立系統邏輯模型(資料流圖、資料字典、簡要演算法)
(4)概要設計:概括地談,應該如何解決問題 提出幾種設計方案:低成本,中等成本,高成本(「十全十美」),確定解決系統的方案和目標系統需要那些程式,設計軟體的結構,確定程式模組及模組間關係(層次圖或結構圖)。
(5)詳細設計:應該怎樣具體地實現系統把解決具體化,設計出程式的詳細規格說明(hipo圖或pdl語言)
(6)編碼和單元測試:編寫程式模組的實現**,並對其進行測試。
綜合測試:通過各種型別的測試使軟體達到預定要求。
(7)軟體維護:通過各種必要的維護活動使系統持久滿足使用者需要。
四、軟體過程
1、定義
軟體過程(software procedure)是指軟體生存週期所涉及的一系列相關過程。過程是活動的集合;活動是任務的集合;任務要起著把輸入進行加工然後輸出的作用。活動的 執行可以是順序的、重複的、並行的、巢狀的或者是有條件地引發的。
2、軟體過程模型
乙個軟體過程模型是軟體過程的乙個抽象表示法。每個過程模型從乙個特定的⻆度表現乙個過程,只提供過程的某一側面的資訊。
(1)瀑布模型
典型瀑布模型具有順序性和依賴性
瀑布模型的特徵
瀑布模型的缺點
(2)原型(迭代)模型/快速建立原型
基本思想:在獲取一組基本的需求定義後,利用高階軟體工具的可開發環境,快速地建立乙個目標系統的最初版本-原型,並把它交給使用者試用、補充和修改,再進行新的版本開發。反覆進行這個過程,直到得出系統的「精確解」,即使用者滿意為止。特徵
優點 缺點
噴泉模型認為軟體生命週期的各個階段是相互重疊和多 次反覆的。
是一種線性開發模型
與瀑布模型類似,只是從序列改並行
主要用於物件導向方法中,物件導向的分析和設計重 疊,交叉、並行進行
(4)增量模型
增量模型又稱產品改進模型(incremental model)
從給定需求開始,通過構造一系列中間版本來實施開發活動,依次類推,直到系統完成。
每乙個中間版本都是需求分析、設計、編碼和測試的過程。
某些中間版本的開發可以並行進行。特徵
(5)螺旋模型
在原型基礎上,進行多次原型反覆並增加⻛險評估,形成螺旋模型。
在螺旋模型結構中,維護只是螺旋模型的另乙個週期,在維護和開發之間本 質上並沒有區別,從而解決了做太多測試或未作足夠測試所帶來的⻛險。優點
缺點
軟體工程(一)概述
1什麼是軟體?軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式,資料及其相關文件的完整集合。2.軟體的特點.1 軟體是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性 2 軟體的生產與硬體不同,在它的開發過程中沒有明顯的製造過程 3 在軟體的執行和使用期間,沒有硬體那樣的機械磨損,老化問...
軟體工程 一 概述
軟體 軟體 程式 資料 文件 軟體危機 定義 ieee 軟體開發和維護過程中遇到的一系列問題,主要包括兩個方面 如何開發軟體,以滿足對軟體日益增長的需求 如何維護數量不斷膨脹的有用軟體 表現 1.開發成本和進度估計不準確 2.開發產品與使用者需求不匹配 3.軟體質量不行還不可維護 4.軟體沒有適當的...
軟體工程基礎知識(一) 概論
1.什麼是軟體危機?有哪些主要表現?其產生的原因是什麼?解決措施?軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。軟體危機的表現是 開發成本和進度的估計常常不是很準確 使用者對軟體產品不滿意 軟體質量不可靠 軟體常常是不可維護的 軟體沒有適當的文件資料。出現軟體危機的原因 從事軟體...