軟件工程期末 - 草稿

與軟件本身特點有關
1 軟件不同於硬件,管理和控制軟件開發過程相當困難。
2 軟件在運行過程中不會因爲使用時間過程而被“用壞”,如果運行中發現錯誤,很可能是遇到了一個在開發時期引入的在測試階段沒能檢測出來的錯誤。
3 軟件不同於一般程序,它的一個顯著特點是規模龐大,而且程序複雜性將伴隨程序規模的增加而呈指數上升。
4 軟件通常沒有適當的文檔資料。
5 軟件成本在計算機系統總成本中所佔的比例逐年上升。

6軟件開發生產率提高的速度,既跟不上硬件的發展速度,也遠遠跟不上計算機應用迅速普及深入的趨勢。

與軟件開發與維護的方法不正確有關
1只重視程序而忽視軟件配置其餘成分的糊塗觀念。
2軟件開發人員在定義時期沒有正確全面地理解用戶需求,直到測試階段或軟件交付使用後才發現“已完成”的軟件不完全符合用戶的需要。
3嚴重的問題是在軟件開發的不同階段進行修改需要付出的代價是很不相同的。如圖1.1P4


選擇題

有形性與可控性不是軟件的特點

軟件危機的主要原因是軟件本身的特點及開發方法

軟件工程是將系統化的、規範的可定量的方法應用於軟件的開發運行和維護的過程,它包括方法工具和過程三個要素。

軟件生命週期模型不包括用例模型

(可能不考)包含風險分析的軟件工程模型是螺旋模型

()軟件過程是軟件開發活動是集合

()軟件工程中描述生命週期的瀑布模型一般包括計劃、需求分析、設計、編碼 測試 維護等幾個階段

()軟件開發的瀑布模型,一般都將開發過程劃分爲:分析設計編碼和測試等階段,一般認爲可能佔用人員最多的階段是 編碼階段

()增量模型本質上是一種 非整體開發模型

()螺旋模型綜合了 瀑布模型和演化模型 的優點,並增加了風險分析。

()需求工程的主要目的是 解決系統是“做什麼的問題”

E-R模型中,包含以下基本成分 實體 屬性 關係

()哪一個不是軟件需求分析的任務 確定邏輯模型

()需求規格說明書的作用不包括 軟件可行性研究的依據

()軟件需求規格說明書的內容不包括 對算法的詳細過程描述

()軟件需求分析階段的工作,分爲以下四個方面:對問題的識別、分析與綜合 編寫需求分析文檔以及 需求分析評審

()不屬於軟件需求分析階段的是 確定軟件系統的運行平臺

進行需求分析可使用多種工具, PAD圖 是不適用的

()在需求分析之前有必要進行 可行性分析 工作

數據流圖是進行軟件需求分析的常用圖形工具,其基本圖形符號是 加工 數據流 數據存儲和外部實體

在結構化分析方法中,用以表達系統內數據的運動情況的工具是 數據流圖

爲了提高模塊的獨立性,模塊之間最好是數據耦合

()面向數據流的軟件設計方法,一般將信息流分爲變換流和事務流

模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準是模塊的 內聚性和耦合性

模塊的獨立性是由內聚性和耦合性來度量,其中內聚性是 模塊的功能強度

()當算法中需要用一個模塊去計算多種條件的複雜組合,並根據這些條件完成適當的功能時,合適的描述工具是 判定表

面向數據流的軟件設計方法可將 數據流 映射成軟件結構。

程序語言的特性包括 算法特性

()軟件實現是軟件產品由概念到實體的一個關鍵過程,它將軟件設計的結果翻譯成用某種程序設計語言編寫的並且最終可以運行的程序代碼。

成功的測試是指運行測試用例後 發現了程序錯誤

白盒測試法是指根據程序的內部邏輯 來設計測試用例的方法

()軟件的集成測試工作最好由 不屬於該軟件的設計人員承擔,以提高集成測試的效果。

黑盒測試是從 用戶 觀點的測試,白盒測試是從 開發人員 觀點的測試。

軟件測試可能發現軟件中的 錯誤,但不能證明軟件 沒有錯誤。

軟件測試的目的是 儘可能多的發現軟件系統中的錯誤。

使用白盒測試方法時確定測試數據應根據 程序的內部邏輯 和指定的覆蓋標準。

黑盒測試方法根據 軟件要完成的功能 設計測試用例。

在軟件測試中,邏輯覆蓋標準主要用於 白盒測試方法。

()集成測試的主要方法有兩個,一個是 漸增式測試方法,一個是非漸增式測試方法。

驗收測試的任務是驗證軟件的 有效性

軟件測試的目的是儘可能發現軟件中的錯誤,通常單元測試是代碼編寫階段可進行的測試,它是整個測試工作的基礎。

