國二軟件工程基礎知識點_第1頁
國二軟件工程基礎知識點_第2頁
國二軟件工程基礎知識點_第3頁
國二軟件工程基礎知識點_第4頁
國二軟件工程基礎知識點_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程基礎知識點整理

20124192014李杰12植科

一.軟件工程基本概念:

L軟件定義:是計算機系統中與硬件相互依存的另一部分,

是包括程序、數據以及相關文檔的完整集合。

(1)程序是軟件開發人員根據用戶需求開發的、用程序設

計語言描述的、適合計算機執行的指令(語句)序列。

(2)數據是使程序能夠正常操作信息的數據結構。

(3)文檔是與程序開發、維護和使用有關的圖文資料。

注:國標(GB)計算機軟件的定義:與計算機系統的操作

相關的計算機程序、規程、規則以及可能有的文件、文檔

及數據。

2.軟件特點:

(1)軟件是一種邏輯實體,而不是物理實體,具有抽象性,

是計算機的無形部分;

(2)軟件的生產與硬件不同,它沒有明顯的制作過程;

(3)軟件在運行、使用期間不存在磨損、老化問題;

(4)軟件的開發、運行對計算機系統具有依賴性,受計算

機系統的限制,這導致了軟件移植的問題;

(5)軟件復雜性高,成本昂貴;

(6)軟件開發涉及諸多的社會因素

3.軟件分類:

按照功能可以分為:應用軟件、系統軟件、支撐軟件(或工

具軟件)

(1)應用軟件是為解決特定領域的應用而開發的軟件。如:

教務管理系統、財務管理系統等。

(2)系統軟件是計算機管理自身資源,提高計算機使用效

率并為計算機用戶提供各種服務的軟件。如:操作系統、數

據庫管理系統等。

(3)支撐軟件是介于系統軟件和應用軟件之間,協助用戶

開發軟件的工具軟件。比如:編碼工具軟件、測試工具軟件。

4.軟件危機:

軟件危機是指在軟件的開發和維護過程中所遇到的一系列

嚴重問題。

軟件危機主要體現在以下幾個方面:

①軟件開發的實際成本和進度估計不準確

②開發出來的軟件常常不能使用戶滿意

③軟件產品的質量不高,存在漏洞,需要經常打補丁

④大量已有的軟件難以維護

⑤軟件缺少有關的文檔資料

⑥開發和維護成本不斷提高,直接威脅計算機應用的擴大

⑦軟件生產技術進步緩慢,跟不上硬件的發展和人們需求

增長

5.軟件工程的定義和目的:

(1)定義:軟件工程是指應用計算機科學、數學及管理科

學等原理,以工程化的原則和方法來開發與維護軟件的學

科。

⑵目的:研究軟件工程的主要目的就是在規定的時間、規

定的開發費用內開發出滿足用戶需求的高質量的軟件系統

(高質量是指錯誤率低、好用、易用、可移植、易維護等)。

⑶軟件工程的三個要素:方法、工具和過程。

方法:完成軟件工程項目的技術手段;

工具:支持軟件的開發、管理、文檔生成;

過程:支持軟件開發的各個環節的控制、管理。

(4)核心思想:把軟件產品看作是一個工程產品來處理。

二.軟件工程概述:

1.軟件生命周期:

(1)定義:將軟件產品從提出、實現、使用維護到停止使

用退役的過程稱為軟件生命周期。

(2)軟件生命周期一般劃分為定義、開發和維護3個階段:

定義階段:可行性研究、需求分析2個階段;

開發階段:概要設計、詳細設計、編碼實現和測試4個階段;

維護階段:使用、維護、退役階段。

詳解:a.軟件定義階段:包括制定計劃和需求分析。

制定計劃:確定總目標;可行性研究;探討解決方案;制定

開發計劃。

需求分析:對待開發軟件提出的需求進行分析并給出詳細的

定義。

需求分析方法有:1)結構化需求分析方法;2)面向對象的

分析方法。

需求分析的任務就是導出目標系統的邏輯模型,解決“做什

么”的問題。

需求分析一般分為需求獲取、需求分析、編寫需求規格說明

書和需求評審四個步驟進行。

b.軟件開發階段:

軟件設計:分為概要設計和詳細設計兩個部分。

軟件實現:把軟件設計轉換成計算機可以接受的程序代碼。

軟件測試:在設計測試用例的基礎上檢驗軟件的各個組成部

分。

