第一篇:軟件工程期末復習題
1、軟件定義:問題定義、可行性研究,需求分析
2、軟件開發:總體設計,詳細設計,編碼和單元測試,綜合測試
3、軟件維護:改正性維護、適應性維護、完善性維護、預防性維護
4、軟件過程:瀑布模型,快速原型模型,增量模型,螺旋模型,噴泉模型,Rational統一過程,敏捷過程與極限編程,微軟過程
5、從3個方面研究每種解決的可行性:技術可行性、經濟可行性、操作可行性
6、軟件需求分析階段的工作:可以分為以下4個方面:對問題的識別、分析與綜合、編寫需求分析文檔以及需求分析評審
7、設計原理:模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨立性(耦合、內聚)
8、決定軟件可維護性的因素:可理解性、可測試性、可修改性、可移植性、可重用性
一、假設要求你開發一個軟件,該軟件的功能是把讀入的浮點數開平方,所得到的結果應該精確到小數點后4位。一旦實現并測試完之后,該產品將被拋棄。你打算選用哪些軟件生命周期模型?請說明你作出選擇的理由。
答:對這個軟件的需求很明確,實現開平方功能的算法也很成熟,因此,既無須通過原型來分析需求也無須用原型來驗證設計方案。此外,一旦實現并測試完之后,該產品將被拋棄,因此也無須使用有助于提高軟件可維護性的增量模型或螺旋模型來開發該軟件。綜上所述,為了開發這個簡單的軟件,使用大多數人所熟悉的瀑布模型就可以了
二、假設你被任命為一家軟件公司的項目負責人,你的工作是管理該公司已被廣泛應用的字處理軟件的新版本開發。由于市場競爭激烈,公司規定了嚴格的完成期限并且已對外公布。你打算采用哪種軟件生命周期模型?為什么?。
答:對這個項目的一個重要要求是,嚴格按照已對外公布了的日期完成產品開發工作,因此,選擇生命周期模型時應該著重考慮哪些模型有助于加快產品開發的進度。使用增量模型開發軟件時可以并行完成開發工作,因此能夠加快開發進度。
這個項目是開發該公司已被廣泛應用的字處理軟件的新版本,從上述事實至少可以得出3點結論:第一,舊版本相當于一個原型,通過收集用戶對舊版本的反映,較容易確定對新版本的需求,沒必要再專門建立一個原型系統來分析用戶的需求;第二,改公司的軟件工程師對字處理軟件很熟悉,有開發字處理軟件的豐富經驗,具有采用增量模型開發新版字處理軟件所需要的技術水平;第三,該軟件受到廣大用戶的喜愛,今后很可能還要開發更新的版本,因此,應該把該軟件的體系結構設計成開放式的,以利于今后的改進和擴充。綜上所述,采用增量模型來完成這個項目比較恰當。
三、考慮一個修改磁帶上主文件的系統。文件管理員把修改信息穿孔在卡片上,系統讀入穿孔卡片上的信息并按照記錄號把修改信息順序排列好。然后系統逐個讀入主文件上的記錄,根據記錄上的校驗碼校核每個讀入的記錄,丟掉出錯的記錄,按照修改信息修改余下的記錄,產生的新文件存儲在磁盤上。最后,系統輸出一份修改報告供文件管理員參閱。請分層次地畫出上述主文件修改系統的數據流圖。
答:本系統的數據源點和終點都是文件管理員,他既向系統提供修改信息,又接收系統生成的修改報告。系統功能主要有:接收修改信息,讀主文件,校核記錄,修改原始記錄和產生報告。注意,問題陳述中所描述的“系統安裝記錄號把修改信息順序排列好”,是具體的實現方法。在數據流圖中無須描述具體實現方法,因此,在本系統的數據流圖中不需要包含“排序”功能。類似地,“文件管理員把修改信息穿孔在卡片上,系統讀入穿孔卡片上的信息”,是系統接收修改信息的具體方法。在數據流圖中無須描繪這個具體的實現方案,因此,在本系統的數據流圖中不需要包含“穿卡片”和“讀卡片”的功能。
本系統包含的數據存儲是:修改信息,主文件和修改后的主文件。圖2.6是本系統的基本系統模型,圖2.7是功能級數據流圖。
四、用Jackson圖描繪下述的一列火車的構成:
一列火車最多有兩個火車頭。只有一個火車頭時則位于列車最前面,若還有第二個火車頭時,則第二個火車頭位于列車最后面。火車頭既可能是內燃機車也可能是電氣機車。車廂分為硬座車廂、硬臥車廂和軟臥車廂等3種。硬座車廂在車內所有車廂的前面部分,軟臥車廂在所有車廂的后面部分。此外,在硬臥車廂和軟臥車廂之間還有一節餐車。
答:Jackson圖善于描繪復雜事物的組成。用Jackson圖描繪一列火車的構成的方法至少有兩種,一種方法是把火車分為一個車頭和兩個車頭兩類,另一種方法是把后車頭作為可選的。圖3.29給出了描繪一列火車的構成的Jackson圖。
解法1(b)解法2
五、為方便出乎,某銀行擬開發計算機儲蓄系統,儲戶填寫的存款單或取款單由業務員輸入系統,如果是存款,系統記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并印出存款單給儲戶,如果是取款,系統計算利息并印出利息清單給儲戶。寫出問題定義并分析系統的可行性。
答:技術上的可行性:開發系統的計算機硬件已經非常普及,完全沒有問題;現在的計算機各方面的技術都非常成熟,相對來說開發此系統的技術也要求比較簡單,因此在技術方面是可行的;同時銀行還必須有一定量的系統管理和維護的專業人員,在這方面可以通過培訓原來的技術人員成為新的需要的技術人員,也可以雇用所需這方面的專業技術員;若按計劃,在規定的期限內,本系統的開發是可以完成的。
操作可行性:開發的系統操作要非常簡單,以便適合大人小孩老人各類人們都可以很方便操作使用。還有,要有經過培訓的專業人員在指導,以便當儲戶有什么疑難問題時能及時得到正確的答復 社會、政策允許的可行性:全部軟件購買正版,機器設置通過正當途徑購得
六、分析圖3.1所示的層次圖,確定每個模塊的內聚類型。分析圖3.2,確定模塊之間的耦合類型
圖3.1 計算多地點日平均溫度的程序
答:從圖3.1所示的層次圖可以看出,這個程序的功能是計算若干個指定地點的每日平均溫度。變量sum保存某地一天之內在指定的時間取樣點的溫度之和。程序運行時首先初始化變量sum并打開文件,然后讀取地點、時間和溫度等原始數據,創建用于保存這些數據的溫度記錄,接下來計算特定地點的日平均溫度,存儲溫度記錄。重復調用“讀取地點、時間和溫度”、“創建新的溫度記錄”、“計算特定地點的日平均溫度”和“存儲溫度記錄”等模塊,直至計算出并保存好所有指定地點的日平均溫度。最后,打印平均溫度并關閉文件。
從上述敘述可知,“計算多個地點的日平均溫度”、“讀取地點、時間和溫度”、“創建新的溫度記錄”、“計算特定地點的日平均溫度”和“存儲溫度記錄”等5個模塊,每個都完成一個單一的功能,模塊內所有元素都為完成同一個功能服務,彼此結合的十分緊密,因此,這5個模塊的內聚類型都是功能內聚。
初看起來,由于初始化變量sum和打開文件這兩個操作都是在程序運行的初始階段完成的,“初始化變量sum和打開文件” 這個模塊的內聚類型似乎是時間內聚。但是,初始化變量sum是本程序特有的操作,而打開文件是硬件要求的操作,是任何使用文件的程序都包含的一個操作,并非本程序特有的操作。當可以分配兩個或更多個不同級別的內聚類型給一個模塊時,規則是分配最低級別的內聚類型給該模塊。因此,“初始化變量sum和打開文件”這個模塊的內聚類型都是偶然內聚。同理,“關閉文件并打印平均溫度” 這個模塊的內聚類型也是偶然內聚。
分析圖3.2,確定模塊之間的耦合類型。
圖3.2 一個程序的模塊互連圖 在圖3.2中已經給模塊之間的接口編了號碼,表3.1描述了模塊間的接口。表3.1 模塊接口描述
綜合分析圖3.2和表3.1所提供的信息可知各個模塊之間的耦合情況。例如,當模塊p調用模塊 q時(接口1),它傳遞一個參數----飛機類型。當模塊q把控制返還給模塊p時,它傳回一個狀態標志。
某些模塊之間的耦合類型是明顯的,例如,模塊p和q之間(接口1)、模塊r和t之間(接口5)及模塊s和u之間(接口6)都是數據耦合,因為它們傳遞的都是一個簡單變量。
如果兩個模塊中的一個模塊給另一個模塊傳遞控制元素,也就是說,如果一個模塊明顯地控制另一個模塊的邏輯,則它們之間具有控制耦合。例如,當給具有邏輯內聚的模塊傳遞功能代碼時就傳遞了控制元素。另一個控制耦合的例子是把控制開關作為一個參數傳遞。圖3.2中模塊q調用模塊r時(接口3)傳遞一個功能代碼,因此,這兩個模塊之間是控制耦合。
圖3.2右側文字說明,模塊p、t和u更新同一個數據庫,因此,它們之間具有公共環境耦合。
當模塊p調用模塊s時(接口2),如果模塊s使用或更新模塊p傳遞給它的零件清單中的所有元素,則模塊p和s之間的耦合是數據耦合;但是,如果模塊s只訪問該清單中的一部分元素,則模塊p和s之間的耦合是特征耦合。模塊q和s之間(接口4)的耦合情況與此類似。由于圖3.2和表3.1中給出的信息尚不足以準確地描述各個模塊的功能,所以不能確定這兩對模塊之間的耦合是數據耦合還是特征耦合。
第二篇:軟件工程復習題
第三章 軟件工程
一、軟件工程基本概念
1.軟件是計算機系統中與硬件相互依存的重要部分,包括程序、數據及相關的 文檔。其中,程序 是軟件開發人員根據用戶需求開發的、用程序設計語言描述的、適
合計算機執行的指令(語句)序列。
2.下列敘述中,正確的是(D)。A.軟件就是程序清單B.軟件就是存放在計算機中的文件 C.軟件應包括程序
清單及運行結果D.軟件包括程序和文檔3.軟件按功能可以分為:應用軟件、系統軟件、支撐軟件(或工具軟件)
4.軟件工程的出現是由于(軟件危機的出現)5.開發軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現象稱做(軟件危機)
軟件工程概念的出現源自軟件危機。所謂軟件危機是泛指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。總之,可以將軟件危機歸結為成本、質量、生產率等問題。
6.開發大型軟件時,產生困難的根本原因是(大型系統的復雜性)。
7.軟件危機出現于20世紀60年代末,為了解決軟件危機,人們提出了 軟件工程學 的原理來設計軟件這就是軟件工程誕生的基礎。
8.下列不屬于軟件工程的3個要素的是(D)A.工具B.過程C.方法D.環境 軟件工程過程與軟件生命周期
9.軟件工程過程是把輸入轉化為輸出的一組彼此相關的 資源 和活動。通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為 軟件生命周期 10.軟件生命周期中所花費用最多的階段是(軟件維護)11.軟件開發的結構化生命周期方法將軟件生命周期劃分成(定義、開發、運行維護)。12.軟件生命周期一般包括可行性研究與需求分析、設計、實現、測試、交付使用以及維護等活動。軟件工程的目標與原則
13.軟件工程的理論和技術性研究的內容主要包括:軟件開發技術和軟件工程管理。軟件開發技術包括:軟件開發方法學、開發過程、開發工具和軟件工程環境,主體內容是軟件開發方法學。軟件工程管理包括:軟件管理學、軟件工程經濟學、軟件心理學等內容。14.軟件工程的理論和技術性研究的內容主要包括軟件開發技術和(軟件工程管理)
15.軟件工程的原則包括抽象、信息隱藏、模塊化、局部化、確定性、一致性、完備性和可驗證性。
軟件開發工具與軟件開發環境
16.開發軟件時對提高開發人員工作效率至關重要的是(先進的軟件開發工具和環境)17.軟件開發環境是全面支持軟件開發全過程的 軟件工具 集合。常用的軟件開發方法和技術可以分為三大類:瀑布型、增量型和變換型。瀑布型開發方法將軟件生命周期的各項活動規定為按固定順序連接的若干階段,強調早期的需求分析和開發的階段性,強調產品測試;但是不能適應需求的變化。增量型則先建立一個不完全的系統,通過對需求的理解再進一步擴充和完善。例:瀑布模型突出的缺點是不適應(D)的變動 A.算法B.平臺C)程序語言D.用戶需求
二、結構化分析方法需求分析與需求分析方法
18.在軟件生產過程中,需求信息的給出是(軟件用戶)。19.需求分析中,開發人員要從用戶那里了解(軟件做什么)。
20.需求分析階段的任務是確定(軟件系統功能)21.需求分析的任務是發現需求、求精、建模和定義需求的過程。需求分析將創建所需的數據模型、功能模型和 控制模型
22.需求分析階段的工作:需求獲取、需求分析、編寫需求規格說明書、需求評審
下列工具中屬于需求分析常用工具的是(D)。A)PADB)PFDC)N—SD)DFD 結構化分析方法 常用的需求分析方法:
(1)結構化分析方法。主要包括:面向數據流的結構化分析方法(SA),面向數據結構的Jackson方法(JSD)和面向數據結構的結構化數據系統開發方法(DSSD)(2)面向對象的分析方法(OOA)
23.結構化方法的核心和基礎是 結構化程序設計理論24.下列不屬于結構化分析的常用工具的是(D)。A)數據流圖B)數據字典C)判定樹D)PAD圖 25.在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發階段是(B)
A)可行性分析 B)需求分析C)詳細設計D)程序編碼
26.數據流圖用于抽象描述一個軟件的邏輯模型.數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是(A)。
A)控制流B)加工C)數據存儲D)源和潭 說明:數據流圖中的主要圖形元素與說明: 27.在數據流圖(DFD)中的箭頭代表的是(數據流)28.在數據流圖(DFD)中,帶有名字的箭頭表示(數據的流向)。
29.在結構化分析方法中,用于描述系統中所用到的全部數據和文件的文檔稱為 數據字典軟件需求規格說明書
30.軟件需求規格說明書 是需求分析階段的最后結果 31.下列敘述中,不屬于軟件需求規格說明書的作用的是(D)
A.便于用戶、開發人員進行理解和交流B.反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據C.作為確認測試和驗收的依據D.便于開發人員進行需求分析
32.(數據描述)是對軟件系統所必須解決的問題做出的詳細說明
說明:需求規格說明書一般包括以下內容:概述、數據描述、性能描述、功能描述、參考文獻目錄等。其中概述從系統角度描述軟件的目標和任務;功能描述中描述了為解決用戶問題所需要的每一項功能的過程細節;性能描述說明系統應達到的性能和應該滿足的限制條件、檢測的方法和標準。
三、結構化設計方法軟件設計的基本概念
33.在軟件開發中,下面任務不屬于設計階段的是(D)A)數據結構設計 B)給出系統模塊結構 C)定義模塊算法 D)定義需求并建立系統模型
34.軟件設計包括軟件的結構、數據、接口和過程設計,其中軟件的過程設計是指(系統結構部件轉換成軟件的過程描述)。
說明:結構設計:定義軟件系統各主要部件之間的關系;數據設計:將分析時創建的模型轉化為數據結構的定義;接口定義:描述軟件內部、軟件和協作系統之間以及軟件與人之間如何通信;過程設計:把系統結構部件轉換成軟件的過程性描述。
35.下面不屬于軟件設計原則的是(C)A.抽象 B.模塊化C.自底向上D.信息隱藏
36.耦合和內聚是評價模塊獨立性的兩個主要標準,其中內聚 反映了模塊內各成分之間的聯系,耦合反映了模塊間互相連接的緊密程度。
37.內聚性是信息隱蔽和局部化概念的自然擴展,一個模塊的內聚性越強,則該模塊的模塊獨立性越 強。一個模塊與其它模塊的耦合性越強,則它的模塊獨立性越 弱。38.下列敘述中,正確的是(C)
A.接口復雜的模塊,其耦合程度一定低B.耦合程度弱的模塊,其內聚程度一定低C.耦合程度弱的模塊,其內聚程度一定高D.以上都不對
39.下列選項中,不屬于模塊間耦合的是(B)。A.數據耦合B.同構耦合C.異構耦D.公用耦合40.軟件設計中,有
利于提高模塊獨立性的一個準則是(C)。
A.低內聚低耦合B.低內聚高耦合C.高內聚低耦合D.高內聚高耦合 概要設計
41.軟件的概要 設計又稱為總體結構設計,其主要任務是建立軟件系統的總體結構,設計數據結構及數據庫,編寫概要設計文檔,概要設計文檔評審。
42.在結構化方法中,軟件功能分解屬于下列軟件開發中的階段是(C)
A.詳細設計 B.需求分析 C.總體設計 D.編程調試 43.在概要設計階段,常用的軟件結構設計工具是 結構圖(sc),也稱程序結構圖。生成的結構圖中,帶有箭頭的連線表示(模塊之間的調用關系),矩形表示模塊。44.在概要設計階段,一般采用面向數據流的設計方法。數據流的類型有 變換型和事務型。將變換型映射成結構圖稱為 變換分析。將事務型映射成結構圖稱為 事務分析。
45.好的軟件設計結構通常 頂層 高 扇出,中間扇出較少,底層 高 扇入。46.模塊的控制范圍包括它本身以及它所有的從屬模塊,模塊的作用范圍是指模塊內一個判定的作用范圍,凡是受到這個判定影響的所有模塊都屬于這個判定的作用范圍。理想的情況是(模塊的作用范圍應在控制范圍內)詳細設計
47.詳細設計 的任務是為軟件結構圖中的每一個模塊確定實現算法和局部數據結構,用選定的表達工具表示算法和數據結構的細節。確定怎樣來具體實現所要求的系統。48.為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為(N—S圖)。
49.詳細設計的結果基本決定了最終程序的(質量)。50.軟件設計模塊化的目的是 降低復雜性。51.詳細設計的典型語言描述工具是(PDL)
結構化分析(需求階段)的常用工具有:數據流圖(DFD)、數據字典(DD)、判定樹和判定表
結構設計(概要設計階段)工具是:結構圖(SC, structure chart)
過程設計(詳細設計階段)常見的工具有:程序流程圖、N—S圖、PAD圖(問題分析圖,)和PDL(過程設計語言)
四、軟件測試 軟件測試的目的52.在軟件測試設計中,軟件測試的主要目的是(D)。A.實驗性運行軟件B.證明軟件正確 C.找出軟件中全部錯誤D.發現軟件錯誤而執行程序
(注意:不是為了證明軟件的正確性,也不是為了找出全部錯誤)
軟件測試的準則
53.下列敘述中.不屬于測試的特征的是(C)。A.測試的挑剔性B.完全測試的不可能性C.測試的可靠性D.測試的經濟性 軟件測試技術與方法
軟件測試方法從是否需要執行被測試軟件的角度,可以分為 靜態測試 和 動態測試 ;按功能劃分為 白盒測試 和 黑盒測試。
靜態測試包括 代碼檢查、靜態結構分析、代碼質量量度 等
白盒測試和黑盒測試都屬于 動態測試
白盒測試的主要方法: 邏輯覆蓋、基本路徑測試 等 黑盒測試的主要方法: 等價類劃分法、邊界值分析法、錯誤推測法、因果圖 等
54.下列不屬于靜態測試方法的是(B)。
A.代碼檢查B.白盒法C.靜態結構分析D.代碼質量度量
55.在軟件工程中,白箱測試法可用于測試程序的內部結構。此方法將程序看做是(A)。
A.路徑的集合B.循環的集合C.目標的集臺D.地址的集合56.完全不考慮程序的內部結構和內部特征,而只是根據程序功能導出測試用例的測試方法是(A)A.黑箱測試法B.白箱測試法C.錯誤推測法D.安裝測試法
57.黑盒測試是對軟件已經實現的功能是否滿足需求進行測試和驗證,不考慮程序內部的邏輯結構,在軟件接口處進行。常用的黑箱測試有等價分類法、邊界值分析法、因果圖法和錯誤推測法4種。軟件測試的實施
58.軟件測試過程一般按4個步驟進行,即單元測試、集成測試、驗收測試(確認測試)和系統測試58.檢查軟件產品是否符合需求定義的過程稱為(A)A.確認測試B.集成測試C.驗證測試D.驗收測試 說明:軟件的測試過程一般按4個步驟進行:單元測試:對軟件設計的最小單位—模塊進行正確性檢驗的測試,發現模塊內部可能存在的錯誤。由于模塊通常不是一個獨立的程序,不能單獨運行,所以常常需要用到模擬環境。可以采用靜態測試和動態測試(以白盒測試為主)。
集成測試:測試和組裝模塊的過程,主要是發現與接口有關的錯誤,依據是概要設計說明書。涉及的內容有:軟件單元的接口測試、全局數據結構測試、邊界條件和非法輸入的測試等。通常采用兩種方式:非增量方式組裝域增量方式組裝
驗收測試(確認測試):驗證軟件的功能和性能以及其
他特性是否滿足了需求規格說明書中確定的各種需求,以及軟件配置是否完全、正確。采用黑盒測試。系統測試:將軟件與硬件、用戶、數據等組合,在實際運行環境下對整個系統進行集成測試和確認測試。59.軟件開發離不開系統環境資源的支持.其中必要的測試數據屬于(D)。
A.硬件資源B.通信資源C.支持軟件D.輔助資源
軟件測試過程中,輔助資源包括測試用例(測試數據)、測試計劃、出錯統計和最終分析報告等。60.為了提高測試的效率,應該(D)
A.隨機選取測試數據B.取一切可能的輸入數據作為測試數據 C.在完成編碼以后制定軟件的測試計劃D.集中對付那些錯誤群集的程序
61.為了便于對照檢查,測試用例應由輸入數據和預期的 輸出結果 兩部分組成。
四、程序的調試
軟件調試(Debug,即排錯)的任務是診斷和改正程序中的錯誤,與軟件測試不同,軟件測試是盡可能多地發現軟件中的錯誤。軟件測試貫穿整個軟件生命期,調試主要在開發階段。
62.程序調試的基本步驟:錯誤定位、修改和設計代碼以排除錯誤、進行回歸測試防治引進新的錯誤。63.下列敘述正確的是(D)
A.測試和調試工作必須由程序編制者自己完成B.測試用例和調試用例必須完全一致
C.一個程序經調試改正錯誤后,一般不必再進行測試 D.上述三種說法都不對 軟件調試方法
64.下列不屬于軟件調試技術的是(B)。
A.強行排錯法B.集成測試法C.回溯法D.原因排除法
六、軟件維護
65.軟件維護活動包括以下幾類:校正性維護、適應性維護、完善性維護和預防性維護。
第三篇:軟件工程期末小結
第一章 軟件工程概述
1.對“引入同一變動付出的代價隨時間變化的趨勢”:在軟件開發的不同階段進行修改需要付出的代價是很不相同的,在早期引入變動,涉及的面較少,因而代價也比較低;而在開發的中期,軟件配置的許多成分已經完成,引入一個變動要對所有已完成的配置成分都做相應的修改,不僅工作量大,而且邏輯上也更復雜,因此付出的代價劇增;在軟件“已經完成”是再引入變動,當然需要付出更高的代價。根據美國一些軟件公司的統計資料,在后期引入一個變動比在早期引入相同的變動所需付出的代價高2~3個數量級。
2.軟件是程序、數據及相關文檔的完整集合。程序是能夠完成預定功能和性能的可執行的指令序列;數據是使程序能夠適當地處理信息的數據結構;文檔是開發、使用和維護程序所需要的圖文資料。
3.為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術兩方面研究如何更好地開發和維護計算機軟件的一門新興學科。
4.軟件工程是:(1)把系統的、規范的、可度量的途徑盡快應用于軟件開發、運行和維護過程,也就是把工程應用于軟件;(2)研究(1)中提到的途徑。
5.軟件工程本質特性(理解,判斷):軟件工程關注與大型程序的構造,軟件工程的中心課題是控制復雜性,軟件經常變化,開發軟件的效率非常重要,和諧地合作是開發軟件的關鍵,軟件必須有效地支持它的用戶,在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品。
6.軟件工程方法學包含3個要素:方法、工具和過程。
7.軟件生命周期由軟件定義、軟件開發和運行維護3個時期組成。軟件定義時期的任務是:確定軟件開發的工程必須完成的總目標;確定工程的可行性;導出實現工程目標應該采用的策略及系統必須完成的功能;估計完成該項工程需要的資源和成本,并且制定工程進度表。這個時期的工作通常又稱為系統分析,有系統分析員負責完成。軟件定義時期通常進一步劃分成3個階段,即問題定義、可行性研究和需求分析。這個時期產生的文檔有可行性研究報告、需求規格說明書。開發時期具體設計和實現在前一個時期定義的軟件,它通常由下述4個階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。其中前兩個階段又稱為系統設計,后兩個階段又稱為系統實現。這個階段需要的人員為高級技術人員和初級程序員。產生的文檔有:軟件結構圖,軟件說明書,數據庫。維護時期的主要任務是使軟件持久的滿足用戶的需要。
8.軟件一個生命周期包括:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試。
9.軟件維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要。通常有4類維護活動:改正性維護,也就是診斷和改正正在使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟件使它更完善;預防性維護,即修改軟件,為將來的維護活動預先做準備。
第二章 可行性研究
1.可行性研究包括以下:技術可行性、經濟可行性、操作可行性、法律可行性。
2.系統流程圖的概括地描繪物理系統的傳統工具。
3.在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程。數據流圖是系統邏輯功能的圖形表示。
4.數據字典有下列元素的定義組成:數據流、數據流分量(即數據元素)、數據存儲。
5.成本估計技術有:代碼行技術、任務分解技術、自動估計成本技術。
第四篇:軟件工程-期末總結
軟件工程期末總結
課程:姓名:學號:班級:xxxxx xxxxx xxxxxx xxxxxx
目錄
1.軟件工程學概述.........................................................1 1.1軟件危機..........................................................1 1.2軟件工程..........................................................1 1.3軟件生命周期......................................................2 1.4軟件過程..........................................................2 2.可行性研究:............................................................2 2.1可行性研究的任務..................................................2 2.2可行性研究的過程..................................................3 2.3數據流圖..........................................................3 3.需求分析...............................................................3 4.形式化說明技術.........................................................4 5.模塊設計...............................................................4 1.耦合:............................................................4 2.內聚..............................................................4 6.詳細設計...............................................................5 6.1結構程序設計......................................................5 6.2人機界面設計......................................................5 7.軟件測試...............................................................5 7.1軟件測試的目標....................................................5 7.2軟件側試準則......................................................6 7.3測試方法..........................................................6 8.軟件可靠性.............................................................7 8.1軟件質量..........................................................7
1.軟件工程學概述
1.1軟件危機
1.1.1 軟件危機的介紹:是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。具體地說,軟件危機主要有以下一些典型表現:1.對軟件開發成本和進度的估計常常很不準確。2.用戶對“已完成的”軟件系統不滿意的現象經常發生。3.軟件產品的質量往往靠不住。4.軟件常常是不可維護的。5.軟件通常沒有適當的文檔資料。6.軟件成本在計算機系統總成本中所占的比例逐年上升。7.軟件開發生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。1.1.2產生軟件危機的原因:在軟件開發和維護的過程中存在這么多嚴重問題,一方面與軟件本身的特點有關,另一方面也和軟件開發與維護的方法不正確有關。軟件不同于硬件,它是計算機系統中的邏輯部件而不是物理部件。1.1.3消除軟件危機的途徑:
1、認識到軟件是程序、數據及相關文檔的完整集合。2.認識到軟件是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目;
3、推廣使用在實踐中總結出來的開發軟件的成功的技術和方法,探索更好更有效的技術和方法;
4、開發和使用更好的軟件工具。總之,為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術兩方面研究如何更好地開發和維護計算機軟件的一門新興學科。
1.2軟件工程
1.2.1軟件工程的介紹:軟件工程是指導計算機軟件開發和維護的一門工程學科。定義:采用工程的概念、原理和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟件并有效地維護它。1.2.2軟件工程的基本原理:
1、用分階段的生命周期計劃嚴格管理
2、堅持進行階段評審
3、實行嚴格的產品控制
4、采用現代程序設計技術
5、結果應能清楚地審查
6、開發小組的人員應該少而精
7、承認不斷改進軟件工程實踐的必要性 1.2.3 軟件工程方法學:通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為范型。軟件工程方法學包含3個要素方法、工具和過程。目前使用得最廣泛的軟件工程方法學,分別是傳統方法學和面向對象方法學
1.3軟件生命周期
軟件生命周期由軟件定義、軟件開發和運行維護3個時期組成,每個時期又進一步劃分成若干個階段。軟件定義的3個階段:問題定義、可行性研究、需求分析;軟件開發的四個階段:總、詳(系統設計)、編、綜(系統實現)軟件生命周期每個階段:1.問題定義2.可行性研究3.需求分析4.總體設計5.詳細設計6.編碼和單元測試7.綜合測試8.軟件維護
1.4軟件過程
軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。
1.4瀑布模型瀑布模型
一直是唯一被廣泛采用的生命周期模型,有下述的幾個特點:1.階段間具有順序性和依賴性(1)必須等前一階段的工作完成之后,才能開始后一階段的工作(2)前一階段的輸出文檔就是后一段的輸入文檔,因此,前一階段的輸出文檔必須正確。2.推遲實現的觀點;3.質量保證的觀點(1)每個階段都必須完成規定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務,(2)每個階段結束前都要對所完成的文檔進行評審,以便盡早發現問題改正錯誤。
優點:可強迫開發人員采用規范的方法;嚴格地規定每個階段必須提交的文檔;要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證。缺點:瀑布模型是由文檔驅動的
2.可行性研究: 可行性研究的目的,就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。
2.1可行性研究的任務
可行性研究的目的不是解決問題,而是確定問題是否值得去解決。可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統分析和設計的過程。在澄清了問題定義之后,分析員應該導出系統的邏輯模型。然后從系統邏輯模型出發,探索若干種可供選擇的主要解法(即系統實現方案)。對每種解法都應該仔細研究它的可行性,一般說來,至少應該從下述3個方面研究每種解法的可行性。
1)技術可行性 使用現有的技術能實現這個系統嗎?
2)經濟可行性 這個系統的經濟效益能超過它的開發成本嗎? 3)操作可行性 系統的操作方式在這個用戶組織內行得通嗎?
必要時還應該從法律、社會效益等更廣泛的方面研究每種解法的可行性。可行性研究需要的時間長短取決于工程的規模。一般來說,可行性研究的成本只是預期的工程總成本的5%-10%。
2.2可行性研究的過程
步驟:1.復查系統規模和目標2.研究目前正在使用的系統3.導出新系統的高層邏輯模型4.進一步定義問題5.導出和評價供選擇的解法6.推薦行動方針7.草擬開發計劃8.書寫文檔提交審查
2.3數據流圖
數據流圖(DFD)是一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程。數據流圖有四種基本符號:
正方形(或立方體)表示數據的源點或終點; 圓角矩形(或圓形)代表變換數據的處理; 開口矩形(或兩條平行橫線)代表數據存儲; 箭頭表示數據流,即特地數據的流動方向。
在數據流圖中應該描繪所有可能的數據流向,而不應該描繪出現某個數據流的條件。數據存儲和數據流都是數據,僅僅所處的狀態不同。數據存儲是處于靜止狀態的數據,數據流是處于運動中的數據。數據流圖的基本要點是描繪“做什么”,而不是“怎么做”。數據流圖的4種成分:源點或終點,處理,數據存儲,數據流數據流圖的基本目的是利用它作為交流信息的工具,另一個主要用途是作為分析和設計的工具。
3.需求分析
3.1.1確定對系統的綜合需求1.功能需求2.性能需求3.可靠性和可用性需求4.出錯處理需求5.接口需求6.約束7.逆向需求8.將來可能提出的需求
4.形式化說明技術
PSL/PSA系統的主要優點是它改進了文檔質量,能保證文檔具有完整性、一致性和無二義性,從而可以減少管理和維護的費用。數據存放在數據庫中,便于增加、刪除和更改,這也是它的一個優點。
5.模塊設計
模塊獨立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結果。開發具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。
1.耦合:
耦合是對一個軟件結構內不同模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度因此,模塊間的耦合程度強烈影響系統的可理解性、可測試性、可靠性和可維護性。公共環境耦合的復雜程度隨耦合的模塊個數而變化,當耦合的模塊個數增加時復雜程度顯著增加。如果只有兩個模塊有公共環境,那么這種耦合有下面兩種可能。1.一個模塊往公共環境送數據,另一個模塊從公共環境取數據。這是數據耦合的于一種形式,是比較松散的耦合。2.兩個模塊都既往公共環境送數據又從里面取數據,這種耦合比較緊密,介于數據耦合和控制耦合之間。如果兩個模塊共享的數據很多,都通過參數傳遞可能很不方便,這時可以利用公共環境耦合。最高程度的耦合是內容耦合。如果出現下列情況之一,兩個模塊間就發生了內容耦合。一個模塊訪問另一個模塊的內部數據。一個模塊不通過正常入口而轉到另二個模塊的內部。兩個模塊有一部分程序代碼重疊(只可能出現在匯編程序中)。一個模塊有多個入口(這意味著一個模塊有幾種功能)。應該堅決避免使用內容耦合。事實上許多高級程序設計語言已經設計成不允許在程序中出現任何形式的內容耦合。總之,耦合是影響軟件復雜程度的一個重要因素。應該采取下述設計原則:盡量使用數據耦合,少用控制耦合和特征耦合,限制公共環境耦合的范圍,完全不用內容耦合。
2.內聚
內聚標志著一個模塊內各個元素彼此結合的緊密程度,它是信息隱藏和局部化概念的自然擴展。簡單地說,理想內聚的模塊只做一件事情。內聚和耦合是密切相關的,模塊內的高內聚往往意味著模塊間的松耦合。內聚和耦合都一是進行模塊化設計的有力工具,但是實踐表明內聚更重要,應該把更多注意力集中到提高模塊的內聚程度上。低內聚:偶然內聚、時間內聚、邏輯內聚;中內聚主要有兩類:過程內聚和通信內聚;高內聚也有兩類:順序內聚和功能內聚。功能內聚是最高程度的內聚。
6.詳細設計
詳細設計階段的根本目標是確定應該怎樣具體地實現所要求的系統,也就是說,經過這個階段的設計工作,應該得出對目標系統的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。詳細設計階段的任務還不是具體地編寫程序,而是要設計出程序的“藍圖”,以后程序員將根據這個藍圖寫出實際的程序代碼。因此,詳細設計的結果基本上決定了最終的程序代碼的質量。考慮程序代碼的質量時必須注意,程序的“讀者”有兩個,那就是計算機和人。在軟件的生命周期中,設計測試方案、診斷程序錯誤、修改和改進程序等都必須首先讀懂程序。實際上對于長期使用的軟件系統而言,人讀程序的時間可能比寫程序的時間還要長得多。因此,衡量程序的質量不僅要看它的邏輯是否正確.性能是否滿足要求,更主要的是要看它是否容易閱讀和理解。詳細設計的目標不僅僅是邏輯上正確地實現每個模塊的功能,更重要的是設計出的處理過程應該盡可能簡明易懂。結構程序設計技術是實現上述目標的關鍵技術,因此是詳細設計的邏輯基礎。
6.1結構程序設計
如果一個程序的代碼塊僅僅通過順序,選擇和循環這3種基本控制結構進行連接,并且每個代碼塊只有一個入口和一個出口,則稱為程序的結構化。
6.2人機界面設計
人機界面設計是接口設計的一個重要的組成部分。在設計人機界面過程會遇到下面4個問題:系統響應時間,用戶幫助設施,出錯信息處理和命令交互。用戶界面設計過程是一個迭代的過程,首先創建設計模型,再用原型實現這個設計模型,并由用戶試用和評估,然后根據用戶意見進行修改。為了支持上述迭代過程,各種用于界面設計和原型開發的軟件工具產生。它們為簡化窗口,菜單,設備交互,出錯信息,命令及交互環境的許多其它元素的瘡癤提供各種歷程或對象。用戶界面評估周期如下,完成初步設計之后就創建第一級原型,用戶使用并評估該原型,直接向設計者表述對界面的評價,設計中根據用戶意見修改設計并實現下一級原型。
7.軟件測試
7.1軟件測試的目標
1.測試是為了發現程序中的錯誤而執行程序的過程。2.好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。3.成功的測試是發現了至今為止尚未發現的錯誤的測試。從上述規則可以看出,測試的正確定義是“為了發現程序中的錯誤而執行程序的過程”。這和某些人通常想象的“測試是為了表明程序是正確的”,“成功的
測試是沒有發現錯誤.的測試”等是完全相反的。正確認識測試的目標是十分重要的,測試目標決定了測試方案的設計。如果為了表明程序是正壑耍進行測試,就會設計一些不易暴露錯誤的測試方案;相反,如果測試是為了發現程序中的錯誤,就會力求設計出最能暴露錯誤的測試方案。由于測試的目標是暴露程序中的錯誤,從心理學角度看,由程序的編寫者自己進行測試是不恰當的。因此,在綜合測試階段通常由其他人員組成測試小組來完成測試工作。此外,應該認識到測試決不能證明程序是正確的。即使經過了最嚴格的測試之后,仍然可能還有沒被發現的錯誤潛藏在程序中。測試只能查找出程序中的錯誤,不能證明程序中沒有錯誤。關于這個結論下面還要討論。
7.2軟件側試準則
怎樣才能達到軟件測試的目標呢?為了能設計出有效的測試方案,軟件工程師必須深人理解并正確運用指導軟件測試的基本準則。下面講述主要的測試準則。1.所有測試都應該能追溯到用戶需求。2.應該遠在測試開始之前就制定出測試計劃。3.把Paret原理應用到軟件測試中。Pareto原理說明,測試發現的錯誤中的80%很可是由程序中20%的模塊造成的。當然,問題是怎樣找出這些可疑的模塊并徹底地測試它們。4.應該從“小規模”測試開始,并逐步進行“大規模”測試。通常,首先重點測試單個程序模塊,然后把測試重點轉向在集成的模塊簇中尋找錯誤,最后在整個系統中尋找錯誤。5.窮舉測試是不可的。所謂窮舉測試就是把程序所有可能的執行路徑都檢查一遍的測試。即使是一個中等規模的程序,其執行旋的排列數也十分龐大,由于受時間、人力以及其他資源的限制,在測試過程中不可能執行每個可能的路徑。囚此,測試只能證明程序中有錯誤,不能證明程序中沒有錯誤。但是,精心地設計測試方案,有可能充分覆蓋程序邏輯并使程序達到所要求的可靠性。6.為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。所謂“最佳效果”是指有最大可能性發現錯誤的測試。由于前面已經講過的原因,開發軟件的軟件工程師并不是完成全部測試工作的最佳人選(通常他們主要承擔模塊測試工作)。
7.3測試方法
測試任何產品都有兩種方法:如果已經知道了產品應該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用瑯口果知道產品的內部工作過程,可以通過測試來檢驗產品內部動作是否按照規格說明書的規定正乒進行。前一種方法稱為黑盒測試,后一種方法稱為白盒測試。對于軟件測試而言,黑盒測試法把程序看作一個黑盒子,完全不考慮程序的內部結均和處理過程。也就是說,黑盒測試是在程序接口進行的測試,它只檢查程序功能是否能按照規格說明書的規定正常使用,程序否能適當地接收輸人數據并產生正確的輸出信息,程序運行過程中能否保持外部信息(例如,數據庫或文件)的完整性。黑盒測試又稱為功能測試。白盒測試法與黑盒測試法相反,它的前提是可以把程序看成裝在一個透明的白盒子里,測試者完全知道程序的結構和處理算法。這種方法按測程序中的主要執行通路是否都能按預定要求正確工作。照程序內部的邏輯測試程序,白盒測試又稱為結構測試。
8.軟件可靠性
可靠性定義:軟件可靠性是程序在給定的時間間隔內,按照規格說明書的規定成功的運行的概率可用性定義:軟件可用性是程序在給定的時間點,按照規格說明書的規定,成功的運行的概率基本假定 1.在測試之前每1000條指令中大約有5~20個錯誤 2.失效率正比于剩余的錯誤數,平均無故障時間MTTF與剩余錯誤數成反比3.為了簡化討論假設發現的每一個錯誤都立即正確地改正了。
8.1軟件質量
概括地說,軟件質量就是“軟件與明確地和隱含地定義的需求相一致的程度”。更具體地說,軟件質量是軟件與明確地敘述的功能和性能需求、文檔中明確描述的開發標準以及任何專業開發的軟件產品都應該具有的隱含特征相一致的程度。上述定義強調了下述的6個要點: 1.正確性(它按我的需要工作嗎?)系統滿足規格說明用戶目標的程度,即,在預定環境下能正確的完成預期功能的程度。
2.健壯性(對息外環境它能適當地響應嗎?)在硬件發生故障、輸入的數據無效或操作錯誤等意外環境下,系統能做出適當的響應程度。
3.效率〔完成預定功能時它需要的計算機資源多嗎?)為了完成預定的功能,系統需要的計算資源的多少。
4.完整性(安全性)(它是安全的嗎?)對未經授權的人使用軟件或數據的企圖,系統能夠控制(禁止)的程度。
5.可用性(我能使用它嗎?)系統在完成預定應該完成的功能時令人滿意的程度。6.風險(能按預定計劃完成它嗎?)按預定的成本和進度把系統開發出來,并且為用戶所滿意的概率。
第五篇:GIS軟件工程期末考試復習題
《軟件工程》選擇題
一、選擇題(在每小題的四個備選答案中,選出一個正確答案,并將正確答案的序號填在題干的括號內,每小題1分)
1.軟件產品的開發主要是(D)。
A.復制B.再生產C.拷貝D.研制
2.可行性研究的目的是決定(B)。
A.開發項目B.項目值得開發否C.規劃項目D.維護項目
3.SA方法用DFD描述(D)。
A.系統的控制流程B.系統的數據結構
C.系統的基本加工D.系統的功能
4.進行需求分析可使用多種工具,但(C)是不適用的。
A.數據流圖(DFD)B.判定表C.PAD圖D.數據字典
5.軟件設計階段一般又可分為(B)。
A.邏輯設計與功能設計B.總體設計與詳細設計
C.概念設計與物理設計D.模型設計與程序設計
6.軟件設計中劃分模塊的一個準則是(C)。
A.低內聚低耦合B.低內聚高耦合C.高內聚低耦合D.高內聚高耦合7.下列語言中哪個語言是低級語言(D)
A.PASCALB.VISUAL BASICC.C++D.匯編語言
14.軟件測試的目的是(B)。
A.試驗性運行軟件B.發現軟件錯誤
C.證明軟件正確D.找出軟件中全部錯誤
8.軟件測試中,白盒法是通過分析程序的(B)來設計測試用例的。
A.應用范圍B.內部邏輯C.功能D.輸入數據
9.黑盒法是根據程序的(C)來設計測試用例的。
A.應用范圍B.內部邏輯C.功能D.輸入數據
10.把一組具有相似特性的對象組合在一起,稱之為(C)。
A、多態性B、繼承性C、類D、消息
11.面向對象的主要特征除對象唯一性、封裝、繼承外,還有(A)
A、多態性B、完整性C、可移植性D、兼容
12.軟件生存周期中時間最長的是(D)階段。
A.需求分析B.概要設計C.測試D.維護
13.與計算機科學的理論研究不同,軟件工程是一門(C)學科。
A.理論性B.原理性C.工程性D.心理性
14.從結構化的瀑布模型看,在它的生命周期中的八個階段中,下面的幾個選項中哪個環節
出錯,對軟件的影響最大(C)。
A、詳細設計階段B、總體設計階段C、需求分析階段D、測試和運行階段
15.軟件工程的出現主要是由于(C)。
A.程序設計方法學的影響B.其它工程科學的影響 C.軟件危機的出現D.計算機的發展
16.SA方法的基本思想是(C)
A.自底向上逐步抽象B.自底向上逐步分解C自頂向下逐步分解 D.自頂向下逐步抽象
17、為了提高軟件測試的效率,應該(D)。
A.隨機地選取測試數據
B.取一切可能的輸入數據作為測試數據
C.在完成編碼以后制定軟件的測試計劃
D.選擇發現錯誤可能性較大的數據作為測試用例
18.與設計測試用例無關的文檔是(A)。
A.項目開發計劃B.需求規格說明書C.設計說明書D.源程序
19.使用白箱測試方法時確定測試數據應根據(A)和指定的覆蓋標準。
A.程序的內部邏輯B.程序的復雜程度C.使用說明書D.程序的功能
20.軟件部件的內部實現與外部可訪問性的分離,是指軟件的(C)。
A.繼承性B.共享性C.封裝性D.抽象性
21、軟件管理的具體內容包括對(D)
A.開發人員、組織機構B.用戶管理、配置管理C.控制、文檔資料 D.(A)、(B)和(C)
22.軟件需求分析階段的工作,可以分為四個方面:對問題的識別.分析與綜合.編寫需求分
析文檔以及(B)
A.軟件的總結B.需求分析評審C.階段性報告D.以上答案都不正確
23..數據流圖是常用的進行軟件需求分析的圖形工具,其主要圖形元素是(C)
A.輸入.輸出.外部實體和加工B.變換.加工.數據流和存儲
C.加工.數據流.數據文件和源或宿D.變換.數據存儲.加工和數據流
24、軟件的集成測試工作最好由(D)承擔,以提高集成測試的效果。
A.該軟件的設計人員B.該軟件開發組的負責人
C.該軟件的編程人員D.不屬于該軟件開發組的軟件設計人員
25.軟件生命周期的最后的一個階段是(B)
A.書寫軟件文檔B.軟件維護C.穩定性測試D.書寫詳細用戶說明McCall提出了表明軟件質量的11個質量特性。它們是正確性、可靠性、可使用性、完整性、(D)、可移植性、可復用性、效率、可測試性、互聯性。
A.模塊獨立性、安全性B.文檔完備性、靈活性
C.可維護性、安全性D.可維護性、靈活性
27、每個對象可用它自己的一組屬性和它可以執行的一組(C)來表征。
A、行為B、功能C、操作D、數據
28、面向對象軟件技術的許多強有力的功能和突出的優點,都來源于把類組織成一個層次結構的系統,一個類的上層可以由父類,下層可以有子類,這種層次結構系統的一個重要性質是(B),一個類獲得其父親的全部描述(數據和操作)
A、傳遞性B、繼承性C、復用性D、并行性
29、軟件開發在需求分析、設計、編碼、測試這幾個階段所需不同層次的技術人員大致是
(C)
A.初級、高級、高級、初級B.中級、中級、高級、中級
C.高級、中高級、初級、中高級D.中級、中高級、中級、初級
30、軟件重用的單位是(A)。
A.軟件模塊 B.性能C.系統D.功能
31、軟件開發常使用的兩種基本方法是結構化和原型化方法,在實際的應用中,它們之間的關系表現為(B)
A、相互排斥B、相互補充C、獨立使用D、交替使用
32、系統分析員是(B)
A、用戶中系統的直接使用者B、用戶和軟件人員的中間人
C、軟件的編程人員D、用戶和軟件人員的領導
33、結構化分析SA方法以數據流圖、(D)和加工說明等描述工具,即用直觀的圖和簡潔的語言來描述軟系統模型。
A、DFD圖B、PAD圖C、IPO圖D、數據字典
34、在E-R 模型中,包含以下基本成分(C)。
A、數據、對象、實體B、控制、聯系、對象
C、實體、關系、屬性D、對象、屬性、操作
35、結構設計是一種應用最廣泛的系統設計方法,是以(A)為基礎、自頂向下、逐步求精和模塊化的過程。
A、數據流B、數據流圖C、數據庫D、數據結構
36、初步用戶手冊在(B)階段編寫。
A.可行性研究 B.需求分析 C.軟件總體設計 D.軟件詳細設計
37、在軟件結構化設計中,好的軟件結構設計應該力求做到(B)。
A、頂層扇出較少,中間層扇出較高,底層模塊低扇入
B、頂層扇出較高,中間層扇出較少,底層模塊高扇入
C、頂層扇入較少,中間層扇出較高,底層模塊高扇入
D、頂層扇入較少,中間層扇入較高,底層模塊低扇入
38、軟件詳細設計主要采用的方法是(D)。
A、模塊設計B、結構化設計C、PDL語言D、結構化程序設計
39、軟件測試的手段有多種,通過人工來評審文檔或程序,借以發現其中錯誤,該手段是(D)。
A、黑盒測試B、正確性測試C、動態測試D、靜態測試
40、黑盒測試在設計測試用例時,主要需要研究(A)。
A、需求規格說明與概要設計說明B、詳細設計說明
C、項目開發計劃D、概要設計說明與詳細設計說明
41、在整個軟件維護階段所花費的全部工作中,(C)所占比例最大。
A、改正性維護B、適應性維護C、完善性維護D、預防性維護
42.軟件需求分析階段的工作,可以分為以下4個方面:對問題的識別、分析與綜合、編寫需
求分析文檔以及(C)。
A.總結B.階段性報告C.需求分析評審D.以上答案都不正確
43.在結構化分析方法中,用以表達系統內數據的運動情況的工具有(A)。
A.數據流圖B.數據詞典C.結構化語言 D.判定表與判定樹
44.來輔助軟件開發、運行、維護、管理、支持等過程中的活動的軟件稱為軟件開發工具,通常也稱為(D)工具。
A.CADB.CAIC.CAMD.CASE
45.螺旋模型綜合了(A)的優點,并增加了風險分析。
A.瀑布模型和演化模型B.瀑布模型和噴泉模型
C.演化模型和噴泉模型D.原型和噴泉模型
46.SA方法的分析步驟是首先調查了解當前系統的工作流程,然后(A)。
A.獲得當前系統的物理模型,抽象出當前系統的邏輯模型,建立目標系統的邏輯模型
B.獲得當前系統的物理模型,抽象出目標系統的邏輯模型,建立目標系統的物理模型
C.獲得當前系統的物理模型,建立當前系統的物理模型,抽象出目標系統的邏輯模型
D.獲得當前系統的物理模型,建立當前系統的物理模型,建立目標系統的物理模型
47.設計軟件結構一般不確定(C)。
A.模塊的功能B.模塊的接口
C.模塊內的局部數據D.模塊間的調用關系
48.結構分析方法就是面向(D)自頂向下逐步求精進行需求分析的方法。
A.目標B.功能C.對象D.數據流
49.軟件是一種(B)產品。
A.物質B.邏輯C.有形D.消耗
50.瀑布模型把軟件生命周期劃分為八個階段:問題的定義、可行性研究、軟件需求分析、系統總體設計、詳細設計、編碼、測試和運行、維護。八個階段又可歸納為三個大的階段:計劃階段、開發階段和(C)。
A、詳細計劃B、可行性分析C、運行階段D、測試與排錯
51.結構化分析方法是一種預先嚴格定義需求的方法,它在實施時強調的是分析對象的(B)
A、控制流B、數據流C、程序流D、指令流
52.在軟件的可行性研究中,可以從不同的角度對軟件的可行性進行研究,其中是從軟件的功能可行性角度考慮的是(B)
A、經濟可行性B、技術可行性C、操作可行性D、法律可行性
53、下述任務中,不屬于軟件工程需求分析階段的是(D)。
A.分析軟件系統的數據要求B.確定軟件系統的功能需求
C.確定軟件系統的性能要求D.確定軟件系統的運行平臺
54、火車是一種陸上交通工具,火車和陸上交通工具之間的關系是(D)關系。
A.組裝B.整體成員C.has aD.一般具體
55.瀑布模型的存在問題是(B)
A.用戶容易參與開發B.缺乏靈活性
C.用戶與開發者易溝通D.適用可變需求
56.開發軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現象稱做(C)
A.軟件工程B.軟件周期
C.軟件危機D.軟件產生
57.軟件測試的目的是(B)。
A. 評價軟件的質量B.發現軟件的錯誤
C. 找出軟件的所有錯誤D.證明軟件是正確的58.需求分析最終結果是產生(B)。
A.項目開發計劃B.需求規格說明書
C.設計說明書D.可行性分析報告
59.快速原型模型的主要特點之一是(D)
A.開發完畢才見到產品B.及早提供全部完整的軟件產品
C.開發完畢后才見到工作軟件D.及早提供工作軟件
60.結構分析方法就是面向(B)自頂向下逐步求精進行需求分析的方法。
A. 目標B.數據流C.功能D.對象
61.研究開發所需要的成本和資源是屬于可行性研究中的(B)研究的一方面。
A.技術可行性B.經濟可行性C.社會可行性D.法律可行性
62.為了提高軟件的可維護性,在編碼階段應注意(D)
A.保存測試用例和數據B.提高模塊的獨立性
C.文檔的副作用D.養成好的程序設計風格
《軟件工程》填空題
二、填空題(請把答案寫在相應的橫線上,每小題1.5分)
1、面向對象開發方法包括 OOA、OOD、OOP 三部分。
2、在單元測試時,需要為被測模塊設計 驅動模塊和樁模塊。
3、軟件工程管理的具體內容包括對開發人員、組織機構、用戶、文檔資料等方面的管理。
4、可行性研究的三個方面是 技術可行性、社會可行性 和__經濟可行性__。
5、對象的抽象是___類___。
6、軟件工程包括軟件開發技術和__軟件工程管理__兩大部分內容。
7、需求分析階段產生的最重要的文檔是__需求規格說明書_。
8、結構化方法是一種面向數據流的開發方法。由結構化分析、_結構化設計_、結構化程序設計構成。
9、對象之間進行通信的構造叫做_消息_。
10、結構化分析方法的分析策略是__自頂向下逐步求精__。
11、規定功能的軟件,在一定程度上能從錯誤狀態自動恢復到正常狀態,則稱該軟件為___容錯__軟件。
12、軟件生存周期包括問題定義、可行性研究,需求分析,總體設計,詳細設計,_編碼_,測試,維護活動,可以將這些活動以適當方式分配到不同階段去完成13、___可行性研究___的目的就是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發,是否值得去開發。
軟件工程簡答題
三、簡答題(簡要回答下列問題,每小題4分*5=20)
1、什么是軟件工程?它目標和內容是什么?
軟件工程就是用科學的知識和技術原理來定義,開發,維護軟件的一門學科。
軟件工程目標:付出較低開發成本;達到要求的功能;取得較好的性能;開發的軟件易于移植;只需較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟件可靠性高。
軟件工程內容:包括開發技術和開發管理兩個方面。
2、什么是軟件生存周期?它有哪幾個活動?
軟件生存周期:一個軟件從提出開發要求開始直到該軟件報廢為止的整個時期。
包括:可行性分析和項目開發計劃,需求分析,概要設計,詳細設計,編碼,測試,維護。
3、衡量模塊獨立性的兩個標準是什么?各表示什么含義?
內聚和耦合。
內聚:又稱為塊內聯系,指模塊內部各成分之間相互關聯的程度,以高內聚為設計目標。耦合:也稱塊間聯系,模塊之間相互聯系程度的度量,聯系越緊密,耦合性越強,獨立性越差,以低耦合為設計目標。
4、軟件設計的基本原理包括哪些內容?
⑴模塊化:模塊是軟件的組成部分,是具有獨立功能且可命名的一段程序,所有模塊組成整體,可以滿足問題的要求。
⑵抽象:認識復雜現象過程所使用權的工具,只考慮事物本質的共同特性,忽略細節和其它因素。通過抽象確定組成軟件的過程實體。
⑶信息隱蔽:將模塊實現自身功能的細節與數據“隱蔽”起來。模塊間僅交換為完成系統功能所必須的信息。
⑷模塊獨立性:每個模塊只完成系統要求的獨立的子功能。
5、軟件生命周期劃分為哪幾個階段?
軟件生命周期分為三個時期八個階段:
軟件定義:問題定義、可行性研究;
軟件開發:需求分析、概要設計、詳細設計、編碼、測試;
軟件運行:軟件維護
《軟件工程》應用題
四、綜合應用題(每小題10分*3=30)
1.給你一個GIS軟件開發任務由 你負責,你將怎樣進行?
2.目前常用的GIS開發、應用平臺軟件有哪些,各有什么特點
3.合格的GIS軟件工程負責人應該有什么樣的素質和知識?