软件工程概论题库
軟件工程復習題
一、選擇題:
A.軟件工程 B.軟件周期 C.軟件危機 D.軟件產生
A.線性順序????????B.順序迭代??????C.線性迭代?????D.早期產品
A.用戶容易參與開發 B.缺乏靈活性C.用戶與開發者易溝通?D.適用可變需求
A.增量模型 B.專家系統 C.噴泉模型 D.變換模型
A.需求不確定性高的 B.需求確定的 C.管理信息 D.實時
A.GB ?B.ANSI ?C.ISO ?D.IEEE
A.數據結構 B.程序結構 C.算法 D.數據流
A、簡化、壓縮的 ?B、詳細的 C、徹底的 D、深入的
A、分析開發系統的必要性 B、確定系統建設的方案
C、分析系統風險 D、確定是否值得開發系統
A、系統開發 B、測試 C、試運行 D、集成測試
A、1% B、20% C、8% D、50%
A.《計算機軟件保護條例》
B.《中華人民共和國計算機信息系統安全保護條例》
C.《中華人民共和國著作權法》
D.《計算機病毒防治管理辦法》
A、可行性分析B、需求分析C、概要設計D、詳細設計
A、軟件驗收的依據?B、用戶與開發人員對軟件要做什么的共同理解
C、軟件可行性研究的依據 D、軟件設計的依據
A、程序流程圖B、功能結構圖 C、系統結構圖D、數據流程圖
A、SA B、SD C、SP D、SC
A、一個輸入流或一個輸出流 B、一個輸入流和一個輸出流
C、一個輸入流 D、一個輸出流
A、軟件開發方法 B、軟件開發工具C、軟件開發費D、軟件系統的功能
A、程序模塊化B、模塊高內聚C、模塊低耦合D、模塊獨立性
A、接口 B、功能 C、邏輯 D、狀態
A、數據結構耦合,公共耦合,控制耦合,內容耦合
B、數據耦合,控制耦合,數據結構耦合,公共耦合
C、無直接耦合,數據結構耦合,內容耦合,控制耦合
D、無直接耦合,數據耦合,控制耦合,內容耦合
A、做什么B、為什么做?C、怎么做D、對誰做
A、判定表 B、IPO圖 C、PDL D、DFD圖
A.信息隱蔽??B、質量控制 C、程序優化D、數據共享
A、數據耦合B、公共耦合C、標記耦合D、內容耦合
A、DFD圖 B、SC圖 C、PAD圖 D、程序流程圖
A、內容型B、控制型C、公共型D、數據型
A、DFD B、PAD C、SC D、ER
A.程序的執行效率 B.模塊的內聚
C.程序的可理解性 D.模塊的耦合
A.配置項 ?B.程序 ?C.基線 ?D.過程
A. 瀑布模型 ????????????????????????????B. 噴泉模型
C. 螺旋模型 ????????????????????????????D. 增量模型
34. 軟件工程的基本要素包括方法、工具和( ??A?)。
A. 過程 ????????????????????????????????B. 軟件系統
C. 硬件環境 ????????????????????????????D. 人員
35. ?在結構化分析方法中,( ??C?)表達系統內部數據運動的圖形化技術。
A. 數據字典 ????????????????????????????B. 實體關系圖
C. 數據流圖 ????????????????????????????D. 狀態轉換圖
36. “軟件危機”是指( ?C??)。
A. 計算機病毒的出現 ????????????????????B.利用計算機進行經濟犯罪活動
C.軟件開發和維護中出現的一系列問題 ????D.人們過分迷戀計算機系統
37.?軟件的( A??)設計又稱為總體設計,其主要任務是建立軟件系統的總體結構。
A.概要 ????????????????????????????????B.抽象 ?????????
C.邏輯 ????????????????????????????????D.規劃
38. 下列不屬于數據字典組成部分的是?( ?D??)
A. 數據項 ??????????????????????????????B. 數據流 ???
C. 數據文件 ????????????????????????????D. 數據庫
39. 下列不屬于軟件需求范疇的是?( A???)
A. 軟件項目采用什么樣的實現技術 ????????B . 用戶需要軟件能做什么樣的事情
C. 用戶需要軟件完成什么樣的功能 ????????D. 用戶需要軟件達到什么樣的性能
40. 模塊的內聚性最高的是( ?D??)。
A. 邏輯內聚 ????????????????????????????B. 時間內聚 ??????
C. 偶然內聚 ????????????????????????????D. 功能內聚
41. 在白盒測試技術測試用例的設計中,( ?B???)是最強的覆蓋標準。
A. 語句覆蓋 ???????????????????????????B. 路徑覆蓋 ?????
C. 條件組合覆蓋 ???????????????????????D. 判定覆蓋
42. Jackson程序設計方法是一種面向( A????)的設計方法。
A. 數據結構 ???????????????????????????B. 數據流圖 ???
C. IPO圖 ??????????????????????????????D. 系統流程圖
43.?軟件設計中劃分模塊的一個準則是( ?C????)。
A. 低內聚低耦合 ???????????????????????B. 低內聚高耦合 ?
C. 高內聚低耦合 ???????????????????????D. 高內聚高耦合
44.?以文檔作為驅動,適合于軟件需求很明確的軟件項目的生存周期模型是( C???)。
A. 噴泉模型 ???????????????????????????B. 增量模型 ?????
C. 瀑布模型 ???????????????????????????D.螺旋模型
45.?類構件的重用方式有多態重用、繼承重用和( ?A??)。
A. 實例重用 ???????????????????????????B. 重載重用 ??????
C. 代碼重用 ???????????????????????????D. 方法重用
46. 軟件維護工作的最主要部分是(? C????)。
A. 校正性維護???? ???????????????????????????B. 適應性維護
C. 完善性維護????????? ?????????????????????? D. 預防性維護
47. 一個模塊的( C???)太大一般是因為缺乏中間層次,應當適當增加中間層次的控制模塊。
A. 深度 ????????????????????????????????B. 寬度 ????????
C. 扇出 ????????????????????????????????D. 扇入
?
A.動作的主體 B.屬性 C.關系 D.方法
49.(B)是對象的靜態特征。
A.方法 B.屬性 C.關系 D.操作
50. 對象的(D)使對象的動態特征
A.特征 B.屬性 C.關系 D.操作
51. 屬于某個類的一個具體對象稱為該類的(A)。
A.實例 B.虛擬 C.繼承 D.多態
52. UML是(A)。
A.復用 B.對象 C.實例 D.方法
54.?面向對象分析的核心在于建立(B)模型。?
A. 建立正確的模型
B.?識別問題域對象
C.識別對象之間的關系
D.上面所有
55. 面向對象分析過程中建立的模型有(D?)。?
58.(A?)用于描述系統中概念層次的對象。?
A.分析類
B. 界面類
C.實體類
D.控制類
59. 在基于用例的面向對象分析過程中,定義交互行為的關鍵在于通過描述分析類實例之間的(A)將用例的職責分配到分析類中。
A. 消息傳遞
B ?關聯關系
C ?繼承關系
D??上下文關系
A. 用例說明
B.?用例圖
C.活動圖
D.順序圖
61. 用例的職責通常分配給(D)的對象。
A. 發送消息
B.?接收消息
C.發送和接收雙方
D.分析類
62. 組織機構圖是(C)。
A. UML的一個最新圖
B.?類圖的一種
C.用于識別角色的輔助圖
D.用例圖的一種
63. 在圖書館系統中,假如已經構造了一個一般借書者類,后來發現圖書館的學生和教師在借書中有不同要求。請問在面向對象設計中用(B)方法可以方便地設計這兩個類?
A.信息隱藏 ?B.繼承 ?C.動態聯編 ?D.代碼復制
64. 框架是一組可用于不同應用的(A)集合
A.?類??B.對象??C.模塊??D.代碼?
65. 下面哪個選項不能描述子系統之間的關系。(D)
A.?請求——服務關系??B.繼承關系??C.依賴關系??D.數據關系
66. 每個子系統的接口上定義了若干(B),體現了子系統的功能。
A.?說明??B.操作?C.屬性??D.關系
67. 通常將具有共性的非功能要求設計在(B),以減少重新開發的工作量。
A.?接口層??B.中間層??C.最低層??D.最高層
68. 每個用例至少應該有一個(C),它通常沒有屬性而只有方法,只是起協調和控制作用。
A.?接口類??B.實體類??C.控制類??D.界面類
69. 類有三種類型即(A)。
A.?邊界類、實體類、控制類?
B.?實體類、數據類、界面類
C.?控制類、實體類、數據類
D.?界面類、控制類、公共類
70. 下面那個選項不是正確的面向對象設計思想。(C)
A.對接口進行設計
B.發現變化并且封裝它
C.先繼承后組合
D.先組合后繼承
71. 定義類的屬性類型時盡量使用已有的類型,太多的自定義類型會降低系統的(A)指標。
A.可維護性 ?B.安全性 C.開發效率 D.可移植性
72. 從本質上說,面向對象是“先”確定動作的( )“后”執行( D )。
A.數據結構/主體 B.主體/數據結構 C.動作/主體 D.主體/動作
?
A.半形式語言B.計算機語言 C.低級語言 D.高級語言
74. 程序設計語言的技術特性不應包括(C)。
A、數據結構的描述性B、抽象類型的描述性
C、數據庫的易操作性D、軟件的可移植性
75. 程序的三種基本控制結構是(B)。
A.過程、子程序和分程序 B.順序、選擇和重復
C.遞歸、堆棧和隊列 D.調用、返回和轉移
76. 結構化程序設計主要強調的是(D)。
A.程序的規模B.程序的效率 C.程序設計語言的先進性 D.程序易讀性
77. 下列關于功能性注釋不正確的說法是(B)。
A.功能性注釋嵌在源程序中,用于說明程序段或語句的功能以及數據的狀態
B.注釋用來說明程序段,需要在每一行都要加注釋
C.可使用空行或縮進,以便很容易區分注釋和程序
D.修改程序也應修改注釋
78. 下列關于效率的說法不正確的是(D)。
A.效率是一個性能要求,其目標應該在需求分析時給出
B.提高程序效率的根本途徑在于選擇良好的設計方法,數據結構與算法
C.效率主要指處理機時間和存儲器容量兩個方面
D.程序的效率與程序的簡單性無關
79. 結構化維護與非結構化維護的主要區別在于(B )。
A.軟件是否結構化 B.軟件配置是否完整 C.程序的完整性 D.文檔的完整性
80. 關于JAVA語言下列說法不正確的是(B)。
A.跨平臺的 B.動態指針 C.解釋型的 D.面向對象的
81. 使用白盒測試方法時,確定測試數據應根據(A)和指定的覆蓋標準。
A程序內部邏輯??????B.程序復雜結構
C.使用說明書 D.程序的功能
82. 確認測試主要涉及的文檔是(A)。
A、需求規格說明書B、概要設計說明書
C、詳細設計說明書D、源程序
83. 測試的關鍵問題是(D)。
A.如何組織對軟件的評審 B.如何驗證程序的正確性
C.如何采用綜合策略 D.如何選擇測試用例
84. 黑盒測試在設計測試用例時,主要研究(A)。
A.需求規格說明 B.詳細設計說明
C.項目開發計劃 D.概要設計說明與詳細設計說明
85. 下面哪些測試屬于黑盒測試(B)。
A、路徑測試B、等價類劃分?C、條件判斷?D、循環測試
86. 在下述哪一種測試中,測試人員必須接觸到源程序(B)。
A、功能測試 B、結構測試C、功能測試和結構測試 D、性能測試
87. 檢查軟件產品是否符合需求定義的過程稱為(D)。
A、確認測試B、集成測試C、驗收測試D、驗證測試
88. 軟件測試方法中,黑盒、白盒測試法是常用的方法,其中白盒測試主要用于測試(D)。
A、文檔B、數據 C、編碼D、設計
90. 以下屬于軟件維護階段文檔的是(C)。
A、軟件需求說明B、操作手冊C、軟件問題報告D、測試分析報告
91. 產生軟件維護的副作用,是指(C)。
A、開發時的錯誤 B、隱含的錯誤
C、因修改軟件而造成的錯誤 D、運行時誤操作
92. 維護中,因誤刪除一個標識符而引起的錯誤是(C)副作用。
A、文檔 B、數據 C、編碼 D、設計
93. 可維護性的特性中,相互促進的(A)。
A、可理解性和可測試性B、效率和可移植性
C、效率和可修改性 D、效率和結構好
94. 軟件維護的困難主要原因是(C)
A、費用低 B、人員少 C、開發方法的缺陷?D、用戶不配合
95. 軟件維護費用高的主要原因是(C)。
A、人員少 ?B、人員多 ??C、生產率低D、生產率高
96. 為了適應軟硬件環境變化而修改軟件的過程是(C)。
A、校正性維護 ?B、完善性維護 C、適應性維護D、預防性維護
97. 可維護性的特性中,相互矛盾的是(B)
A.可理解性與可測試性?B.效率與可修改性
C.可修改性和可理解性?D.可理解性與可讀性
98. 各種不同的軟件維護中,以(C)維護所占的維護量最小。
A.異步控制B.同步控制C.存取控制D.基線控制
100. 變更控制是一項最重要的軟件配置任務,其中“檢出”和(A)處理實現了兩個重要的變更控制要素,即存取控制和同步控制。
A.登入B.管理C.填寫變更要求D.審查
101. 在整個軟件維護階段所花費的全部工作中,所占比例最大的是( )
A.校正性維護 B.適應性維護 ?C.完善性維護 D.預防性維護
102. 下面關于文檔的敘述,錯誤的是( B )
A.文檔是軟件產品的一部分,沒有文檔的軟件就不成為軟件。
B.文檔是僅用于說明使用軟件的操作命令,不包括軟件設計和實現細節。
C.高質量文檔對于轉讓、變更、修改、擴充和使用有重要的意義。
D.軟件文檔的編制在軟件開發工作中占有突出的地位和相當大的工作量。
103. 在軟件質量因素中,軟件在異常條件下仍能運行的能力成為軟件的( ?B??)。
A. 安全性 ????????????????????????????????B. 健壯性
C. 可用性 ????????????????????????????????D. 可靠性
104. 在下列測試技術中,( D???)不屬于黑盒測試技術。
A. 等價劃分 ??????????????????????????????B. 邊界值分析
C. 錯誤推測 ??????????????????????????????D. 邏輯覆蓋
105. ( ?C??)是把對象的屬性和操作結合在一起,構成一個獨立的對象,其內部信息對外界是隱蔽的,外界只能通過有限的接口與對象發生聯系。
A. 多態 ??????????????????????????????????B. 繼承 ?????
C. 封裝 ??????????????????????????????????D. 消息
106. Jackson方法是在軟件開發過程中常用的方法,使用Jackson方法時可以實現( A???)。
A. 從數據結構導出程序結構 ????????????????B. 從數據流圖導出初始結構圖
C. 從模塊結構導出數據結構 ????????????????D. 從模塊結構導出程序結構
107. 軟件測試時為了( ?B??)而執行程序的過程。
A. 糾正錯誤 ??????????????????????????????B. 發現錯誤
C. 避免錯誤 ??????????????????????????????D. 證明錯誤
108. 在軟件系統中,一個模塊應具有什么樣的功能,這是由( ?B??)決定的。
A. 總體設計 ??????????????????????????????B. 需求分析
C. 詳細設計 ??????????????????????????????D. 程序設計
109. 軟件文檔是軟件工程實施中的重要部分,它不僅是軟件開發各階段的重要依據,而且影響軟件的( ?B??)。
A. 可理解性 ?????????????????????????????B. 可維護性
C. 可擴展性 ?????????????????????????????D. 可移植
110. 模塊內聚度越高,說明模塊內各成分彼此結合的程序越( ?B??)。
A. 松散 ?????????????????????????????????B. 緊密
C. 無法判斷 ?????????????????????????????D. 相等
111. 常用的面向對象的軟件過程模型是( B???)。
A. 瀑布模型 ?????????????????????????????B. 噴泉模型
C. 原型模型 ?????????????????????????????D. 增量模型
112. 面向對象的分析階段建立的系統模型不包括( ?D??)。
A. 對象模型 ????????????????????????????????B. 動態模型
C. 功能模型 ????????????????????????????????D. 數據模型
113. 瀑布模型的存在問題是( B???)。
A. 用戶容易參與開發 ????????????????????????B. 缺乏靈活性
C. 用戶與開發者易溝通 ??????????????????????D. 適用可變需求
114. 以文檔作為驅動,適合于軟件需求很明確的軟件項目的生存周期模型是( C???)。
A. 噴泉模型 ????????????????????????????????B. 增量模型 ?????
C. 瀑布模型 ????????????????????????????????D. 螺旋模型
115. 類構件的重用方式有多態重用、繼承重用和( A???)。
A. 實例重用 ????????????????????????????????B. 重載重用 ??????
C. 代碼重用 ????????????????????????????????D. 方法重用
116. 在白盒測試技術測試用例的設計中,( ?A??)是最弱的覆蓋標準。
A. 語句覆蓋 ????????????????????????????????B. 路徑覆蓋
C. 條件組合覆蓋 ????????????????????????????D. 判定覆蓋
117. 開發軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現象稱做( C???)。
??A.軟件工程 ???????????????????????????????B.軟件周期
??C.軟件危機 ???????????????????????????????D.軟件產生
?
?
?
二、填空題
?
1. 軟件模塊獨立性的兩個定性度量標準是(耦合和內聚 )。
2. 軟件開發是一個自頂向下逐步細化和求精的過程,而軟件測試是一個(由下而上)的過程。
3. (等價劃分)是一種黑盒測試技術,這種技術把程序的輸入域劃分為若干個數據類,據此導出測試用例。
4. (數據流圖)和數據字典共同構成了系統的邏輯模型。
5. 可行性研究主要集中在以下三個方面:經濟可行性、(技術可行性)、法律可行性。
6. IPO圖是 ?輸入、處理和輸出 ??_的簡稱,它是美國IBM公司發展完善起來的一種圖形工具。。
7. 軟件生命周期一般可分為問題定義、(可行性研究)、需求分析、設計編碼、測試、運行與維護等階段。
8. 可行性研究主要集中在以下三個方面:經濟可行性、(技術可行性)、法律可行性。
9. 一般來說,可以從一致性、完整性、現實性和(有效性)四個方面驗證軟件需求的正確性。
10. 復雜問題的對象模型通常由下述五個層次組成:主題層、類與對象層、結構層、屬性層和(服務層)。
11. 軟件可維護性度量的七個質量特性是可理解性、可測試性、可修改性、可靠性、(可移植性)、可使用性和效率。
12. 軟件一般由程序、數據和(文檔)組成。
13. 面向對象模型主要由對象模型、動態模型、(功能模型)。
14. 軟件需求分析過程應該建立數據模型、功能模型和(行為模型) 三種模型之上。
15. 需求分析的最終結果是(需求規格說明書)。
16. 常見的測試方法一般分為:白盒測試和(黑盒測試)。
17. 軟件工程三要素包括方法、(工具)和過程,其中,過程是支持軟件開發的各個環節的控制和管理。
18. 類構件的重用方式有實例重用、繼承重用和(多態重用)三種。
19. 耦合和(內聚)是衡量模塊獨立性的兩個定性的標準。
20. 軟件測試的步驟按順序分別是:(單元測試)、子系統測試、系統測試、__確認測試和系統測試。21. 數據庫的“概念設計”與“邏輯設計”分別對應于系統開發中的“????”與“????”,而數據庫的“物理設計”與模塊的“????”相對應。
解:需求分析??概要設計??詳細設計
解:概要設計說明書??數據庫設計說明書??用戶手冊??組裝測試計劃
?
?
?
三、簡答題
答:軟件工程是①將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護過程,即將工程化應用于軟件開發和管理之中,②對①中所選方法的研究。
目標:
3 ?提高軟件的可維護性,降低維護費用。
4 ?提高軟件開發生產率,及時交付使用
答:項目計劃,成本估計,需求規格說明書,需求評審,概要設計,詳細設計,設計評審,編碼,單元測試,系統測試,驗收測試
答:可行性研究主要包括以下幾個部分:
???(1)概述(2)技術可行性(3)項目成熟程度(4)市場需求情況和風險分析(5)投資估算及資金籌措(6)經濟與社會效益(7)綜合實力和產業基礎(8)項目實施進度計劃(9)其它尚需要說明的必要的方面(10)結論
答:所謂"需求分析",是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數據,要得到什么結果,最后應輸出什么。可以說,“需求分析”就是確定要計算機“做什么”。
任務:確定軟件項目的目標和范圍。調查使用者的要求,分析軟件必須做什么,編寫需求規格說明書等它相關文檔,并進行必要的需求審查。除此之外,還包括需求變更控制,需求風險控制,需求版本控制等對需求的管理工作
答:結構化的分析方法是面向數據流的方法,因此,此方法研究的核心是數據的組成和數據流向和對數據的加工處理。結構化分析方法用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直至找到滿足功能要求的所有可實現的軟件元素為止
描述工具:1系統流程圖?2 數據流程圖3數據字典4 IPO圖?5層次方框圖6實體—關系圖
7狀態—變遷圖
答:1)確定系統的功能要求
2)?確定系統的數據要求
3)?確定系統的操作要求和界面要求
4)?確定系統的性能要求
5) 確定系統的運行要求
6)?獲得當前系統的物理模型
7)?抽象出當前系統的邏輯模型
8)?建立目標系統的邏輯模型。
9)?修正開發計劃
10)如果需要則開發系統原型?
答:數據流圖:簡稱DFD,就是采用圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。
數據流圖的基本符號的意思:
1.矩形表示數據的外部實體;
2.圓角的矩形表示變換數據的處理邏輯;
3.少右面的邊矩形表示數據的存儲;
4.箭頭表示數據流。
答:數據字典,主要用來描述數據流程圖中的數據流、數據存儲、處理過程和和數據源點/終點。
作用:數據流程圖描述了系統的邏輯結構,其中的四個基本圖形元素的含義無法在數據流程圖中詳細說明,因此數據流程圖需要與其他工具配合使用,數據字典就是這樣的工具之一。
包括的條目:
數據流詞條
數據元素詞條
數據存儲詞條
數據加工處理詞條
數據源點及終點詞條
答:概要設計:根據用戶的需求先確定軟件系統的總體結構和總的設計原則。
基本的任務:
設想供選擇的方案。
推薦最佳方案。
功能分解,確定軟件結構。
設計軟件結構。
制定測試計劃。
數據設計。
書寫文檔。包括總體設計規格說明書。用戶手冊。測試計劃。
設計審查和復審。
答:詳細設計階段的任務是要為編寫程序代碼設計“圖紙”,由程序員按“圖紙”用某種高級程序設計語言編寫程序代碼。主要方法有設計程序流程圖,表格設計符號以及過程設計語言。
答:變換型數據流可以劃分為明顯的三部分:邏輯輸入,中心變換,邏輯輸出
??事務流的特點是數據沿某個輸入路徑流動,該路徑將外部信息轉換成事務,其中發射出多條事務處理路徑的中心處理被稱為中心事務
一般說來,至少應該從下述3個方面研究系統的可行性。
(1)技術可行性。使用現有的技術能實現這個系統嗎?
(2)經濟可行性。這個系統的經濟效益能超過它的開發成本嗎?
(3)操作可行性。系統的操作方式在這個用戶組織內行得通嗎?
必要時還應該從法律、社會效益等更廣泛的方面研究系統的可行性。
所謂情景分析就是對用戶將來使用目標系統解決某個具體問題的方法和結果進行分析。系統分析員利用情景分析技術,往往能夠獲知用戶的具體需求。
情景分析技術的用處主要體現在下述兩個方面。
(1)它能在某種程度上演示目標系統的行為,從而用于用戶理解,而且還可能進一步揭示出一些分析員目前還不知道的需求。
(2)由于情景分析較易為用戶所理解,使用這種技術能保證用戶在需求分析過程中始終扮演一個積極主動的角色。需求分析的目標是獲知用戶的真實需求,而這一信息的唯一來源是用戶,因此,讓用戶起積極主動的作用對需求分析工作獲得成功是至關重要的。
?
模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整理,可以完成指定的功能滿足用戶的需求。
采用模塊化原理可以使軟件結構清晰,不僅容易設計也容易閱讀和理解。因為程序錯誤通常局限在有關的模塊及它們之間的接口中,所以模塊化是軟件容易測試和調試,因而有助于提高軟件的可靠性。因為變動往往只涉及少數幾個模塊,所以模塊化能夠提高軟件的可修改性。模塊化也有助于軟件開發工程的組織管理,一個復雜的大型程序可以由許多程序員分工編寫不同的模塊,并且可以進一步分配技術熟練的程序員編寫困難的模塊。
為獲取用例首先要找出系統的行為者,可以通過請系統的用戶回答一些問題的辦法來發現行為者。
(1)誰將使用系統的主要功能?
(2)誰需要借助系統的支持來完成日常工作?
(3)誰來維護和管理系統?
(4)系統控制哪些硬件設備?
(5)系統需要哪些其他系統交互?
(6)哪些人或系統對本系統產生的結果感興趣?
?
?
?
答:學生可作為一個類---學生類,每個學生就是這個學生類的一個實例,例如,學生張三就是學生類的一個實例。
答:關鍵步驟有識別問題域的對象并分析它們相互之間的關系,建立簡潔、精確、可理解的正確模型;應建立的模型有功能模型,對象模型,動態模型。
答:(1)實體類保存要存入永久存儲體的信息。實體類通常在事件流或交互圖中,是對用戶最有意義的類。?
邊界類位于系統與外界的交界處,包括所有的窗體、報表、系統硬件接口、與其他系統的接口。
控制類負責協調其他類的工作。每個用例中至少應該有一個控制類,它控制用況中的事件順序。
(2)分為三種類型是因為它們各自的功能不同。界面類——描述系統與角色之間的接口。
控制類——在分析模型內表示協調、順序、事務處理以及控制其他對象的類。
實體類——為需要長久保存的信息進行建模的類。
?
答:(1)用例視圖(Use-Case view)
用例視圖用于描述系統的功能集。它是從系統外部以用戶角度,對系統做的抽象表示。用例視圖所描述的系統功能依靠于外部用戶或另一個系統觸發激活,為用戶或另一個系統提供服務,實現與用戶或另一個系統之間的交互。
用例視圖中可以包含若干個用例,用例表示系統能夠提供的功能,用例視圖是其他視圖的核心和基礎。其他視圖的構造依賴于用例視圖中所描述的內容,因為系統的最終目標是實現用例視圖中描述的功能,同時附帶一些非功能性的特性,因此用例視圖影響著所有其他的視圖。
(2)邏輯視圖(Logical view)
如果說用例視圖描述系統“做什么”,那么邏輯視圖就是描述“怎么做”。系統的靜態結構描述類、對象和它們之間的關系,反映的是系統靜態特征或結構組成。
(3)組件視圖(Component view)
組件視圖用來描述系統實現的結構和行為特征,反映系統各組成元素之間的關系。組件視圖由組件圖實現,主要供開發者和管理者使用。
(4)并發視圖(Concurrency View)
并發視圖用來描述系統的動態和行為特征。并發視圖將任務劃分為進程或線程形式,通過任務劃分引入并發機制,可以高效地使用資源、并行執行和處理異步事件。除了劃分系統為并發執行的進程或線程外,并發視圖還必須處理通信和同步問題。
(5)配置視圖(Deployment View)
配置視圖體現了系統的實現環境,反映系統的物理架構。配置視圖還包括一個映射,該映射顯示在物理架構中組件是怎樣分配的。
?
答:順序圖描述了一組交互對象間的交互方式,它表示完成某項行為的對象和這些對象之間傳遞消息的時間順序
答:活動圖反映系統中從一個活動到另一個活動的流程,強調對象間的控制流程。活動圖特別適合描述工作流和并行處理過程。具體地說活動圖可以描述一個操作過程中需要完成的活動;描述一個對象內部的工作;描述如何執行一組相關的動作,以及這些動作如何影響它們周圍的對象;說明一個業務活動中角色、工作流、組織和對象是如何工作的。
答:結構化設計:系統被劃分成多個模塊,這些模塊被組織成一個樹型結構。根就是主模塊,葉子是最低級的功能模塊。這棵樹也表示調用結構:每個模塊都調用自己的直接下級模塊,并被自己的直接上級模塊調用。頂層模塊負責收集應用程序最重要的那些執行策略,底層模塊實現處理細節。在這個體系結構中越靠上層位置,概念的抽象層次就越高。但是,由于上層模塊需要調用下層模塊,所以這些上層模塊就依賴于下層模塊的處理細節。也就是說,當實現細節發生變化時,抽象也會受到影響;如果想復用某一個抽象的話,就必須把它依賴的細節都一起拖過去。
面向對象設計:上層創建的抽象不依賴于任何細節,而細節則高度依賴于上層的抽象。這種依賴關系的變化正是結構化設計與面向對象設計的根本區別。
答:1)節簡化
①不使用不必要的變量和函數
②避免變量重名,變量重名可導致很難被發現的錯誤。
③盡量減小代碼量。
④盡量減少代碼的執行時間,提高執行效率。
⑤避免功能冗余的模塊。
⑥盡量不使用全局變量。
2)模塊化
???①確保物理和邏輯功能密切相關。
???②限定一個模塊完成一個獨立的功能,
???????提高模塊的內聚度。
???③檢查代碼的重復率,重復多的代碼,
???????要抽出來作為一個單獨的模塊。
3)簡單化
???①采用直接了當的算法,避免使用技巧
???????性高和難懂的代碼。
???②使用簡單的數據結構,避免使用多維
???????數組、指針和復雜的表。
???③注意對象命名的一致性。
???④以手工的方式簡化算術和邏輯表達式。
4)結構化
①按標準化的次序說明數據;
②按字母順序說明對象名
③使用讀者明了的結構化程序部件;
④采用直截了當的算法;
⑤根據應用背景排列程序各個部分;
⑥不隨意為效率而犧牲程序的清晰度和可讀性;
⑦讓機器多做煩瑣的工作,如重復、庫函數;
⑧用公共函數調用代替重復出現的表達式;
⑨避免循環、分支的嵌套層數過高;
⑩單入口單出口。
5)文檔化(documentation)
①有效、適當地使用注釋。
②協調使用程序塊注釋和程序行注釋。
③保持文檔和程序的同步。
6)格式化(layout)
①始終采用統一縮進規則;
②適當插入括號表明運算次序、排除二義性;
③有效地使用空格符以區別程序的不同意群。
答:軟件測試從廣義上講,是指軟件產品生存周期內所有的檢查、評審和確認活動。從狹義上講,軟件測試是為了發現錯誤而執行程序的過程。或者說,軟件測試是根據軟件開發各個階段的規格說明和程序內部結構而精心設計一批測試用例,用這些測試用例運行程序,以發現程序錯誤的過程。
25. 什么是白盒測試?它適應哪些測試?
答:白盒測試也叫結構測試,測試者需要了解被測程序的內部結構。白盒測試通常根據覆蓋準則設計測試用例,有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋和條件組合覆蓋。
白盒測試適用與單元測試、集成測試、系統測試
26. 采用黑盒技術設計測試用例有哪幾種方法?這些方法各有什么特點?
答:黑盒測試設計測試用例的方法有1)等價類劃分法 特點是:a、測試的內容相同 b、一個等價類中的某個測試可以發現缺陷,那么這個等價類的其他測試也能發現缺陷 c、一個等價類中的某個測試不能發現缺陷,那么這個等價類的其它測試也不能發現缺陷2)邊界值分析法 特點是:用邊界值分析時時常收獲較大,它是在等價類的邊界上選擇測試用例3)錯誤推測法 ?特點是:沒有確定的步驟,很大程度上是憑借經驗進行的 4)因果圖法 ?特點是:考慮輸入條件間的組合關系;考慮輸出條件對輸入條件的信賴關系;測試用例發現錯誤的效率高;能查出功能說明中的某些不一致或遺漏
- 白盒測試法有哪些覆蓋標準?試對它們的檢錯能力進行比較。
答:白盒測試的覆蓋標準有:語句覆蓋->判定覆蓋->條件覆蓋->判定/條件覆
蓋->條件組合覆蓋->路徑覆蓋 ?檢錯能力由弱到強
- 軟件的可維護性是軟件設計師最關注的性能,談談為了獲得軟件良好的可維護性,在設計時應該注意哪些問題?
答:為獲得軟件的良好可維護性,在設計階段應該做一些變更實驗,檢查系統的可維護性、靈活性和可移植性,設計時應該將今后可能變更的內容與其他部分分離開來,并且遵循高內聚、低偶合的原則。
在軟件文檔中,你認為哪些文檔對于軟件的維護最重要?
需求分析文檔、設計文檔、程序文檔對軟件維護很重要
- 簡述從哪些方面驗證軟件需求的正確性。
答:一般說來,應該從下述4個方面進行驗證。
(1)一致性。所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。
(2)完整性。需求必須是完整的,規格說明書應該包括用戶需要的每一個功能或性能。
(3)現實性。指定的需求應該是用現有的硬件技術和軟件技術基本上可以實現的。對硬件技術的進步可以做些預測,對軟件技術的進步則很難做出預測,只能從現有技術水平出發判斷需求的現實性。
(4)有效性。必須證明需求是正確有效的,確實能解決用戶面對的問題。
30. 簡述系統測試。
答:系統測試是把經過測試的子系統裝配成一個完整的系統來測試。在這個過程中不僅應該發現設計和編碼的錯誤,還應該驗證系統確實能提供需求說明書中指定的功能,而且系統的動態特性也符合預定要求。在這個測試步驟中發現的往往是軟件設計中的錯誤,也可能發現需求說明中的錯誤。
31.簡述結構化維護。
答:如果有一個完整的軟件配置存在,那么維護工作從評價設計文檔開始,確定軟件重要的結構特點、性能特點以及接口特點;估量要求的改動將帶來的影響,并且計劃實施途徑。然后首先修改設計并且對所做的修改進行仔細復查。接下來編寫相應的源程序代碼;使用在測試說明書中包含的信息進行回歸測試;最后,把修改后的軟件再次交付使用。
32.簡述篩選出正確的類與對象的標準。
答:篩選時主要依據下列標準,刪除不正確或不必要的類與對象。
(1)冗余
(2)無關
(3)籠統
(4)屬性
(5)操作
(6)實現
?
?
四、應用題
1. 下面是旅客訂飛機票的需求描述,試畫出分層的數據流程圖。
顧客將訂票單交給預訂系統:(1)如果是不合法訂票單,則輸出無效訂票信息;(2)對合法訂票單的預付款登錄到一個記賬文件中;(3)系統有航班目錄文件,根據填寫的旅行時間和目的地為顧客安排航班;(4)在獲得正確航班信息和確認已交了部分預付款時發出取票單,并記錄到取票單文件中。
顧客在指定日期內用取票單換取機票:(1)系統根據取票單文件對取票單進行有效性檢查,無效的輸出無效取票信息;(2)持有有效取票單的顧客在補交了剩余款后將獲得機票;(3)記賬文件將被更新,機票以及顧客信息將被登錄到機票文件。
訂單中有訂票日期、旅行日期、時間要求(上午、下午、晚上)、出發地、目的地、顧客姓名、身份證號、聯系電話。
?
?
??????????????????????????0層流程圖
?
?????????????????????????????????預定流程圖
?
???????????????????????????取機票流程圖
請就以上系統功能畫出分層的DFD圖,并建立重要條目的數據字典。
?
???????????????0層數據流程圖
??????????????????還書流程圖
?
?
?
? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?借書流程圖
?
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查詢流程圖
?
數據字典:
| 元素名稱 | 名稱 | 類型 | 說明 |
| IPO1 | 還書處理 | 處理 | 根據書號做還書處理,違規做處罰 |
| IPO2 | 有效性檢查 | 處理 | 檢查讀者號,圖書號的有效性 |
| IPO3 | 借書處理 | 處理 | 按讀者號,圖書號進行借書處理 |
| IPO4 | 查詢 | 處理 | 管理員對一些基本信息進行查詢 |
| IPO5 | 打印報表 | 處理 | 打印查詢到的信息 |
| IPO6 | 處罰管理 | 處理 | 根據規則對延期給予相應的處罰 |
| IPO7 | 數量檢查 | 處理 | 對讀者借出的數量是否符合規定進行檢查 |
| DS001 | 讀者信息 | 數據存儲 | 讀者信息錄入,修改,刪除,保存 |
| DS002 | 庫存信息 | 數據存儲 | 圖書的基本的情況以及所有圖書的整體情況 |
| DS003 | 錯還信息 | 數據存儲 | 存儲借還書信息,系統自動處理,不能人工錄入 |
| DS004 | 處罰信息 | 數據存儲 | 存儲延期的處罰信息 |
?
車間主任填寫維修申請單,內容有設備名稱、型號、故障描述、維護時間要求、預計費用;填好后交給審計人員,審計人員根據企業的審計規定對維修申請單進行審計,填寫審計意見和審計結果,審計意見可以修改費用,審計結果是同意或不同意;車間主任可以隨時查詢審計意見和結果;審計通過的維修申請單送給總經理進行審核,并填寫審核意見和結果,審核也是以修改費用,審核結果是同意或不同意。審核通過后,車間把設備送去維修。維修后由車間主任組織對設備維修結果進行驗收,企業對每臺有設備驗收標準。驗收通過后,由財務人員進行結算,填寫支付單并支付維修費。最后收取發票后,財務人員填寫發票記錄。
請畫出設備維修信息管理軟件的數據流程圖。
?
參考答案如下,結果不唯一。
?
?
(1)基本信息管理:教務管理人員輸入或修改學期教學計劃、學生名單和教師名單;
(2)學生選課:學生根據教學執行計劃進行選課;
(3)分配任課教師:教務管理人員為符合開課條件的課程分配教師;
(4)教師查詢并打印課表;
(5)成績管理:每門課程的教師在考試評分結束后將考試成績錄入,學生可查詢。
??請根據要求畫出該問題的數據流程圖。
?
?
?
請針對上面描述的需求畫出數據流程圖。
?
請仔細閱讀上面的描述,畫出數據流程圖。
?
?
?
某公司給購貨5萬元的顧客不同的折扣率,否則無折扣。如果顧客最近三個月內無欠款,折扣率為15%;有欠款,但與公司有10年及以上的交易關系,折扣率為10%,否則為5%。請將公司的折扣規則用決策樹和決策表的方式描述出來。
?
?
?
?
?
學生:學號、姓名、性別、出生日期;
課程:課程號、課程名、學分時間;
教師:教師編號、姓名、性別、職稱;
系:系號、系名。
畫出E-R圖,并寫出其數據庫的3NF關系。
其中:3NF關系為:
學生(學號、姓名、性別、出生日期、系號)其中系號為外關鍵字;
教師(教師編號、姓名、性別、職稱、系號)其中系號為外關鍵字;
系(系號、系名);
課程(課程號、課程名、學分、時間);
選課(學號、課程號)其中學號、課程號為外關鍵字;
教課(教師編號、課程號)其中教師編號、課程號為外關鍵字;
?
圖書:ISBN、圖書名稱、圖書價格、作者;
出版社:出版社編號、出版社名稱、出版社地址、聯系電話;
讀者:讀者編號、讀者姓名、讀者年齡、讀者單位。
畫出E-R圖,并建立3NF數據庫。
其中:3NF關系為:
讀者(讀者編號、讀者姓名、讀者年齡、讀者單位);
圖書(ISBN、圖書名稱、圖書價格、作者、出版社編號)其中出版社編號為外關鍵字;
出版社(出版社編號、出版社名稱、出版社地址、聯系電話);
讀書(讀者編號、ISBN)其中讀者編號、ISBN為外關鍵字。
?
零件:零件號、零件名、零件重量、零件單價、零件數量;
產品:產品號、產品名、產品單價、產品數量;
材料:材料號、材料名、計量單位、材料單價、材料數量。
以上產品需要各種零件的零件數目,各種零件需要制造它的材料數量。請根據以上描述畫出E-R圖,并寫出其數據庫的3NF關系。
其中:3NF關系為:
產品(產品號、產品名、產品單價、產品數量);
零件(零件號、零件名、零件重量、零件單價、零件數量);
材料(材料號、材料名、計量單位、材料單價、材料數量);
使用零件(產品號、零件號、單位產品使用零件數量)其中產品號、零件號為外關鍵字;
使用材料(零件號、材料號、單位零件使用材料數量)其中零件號、材料號為外關鍵字。
?
?
總結
- 上一篇: JavaScript中的闭包
- 下一篇: 创建DLL、Lib以及使用DLL、Lib