c.軟件運行維護階段:軟件投入運行,并在使用中不斷地

維護,進行必要的擴充和刪改。

注:軟件生命周期中所花費最多的階段是軟件運行維護階

段。

2.軟件工程原則:抽象、信息隱蔽、模塊化、局部化、確定

性、一致性、完備性和可驗證性。

3.軟件工具與軟件開發環境:

(1)軟件工具就是幫助開發軟件的軟件。它們對提高軟件

生產率,促進軟件生產的自動化都有重要的作用。

(2)軟件開發環境(或稱軟件工程環境)是全面支持軟件開

發全過程的軟件工具的集合,這些軟件工具按照一定的方法

和模式組合起來,共同支持軟件生命周期內的各個階段和各

項任務的完成。

三.軟件設計基本概念:

軟件工程過程一軟件設計

目的:確定軟件的總體結構、數據結構、用戶界面和算法細

任務:將需求階段產生的軟件需求說明轉換為用適當手段表

示的軟件設計文檔

軟件設計分為總體設計和詳細設計

四.軟件設計的基本原理:

1.總體設計

目的:要解決的問題是“怎樣實現目標系統”

任務:確定軟件的總體結構,進行模塊劃分,確定每個模塊

的功能、接口及模塊之間的調用關系,并對全局數據結構進

行設計,同時產生概要設計說明書

2.詳細設計

目的:要解決的問題是“應該怎樣具體實現目標系統”

任務:在概要設計的基礎上,設計每個模塊實現的細節及對

局部數據進行設計(包括模塊的數據結構和所需的算法),同

時產生詳細設計說明書

3.軟件編碼

目的:產生能在計算機上執行的程序

任務:根據系統的要求和開發環境,選用合適的程序設計語

言,把詳細設計的結果翻譯成用該程序設計語言編寫的程序

代碼(源程序)

4.軟件測試

軟件測試是為了發現程序中的錯誤而執行程序的過程

目的和任務:通過在計算機上執行程序來盡可能多地發現軟

件產品中的錯誤和缺陷,并改正程序中的錯誤,以保證程序

的可靠運行。

5.軟件維護

軟件維護階段是長期的過程,因為,經過測試的軟件還可能

有錯,用戶的要求還會發生變化,軟件運行的環境也可能變

化等等。因此,交付使用的軟件仍然需要繼續排錯、修改和

擴充,這就是軟件維護。

注:(1)軟件維護的目的是滿足用戶對已開發產品的性能

與運行環境不斷提高的需要,進而達到延長軟件的壽命。

軟件維護就是在軟件交付使用之后,為了改正錯誤或滿足新

的需要而修改軟件的過程。

(2)軟件維護的類型有如下幾種:

1)改正性維護:診斷和改進錯誤的過程(o

2)適應性維護:為與變化的環境適當地配合而進行的修改

軟件的活動。

3)完善性維護:為了滿足用戶提出的增加新功能或修改已

有功能的建議而進行維護。

4)預防性維護:為了改進未來的可維護性和可靠性。

軟件開發時期要完成設計和實現兩大任務,其中設計任務用

需求分析和軟件設計兩個階段完成,實現任務用編碼和測試

兩個階段完成。

開發任務完成的好與壞,關系到軟件產品的質量,完成開發

任務的關鍵是選擇好的軟件開發方法。

目前,軟件開發方法主要有結構化開發方法和面向對象開發

方法。

五.結構化分析方法

1.結構化分析(簡稱SA)方法是面向數據流進行需求分析的

方法。

該方法使用簡單易讀的符號,運用抽象的概念模型,根據軟

件內部數據傳遞、變換的關系,自頂向下逐層分解,描繪出

滿足功能要求的軟件模型

2.結構化分析方法的常用工具:數據流圖、數據字典、結

構化語言、判定樹、判定表

3.SA的基本步驟如下:

①自頂向下對系統進行功能分解,畫出分層的數據流圖

②由后向前定義系統的數據和加工,編制數據字典和加工

說明

③寫出需求規格說明書(SRS)

4.數據流圖

(1)數據流圖是以圖形的方式描繪數據在軟件系統中流動

和處理的過程,由于它只反映系統必須完成的邏輯功能,所

以它是一種功能模型。

(2)數據流圖由數據流、加工(又稱數據處理)、數據存儲(又

稱文件)、數據源點或終點四種基本成分組成。

(3)數據流圖(簡稱DFD)圖形元素:

①數據流:是數據在系統內傳播的路徑。使用箭頭代表數

