



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.第一章基本概念1. 軟件的特點是什么?軟件的定義:軟件 =程序 +數(shù)據(jù) +文檔軟件的特點:1) 軟件是邏輯實體; 具有抽象性;軟件的形態(tài)不可見; 必須通過觀察、 分析、思考、判斷來了解其功能、性能和其它特性。2)軟件是人腦思維的產(chǎn)物,其生產(chǎn)過程與硬件不同。開發(fā)過程的質(zhì)量控制及軟件產(chǎn)品保護問題。3)軟件的開發(fā)和運行受計算機系統(tǒng)限制。軟件移植問題。4)軟件的開發(fā)技術(shù)落后,手工開發(fā)方式仍占統(tǒng)治地位。開發(fā)效率低。2. 2006 年發(fā)布的國家分類標準是什么?1)按功能:系統(tǒng)軟件、支撐軟件、應(yīng)用軟件2)按規(guī)模:微型軟件、小型軟件、大型軟件、甚大型軟件、極大型軟件3)按工作方式:實時處理軟件、分時軟件、交
2、互式軟件、批處理軟件4)按服務(wù)對象:項目軟件、產(chǎn)品軟件5)按使用頻度:使用頻度低、使用頻度高6)按失效影響:不良影響、嚴重影響3. 軟件危機的表現(xiàn)有哪些?1) 軟件開發(fā)進度難以預(yù)測2) 軟件開發(fā)成本難以控制3) 用戶對產(chǎn)品功能難以滿足4) 軟件產(chǎn)品質(zhì)量無法保證5) 軟件產(chǎn)品難以維護4. 產(chǎn)生軟件危機的原因 ?1) 用戶需求不明確2) 缺乏正確的理論指導(dǎo)3) 軟件開發(fā)規(guī)模越來越大4) 軟件開發(fā)復(fù)雜度越來越高 5. 什么是軟件工程三要素 ?軟件工程的三要素:方法、工具和過程。6. 軟件工程的基本目標是什么 ? 付出較低的開發(fā)成本 達到要求的軟件功能 取得較好的軟件性能 開發(fā)的軟件易于移植 需要較低
3、的維護費用 能按時完成開發(fā)工作,及時交付使用7 軟件工程的基本原則是什么? 抽象:采用分層次抽象,自頂向下、逐層細化的辦法控制軟件開發(fā)過程的復(fù)雜性。 信息隱蔽: 將模塊設(shè)計成 “黑箱 ”,實現(xiàn)的細節(jié)隱藏在模塊內(nèi)部,不讓模塊的使用者直接訪問。這就是信息封裝,使用與實現(xiàn)分離的原則。 模塊化: 如 C 語言程序中的函數(shù)過程, C+ 語言程序中的類。模塊化有助于信息隱蔽和抽象,有助于表示復(fù)雜的系統(tǒng)。.局部化: 要求在一個物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算機資源,保證模塊之間具有松散的耦合,模塊內(nèi)部具有較強的內(nèi)聚。這有助于控制解的復(fù)雜性。 確定性:軟件開發(fā)過程中所有概念的表達應(yīng)是確定的、無歧義性的、 規(guī)
4、范的。一致性: 整個軟件系統(tǒng)的各個模塊應(yīng)使用一致的概念、符號和術(shù)語。程序內(nèi)部接口應(yīng)保持一致。軟件和硬件、操作系統(tǒng)的接口應(yīng)保持一致。系統(tǒng)規(guī)格說明與系統(tǒng)行為應(yīng)保持一致。用于形式化規(guī)格說明的公理系統(tǒng)應(yīng)保持一致。 完備性: 軟件系統(tǒng)不丟失任何重要成分,可以完全實現(xiàn)系統(tǒng)所要求功能的程度。為了保證系統(tǒng)的完備性, 在軟件開發(fā)和運行過程中需要嚴格的技術(shù)評審。可驗證性: 開發(fā)大型的軟件系統(tǒng)需要對系統(tǒng)自頂向下、逐層分解。系統(tǒng)分解應(yīng)遵循系統(tǒng)易于檢查、測試、評審的原則,以確保系統(tǒng)的正確性。8. 軟件工程的基本原理是什么? 用分階段的生命周期嚴格管理; 堅持進行階段評審; 實行嚴格的產(chǎn)品控制; 采用現(xiàn)代程序設(shè)計技術(shù);
5、結(jié)果應(yīng)能清楚地審查; 開發(fā)小組人員應(yīng)少而精; 承認不斷改進軟件工程實踐的必要性。9. 瀑布模型有什么特點?1) 最早出現(xiàn)的軟件開發(fā)模型,它提供了軟件開發(fā)的基本框架。2) 瀑布模型的本質(zhì)是一次通過,即每個活動只執(zhí)行一次,最后得到軟件產(chǎn)品。3) 瀑布模型有利于大型軟件開發(fā)過程中人員的組織及管理, 有利于軟件開發(fā)方法和工具的研究與使用,從而提高了大型軟件項目開發(fā)的質(zhì)量和效率。4) 里程碑或基線驅(qū)動,或者說文檔驅(qū)動;瀑布模型的缺陷: 由于開發(fā)模型呈線性, 所以當開發(fā)成果尚未經(jīng)過測試時, 用戶無法看到軟件的效果。這樣軟件與用戶見面的時間間隔較長,也增加了一定的風(fēng)險。 在軟件開發(fā)前期末發(fā)現(xiàn)的錯誤傳到后面的
6、開發(fā)活動中時, 可能會擴散,進而可能會造成整個軟件項目開發(fā)失敗。在軟件需求分析階段, 完全確定用戶的所有需求是比較困難的, 甚至可以說是不太可能的。瀑布模型即生存周期模型, 其核心思想是按工序?qū)栴}化簡, 將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作, 即采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。瀑布模型將軟件生命周期劃分為軟件計劃、需求分析和定義、軟件設(shè)計、軟件編碼、軟件測試、軟件運行維護 6 個階段,規(guī)定了他們自上而下、相互銜接的固定次序,如同瀑布流水逐級下落。10. 說明生命周期的劃分?一個軟件從定義、開發(fā)、使用和維護,直到最終被廢棄,所經(jīng)歷的生存過程稱為軟件生存期或叫生命期。包括計劃
7、、需求分析、軟件計劃、程序編碼、軟件測試和運行維護 6 各階段。11. 列出軟件生存期的幾個主要模型?瀑布模型、原型模型、螺旋模型、增量模型、構(gòu)件組裝模型、統(tǒng)一過程模型、第四代技術(shù).12. 瀑布模型軟件開發(fā)方法的基本過程?定義階段:計劃、需求分析開發(fā)階段:設(shè)計、編碼、測試維護階段:運行維護13. 增量模型有什么特點?1) 融合了線性順序模型的基本成份和原型實現(xiàn)模型的迭代特征。2) 增量模型采用隨著日程時間的進展而交錯的線性序列。 每一個線性序列產(chǎn)生軟件的一個可發(fā)布的 “增量 ”。3) 增量模型強調(diào)每一個增量均發(fā)布一個可操作產(chǎn)品。 早期的增量是最終產(chǎn)品的“可拆卸 ”版本,但他們確實提供了給用戶服
8、務(wù)的功能,并且提供了給用戶評估的平臺。將軟件產(chǎn)品看作一組增量構(gòu)件,每次設(shè)計、實現(xiàn)、集成、測試和交付一塊構(gòu)件,直到所有構(gòu)件全部實現(xiàn)為止。特點 :1) 任務(wù)或功能模塊驅(qū)動,可以分階段提交產(chǎn)品;2) 有多個任務(wù)單,這些多個任務(wù)單的集合,構(gòu)成項目的一個總?cè)蝿?wù)書( 總用戶需求報告 ) 。14. 幾種主要的軟件開發(fā)方法 ? 1) 結(jié)構(gòu)化開發(fā)方法2) 面向?qū)ο蟮姆椒?5. 軟件工程的“五個面向”?1) 面向流程分析 2) 面向數(shù)據(jù)設(shè)計 3) 面向?qū)ο髮崿F(xiàn)4) 面向功能測試 5) 面向過程管理第二章 軟件策劃2. 可行性分析最為敏感的方面是什么 ? 經(jīng)濟可行性: 經(jīng)濟效益能否超過開發(fā)成本? 技術(shù)可行性: 現(xiàn)有
9、技術(shù)能否實現(xiàn)?技術(shù)風(fēng)險的各種因素 ? 操作可行性: 用戶的接受程度如何? 法律可行性: 是否合法,是否侵犯他人的利益。6. 甘特圖有哪些優(yōu)點和缺點?甘特圖:是一種對各項活動進行計劃調(diào)度與控制的圖表。 橫向表示時間, 縱向列出任務(wù)。優(yōu)點:它具有簡單、 醒目和便于編制等特點。 能夠動態(tài)反映軟件項目開發(fā)進展的情況。缺點:難以反映多個任務(wù)之間存在的復(fù)雜的邏輯關(guān)系。 7. 什么是網(wǎng)絡(luò)計劃法的關(guān)鍵事件與關(guān)鍵路徑?關(guān)鍵事件 :最早完成時間與最遲完成時間相等的事件。關(guān)鍵路徑 :關(guān)鍵事件聯(lián)結(jié)的各個活動所組成的路線。第三章 結(jié)構(gòu)化需求分析1. 為什么說需求獲取難?1) 用戶需求具有動態(tài)性 ( 不穩(wěn)定性 ) 。2)
10、 用戶需求具有模糊性 ( 不準確性 ) 。3) 對需求達成一致的艱難性。4) 管理體制、機構(gòu)設(shè)置處在變革中。.5) 軟件書籍沒有將需求分析講清楚。 2. 需求分析的重點是哪些?通過對業(yè)務(wù)流程和數(shù)據(jù)流程的分析, 在以下四個方面與客戶要達成完全一致目標。 業(yè)務(wù)模型、 功能模型、 性能模型、 接口模型。3. 需求分析的 9 大任務(wù)是什么? 畫出系統(tǒng)的組織結(jié)構(gòu)圖、列出各部門的崗位角色 ( 機構(gòu)模型 ) 。 畫出系統(tǒng)業(yè)務(wù)操作流程圖。 畫出系統(tǒng)的數(shù)據(jù)流圖,掌握業(yè)務(wù)規(guī)則,獲得初步數(shù)據(jù)模型。 列出系統(tǒng)的功能點,即功能模型。 列出系統(tǒng)的性能點,即性能模型。 列出系統(tǒng)的接口,即接口模型。 確定系統(tǒng)的運行環(huán)境,即環(huán)
11、境模型。 確定系統(tǒng)的界面約定,即界面模型。 對開發(fā)工期、費用、開發(fā)進度、系統(tǒng)風(fēng)險等分析與評估。4. 簡述需求分析的過程?需求分析階段的工作有以下四個方面:1) 問題識別2) 分析與綜合3) 編制需求分析階段文檔4) 需求分析評審5. 獲取需求的常用方法有哪些? 訪談 / 個別訪問 : 正式的和非正式的訪談 問卷調(diào)查 / 書面調(diào)查:發(fā)電子郵件、問卷調(diào)查即把需要調(diào)查的內(nèi)容制成表格交給用戶填寫。該方法對需要調(diào)查大量人員的意見時,十分有效。 情景分析 / 電話和電視會議: 對目標系統(tǒng)解決某個具體問題的方法和結(jié)果,給出可能的情景描述,以獲知用戶的具體需求。 實地考察 / 收集資料: 開調(diào)查會參加業(yè)務(wù)實踐
12、 構(gòu)造原型6. 需求分析的原則是什么? 解決邏輯問題: 需求分析是對問題的識別和說明,要回答“做什么”,而不是“怎么做”。 以運行環(huán)境為基礎(chǔ): 需求分析工作應(yīng)以具體的運行環(huán)境為基礎(chǔ),實事求是。 用戶參與的原則: 需求分析工作是系統(tǒng)分析人員同用戶不斷交互的過程。 構(gòu)造高質(zhì)量的需求規(guī)格說明: 需求規(guī)格說明是需求分析工作重要的完成標志。7. 需求分析的基本要求是什么? 理解問題的數(shù)據(jù)域和功能域 自頂向下、逐層分解 給出系統(tǒng)的邏輯視圖和物理視圖8. 常見的需求分析方法有哪些? 面向數(shù)據(jù)流的分析方法. 面向功能的分析方法 面向數(shù)據(jù)的 Jackson 方法 面向?qū)ο蟮姆治龇椒?. 需求分析方法有哪些共性?
13、1. 支持數(shù)據(jù)域的分析機制2. 功能表示方法3. 接口的定義4. 問題的分解及抽象化5. 邏輯視圖和物理視圖6. 系統(tǒng)抽象模型第四章結(jié)構(gòu)化軟件設(shè)計思考題 4.11. 軟件設(shè)計的具體任務(wù)包括哪些內(nèi)容?(1) 制定規(guī)范(2) 結(jié)構(gòu)設(shè)計(3) 處理方式設(shè)計(4) 數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(5) 可靠性設(shè)計(質(zhì)量設(shè)計)(6) 編寫軟件設(shè)計文檔(7) 設(shè)計審查和復(fù)審(8) 詳細設(shè)計2. 什么是數(shù)據(jù)的保護性設(shè)計?1) 防衛(wèi)性設(shè)計: 在軟件設(shè)計中就插入自動檢錯,報錯和糾錯的功能2) 一致性設(shè)計: 在并發(fā)處理過程中使用封鎖和解除封鎖機制保持數(shù)據(jù)不被破壞3) 冗余性設(shè)計3. 軟件設(shè)計的目標是什么?軟件設(shè)計的最終目標
14、: 取得最佳方案 節(jié)省開發(fā)費用、 降低資源消耗、 縮短開發(fā)時間、 能夠贏得較高的生產(chǎn)效率、 較高的可靠性、 可維護性的方案。4. 模塊具有哪些基本屬性 ?“模塊 ”,又稱 “組件 ”。一般有四個基本屬性1) 功能:描述該模塊做什么?2) 邏輯:描述模塊內(nèi)部怎么做?3) 狀態(tài):模塊使用時的環(huán)境和條件。4) 接口:指模塊的輸入與輸出。5. 什么是耦合?什么是內(nèi)聚?如何增強模塊的獨立性?模塊獨立性由模塊間的耦合與內(nèi)聚度量。1) 耦合:各模塊之間的互相連接的緊密程度。模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其獨立性就越弱。.2) 內(nèi)聚:模塊內(nèi)各功能元素彼此結(jié)合的緊密程度。一個模塊內(nèi)部各個元素之
15、間的聯(lián)系越緊密,則它的內(nèi)聚性就越高,相對地,它與其它模塊之間的耦合性就會減低,而模塊獨立性就越強。3) 增強模塊獨立性的方法 是盡量做到 高內(nèi)聚、低耦合。6. 模塊化的特征有哪些?1) 抽象:用層次的方式構(gòu)造和分析復(fù)雜系統(tǒng)。2) 逐步求精: 幫助開發(fā)人員把精力集中在與當前開發(fā)階段最相關(guān)的那些問題上。3) 信息隱蔽: 如果一個模塊內(nèi)包含的信息 ( 過程和數(shù)據(jù) ) 不允許外部的模塊訪問的話,其它模塊不能對其訪問。4) 局部化: 把一些關(guān)系密切的軟件元素物理地放得彼此靠近。7. 影響耦合度的因素有哪些? 連接方式的類型。 接口的復(fù)雜性。 傳送的信息流類型。 耦合的時間。8. 降低耦合度的方法有哪些?
16、 對需要了解的內(nèi)容,隱含的改為明顯的,便于理解; 連接的方式盡量標準化,避免直接引用; 減少公共區(qū),將公共區(qū)劃分為若干個邏輯子區(qū); 輸入輸出應(yīng)局限在少量模塊,不要分散在全系統(tǒng);9. 軟件結(jié)構(gòu)設(shè)計優(yōu)化的準則是什么?1) 劃分模塊時,盡量做到高內(nèi)聚、低耦合,保持模塊相對獨立性。模塊劃分的準則:“將相關(guān)的各部分放在一起,無關(guān)的東西不要放在一起。 ”2) 模塊的大小要適中。3) 模塊的接口要簡單、清晰、含義明確。便于理解,易于實現(xiàn)、易于測試和維護。4) 一個模塊的作用范圍應(yīng)在其控制范圍之內(nèi)。且判定所在的模塊,應(yīng)與受其影響的模塊在層次上盡量靠近。5) 軟件結(jié)構(gòu)的深度、寬度、扇入、扇出應(yīng)適當。6) 力求設(shè)
17、計單入口和單出口的模塊。避免“病態(tài)連接” ,以防止內(nèi)容耦合。7) 設(shè)計功能可預(yù)測模塊的劃分,應(yīng)防止功能過分局限。4.2 思考題1. 結(jié)構(gòu)化設(shè)計的優(yōu)點是什么? 減少設(shè)計復(fù)雜性。將大化小,使復(fù)雜問題簡單化。 結(jié)構(gòu)獨立。將程序劃分成多個相對獨立的模塊。 模塊功能單一化,可使軟件設(shè)計獲得最大的益處。 便于軟件的修改。 易于開發(fā)和維護。 加強了代碼的可重用性。2. 正交軟件體系結(jié)構(gòu)的優(yōu)點是什么? 層次結(jié)構(gòu)清晰,便于理解。 可移植性強,重用粒度大。 易修改,可維護性強。.3. 三層 C/S 結(jié)構(gòu)的組成1) 表示層: 用戶接口部分,擔負著用戶與應(yīng)用間的對話功能。2) 功能層: 相當于應(yīng)用的本體,將具體的業(yè)務(wù)
18、處理邏輯程序。3)數(shù)據(jù)層: 數(shù)據(jù)庫管理系統(tǒng),負責管理對數(shù)據(jù)庫數(shù)據(jù)的讀/ 寫。4. 三層結(jié)構(gòu)設(shè)計的優(yōu)點是什么? 允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨立性。允許更靈活有效地選用相應(yīng)的平臺和硬件系統(tǒng),使之在處理負荷能力上與處理特性上分別適應(yīng)于結(jié)構(gòu)清晰的三層;并且這些平臺和各個組成部分可以具有良好的可升級性和開放性 。 三層 C/S 結(jié)構(gòu)中,應(yīng)用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言。 允許充分利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫工具或黑客手段去非法地訪問數(shù)據(jù)層。5.B/S 體系結(jié)構(gòu)的不足之處 ? 缺乏對動態(tài)頁面的支持能力,數(shù)據(jù)庫
19、處理能力差。 系統(tǒng)擴展能力差,安全性難以控制。 響應(yīng)速度遠低于C/S 體系結(jié)構(gòu)。 數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動態(tài)交互性不強,不利于在線事務(wù)處理( OLTP)應(yīng)用。6.C/S 、B/S 混合結(jié)構(gòu)的特點是什么?1) B/S 與 C/S 混合結(jié)構(gòu)是一種典型的異構(gòu)系統(tǒng)。2) C/S 與 B/S 混合結(jié)構(gòu)的優(yōu)點: 外部用戶不直接訪問數(shù)據(jù)庫服務(wù)器,能保證企業(yè)數(shù)據(jù)庫的相對安全。企業(yè)內(nèi)部用戶的交互性較強,數(shù)據(jù)查詢和修改的響應(yīng)速度較快。3) C/S 與 B/S 混合結(jié)構(gòu)的缺點: 企業(yè)外部用戶修改和維護數(shù)據(jù)時,速度較慢,較煩瑣,數(shù)據(jù)的動態(tài)交互性不強。7. 列出幾種主要的菜單類型 ? 固定菜單 活動菜單 “彈
20、出式 ”菜單 “下拉式 ”菜單8. 活動菜單的優(yōu)點是什么?1) 不占用顯示工作空間,2) 可以根據(jù)用戶當前所處的操作狀態(tài)和要求動態(tài)出現(xiàn)。3) 需要注意的是不能濫用彈出菜單。4.3 思考題1.DBMS有哪些基本功能?1) 建立數(shù)據(jù)庫的結(jié)構(gòu);2) 管理用戶的數(shù)據(jù)庫;3) 提供在數(shù)據(jù)庫上的各種操作;4) 提供數(shù)據(jù)庫對外的各種接口;2.DB、DBMS有何不同?在人們的交流中,習(xí)慣上常常將數(shù)據(jù)庫和 DBMS混為一談,不加區(qū)別。所以要根據(jù)不同場合、不同習(xí)慣、以及上下文來分析,所講的 “數(shù)據(jù)庫 ”三個字,到底是指.數(shù)據(jù)庫,還是指DBMS。3.DBMS提供的三種語言是什么? DDL(數(shù)據(jù)庫定義語言):如: C
21、REATE, ALTER,DROP; DML(數(shù)據(jù)庫操作語言):如: SELECT, UPDATE,INSERT,DELETE; DCL(數(shù)據(jù)庫控制語言):如: LOCK、UNLOCK;4. 四個表指的是什么?1) 基本表: 存放原始數(shù)據(jù)的表。2) 代碼表: 存放信息代碼數(shù)據(jù)的表。3) 中間表: 存放統(tǒng)計數(shù)據(jù)的表。4) 臨時表: 存放臨時數(shù)據(jù)的表。5. 基本表的性質(zhì)有哪些?為什么? 原子性。 基本表中的字段是不可再分解的。 原始性。 基本表中的記錄是原始數(shù)據(jù)(基礎(chǔ)數(shù)據(jù))的記錄。 演繹性。 由基本表與代碼表中的數(shù)據(jù),可以派生出所有的輸出數(shù)據(jù)。 穩(wěn)定性。 基本表的結(jié)構(gòu)是相對穩(wěn)定的,表中的記錄是需要
22、長期保存的。6. 怎樣正確認識“數(shù)據(jù)冗余”?1) 主鍵與外鍵在多表中的重復(fù)出現(xiàn) , 不屬于數(shù)據(jù)冗余, 這個概念必須清楚,事實上有許多人還不清楚。2) 非鍵字段的重復(fù)出現(xiàn) , 才是數(shù)據(jù)冗余, 而且是一種低級冗余,即重復(fù)性的冗余。3) 高級冗余不是字段的重復(fù)出現(xiàn), 而是字段的派生出現(xiàn)。第五章結(jié)構(gòu)化軟件實現(xiàn)1. 代碼設(shè)計的主要原則是什么?1) 使用語言中的 順序、選擇、重復(fù) 等有限的基本控制結(jié)構(gòu)表示程序邏輯。2) 選用的控制結(jié)構(gòu)只準許有 一個入口和一個出口 。3) 程序語句組成 容易識別的塊 ,每塊只有一個入口和一個出口。4) 復(fù)雜結(jié)構(gòu)應(yīng)該用 基本控制結(jié)構(gòu) 進行組合嵌套來實現(xiàn)。2. 編程規(guī)范包括哪些
23、內(nèi)容?3. 良好的代碼設(shè)計風(fēng)格包括哪些內(nèi)容?4. 代碼語句設(shè)計應(yīng)遵從哪些原則?1) 在一行內(nèi)只寫一條語句: 采取適當?shù)囊菩懈袷?,使程序的邏輯和功能變得更加明確。在一行內(nèi)寫多個語句會使程序可讀性變差。2) 程序編寫清晰性第一: 不要刻意追求技巧性,使程序編寫得過于緊湊。3) 程序要能直截了當?shù)卣f明程序員的用意:程序編寫要簡單,清楚,直截了當?shù)卣f明程序員的用意。4) 清晰第一,效率第二: 不要為了追求效率而喪失了清晰性。事實上,程序效率的提高主要應(yīng)通過選擇高效的算法來實現(xiàn)。5) 先保證程序正確 , 再要求提高速度。6) 避免使用臨時變量而使可讀性下降。7) 讓編譯程序做簡單的優(yōu)化。8) 盡可能使用
24、庫函數(shù)和構(gòu)件。9) 避免不必要的轉(zhuǎn)移: 盡量不用 GO TO語句。10) 盡量采用三種基本的控制結(jié)構(gòu)編寫程序。.11) 避免使用空的 ELSE語句和 IF THEN IF 的語句。 這種結(jié)構(gòu)容易使讀者產(chǎn)生誤解。可能產(chǎn)生二義性問題。12) 避免采用過于復(fù)雜的條件測試。13) 盡量減少使用“否定”條件的條件語句。14) 盡量用通俗易懂的偽碼來描述程序的流程: 然后再翻譯成必須使用的語言。15) 數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡化。16) 要模塊化: 使模塊功能盡可能單一化, 模塊間的耦合能夠清晰可見。17) 利用信息隱蔽: 確保每一個模塊的獨立性。18) 從數(shù)據(jù)出發(fā)構(gòu)造程序。19) 修補不好的程序, 要重
25、新編寫:也不要一味地追求代碼的復(fù)用, 要重新組織。20) 大的程序要分塊編寫和測試: 然后再集成。21) 對遞歸定義的數(shù)據(jù)結(jié)構(gòu)盡量使用遞歸過程。5.I/O代碼設(shè)計的原則是什么? 輸入數(shù)據(jù)要檢驗: 識別錯誤的輸入,以保證每個數(shù)據(jù)的有效性; 檢查輸入項的各種重要組合的合理性:必要時報告輸入狀態(tài)信息; 輸入的步驟和操作盡可能簡單:并保持簡單的輸入格式; 應(yīng)允許使用自由格式輸入數(shù)據(jù); 應(yīng)允許缺省值; 批數(shù)據(jù)輸入時,使用輸入結(jié)束標志:而不要由用戶指定輸入數(shù)據(jù)數(shù)目;交互式輸入時,屏幕上使用提示符明確提示輸入的請求: 指明可使用選擇項的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也要在屏幕上給出狀
26、態(tài)信息; 程序設(shè)計語言對I/O 格式有嚴格要求時,應(yīng) 保持輸入格式與輸入語句要求的一致性; 輸出加注解, 并設(shè)計輸出報表格式。6. 軟件效率應(yīng)該以什么為準 ? 軟件需求7. 程序的效率與哪些因素有關(guān) ?程序的效率是指程序的 執(zhí)行速度 及程序所需占用的內(nèi)存的 存儲空間 。討論程序效率的準則:1) 效率性能要求,應(yīng)在需求分析階段給出。 軟件效率以需求為準 ,不應(yīng)以人力所及為準。好的設(shè)計可以提高效率。2) 程序的效率與程序的簡單性相關(guān) 。3) 一般說來,任何對效率無重要改善,且對程序的簡單性、可讀性和正確性不利的程序設(shè)計方法都是不可取的。8. 詳細設(shè)計向代碼設(shè)計轉(zhuǎn)換過程的指導(dǎo)原則是什么?1)盡可能簡
27、化有關(guān)的算術(shù)表達式和邏輯表達式;2)檢查算法中的嵌套的循環(huán),盡可能將某些語句或表達式移到循環(huán)外面;3)盡量避免使用多維數(shù)組;4)盡量避免使用指針和復(fù)雜的表;5)采用“快速”的算術(shù)運算;6)不要混淆數(shù)據(jù)類型,避免在表達式中出現(xiàn)類型混雜;7)盡量采用整數(shù)算術(shù)表達式和布爾表達式;8)選用等效的高效率算法;.9. 影響存儲器效率的因素是什么 ?1)存儲效率與OS的分頁功能直接有關(guān)。2)采用結(jié)構(gòu)化程序設(shè)計。3)提高存儲器效率的關(guān)鍵是程序的簡單性。10. 提高 I/O 設(shè)備效率的指導(dǎo)原則有哪些 ?1) I/O 的請求應(yīng)當最小化;2) 對于所有的I/O 操作,安排適當?shù)木彌_區(qū),以減少頻繁的信息交換。3) 對
28、輔助存儲 ( 例如磁盤 ) ,選擇盡可能簡單的,可接受的存取方法;4) 對輔助存儲的I/O ,應(yīng)當成塊傳送;5) 對終端或打印機的I/O ,應(yīng)考慮設(shè)備特性,盡可能改善I/O 的質(zhì)量和速度;6) 任何不易理解的,對改善輸入/ 輸出效果關(guān)系不大的措施都是不可取的;7) 任何不易理解的所謂“超高效”的I/O 毫無價值;11. 提示信息分哪幾類 ?1)引導(dǎo)性提示信息:該類提示信息一般在需要用戶干預(yù)時出現(xiàn),要求用戶決定下一步的操作。如在退出時提示“修改的數(shù)據(jù)尚未存盤,存盤否?”。使用MessageBox進行提示。2) 錯誤性提示信息: 該類提示信息一般在軟件運行出錯時出現(xiàn),告訴用戶軟件遇到了問題。如“系
29、統(tǒng)運行出現(xiàn)故障,請與系統(tǒng)管理員聯(lián)系!”。3) 狀態(tài)性提示信息:該類提示信息一般在軟件處于“忙”狀態(tài)下提示,告訴用戶軟件正在進行什么操作,讓用戶耐心等待。如“正在進行數(shù)據(jù)傳輸,請稍待 ”。4) 位置性提示信息 :該類提示信息一般根據(jù)鼠標的位置進行提示,告訴用戶鼠標正指向什么功能。如“報表打印”。12. 軟件實現(xiàn)過程由哪些文檔的組成? 源程序清單用戶使用手冊用戶安裝手冊系統(tǒng)管理員手冊13. 軟件實現(xiàn)過程包括哪些管理文檔 ? 用戶指南評審報告模塊源程序行統(tǒng)計表(行/ 模塊名)源程序工作量統(tǒng)計表(行/ 人天)5.2 思考題1. 軟件測試的原則? 軟件測試應(yīng)當 盡早和不斷地進行 。 程序員應(yīng) 避免檢查自
30、己 的程序。 設(shè)計測試即應(yīng)包括合理的、還應(yīng)包括不合理的輸入條件。 經(jīng)驗表明, 測試后程序中殘存的錯誤數(shù)目與該程序中已發(fā)現(xiàn)的錯誤數(shù)目成正比。 妥善保存測試計劃, 測試用例,出錯統(tǒng)計和最終分析報告,為維護提供方便。2. 軟件測試的最初定義 ?1) 軟件測試是測試中的特例,它的測試對象是 人類的智力產(chǎn)品 - 軟件2) 最初定義: “軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。”3. 軟件測試的經(jīng)典定義 ?測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;.一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。4. 測試的目的?1) 以最少的時間和人力,系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。2) 能夠證明軟件的功能和性能與需求說明相符合。3) 測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。4) 測試不能表明軟件中不存在錯誤,它只能說明軟件中存在錯誤。 5. 黑盒測試的優(yōu)點?對于較大的代碼單元來說,黑盒測試比白盒測試效率要高;測試人員不需要了解實現(xiàn)的細節(jié),包括特定的編程語言;從用戶的角度進行測試,容易被理解和接受;有助于暴露任何規(guī)格不一致或有歧義的問題;6. 黑盒測試的缺點?要測試每個可能的輸入流幾乎是不可能的;會有很多程序路徑?jīng)]有被測試到;不能直接針對特定程序段測試,因此可能隱藏更多的問題。7. 白盒測試的優(yōu)點? 迫使測試人員去仔細思考
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)場所照明工程安裝合同書
- 租車入股合同協(xié)議書模板
- 物業(yè)服務(wù)終止合同協(xié)議書
- 汽車轉(zhuǎn)租他人合同協(xié)議書
- 批墻合同協(xié)議書圖片
- 勞動合同和社保協(xié)議書
- 《2025年終止合同的辦理流程》
- 運輸協(xié)議書和運輸合同
- ktv管理合同協(xié)議書
- 環(huán)保工作合同協(xié)議書范本
- JJG 966-2010手持式激光測距儀
- GB/T 26659-2011鑄造用再生硅砂
- GB/T 21558-2008建筑絕熱用硬質(zhì)聚氨酯泡沫塑料
- GB/T 18494.1-2014變流變壓器第1部分:工業(yè)用變流變壓器
- GA/T 1698-2019法庭科學(xué)復(fù)制印章印文檢驗指南
- 醫(yī)師多機構(gòu)備案申請審核表
- 中青班結(jié)業(yè)論文
- 畢業(yè)設(shè)計(論文)-六輥管材矯直機設(shè)計
- 天津科技大學(xué) 分子生物學(xué) 名詞解釋
- 患者跌倒的預(yù)防及管理課件
- 藥物的鎮(zhèn)痛作用(實驗2)
評論
0/150
提交評論