()封裝是把對象的屬性和操作結合在一起,構成一個獨立的對象,其內部信息對外界是隱藏的,外界只能通過有限的接口與對象發生聯繫。

多態性意味着一個操作在不同的類中可以有不同的實現方式。

每個對象可用它自己的一組屬性和它可以執行的一組操作來表徵。

應用執行對象的操作可以改變該對象的屬性

()面向對象的主要特徵除了對象唯一性、封裝性、繼承性外,還有 多態性

()關聯是建立 類 之間關係的一種手段

所有的對象可以成爲各種對象類,每個對象類都定義了一組 方法

通過執行對象的操作改變對象的屬性,但它必須通過 消息 的傳遞

下列不屬於面向對象的要素有 分類性

面向對象分析的首要工作是建立問題的對象模型

面向對象的分析方法主要是建立三類模型,即 對象模型、動態模型和功能模型。

軟件開發過程中,抽取和整理用戶需求並建立問題域精確模型的過程是 面向對象分析。

面向對象分析階段建立的3個模型中,核心的模型是對象 模型。

面向對象分析是對系統進行需求建模的一種方法。

應該在 建立動態模型和功能模型之後 ,確定對象類中應有的服務。

面向對象的動態模型中,每張狀態圖表示 某一個類 的動態行爲

在考慮系統的一些涉及時序和改變的狀況時,要用動態模型來表示。動態模型着重於系統的控制邏輯,它包括兩個圖:一個是事件追蹤圖,另一個是狀態圖

動態模型的描述工具是狀態圖

對象模型的描述工具是對象圖

功能模型中所有的數據流圖往往形成一個層次結構,在這個層次結構中一個數據流圖的過程可以由下一層數據流圖做進一步的說明。

()下列是面向對象設計方法中有關對象的敘述,其中 對象的屬性集合是它的特徵表示 是正確的。

盒圖 PAD圖(不考了?上課說沒重要還佈置了作業)P94
面向數據流

信息流映射成軟件結構,信息流的類型決定了映射的方法

(上課說必考)模塊的獨立程度由兩個定性標準度量,即內聚和耦合。

耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度

內聚衡量一個模塊內部各個元素彼此結合的緊密程度

(瞭解 評分從高到低)功能 順序 通信 過程 時間 邏輯 偶然內聚

儘量使用數據耦合,少用控制耦合和特徵耦合,限制公共環境耦合的範圍,完全不用內容耦合。

狀態圖中,初態 實心圓,終態一對同心圓(內圓實心),中間狀態圓角矩形
狀態轉換圖,簡稱狀態圖,通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行爲。狀態圖還指出作爲特定事件的結果系統將做哪些動作。
實體-關係圖即E-R圖
數據模型包含數據對象 描述數據對象的屬性及數據對象彼此間相互連接的關係

軟件工程過程是爲了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。
軟件生命週期的基本任務8

問題定義 可行性研究 需求分析(重點) 概要分析 編碼和單元測試 綜合測試 軟件維護

模型

瀑布模式(自頂向下) 快速原型模型 增量模型 螺旋模型 噴泉模型(自下向上)

軟件工程

指導計算機軟件開發和維護的工程學科。採用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,經濟地開發出高質量的軟件並有效地維護它。


消除軟件危機(好像不太重要)

應該對計算機軟件有一個正確的認識。必須充分認識到軟件開發不是某種個體勞動的神祕技巧。

軟件危機

在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常運行的軟件才具有的。實際上,幾乎所有軟件都不同程度的存在這些問題。總的來說軟件危機包含兩類問題:如何開發軟件,以滿足對軟件日益增長的需求;如何維護數量膨脹的已有軟件。

什麼是模塊、模塊化?軟件設計爲什麼要模塊化?

模塊 完成特定功能的程序實體,構成程序的基本構件。

模塊化 解決一個複雜問題時自頂向下逐層分解成若干模塊的過程。每個模塊完成一個特定的子功能,所有模塊按系統結構組合起來,完成整個系統所要求的功能。

模塊化設計的原因

1.將問題簡化,劃分模塊可使每一個模塊完成單一的功能

2.可以獨立地進行模塊的編碼測試,便於軟件開發工作的組織。

3.把每一個模塊要解決的問題侷限在有限的範圍

選擇編程語言時,通常考慮以下因素

1.待開發系統的應用領域,即項目的應用範圍

2用戶的要求

3軟件開發人員的喜歡和能力

4系統的可移植性要求

5算法和數據結構的複雜性

軟件測試的目的

1.測試是一個爲了發現程序中的錯誤爲目的的程序執行過程

2.一個好的測試用例是能最大限度地找到迄今爲止尚未發現的錯誤

成功的測試是能發現尚未發現的錯誤

黑盒測試 功能測試
白盒測試 結構測試(邏輯覆蓋)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章