據的流向,數據名稱標在箭頭的邊上

②加工:輸入數據經過加工變換產生輸出。使用圓框代表

加工

③數據存儲:指處理過程中存放各種數據。使用雙杠(或單

杠)表示數據文件或數據庫。文件與加工之間用箭頭線連接,

單向表示只讀或只寫,雙向表示可讀可寫

④數據源點或終點:指軟件系統外部環境中的實體(包括人

員、組織或其他軟件系統,統稱為外部實體)。使用方框表

示數據的源點和終點

(4)建立數據流圖的步驟

第一步:由外向里:先畫系統的輸入輸出,然后畫系統的內

部。

第二步:自頂向下:順序完成頂層、中間層、底層數據流圖。

第三步:逐層分解。

5.DFD圖的數據流可分為兩種類型:變換流和事務流

(1)變換流:信息沿著輸入通路進入系統,同時將信息的

外部形式轉換成內部形式,通過變換中心處理之后,再沿著

輸出通路轉換成外部形式輸出

(2)事務流:信息沿著輸入通路到達一個事務中心,事務

中心根據輸入信息的類型在若干個動作序列中選擇一個來

執行,這種信息流稱為事務流

6.數據字典

數據字典就是用來定義數據流圖中的各個成分的具體含義

和詳細的描述。它和數據流圖共同構成了系統的邏輯模型,

是需求規格說明書的主要組成部分。是結構化分析方法的核

心。

數據字典是為分析人員查找數據流圖中有關名字的詳

細定義而服務的。

數據字典有四類條目:數據流、數據項、數據存儲和基本加

工。

7.判定表舉例

(1)年交易額在5萬或5萬以下,則不給予折扣;

(2)對于年交易額在5萬以上時:

如果無欠款,則給予15%的折扣;

如果有欠款,而且與本公司的交易關系在20年以上,

則折扣為10%;

如果有欠款,而且與本公司交易關系在20年以下,則

折扣為5%o

8.軟件需求規格說明書:

是需求分析階段的最后成果,是軟件開發中的重要文檔之

O

作用:

1)作為用和開發人員之間的合同;

2)作為開發人員進行設計和編程的根據;

3)作為軟件開發完成后驗收的依據

9.結構化設計方法(簡稱SD)是實現軟件概要設計的關鍵技

術之一,SD方法是一種面向數據流的設計方法,它與SA方

法銜接。

SD方法的中心任務就是把用DFD圖表示的系統分析模型方

便地轉換為軟件結構的設計模型。

SD方法采用結構圖(簡稱SC)來描述程序的結構。結構圖的

基本成分有模塊、調用和數據。

10.軟件設計的基本原理包括:抽象、模塊化、信息隱蔽和

模塊獨立性。

1)抽象。抽象是一種思維工具,就是把事物本質的共同特

性提取出來而不考慮其他細節。

2)模塊化。解決一個復雜問題時自頂向下逐步把軟件系統

劃分成一個個較小的、相對獨立但又不相互關聯的模塊的過

程。

注:模塊是在程序中數據說明、可執行語句等程序對象的集

合。

3)信息隱蔽。每個模塊的實施細節對于其他模塊來說是隱

蔽的。

4)模塊獨立性。軟件系統中每個模塊只涉及軟件要求的具

體的子功能,而和軟件系統中其他的模塊的接口是簡單的

模塊的耦合性和內聚性是衡量軟件的模塊獨立性的兩個定

性指標。

a.內聚性:是對模塊功能強度的度量,即對一個模塊內部各

個元素(語句之間、程序段)間彼此結合的緊密程度的度量。

b.耦合性:是模塊間互相連接的緊密程度的度量。模塊之間

聯系越緊密,其耦合性就越強,模塊的獨立性則越差。

注:一個設計良好的軟件系統應具有高內聚、低耦合的特征。

在結構化程序設計中,模塊劃分的原則是:模塊內具有高內

聚度,模塊間具有低耦合度。

軟件設計有兩個步驟:概要設計(總體設計)和詳細設計(過

程設計)。

(1)概要設計(又稱結構設計)是將軟件需求轉化為軟件

體系結構、確定系統級接口、全局數據結構或數據庫模式;

(2)詳細設計是確定每個模塊的實現算法和局部數據結構,

通過對結構表示進行細化,得到軟件的詳細數據結構和算

法。

11.軟件概要設計的基本任務是:

1)設計軟件系統結構;

2)數據結構及數據庫設計;

