




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章1.軟件的特點(diǎn)是什么? 軟件是邏輯實(shí)體;具有抽象性;軟件的形態(tài)不可見 軟件的生產(chǎn)過程和生產(chǎn)方式與硬件不同。 軟件與硬件的維護(hù)方式不同。 軟件是復(fù)雜的。 軟件成本越來越高。2. 2006年發(fā)布的國家分類標(biāo)準(zhǔn)是什么?1)按功能:系統(tǒng)軟件、支撐軟件、應(yīng)用軟件2)按規(guī)模:微型軟件、小型軟件、大型軟件、甚大型軟件、極大型軟件3)按工作方式:實(shí)時處理軟件、分時軟件、交互式軟件、批處理軟件4)按服務(wù)對象:項(xiàng)目軟件、產(chǎn)品軟件5)按使用頻度:使用頻度低、使用頻度高6)按失效影響:不良影響、嚴(yán)重影響3.軟件危機(jī)的表現(xiàn)有哪些? 進(jìn)度難以預(yù)測 成本難以控制 功能難以滿足用戶 質(zhì)量無法保證 產(chǎn)品難以維護(hù) 缺少適當(dāng)
2、的文檔4.產(chǎn)生軟件危機(jī)的原因是什么? 用戶需求不明確 缺乏正確的理論指導(dǎo) 軟件開發(fā)規(guī)模越來越大 軟件開發(fā)復(fù)雜度越來越高注:(1和2是主觀:開發(fā)方法不正確;3和4客觀:邏輯部件規(guī)模龐大)5.什么是軟件工程三要素?方法、工具、過程6.軟件工程的基本目標(biāo)是什么? 付出較低的開發(fā)成本 達(dá)到要求的軟件功能 取得較好的軟件性能 開發(fā)的軟件易于移植 需要較低的維護(hù)費(fèi)用 能按時完成開發(fā)工作,及時交付使用7.軟件工程的基本原則是什么? 抽象:采用分層次抽象,自頂向下、逐層細(xì)化的辦法控制軟件開發(fā)過程的復(fù)雜性。 信息隱蔽:將模塊設(shè)計成“黑箱”,實(shí)現(xiàn)的細(xì)節(jié)隱藏在模塊內(nèi)部,不讓模塊的使用者直接訪問。這就是信息封裝,使用
3、與實(shí)現(xiàn)分離的原則。 模塊化:如C語言程序中的函數(shù)過程,C+ 語言程序中的類。模塊化有助于信息隱蔽和抽象,有助于表示復(fù)雜的系統(tǒng)。 局部化:要求在一個物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算機(jī)資源,保證模塊之間具有松散的耦合,模塊內(nèi)部具有較強(qiáng)的內(nèi)聚。這有助于控制解的復(fù)雜性。 確定性:軟件開發(fā)過程中所有概念的表達(dá)應(yīng)是確定的、無歧義性的、規(guī)范的。 一致性:整個軟件系統(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)不丟失任何重要成分,可以完全實(shí)現(xiàn)系統(tǒng)所要求功能的程
4、度。為了保證系統(tǒng)的完備性,在軟件開發(fā)和運(yùn)行過程中需要嚴(yán)格的技術(shù)評審。 可驗(yàn)證性:開發(fā)大型的軟件系統(tǒng)需要對系統(tǒng)自頂向下、逐層分解。系統(tǒng)分解應(yīng)遵循系統(tǒng)易于檢查、測試、評審的原則,以確保系統(tǒng)的正確性。8.軟件工程的基本原理是什么? 用分階段的生命周期嚴(yán)格管理; 堅持進(jìn)行階段評審; 實(shí)行嚴(yán)格的產(chǎn)品控制; 采用現(xiàn)代程序設(shè)計技術(shù); 結(jié)果應(yīng)能清楚地審查; 開發(fā)小組人員應(yīng)少而精; 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。9.瀑布模型有什么特點(diǎn)?1)其核心思想是按工序?qū)栴}簡單化2)采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實(shí)現(xiàn)以物理實(shí)現(xiàn)分開。3)瀑布型將軟件生命周期劃分為軟件計劃、需求分析和定義(前兩者為定義階段)、軟件設(shè)計
5、、軟件編碼、軟件測試(前面為開發(fā)階段)、軟件運(yùn)行維護(hù)(最后一個為維護(hù)階段)6個階段。9.瀑布模型有什么特點(diǎn)?1) 最早出現(xiàn)的軟件開發(fā)模型,它提供了軟件開發(fā)的基本框架。2) 瀑布模型的本質(zhì)是一次通過,即每個活動只執(zhí)行一次,最后得到軟件產(chǎn)品。3) 瀑布模型有利于大型軟件開發(fā)過程中人員的組織及管理,有利于軟件開發(fā)方法和工具的研究與使用,從而提高了大型軟件項(xiàng)目開發(fā)的質(zhì)量和效率。4) 里程碑或基線驅(qū)動,或者說文檔驅(qū)動;瀑布模型的缺陷: 由于開發(fā)模型呈線性,所以當(dāng)開發(fā)成果尚未經(jīng)過測試時,用戶無法看到軟件的效果。這樣軟件與用戶見面的時間間隔較長,也增加了一定的風(fēng)險。 在軟件開發(fā)前期末發(fā)現(xiàn)的錯誤傳到后面的開發(fā)
6、活動中時,可能會擴(kuò)散,進(jìn)而可能會造成整個軟件項(xiàng)目開發(fā)失敗。 在軟件需求分析階段,完全確定用戶的所有需求是比較困難的,甚至可以說是不太可能的。 瀑布模型即生存周期模型,其核心思想是按工序?qū)栴}化簡,將功能的實(shí)現(xiàn)與設(shè)計分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開。瀑布模型將軟件生命周期劃分為軟件計劃、需求分析和定義、軟件設(shè)計、軟件編碼、軟件測試、軟件運(yùn)行維護(hù)6個階段,規(guī)定了他們自上而下、相互銜接的固定次序,如同瀑布流水逐級下落。10.說明生命周期的劃分?瀑布型將軟件生命周期劃分為軟件計劃、需求分析和定義(前兩者為定義階段)、軟件設(shè)計、軟件編碼、軟件測試(前面為開發(fā)階段)
7、、軟件運(yùn)行維護(hù)(最后一個為維護(hù)階段)6個階段。10.說明生命周期的劃分?一個軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄,所經(jīng)歷的生存過程稱為軟件生存期或叫生命期。包括計劃、需求分析、軟件計劃、程序編碼、軟件測試和運(yùn)行維護(hù)6各階段。11.列出軟件生存期的幾個主要模型?· 瀑布模型· 原型模型· 螺旋模型· 增量模型· 構(gòu)件組裝模型· 統(tǒng)一過程模型· 第四代技術(shù)12.瀑布模型軟件開發(fā)方法的基本過程?定義階段:計劃、需求分析開發(fā)階段:設(shè)計、編碼、測試維護(hù)階段:運(yùn)行維護(hù)13.增量模型有什么特點(diǎn)?Ø 任務(wù)或功能模塊驅(qū)動,可
8、以分階段提交產(chǎn)品;Ø 有多個任務(wù)單,這些多個任務(wù)單的集合,構(gòu)成項(xiàng)目的一個總?cè)蝿?wù)書(總用戶需求報告)。13.增量模型有什么特點(diǎn)?1) 融合了線性順序模型的基本成份和原型實(shí)現(xiàn)模型的迭代特征。2) 增量模型采用隨著日程時間的進(jìn)展而交錯的線性序列。每一個線性序列產(chǎn)生軟件的一個可發(fā)布的“增量”。3) 增量模型強(qiáng)調(diào)每一個增量均發(fā)布一個可操作產(chǎn)品。早期的增量是最終產(chǎn)品的“可拆卸”版本,但他們確實(shí)提供了給用戶服務(wù)的功能,并且提供了給用戶評估的平臺。將軟件產(chǎn)品看作一組增量構(gòu)件,每次設(shè)計、實(shí)現(xiàn)、集成、測試和交付一塊構(gòu)件,直到所有構(gòu)件全部實(shí)現(xiàn)為止。特點(diǎn):1) 任務(wù)或功能模塊驅(qū)動,可以分階段提交產(chǎn)品;2)
9、有多個任務(wù)單,這些多個任務(wù)單的集合,構(gòu)成項(xiàng)目的一個總?cè)蝿?wù)書(總用戶需求報告)。14.幾種主要的軟件開發(fā)方法? 結(jié)構(gòu)化開發(fā)方法 面向?qū)ο蟮姆椒?5.軟件工程中的“五個面向”?面向流程分析、面向數(shù)據(jù)設(shè)計、面向?qū)ο髮?shí)現(xiàn)、面向功能測試、面向過程管理。第二章 1.可行性分析的目的?1)用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。2)確定問題是否能夠解決和值得解決。3)分析可能的利弊關(guān)系。2.可行性分析最為敏感的方面是什么? 經(jīng)濟(jì)可行性:經(jīng)濟(jì)效益能否超過開發(fā)成本? 技術(shù)可行性:現(xiàn)有技術(shù)能否實(shí)現(xiàn)?技術(shù)風(fēng)險的各種因素? 操作可行性:用戶的接受程度如何? 法律可行性:是否合法,是否侵犯他人的利益。3.可
10、行性研究的步驟有哪些? 系統(tǒng)調(diào)研(復(fù)查系統(tǒng)規(guī)模和目標(biāo)) 現(xiàn)行系統(tǒng)分析(研究目前正在使用的系統(tǒng)) 建議新系統(tǒng)(導(dǎo)出新系統(tǒng)的高層邏輯模型) 模型評審(重新定義問題) 導(dǎo)出和評價可供選擇的解決方案 推薦一個方案并說明理由 推薦行動方針 書寫文檔提交審查(可行性分析報告)4.軟件計劃的步驟有哪些? 估計軟件的規(guī)模及所需的資源; 制定時間表; 鑒別和評估風(fēng)險; 約定與限制條件。5.軟件計劃書的內(nèi)容有哪些? 軟件范圍 環(huán)境資源 進(jìn)度安排 成本/效益分析 其它要考慮的因素6.甘特圖有哪些優(yōu)點(diǎn)和缺點(diǎn)?甘特圖:是一種對各項(xiàng)活動進(jìn)行計劃調(diào)度與控制的圖表。橫向表示時間,縱向列出任務(wù)。優(yōu)點(diǎn):它具有簡單、醒目和便于編制
11、等特點(diǎn)。能夠動態(tài)反映軟件項(xiàng)目開發(fā)進(jìn)展的情況。缺點(diǎn):難以反映多個任務(wù)之間存在的復(fù)雜的邏輯關(guān)系。7.什么是網(wǎng)絡(luò)計劃法的關(guān)鍵事件與關(guān)鍵路徑?Ø 關(guān)鍵事件:最早完成時間與最遲完成時間相等的事件。Ø 關(guān)鍵路徑:關(guān)鍵事件聯(lián)結(jié)的各個活動所組成的路線。8.常用的成本估算方法有哪些?(1)基于代碼行的成本估算方法(2)任務(wù)分解成本估算 (3)經(jīng)驗(yàn)統(tǒng)計估算模型 參數(shù)方程 動態(tài)多變量參數(shù)模型 COCOMO模型(constructive Cost Model)自動估算工具 9.軟件成本估算包括哪些內(nèi)容?工作產(chǎn)品規(guī)模估計工作量及成本估計關(guān)鍵資源的量化估計10.項(xiàng)目活動和項(xiàng)目約定計劃指的是什么?
12、16; 活動指開發(fā)活動和管理活動;Ø 約定指各種規(guī)范、標(biāo)準(zhǔn)、規(guī)則;Ø 規(guī)范:是對過程和行為的約束;Ø 標(biāo)準(zhǔn):是對產(chǎn)品的約束;Ø 規(guī)則或規(guī)程:是對操作的約束。第三章1.為什么說需求獲取難? 用戶需求具有動態(tài)性(不穩(wěn)定性)。 用戶需求具有模糊性(不準(zhǔn)確性)。 對需求達(dá)成一致的艱難性。 管理體制、機(jī)構(gòu)設(shè)置處在變革中。 軟件書籍沒有將需求分析講清楚。2.需求分析的重點(diǎn)是哪些? 業(yè)務(wù)模型、 功能模型、 性能模型、 接口模型。3.需求分析的9大任務(wù)是什么? 畫出系統(tǒng)的組織結(jié)構(gòu)圖、列出各部門的崗位角色(機(jī)構(gòu)模型)。 畫出系統(tǒng)業(yè)務(wù)操作流程圖。 畫出系統(tǒng)的數(shù)據(jù)流圖,掌握業(yè)
13、務(wù)規(guī)則,獲得初步數(shù)據(jù)模型。 列出系統(tǒng)的功能點(diǎn),即功能模型。 列出系統(tǒng)的性能點(diǎn),即性能模型。 列出系統(tǒng)的接口,即接口模型。 確定系統(tǒng)的運(yùn)行環(huán)境,即環(huán)境模型。 確定系統(tǒng)的界面約定,即界面模型。 對開發(fā)工期、費(fèi)用、開發(fā)進(jìn)度、系統(tǒng)風(fēng)險等分析與評估。4.簡述需求分析的過程?· 問題識別· 分析與綜合· 編制需求分析階段文檔· 需求分析評審5.獲取需求的常用方法有哪些? 訪談/個別訪問:正式的和非正式的訪談 問卷調(diào)查/書面調(diào)查 :發(fā)電子郵件、問卷調(diào)查即把需要調(diào)查的內(nèi)容制成表格交給用戶填寫。該方法對需要調(diào)查大量人員的意見時,十分有效。 情景分析/電話和電視會議:對目標(biāo)
14、系統(tǒng)解決某個具體問題的方法和結(jié)果,給出可能的情景描述,以獲知用戶的具體需求。 實(shí)地考察/收集資料:開調(diào)查會參加業(yè)務(wù)實(shí)踐 構(gòu)造原型6.需求分析的原則是什么? 解決邏輯問題:需求分析是對問題的識別和說明,要回答“做什么”,而不是“怎么做”。 以運(yùn)行環(huán)境為基礎(chǔ):需求分析工作應(yīng)以具體的運(yùn)行環(huán)境為基礎(chǔ),實(shí)事求是 。 用戶參與的原則:需求分析工作是系統(tǒng)分析人員同用戶不斷交互的過程。 構(gòu)造高質(zhì)量的需求規(guī)格說明:需求規(guī)格說明是需求分析工作重要的完成標(biāo)志。 7.需求分析的基本要求是什么? 理解問題的數(shù)據(jù)域和功能域 自頂向下、逐層分解 給出系統(tǒng)的邏輯視圖和物理視圖8.常見的需求分析方法有哪些?需求獲取、分析建模、
15、文檔編寫、需求驗(yàn)證;8.常見的需求分析方法有哪些? 面向數(shù)據(jù)流的分析方法 面向功能的分析方法 面向數(shù)據(jù)的Jackson方法 面向?qū)ο蟮姆治龇椒?.需求分析方法有哪些共性?1.支持?jǐn)?shù)據(jù)域的分析機(jī)制2.功能表示方法3.接口的定義4.問題的分解及抽象化5.邏輯視圖和物理視圖6.系統(tǒng)抽象模型4.1思考題1.軟件設(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) 詳細(xì)設(shè)計2.什么是數(shù)據(jù)的保護(hù)性設(shè)計?1)防衛(wèi)性設(shè)計:在軟件設(shè)計中就插入自動檢錯,報錯和糾錯的功能2)一
16、致性設(shè)計: 在并發(fā)處理過程中使用封鎖和解除封鎖機(jī)制保持?jǐn)?shù)據(jù)不被破壞3)冗余性設(shè)計:3.軟件設(shè)計的目標(biāo)是什么?軟件設(shè)計的最終目標(biāo):取得最佳方案 節(jié)省開發(fā)費(fèi)用、 降低資源消耗、 縮短開發(fā)時間、 能夠贏得較高的生產(chǎn)效率、 較高的可靠性、 可維護(hù)性的方案。4. 模塊具有哪些基本屬性?“模塊”,又稱“組件”。一般有四個基本屬性Ø 功能:描述該模塊做什么?Ø 邏輯:描述模塊內(nèi)部怎么做?Ø 狀態(tài):模塊使用時的環(huán)境和條件。Ø 接口:指模塊的輸入與輸出。5.什么是耦合?什么是內(nèi)聚?如何增強(qiáng)模塊的獨(dú)立性?Ø 耦合:各模塊之間的互相連接的緊密程度。模塊之間的連接越緊
17、密,聯(lián)系越多,耦合性就越高,而其獨(dú)立性就越弱。Ø 內(nèi)聚:模塊內(nèi)各功能元素彼此結(jié)合的緊密程度。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高,相對地,它與其它模塊之間的耦合性就會減低,而模塊獨(dú)立性就越強(qiáng)。Ø 增強(qiáng)模塊獨(dú)立性的方法是盡量做到高內(nèi)聚、低耦合。6.模塊化的特征有哪些?Ø 抽象:用層次的方式構(gòu)造和分析復(fù)雜系統(tǒng)。Ø 逐步求精:幫助開發(fā)人員把精力集中在與當(dāng)前開發(fā)階段最相關(guān)的那些問題上。Ø 信息隱蔽:如果一個模塊內(nèi)包含的信息(過程和數(shù)據(jù)) 不允許外部的模塊訪問的話,其它模塊不能對其訪問。Ø 局部化:把一些關(guān)系密切的軟件元素物
18、理地放得彼此靠近。7.影響耦合度的因素有哪些? 連接方式的類型。 接口的復(fù)雜性。 傳送的信息流類型。 耦合的時間。8.降低耦合度的方法有哪些? 耦合度是評價程序質(zhì)量的重要指標(biāo),耦合度越小,則每個模塊越容易獨(dú)立地被理解、編寫和修改,同時每個模塊的錯誤越不容易擴(kuò)散蔓延到其他模塊。 對需要了解的內(nèi)容,隱含的改為明顯的,便于理解; 連接的方式盡量標(biāo)準(zhǔn)化,避免直接引用; 減少公共區(qū),將公共區(qū)劃分為若干個邏輯子區(qū); 輸入輸出應(yīng)局限在少量模塊,不要分散在全系統(tǒng);9.軟件結(jié)構(gòu)設(shè)計優(yōu)化的準(zhǔn)則是什么?1) 劃分模塊時,盡量做到高內(nèi)聚、低耦合,保持模塊相對獨(dú)立性。模塊劃分的準(zhǔn)則:“將相關(guān)的各部分放在一起,無關(guān)的東西
19、不要放在一起?!?2) 模塊的大小要適中。3) 模塊的接口要簡單、清晰、含義明確。便于理解,易于實(shí)現(xiàn)、易于測試和維護(hù)。4) 一個模塊的作用范圍應(yīng)在其控制范圍之內(nèi)。且判定所在的模塊,應(yīng)與受其影響的模塊在層次上盡量靠近。5) 軟件結(jié)構(gòu)的深度、寬度、扇入、扇出應(yīng)適當(dāng)。6) 力求設(shè)計單入口和單出口的模塊。避免“病態(tài)連接”,以防止內(nèi)容耦合。 7) 設(shè)計功能可預(yù)測模塊的劃分,應(yīng)防止功能過分局限。 4.2思考題1.結(jié)構(gòu)化設(shè)計的優(yōu)點(diǎn)是什么? 減少設(shè)計復(fù)雜性。將大化小,使復(fù)雜問題簡單化。 結(jié)構(gòu)獨(dú)立。將程序劃分成多個相對獨(dú)立的模塊。 模塊功能單一化,可使軟件設(shè)計獲得最大的益處。 便于軟件的修改。 易于開發(fā)和維護(hù)。
20、 加強(qiáng)了代碼的可重用性。3.正交軟件體系結(jié)構(gòu)的優(yōu)點(diǎn)是什么? 層次結(jié)構(gòu)清晰,便于理解。 可移植性強(qiáng),重用粒度大。 易修改,可維護(hù)性強(qiáng)。 4.三層C/S結(jié)構(gòu)的組成Ø 表示層:用戶接口部分,擔(dān)負(fù)著用戶與應(yīng)用間的對話功能。 Ø 功能層:相當(dāng)于應(yīng)用的本體,將具體的業(yè)務(wù)處理邏輯程序。 Ø 數(shù)據(jù)層:數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)管理對數(shù)據(jù)庫數(shù)據(jù)的讀/寫。 5.三層結(jié)構(gòu)設(shè)計的優(yōu)點(diǎn)是什么? 允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨(dú)立性。 允許更靈活有效地選用相應(yīng)的平臺和硬件系統(tǒng),使之在處理負(fù)荷能力上與處理特性上分別適應(yīng)于結(jié)構(gòu)清晰的三層;并且這些平臺和各個組成部分可以具有良好的可升
21、級性和開放性 。 三層C/S結(jié)構(gòu)中,應(yīng)用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言。 允許充分利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫工具或黑客手段去非法地訪問數(shù)據(jù)層 。6.B/S體系結(jié)構(gòu)的不足之處? 缺乏對動態(tài)頁面的支持能力,數(shù)據(jù)庫處理能力差。 系統(tǒng)擴(kuò)展能力差,安全性難以控制。 響應(yīng)速度遠(yuǎn)低于C/S體系結(jié)構(gòu)。 數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動態(tài)交互性不強(qiáng),不利于在線事務(wù)處理(OLTP)應(yīng)用。7.C/S、B/S混合結(jié)構(gòu)的特點(diǎn)是什么?Ø B/S與C/S混合結(jié)構(gòu)是一種典型的異構(gòu)系統(tǒng)。Ø C/S與B/S混合結(jié)構(gòu)的優(yōu)點(diǎn):外部用戶不直
22、接訪問數(shù)據(jù)庫服務(wù)器,能保證企業(yè)數(shù)據(jù)庫的相對安全。企業(yè)內(nèi)部用戶的交互性較強(qiáng),數(shù)據(jù)查詢和修改的響應(yīng)速度較快。 Ø C/S與B/S混合結(jié)構(gòu)的缺點(diǎn):企業(yè)外部用戶修改和維護(hù)數(shù)據(jù)時,速度較慢,較煩瑣,數(shù)據(jù)的動態(tài)交互性不強(qiáng)。8.列出幾種主要的菜單類型? 固定菜單 活動菜單 “彈出式”菜單 “下拉式”菜單 9.活動菜單的優(yōu)點(diǎn)是什么?Ø 不占用顯示工作空間,Ø 可以根據(jù)用戶當(dāng)前所處的操作狀態(tài)和要求動態(tài)出現(xiàn)。Ø 需要注意的是不能濫用彈出菜單。4.3思考題1. DBMS有哪些基本功能?1) 建立數(shù)據(jù)庫的結(jié)構(gòu);2) 管理用戶的數(shù)據(jù)庫;3) 提供在數(shù)據(jù)庫上的各種操作;4) 提供數(shù)
23、據(jù)庫對外的各種接口;2.DB、DBMS有何不同?在人們的交流中,習(xí)慣上常常將數(shù)據(jù)庫和DBMS混為一談,不加區(qū)別。所以要根據(jù)不同場合、不同習(xí)慣、以及上下文來分析,所講的“數(shù)據(jù)庫”三個字,到底是指數(shù)據(jù)庫,還是指DBMS。 2. DBMS提供的三種語言是什么? DDL(數(shù)據(jù)庫定義語言): 如:CREATE,ALTER,DROP; DML(數(shù)據(jù)庫操作語言): 如:SELECT,UPDATE,INSERT,DELETE; DCL(數(shù)據(jù)庫控制語言): 如:LOCK、UNLOCK;3. 四個表指的是什么?分別是:基本表、代碼表、中間表、臨時表4. 基本表的性質(zhì)有哪些?為什么?1) 原子性?;颈碇械淖侄问遣?/p>
24、可再分解的。2) 原始性?;颈碇械挠涗浭窃紨?shù)據(jù)(基礎(chǔ)數(shù)據(jù))的記錄。3) 演繹性。由基本表與代碼表中的數(shù)據(jù),可以派生出所有的輸出數(shù)據(jù)。4) 穩(wěn)定性?;颈淼慕Y(jié)構(gòu)是相對穩(wěn)定的,表中的記錄是需要長期保存的。5. 怎樣正確認(rèn)識“數(shù)據(jù)冗余”?1) 主鍵與外鍵在多表中的重復(fù)出現(xiàn), 不屬于數(shù)據(jù)冗余,這個概念必須清楚,事實(shí)上有許多人還不清楚。2) 非鍵字段的重復(fù)出現(xiàn), 才是數(shù)據(jù)冗余,而且是一種低級冗余,即重復(fù)性的冗余。3) 高級冗余不是字段的重復(fù)出現(xiàn),而是字段的派生出現(xiàn)。 第五章1. 代碼設(shè)計的主要原則是什么?1) 使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯。2) 選用的控制結(jié)構(gòu)只準(zhǔn)許有
25、一個入口和一個出口。3) 程序語句組成容易識別的塊,每塊只有一個入口和一個出口。4)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)。2. 編程規(guī)范包括哪些內(nèi)容?3. 良好的代碼設(shè)計風(fēng)格包括哪些內(nèi)容?1) 規(guī)范化的程序內(nèi)部文檔、2) 數(shù)據(jù)結(jié)構(gòu)的詳細(xì)說明、3) 清晰的語句結(jié)構(gòu)、4)遵守某一編程規(guī)范,內(nèi)容包括:命名規(guī)范、界面規(guī)范、提示及幫助信息規(guī)范、熱鍵定義等。4. 代碼語句設(shè)計應(yīng)遵從哪些原則?1)在一行內(nèi)只寫一條語句:采取適當(dāng)?shù)囊菩懈袷?,使程序的邏輯和功能變得更加明確。在一行內(nèi)寫多個語句會使程序可讀性變差。2) 程序編寫清晰性第一:不要刻意追求技巧性,使程序編寫得過于緊湊。3) 程序要能直截了當(dāng)?shù)卣f
26、明程序員的用意:程序編寫要簡單,清楚,直截了當(dāng)?shù)卣f明程序員的用意。4) 清晰第一,效率第二:不要為了追求效率而喪失了清晰性。事實(shí)上,程序效率的提高主要應(yīng)通過選擇高效的算法來實(shí)現(xiàn)。5) 先保證程序正確, 再要求提高速度。6) 避免使用臨時變量而使可讀性下降。7) 讓編譯程序做簡單的優(yōu)化。8) 盡可能使用庫函數(shù)和構(gòu)件。9) 避免不必要的轉(zhuǎn)移:盡量不用GO TO語句。10) 盡量采用三種基本的控制結(jié)構(gòu)編寫程序。11) 避免使用空的ELSE語句和IF THEN IF的語句。這種結(jié)構(gòu)容易使讀者產(chǎn)生誤解??赡墚a(chǎn)生二義性問題。12) 避免采用過于復(fù)雜的條件測試。13) 盡量減少使用“否定”條件的條件語句。1
27、4)盡量用通俗易懂的偽碼來描述程序的流程:然后再翻譯成必須使用的語言。15)數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡化。16)要模塊化:使模塊功能盡可能單一化,模塊間的耦合能夠清晰可見。17)利用信息隱蔽:確保每一個模塊的獨(dú)立性。18)從數(shù)據(jù)出發(fā)構(gòu)造程序。19)修補(bǔ)不好的程序,要重新編寫:也不要一味地追求代碼的復(fù)用,要重新組織。20)大的程序要分塊編寫和測試:然后再集成。21)對遞歸定義的數(shù)據(jù)結(jié)構(gòu)盡量使用遞歸過程。5. I/O代碼設(shè)計的原則是什么?1) 輸入數(shù)據(jù)要檢驗(yàn):識別錯誤的輸入,以保證每個數(shù)據(jù)的有效性;2) 檢查輸入項(xiàng)的各種重要組合的合理性:必要時報告輸入狀態(tài)信息;3) 輸入的步驟和操作盡可能簡單:并保
28、持簡單的輸入格式;4) 應(yīng)允許使用自由格式輸入數(shù)據(jù);5) 應(yīng)允許缺省值;6)批數(shù)據(jù)輸入時,使用輸入結(jié)束標(biāo)志:而不要由用戶指定輸入數(shù)據(jù)數(shù)目;7)交互式輸入時,屏幕上使用提示符明確提示輸入的請求:指明可使用選擇項(xiàng)的種類和取值范圍。同時,在數(shù)據(jù)輸入的過程中和輸入結(jié)束時,也要在屏幕上給出狀態(tài)信息;8)程序設(shè)計語言對I/O格式有嚴(yán)格要求時,應(yīng)保持輸入格式與輸入語句要求的一致性;9)輸出加注解,并設(shè)計輸出報表格式。10)軟件效率應(yīng)該以什么為準(zhǔn)?6.軟件效率應(yīng)該以什么為準(zhǔn)?6. 答:軟件效率以需求為準(zhǔn)7. 程序的效率與哪些因素有關(guān)?答:程序的效率與程序的簡單性、可讀性和正確性因素有關(guān)。7.程序的效率與哪些因
29、素有關(guān)?程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存的存儲空間。討論程序效率的準(zhǔn)則: 1) 效率性能要求,應(yīng)在需求分析階段給出。軟件效率以需求為準(zhǔn),不應(yīng)以人力所及為準(zhǔn)。好的設(shè)計可以提高效率。2) 程序的效率與程序的簡單性相關(guān)。3) 一般說來,任何對效率無重要改善,且對程序的簡單性、可讀性和正確性不利的程序設(shè)計方法都是不可取的。8. 詳細(xì)設(shè)計向代碼設(shè)計轉(zhuǎn)換過程的指導(dǎo)原則是什么?1)盡可能簡化有關(guān)的算術(shù)表達(dá)式和邏輯表達(dá)式;2)檢查算法中的嵌套的循環(huán),盡可能將某些語句或表達(dá)式移到循環(huán)外面;3)盡量避免使用多維數(shù)組;4)盡量避免使用指針和復(fù)雜的表;5)采用“快速”的算術(shù)運(yùn)算;6)不要混淆數(shù)據(jù)類型,
30、避免在表達(dá)式中出現(xiàn)類型混雜;7)盡量采用整數(shù)算術(shù)表達(dá)式和布爾表達(dá)式;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)當(dāng)最小化;2) 對于所有的I/O操作,安排適當(dāng)?shù)木彌_區(qū),以減少頻繁的信息交換。3) 對輔助存儲(例如磁盤),選擇盡可能簡單的,可接受的存取方法;4) 對輔助存儲的I/O,應(yīng)當(dāng)成塊傳送;5) 對終端或打印機(jī)的I/O,應(yīng)考慮設(shè)備特性,盡可能改善I/O的質(zhì)量和速度;6) 任何不易理解的,對改善輸入/輸出效果關(guān)系
31、不大的措施都是不可取的;7) 任何不易理解的所謂“超高效”的I/O毫無價值;11. 提示信息分哪幾類?1)引導(dǎo)性提示信息:該類提示信息一般在需要用戶干預(yù)時出現(xiàn),要求用戶決定下一步的操作。如在退出時提示“修改的數(shù)據(jù)尚未存盤,存盤否?”。使用MessageBox進(jìn)行提示。2) 錯誤性提示信息:該類提示信息一般在軟件運(yùn)行出錯時出現(xiàn),告訴用戶軟件遇到了問題。如“系統(tǒng)運(yùn)行出現(xiàn)故障,請與系統(tǒng)管理員聯(lián)系!”。3) 狀態(tài)性提示信息:該類提示信息一般在軟件處于“忙”狀態(tài)下提示,告訴用戶軟件正在進(jìn)行什么操作,讓用戶耐心等待。如“正在進(jìn)行數(shù)據(jù)傳輸,請稍待”。4) 位置性提示信息:該類提示信息一般根據(jù)鼠標(biāo)的位置進(jìn)行提
32、示,告訴用戶鼠標(biāo)正指向什么功能。如“報表打印”。12.軟件實(shí)現(xiàn)過程由哪些文檔的組成? 源程序清單 用戶使用手冊 用戶安裝手冊 系統(tǒng)管理員手冊13.軟件實(shí)現(xiàn)過程包括哪些管理文檔? 用戶指南評審報告 模塊源程序行統(tǒng)計表(行/模塊名) 源程序工作量統(tǒng)計表(行/人天)思考題5.21.軟件測試的原則? 軟件測試應(yīng)當(dāng)盡早和不斷地進(jìn)行。 程序員應(yīng)避免檢查自己的程序。 設(shè)計測試即應(yīng)包括合理的、還應(yīng)包括不合理的輸入條件。 經(jīng)驗(yàn)表明,測試后程序中殘存的錯誤數(shù)目與該程序中已發(fā)現(xiàn)的錯誤數(shù)目成正比。 妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。2.軟件測試的最初定義?1) 軟件測試是測試中的特例
33、,它的測試對象是人類的智力產(chǎn)品-軟件 2) 最初定義:“軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。 ”3.軟件測試的經(jīng)典定義? 1)測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;2) 一個好的測試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;3) 一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。4.測試的目的?Ø 以最少的時間和人力,系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。Ø 能夠證明軟件的功能和性能與需求說明相符合。Ø 測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。Ø 測試不能表明軟件中不存在錯誤,它只能說明軟件中存在錯誤。5.黑盒測試的優(yōu)點(diǎn)? 對于較大的代碼單元來說,黑盒測試比白盒測試效率
34、要高; 測試人員不需要了解實(shí)現(xiàn)的細(xì)節(jié),包括特定的編程語言; 從用戶的角度進(jìn)行測試,容易被理解和接受; 有助于暴露任何規(guī)格不一致或有歧義的問題;6.黑盒測試的缺點(diǎn)? 要測試每個可能的輸入流幾乎是不可能的; 會有很多程序路徑?jīng)]有被測試到; 不能直接針對特定程序段測試,因此可能隱藏更多的問題。7.白盒測試的優(yōu)點(diǎn)? 迫使測試人員去仔細(xì)思考軟件的實(shí)現(xiàn); 可以檢測代碼中的每條分支和路徑; 揭示隱藏在代碼中的錯誤; 對代碼的測試比較徹底。8.白盒測試的缺點(diǎn)? 成本昂貴; 忽略了從用戶角度考慮的測試問題;9.測試報告包括哪些內(nèi)容?Ø 測試任務(wù)描述Ø 測試環(huán)境說明Ø 功能測試描述&
35、#216; 性能測試描述Ø 確認(rèn)性測試描述Ø 測試總結(jié)思考題5.31.軟件維護(hù)分類有哪些?糾錯性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù);2.影響軟件維護(hù)的因素有哪些?軟件配置是否完整是影響維護(hù)工作量的重要因素;修改別人的程序增加了維護(hù)的難度;文檔不全的軟件,增加了修改后測試的工作量;軟件結(jié)構(gòu)的不合理,增加了軟件修改的困難;軟件經(jīng)過多個版本的演化,很難追蹤修改的過程;軟件維護(hù)經(jīng)常受挫,降低了該項(xiàng)工作的吸引力。3.軟件維護(hù)有哪些副作用?修改編碼:使編碼更加混亂,程序結(jié)構(gòu)更不清晰,可讀性更差,而且有連鎖反應(yīng)。修改數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)是系統(tǒng)的骨架,修改數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)傷筋動骨的大手
36、術(shù),在數(shù)據(jù)冗余與數(shù)據(jù)不一致方面,可能顧此失彼。修改用戶數(shù)據(jù):需要與用戶協(xié)商,一旦有疏忽,可使系統(tǒng)發(fā)生意外。修改文檔:對非結(jié)構(gòu)化維護(hù)不適應(yīng),對結(jié)構(gòu)化維護(hù)要嚴(yán)防程序與文檔的不匹配。9.什么叫結(jié)構(gòu)化維護(hù)和非結(jié)構(gòu)化維護(hù)?答:結(jié)構(gòu)化維護(hù)的前提是:軟件產(chǎn)品或軟件項(xiàng)目必須有完善的文檔,并且文檔與程序代碼互相匹配。反之為非結(jié)構(gòu)化維護(hù)。10.可維護(hù)性的軟件應(yīng)具備什么性質(zhì)?答:可理解性、可測試性、可修改性、可靠性、可移植性、可使用性、效率11.兩層結(jié)構(gòu)和三層結(jié)構(gòu)的軟件維護(hù)方法有什么不同?12.怎么理解軟件產(chǎn)品的版本號?13.怎么理解UML/CMMI對軟件維護(hù)的影響?Ø 軟件為什么需要維護(hù)?因?yàn)樗绦蛏嫌?/p>
37、缺陷,所以有面向程序的缺陷維護(hù);因?yàn)樗O(shè)計上功能不齊全,所以有面向設(shè)計的功能維護(hù)。Ø 當(dāng)軟件組織達(dá)到CMM3以上時,由于軟件過程的持續(xù)改善,對軟件質(zhì)量的評審和審計活動的加強(qiáng),軟件過程數(shù)據(jù)庫作用的發(fā)揮,關(guān)于“程序上有缺陷”和“設(shè)計上功能不齊全”的情況,將會逐漸減少,所以軟件的維護(hù)工作量也會逐漸減少。Ø 真正維護(hù)工作量大的單位,就是CMM1的軟件組織,因?yàn)樗麄児芾頍o序,文檔不全,工作不規(guī)范,表現(xiàn)形式就是:人治加個人英雄主義。 第一章 軟件工程概述 1軟件的特點(diǎn)Ø 軟件是邏輯實(shí)體;具有抽象性;軟件的形態(tài)不可見; 必須通過觀察、分析、思考、判斷來了解其功能、性能和其它特性
38、。Ø 軟件是人腦思維的產(chǎn)物,其生產(chǎn)過程與硬件不同。 開發(fā)過程的質(zhì)量控制及軟件產(chǎn)品保護(hù)問題。Ø 軟件的開發(fā)和運(yùn)行受計算機(jī)系統(tǒng)限制。 軟件移植問題。Ø 軟件的開發(fā)技術(shù)落后,手工開發(fā)方式仍占統(tǒng)治地位。 開發(fā)效率低。22006年發(fā)布的國家分類標(biāo)準(zhǔn)Ø 獨(dú)立式Ø 組合式Ø 集成式Ø 嵌入式3軟件危機(jī)的表現(xiàn)Ø 對開發(fā)成本和進(jìn)度的估算偏差太大Ø 沒有適當(dāng)?shù)奈臋nØ 軟件成本比重上升Ø 質(zhì)量很不可靠Ø 供不應(yīng)求Ø 用戶很不滿意4產(chǎn)生軟件危機(jī)的原因客觀:軟件本身特點(diǎn)n 邏輯部件n 規(guī)模龐
39、大主觀:不正確的開發(fā)方法n 忽視需求分析n “軟件開發(fā)=程序編寫”的錯誤觀念n 輕視軟件維護(hù)5軟件工程的三要素 方法:為軟件開發(fā)提供了“如何做”的技術(shù)。 工具:為軟件工程方法提供了支撐環(huán)境。 過程:定義了方法使用的順序、要交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理、 軟件開發(fā)各個階段完成的里程碑。6軟件工程項(xiàng)目的基本目標(biāo)Ø 付出較低的開發(fā)成本Ø 達(dá)到要求的軟件功能Ø 取得較好的軟件性能Ø 開發(fā)的軟件易于移植Ø 需要較低的維護(hù)費(fèi)用Ø 能按時完成開發(fā)工作,及時交付使用7軟件工程基本原則抽象 信息隱蔽 模塊化 局部化 確定性 一致性
40、完備性 可驗(yàn)證性8軟件工程的基本原理 用分階段的生命周期嚴(yán)格管理; 堅持進(jìn)行階段評審; 實(shí)行嚴(yán)格的產(chǎn)品控制; 采用現(xiàn)代程序設(shè)計技術(shù); 結(jié)果應(yīng)能清楚地審查; 開發(fā)小組人員應(yīng)少而精; 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。9瀑布模型的特點(diǎn) 里程碑或基線驅(qū)動,或者說文檔驅(qū)動; 過程逆轉(zhuǎn)性很差,或者說不可逆轉(zhuǎn)。10軟件生命周期一個軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄,所經(jīng)歷的生存過程稱為軟件生存期或叫生命期。生命期的劃分:制定計劃 需求分析和定義 軟件設(shè)計 程序編寫 軟件測試 運(yùn)行/維護(hù) 定義階段 開發(fā)階段 維護(hù)階段11軟件生存期的主要模型瀑布模型 原型模型 螺旋模型 增量模型 構(gòu)件組裝模型 統(tǒng)一
41、過程模型 第四代技術(shù)12(好像考過,挺重要的)瀑布模型開發(fā)的基本過程(看書上的圖)定義 計劃階段 需求分析 開發(fā) 設(shè)計階段 編碼 測試 維護(hù) 運(yùn)行、維護(hù)階段13增量模型的特點(diǎn)Ø 任務(wù)或功能模塊驅(qū)動,可以分階段提交產(chǎn)品;Ø 有多個任務(wù)單,這些多個任務(wù)單的集合,構(gòu)成項(xiàng)目的一個總?cè)蝿?wù)書(總用戶需求報告)。14幾種主要的軟件開發(fā)方法 面向過程的方法 面向數(shù)據(jù)的方法 面向?qū)ο蟮姆椒?5軟件工程中的“五個面向”u 面向流程分析、u 面向數(shù)據(jù)設(shè)計、u 面向?qū)ο髮?shí)現(xiàn)、u 面向功能測試、u 面向過程管理。 第二章 軟件策劃16可行性分析的目的Ø 用最小的代價在盡可能短的時間內(nèi)確定問
42、題是否能夠解決。Ø 確定問題是否能夠解決和值得解決。Ø 分析可能的利弊關(guān)系17可行性分析最為敏感的方面 經(jīng)濟(jì)可行性:經(jīng)濟(jì)效益能否超過開發(fā)成本? 技術(shù)可行性:現(xiàn)有技術(shù)能否實(shí)現(xiàn)?技術(shù)風(fēng)險的各種因素? 操作可行性:用戶的接受程度如何? 法律可行性:是否合法,是否侵犯他人的利益。18可行性研究的步驟 復(fù)查系統(tǒng)規(guī)模和目標(biāo)(系統(tǒng)調(diào)研) 研究目前正在使用的系統(tǒng)(系統(tǒng)分析) 導(dǎo)出新系統(tǒng)的高層邏輯模型(系統(tǒng)分析) 重新定義問題(模型評審) 導(dǎo)出和評價可供選擇的解決方案 推薦一個方案并說明理由 推薦行動方針 書寫文檔提交審查19軟件計劃的步驟 估計軟件的規(guī)模及所需的資源; 制定時間表; 鑒別和
43、評估風(fēng)險; 約定與限制條件。20軟件計劃書的內(nèi)容 軟件范圍 環(huán)境資源 進(jìn)度安排 成本/效益分析 其它要考慮的因素21甘特圖有哪些優(yōu)點(diǎn)和缺點(diǎn)甘特圖:是一種對各項(xiàng)活動進(jìn)行計劃調(diào)度與控制的圖表。橫向表示時間,縱向列出任務(wù)。優(yōu)點(diǎn):它具有簡單、醒目和便于編制等特點(diǎn)。能夠動態(tài)反映軟件項(xiàng)目開發(fā)進(jìn)展的情況。缺點(diǎn):難以反映多個任務(wù)之間存在的復(fù)雜的邏輯關(guān)系。22什么是網(wǎng)絡(luò)計劃法的關(guān)鍵事件與關(guān)鍵路徑Ø 關(guān)鍵事件:最早完成時間與最遲完成時間相等的事件。Ø 關(guān)鍵路徑:關(guān)鍵事件聯(lián)結(jié)的各個活動所組成的路線。23常用的成本估算方法(1)基于代碼行的成本估算方法(2)任務(wù)分解成本估算 (3)經(jīng)驗(yàn)統(tǒng)計估算模型
44、 參數(shù)方程 動態(tài)多變量參數(shù)模型 COCOMO模型(constructive Cost Model)自動估算工具 24軟件成本估算包括哪些內(nèi)容Ø 貨幣的時間價值Ø 投資回收期 Ø 純收入Ø 投資回收率25項(xiàng)目活動和項(xiàng)目約定計劃指的是什么Ø 活動指開發(fā)活動和管理活動;Ø 約定指各種規(guī)范、標(biāo)準(zhǔn)、規(guī)則 規(guī)范是對過程和行為的約束;標(biāo)準(zhǔn)是對產(chǎn)品的約束;規(guī)則或規(guī)程是對操作的約束。第三章 需求分析26需求獲取為什么難? 用戶需求具有動態(tài)性(不穩(wěn)定性)。 用戶需求具有模糊性(不準(zhǔn)確性)。 對需求達(dá)成一致的艱難性。 管理體制、機(jī)構(gòu)設(shè)置處在變革中。 軟件書
45、籍沒有將需求分析講清楚。27需求分析的重點(diǎn)業(yè)務(wù)模型、功能模型、性能模型、接口模型。28需求分析的9項(xiàng)任務(wù) 畫出目標(biāo)系統(tǒng)的組織機(jī)構(gòu)模型。 畫出目標(biāo)系統(tǒng)業(yè)務(wù)操作流程圖。 畫出目標(biāo)系統(tǒng)的數(shù)據(jù)流圖。 列出目標(biāo)系統(tǒng)的功能點(diǎn)列表,即功能模型。 列出系統(tǒng)的性能點(diǎn)列表,即性能模型。 列出目標(biāo)系統(tǒng)的接口列表,即接口模型。 確定目標(biāo)系統(tǒng)的運(yùn)行環(huán)境,即環(huán)境模型。 目標(biāo)系統(tǒng)的界面約定,即界面模型。 分析與評估開發(fā)工期、費(fèi)用、進(jìn)度、風(fēng)險等。 29需求分析的過程· 問題識別· 分析與綜合· 編制需求分析階段文檔· 需求分析評審30獲取需求的常用方法 訪談:正式的和非正式的訪談 問卷
46、調(diào)查:問卷調(diào)查即把需要調(diào)查的內(nèi)容制成表格交給用戶填寫。該方法對需要調(diào)查大量人員的意見時,十分有效。 情景分析:情景分析就是對目標(biāo)系統(tǒng)解決某個具體問題的方法和結(jié)果,給出可能的情景描述,以獲知用戶的具體需求。 實(shí)地考察 構(gòu)造原型31需求分析的原則 解決邏輯問題:需求分析是對問題的識別和說明,要回答“做什么”,而不是“怎么做”。 以運(yùn)行環(huán)境為基礎(chǔ):需求分析工作應(yīng)以具體的運(yùn)行環(huán)境為基礎(chǔ),實(shí)事求是 。 用戶參與的原則:需求分析工作是系統(tǒng)分析人員同用戶不斷交互的過程。 構(gòu)造高質(zhì)量的需求規(guī)格說明:需求規(guī)格說明是需求分析工作重要的完成標(biāo)志。 32需求分析的基本要求理解問題的數(shù)據(jù)域和功能域自頂向下、逐層分解 給
47、出系統(tǒng)的邏輯視圖和物理視圖33需求分析方法 面向數(shù)據(jù)流的分析方法 面向功能的分析方法 面向數(shù)據(jù)的Jackson方法 面向?qū)ο蟮姆治龇椒ǖ谒恼?軟件設(shè)計34軟件設(shè)計的具體任務(wù)(1) 制定規(guī)范(2) 結(jié)構(gòu)設(shè)計(3) 處理方式結(jié)構(gòu)設(shè)計(4) 數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(5) 可靠性設(shè)計(質(zhì)量設(shè)計)(6) 編寫軟件設(shè)計文檔(7) 設(shè)計審查和復(fù)審(8) 詳細(xì)設(shè)計35數(shù)據(jù)的保護(hù)性設(shè)計防衛(wèi)性設(shè)計:在軟件設(shè)計中就插入自動檢錯,報錯和糾錯的功能一致性設(shè)計: 在并發(fā)處理過程中使用封鎖和解除封鎖機(jī)制保持?jǐn)?shù)據(jù)不被破壞冗余性設(shè)計:36軟件設(shè)計的目標(biāo)軟件設(shè)計的最終目標(biāo)是要取得最佳方案。即:節(jié)省開發(fā)費(fèi)用、降低資源消耗、縮短開發(fā)時
48、間、能夠贏得較高的生產(chǎn)效率、較高的可靠性和可維護(hù)性的方案。 并且使開發(fā)軟件滿足以下特點(diǎn):Ø 功能、性能都符合指定的要求;Ø 軟件是可維護(hù)的,可方便地進(jìn)行修改 ;Ø 除了代碼,還有一套配置齊全的文檔。 37模塊的基本屬性 “模塊”,又稱“組件”。一般有四個基本屬性Ø 功能:描述該模塊做什么?Ø 邏輯:描述模塊內(nèi)部怎么做?Ø 狀態(tài):模塊使用時的環(huán)境和條件。Ø 接口:指模塊的輸入與輸出。38什么是耦合?什么是內(nèi)聚?如何增強(qiáng)模塊的獨(dú)立性?Ø 耦合:各模塊之間的互相連接的緊密程度。模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高
49、,而其獨(dú)立性就越弱。Ø 內(nèi)聚:模塊內(nèi)各功能元素彼此結(jié)合的緊密程度。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高,相對地,它與其它模塊之間的耦合性就會減低,而模塊獨(dú)立性就越強(qiáng)。Ø 增強(qiáng)模塊獨(dú)立性的方法是:高內(nèi)聚、低耦合39模塊化的特征Ø 抽象:用層次的方式構(gòu)造和分析復(fù)雜系統(tǒng)。Ø 逐步求精:幫助開發(fā)人員把精力集中在與當(dāng)前開發(fā)階段最相關(guān)的那些問題上。Ø 信息隱蔽:如果一個模塊內(nèi)包含的信息(過程和數(shù)據(jù)) 不允許外部的模塊訪問的話,其它模塊不能對其訪問。Ø 局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。40影響耦合度的因素 連
50、接方式的類型。 接口的復(fù)雜性。 傳送的信息流的類型。 耦合的時間。41降低耦合度的方法: 對于需要了解的內(nèi)容,若是隱含的,應(yīng)改為明顯的,以便更容易理解; 連接的方式盡量標(biāo)準(zhǔn)化,不要直接引用; 減少公共區(qū),將公共區(qū)劃分為若干個邏輯子區(qū); 輸入輸出應(yīng)局限在少量模塊,不要分散在全系統(tǒng); 延遲耦合時間。42軟件結(jié)構(gòu)設(shè)計優(yōu)化的準(zhǔn)則1. 劃分模塊時,盡量做到高內(nèi)聚、低耦合,保持模塊相對獨(dú)立性。模塊劃分的準(zhǔn)則:“將相關(guān)的各部分放在一起,無關(guān)的東西不要放在一起?!?2. 模塊的大小要適中。3. 模塊的接口要簡單、清晰、含義明確,便于理解,易于實(shí)現(xiàn)、易于測試和維護(hù)。4. 一個模塊的作用范圍應(yīng)在其控制范圍之內(nèi),且
51、判定所在的模塊,應(yīng)與受其影響的模塊在層次上盡量靠近。5. 軟件結(jié)構(gòu)的深度、寬度、扇入、扇出應(yīng)適當(dāng)。6. 力求設(shè)計單入口和單出口的模塊,避免“病態(tài)連接”,以防止內(nèi)容耦合。 7. 設(shè)計功能可預(yù)測模塊的劃分,應(yīng)防止功能過分局限。 43結(jié)構(gòu)化設(shè)計的優(yōu)點(diǎn) 減少設(shè)計復(fù)雜性。將大化小,使復(fù)雜問題簡單化。 結(jié)構(gòu)獨(dú)立。將程序劃分成多個相對獨(dú)立的模塊。 模塊功能單一化,可使軟件設(shè)計獲得最大的益處。 易于進(jìn)行軟件修改。 易于開發(fā)和維護(hù)。 加強(qiáng)了代碼的可重用性。44Jackson圖的優(yōu)點(diǎn) 便于表示層次結(jié)構(gòu),是對結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具; 形象直觀,可讀性好; Jackson圖不僅能表示數(shù)據(jù)結(jié)構(gòu),也能表示程序結(jié)構(gòu)
52、。45正交軟件體系結(jié)構(gòu)的優(yōu)點(diǎn) 層次結(jié)構(gòu)清晰,便于理解。 可移植性強(qiáng),重用粒度大。 易修改,可維護(hù)性強(qiáng)。 46三層C/S結(jié)構(gòu)的組成Ø 表示層:用戶接口部分,它擔(dān)負(fù)著用戶與應(yīng)用間的對話功能。 Ø 功能層:相當(dāng)于應(yīng)用的本體,它是將具體的業(yè)務(wù)處理邏輯編入程序中。 Ø 數(shù)據(jù)層:數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)管理對數(shù)據(jù)庫數(shù)據(jù)的讀寫。 47三層C/S結(jié)構(gòu)的優(yōu)點(diǎn) 允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨(dú)立性。 允許更靈活有效地選用相應(yīng)的平臺和硬件系統(tǒng),使之在處理負(fù)荷能力上與處理特性上分別適應(yīng)于結(jié)構(gòu)清晰的三層;并且這些平臺和各個組成部分可以具有良好的可升級性和開放性 。 三層C/
53、S結(jié)構(gòu)中,應(yīng)用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言。 允許充分利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫工具或黑客手段去非法地訪問數(shù)據(jù)層 。48B/S體系結(jié)構(gòu)的不足之處 缺乏對動態(tài)頁面的支持能力,數(shù)據(jù)庫處理功能差。 系統(tǒng)擴(kuò)展能力差,安全性難以控制。 響應(yīng)速度遠(yuǎn)低于C/S體系結(jié)構(gòu)。 數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動態(tài)交互性不強(qiáng),不利于在線事務(wù)處理(OLTP)應(yīng)用。49C/S、B/S混合結(jié)構(gòu)的特點(diǎn)Ø B/S與C/S混合結(jié)構(gòu)是一種典型的異構(gòu)系統(tǒng)。Ø C/S與B/S混合結(jié)構(gòu)的優(yōu)點(diǎn):是外部用戶不直接訪問數(shù)據(jù)庫服務(wù)器,能保證企業(yè)數(shù)據(jù)
54、庫的相對安全。企業(yè)內(nèi)部用戶的交互性較強(qiáng),數(shù)據(jù)查詢和修改的響應(yīng)速度較快。 Ø C/S與B/S混合結(jié)構(gòu)的缺點(diǎn):是企業(yè)外部用戶修改和維護(hù)數(shù)據(jù)時,速度較慢,較煩瑣,數(shù)據(jù)的動態(tài)交互性不強(qiáng)。50主要的菜單類型 固定菜單 活動菜單 “彈出式”菜單 “下拉式”菜單51活動菜單的優(yōu)點(diǎn)Ø 不占用顯示工作空間;Ø 可以根據(jù)用戶當(dāng)前所處的操作狀態(tài)和要求動態(tài)出現(xiàn)。Ø 需要注意:不能濫用彈出菜單。52DBMS的基本功能: Ø 管理用戶的數(shù)據(jù)庫;Ø 提供在數(shù)據(jù)庫上的各種操作;Ø 提供數(shù)據(jù)庫對外的各種接口;53數(shù)據(jù)庫(DB)與DBMS的不同在人們的交流中,習(xí)慣上常常將數(shù)據(jù)庫和DBMS混為一談,不加區(qū)別。所以要根據(jù)不同場合、不同習(xí)慣、以及上下文來分析,所講的“數(shù)據(jù)庫”三個字,到底是指數(shù)據(jù)庫,還是指DBMS。 54DBMS提供的三種語言 DBMS自帶許多語句(命令),可分為三大類: 數(shù)據(jù)定義語言DDL: 如:CREATE,ALTER,DROP; 數(shù)據(jù)操作語言DML: 如:SELECT,UPDATE,INSERT,DELETE; 數(shù)據(jù)控制語言DCL: 如:分支語句、循環(huán)語句。55數(shù)據(jù)庫的組成(四個表指的是什么)Ø 基本表:存放原始數(shù)據(jù)的表。Ø 代碼表:存放信息代碼數(shù)據(jù)的表。Ø 中間表:
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)通訊設(shè)施建設(shè)承包合同
- 專利技術(shù)許可使用與轉(zhuǎn)讓協(xié)議
- 事業(yè)單位正式聘用勞動合同
- 環(huán)??萍佳邪l(fā)與推廣合作協(xié)議
- 企業(yè)向法人借款合同
- 三農(nóng)田土壤健康與改良方案
- 智慧農(nóng)業(yè)技術(shù)研發(fā)與應(yīng)用合作協(xié)議
- 公路護(hù)欄采購合同
- 動物養(yǎng)殖場地租賃合同
- 經(jīng)典工程勞務(wù)承包合同
- 第8課《山山水水》教學(xué)設(shè)計(新人教版小學(xué)美術(shù)六年級上冊)
- word 公章 模板
- 世界技能大賽PPT幻燈片課件(PPT 21頁)
- Python程序設(shè)計ppt課件完整版
- T∕ZSQX 008-2020 建設(shè)工程全過程質(zhì)量行為導(dǎo)則
- 質(zhì)量管理體系基礎(chǔ)知識培訓(xùn)-2016
- 《腹膜透析》ppt課件
- 甲醇催化劑說明書
- 北京課改版(2021年春修訂版)數(shù)學(xué)四年級下冊全冊教學(xué)課件
- 汽車標(biāo)準(zhǔn)法規(guī)(課堂PPT)
- 碳硅及其化合物-講義
評論
0/150
提交評論