3)編寫概要設計文檔;

4)概要設計文檔評審。

概要設計的圖形工具:層次圖、HIPO圖和結構圖

12.結構圖是常用的軟件結構設計工具,相關術語如下:

1深度:表示控制的層數。

2上級模塊、從屬模塊:上、下兩層模塊a和b,且有a調

用b,則a是上級模塊,b是從屬模塊。

3寬度:整體控制跨度(最大模塊數的層)的表示。

4扇入:調用一個給定模塊的模塊個數。

5扇出:一個模塊直接調用的其他模塊數。

6原子模塊:樹中位于葉子結點的模塊。

13.詳細設計的常用工具:

L程序流程圖(程序框圖)

2.N-S圖,也稱盒圖

3.PAD問題分析圖

4、PDL過程設計語言

六.了里軟件測試的目的和準則

1.軟件測試就是保證軟件質量的重要手段,其主要過

程涵蓋了整個軟件生命周期的過程,包括需求定義階段的需

求測試、編碼階段的單元測試、集成測試以及后期的確認測

試、系統測試、驗證軟件是否合格、能否交付給用戶使用。

軟件測試就是使用人工或自動手段來運行或測定某個

系統的過程,其目的在于檢驗它是否滿足規定的需求或是弄

清預期結果與實際結果之間的差別。

2.軟件測試的原則:

1)所有測試都應追溯到需求

2)嚴格執行測試計劃,排除測試的隨意性

3)避免由軟件開發人員測試自己的程序,充分注意測試中

的群集性現象

4)除了很小的程序外,“徹底”的窮舉測試是不可能的

5)妥善保存測試計劃、測試用例、出錯統計和最終的分析

報告,為維護提供方便

軟件測試的每一次測試都需要準備好一些測試數據,與被測

程序一起輸入到計算機中執行;

一般把程序執行一次需要的一組測試數據和該組測試數據

可以得出怎樣的輸出結果(期望結果)稱為一個“測試用

例”,每一個測試用例產生一個相應的“測試結果”,如果

它與“期望結果”不相符合,說明程序中存在錯誤,需要改

正錯誤。

測試是對軟件規格說明、設計和編碼的最后的復審,所以軟

件測試貫穿在整個軟件開發期的全過程。

七.軟件測試的方法和實施

對于軟件測試方法和技術,可以從不同的角度加以分類。

從是否需要執行被測軟件的角度,軟件測試分為靜態分析和

動態測試

按照功能劃分,動態測試又分為白盒測試和黑盒測試

靜態測試一般是指人工評審軟件文檔或程序,借以發現其中

的錯誤,由于被評審的文檔或程序不必運行,所以稱為靜態

的。

靜態測試包括代碼檢查、靜態結構分析、代碼質量度量等。

動態測試是指通過運行軟件來檢查軟件中的動態行為和運

行結果的正確性,也就是常說的上機測試。

動態測試一般包括兩個基本要素:被測程序和測試數據

測試能否發現錯誤取決于測試用例的設計。

動態測試的設計測試用例的方法一般分為黑盒測試和白盒

測試。

白盒測試也稱結構測試,它與程序內部結構相關,要利用程

序結構的實現細節設計測試用例,它涉及程序風格、控制方

法、源程序、數據庫設計和編碼細節。

黑盒測試

是測試者已經知道被測程序的功能,而對程序內部的邏輯結

構和處理過程完全不用考慮,只是對它的每一個功能進行測

試,將測試后的結果與期望的結果進行分析比較,檢查程序

的功能是否符合規格說明書的要求。

黑盒測試是在程序接口進行的測試

測試用例設計

測試用例是由測試數據和期望結果組成。設計測試用例的目

的就是用盡可能少的測試數據,達到盡可能大的程序覆蓋

面,發現盡可能多的軟件錯誤和問題

用白盒法設計測試用例常用以下幾種技術:

①語句覆蓋

②判定覆蓋

③條件覆蓋

④判定/條件覆蓋

⑤條件組合覆蓋

⑥路徑覆蓋

用黑盒法設計測試用例常用以下幾種技術:

①等價類劃分法

②邊界值分析法

③錯誤推測法

④因果圖法

軟件測試的實施

①單元測試:是對每一個編制好的模塊進行測試,其目的

在于發現和排除各模塊內部可能存在的差錯及詳細設計中

產生的錯誤。進行單元測試時,根據程序的內部結構設計測

試用例,主要采用白盒

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論