《软件工程》 课后思考题
第一章 軟件工程概述
1. 結(jié)合你之前的工程經(jīng)驗(yàn)以及任正非致員工信,談?wù)勀銓?duì)軟件工程的看法。
隨著科技的發(fā)展,軟件開(kāi)發(fā)的需求量以及開(kāi)發(fā)規(guī)模都在不斷地增大,規(guī)模越大的軟件工程,各方面需要考慮的問(wèn)題就越多,所耗費(fèi)的人力物力就越大。我認(rèn)為軟件工程的作用就是運(yùn)用一系列科學(xué)的方法,在滿足各方面需求并保證軟件效率的前提下,統(tǒng)籌管理好開(kāi)發(fā)過(guò)程的每一步,以最少的人力物力耗費(fèi)來(lái)實(shí)現(xiàn)期望的目標(biāo)。
2.軟件開(kāi)發(fā)就是編碼么?談?wù)勀銓?duì)軟件開(kāi)發(fā)的本質(zhì)的認(rèn)識(shí)。
編碼是軟件開(kāi)發(fā)的一部分,也是程序員們的工作。我認(rèn)為軟件開(kāi)發(fā)的過(guò)程中除了編碼以外,更重要的是開(kāi)發(fā)人員和客戶的一個(gè)不斷地交流,隨著開(kāi)發(fā)過(guò)程的進(jìn)行,客戶的需求也許會(huì)發(fā)生變化,弄清楚了為什么要寫代碼,要寫怎樣的代碼,實(shí)現(xiàn)怎樣的功能,才能夠更好地實(shí)現(xiàn)預(yù)期的目標(biāo)。
3.舉例說(shuō)明軟件的特點(diǎn)有哪些?
4.什么是軟件危機(jī)?軟件危機(jī)出現(xiàn)的原因及解決手段有哪些?
軟件危機(jī)是指落后的軟件生產(chǎn)方式無(wú)法滿足迅速增長(zhǎng)的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開(kāi)發(fā)與維護(hù)過(guò)程中出現(xiàn)一系列嚴(yán)重問(wèn)題的現(xiàn)象。
出現(xiàn)軟件危機(jī)的原因主要有:
解決手段:
??在軟件工程理論的指導(dǎo)下,建立起較為完備的軟件工業(yè)化生產(chǎn)體系,形成強(qiáng)大的軟件生產(chǎn)能力 。軟件標(biāo)準(zhǔn)化與可重用性得到了工業(yè)界的高度重視,在避免重用勞動(dòng),可以緩解軟件危機(jī)。
5.軟件工程的要素有哪些,各有什么作用?
軟件工程的三種基本要素是方法、工具和過(guò)程。
第三章 軟件過(guò)程模型
1.簡(jiǎn)述軟件過(guò)程、軟件生存周期、軟件過(guò)程模型(軟件生存周期模型)三者之間的概念區(qū)別。
2.軟件過(guò)程就是軟件開(kāi)發(fā)過(guò)程么?為什么?
不是,軟件過(guò)程是指軟件整個(gè)生命周期,從需求獲取、需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、發(fā)布和維護(hù)一個(gè)過(guò)程模型。一個(gè)軟件過(guò)程定義了軟件開(kāi)發(fā)中采用的方法,但軟件過(guò)程還包含該過(guò)程中應(yīng)用的技術(shù)——技術(shù)方法和自動(dòng)化工具。
3.請(qǐng)選擇兩個(gè)常見(jiàn)的軟件過(guò)程模型,談?wù)勀銓?duì)他們的理解?并進(jìn)行比較
瀑布模型的優(yōu)點(diǎn):
- 有利于大型軟件開(kāi)發(fā)過(guò)程中人員的組織、管理。
- 有利于軟件開(kāi)發(fā)方法和工具的研究,從而提高了大型軟件項(xiàng)目開(kāi)發(fā)的質(zhì)量和效率。
瀑布模型的缺點(diǎn):
- 開(kāi)發(fā)過(guò)程一般不能逆轉(zhuǎn),否則代價(jià)太大;
- 實(shí)際的項(xiàng)目開(kāi)發(fā)很難嚴(yán)格按該模型進(jìn)行;
- 客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。
- 軟件的實(shí)際情況必須到項(xiàng)目開(kāi)發(fā)的后期客戶才能看到,這要求客戶有足夠的耐心。
瀑布模型的使用范圍:
- 用戶的需求非常清楚全面,且在開(kāi)發(fā)過(guò)程中沒(méi)有或很少變化;
- 開(kāi)發(fā)人員對(duì)軟件的應(yīng)用領(lǐng)域很熟悉;
- 用戶的使用環(huán)境非常穩(wěn)定;
- 開(kāi)發(fā)工作對(duì)用戶參與的要求很低。
增量模型的優(yōu)點(diǎn):
- 采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開(kāi)始不用投入大量人力資源;
- 如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量;
- 可先發(fā)布部分功能給客戶,對(duì)客戶起到鎮(zhèn)靜劑的作用。
增量模型的缺點(diǎn):
- 并行開(kāi)發(fā)構(gòu)件有可能遇到不能集成的風(fēng)險(xiǎn),軟件必須具備開(kāi)放式的體系結(jié)構(gòu);
- 增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過(guò)程的控制失去整體性。
增量模型的使用范圍:
- 進(jìn)行已有產(chǎn)品升級(jí)或新版本開(kāi)發(fā),增量模型是非常適合的;
- 對(duì)完成期限嚴(yán)格要求的產(chǎn)品,可以使用增量模型;
- 對(duì)所開(kāi)發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng),增量模型也是非常適合的。
4.根據(jù)你當(dāng)前所在的團(tuán)隊(duì)項(xiàng)目,你更傾向于選擇哪一種軟件過(guò)程模型?為什么?
瀑布模型,項(xiàng)目規(guī)模比較小,項(xiàng)目的需求也比較清晰,開(kāi)發(fā)過(guò)程對(duì)用戶的依賴較小。
第五章 軟件需求分析
1.需求分析的目的是什么,有什么作用?
需求分析的目的:是要求開(kāi)發(fā)人員準(zhǔn)確地理解用戶需要什么,進(jìn)行細(xì)致地調(diào)查分析,將用戶的需陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)化為相應(yīng)的軟件需求規(guī)格說(shuō)明。
需求分析的作用:通過(guò)需求分析,可以使開(kāi)發(fā)人員深入細(xì)致地調(diào)研和分析項(xiàng)目,準(zhǔn)確理解用戶對(duì)項(xiàng)目的功能、性能、可靠性等具體要求,從而確定軟件開(kāi)發(fā)的方向而少走彎路。
2.需求分析有哪些分類,請(qǐng)舉例說(shuō)明?
- 業(yè)務(wù)需求:業(yè)務(wù)需求就是系統(tǒng)目標(biāo),它必須是業(yè)務(wù)導(dǎo)向、可度量、合理、可行的。業(yè)務(wù)需求描述了組織為什么要開(kāi)發(fā)一個(gè)系統(tǒng),即組織希望達(dá)到的一個(gè)什么樣的目標(biāo)。通常來(lái)自項(xiàng)目投資人、購(gòu)買產(chǎn)品的客戶、實(shí)際用戶的管理者、市場(chǎng)營(yíng)銷部分或產(chǎn)品策劃部門,比如房地產(chǎn)市場(chǎng)的開(kāi)發(fā)商。
- 用戶需求:用戶要求系統(tǒng)必須實(shí)現(xiàn)的功能,從產(chǎn)品使用者的用戶角度考慮,比如買房的人。
- 功能需求:開(kāi)發(fā)人員必須在產(chǎn)品中實(shí)現(xiàn)的軟件功能,用戶使用這些功能來(lái)滿足業(yè)務(wù)需求。比如房子
- 非功能需求:非功能需求主要與系統(tǒng)的總體特征有關(guān),是一些限制性要求,是對(duì)實(shí)際使用環(huán)境所做的要求。如一個(gè)網(wǎng)站完全加載出來(lái)的時(shí)間必須在1s中之內(nèi)。
3.需求分析過(guò)程有哪些步驟?
4.需求獲取方法有哪些?
- 會(huì)談技術(shù):分為非正式會(huì)談和正式會(huì)談,提出一些可自由回答的問(wèn)題和事先準(zhǔn)備好的議題,從不同的角度,與不同的角色進(jìn)行會(huì)談,以了解不同用戶的需求。
- 調(diào)查技術(shù):通過(guò)非正式會(huì)談、調(diào)查問(wèn)卷等調(diào)查方式來(lái)獲取用戶需求,注意檢驗(yàn)調(diào)查結(jié)果的可信度。
- 場(chǎng)景分析技術(shù):分析用戶和軟件系統(tǒng)交互的過(guò)程,捕獲這些場(chǎng)景的細(xì)節(jié)。
- 快速原型法:快速建立軟件原型的核心是用交互的、快速建立起來(lái)的原型取代了形式的、僵硬的(不易修改的)規(guī)格說(shuō)明,用戶通過(guò)在計(jì)算機(jī)上實(shí)際運(yùn)行和試用原型而向開(kāi)發(fā)者提供真實(shí)的反饋意見(jiàn)。
第六章 結(jié)構(gòu)化分析
1.結(jié)構(gòu)化分析的特點(diǎn)是什么?
- 采用自頂向下、逐層分解的方法求解復(fù)雜問(wèn)題。
- 方法簡(jiǎn)單、清晰,易于學(xué)習(xí)掌握和使用。
- 結(jié)構(gòu)化分析的實(shí)施步驟是先分析當(dāng)前環(huán)境中已存在的人工系統(tǒng),在此基礎(chǔ)上再構(gòu)思即將開(kāi)發(fā)的目標(biāo)系統(tǒng),這符合人們認(rèn)識(shí)世界改造世界的一般規(guī)律,從而大大降低了問(wèn)題的復(fù)雜程度。
- 結(jié)構(gòu)化分析采用了圖形描述方式,用數(shù)據(jù)流圖為即將開(kāi)發(fā)的系統(tǒng)描述了一個(gè)可見(jiàn)的模型,也為相同的審查和評(píng)價(jià)提供了有力的條件,才上到下把大問(wèn)題分解成若干個(gè)小問(wèn)題,然后分別解決問(wèn)題。
2.數(shù)據(jù)流圖的建模元素有哪些?如何構(gòu)建數(shù)據(jù)流圖?有哪些注意事項(xiàng)?
2.1 數(shù)據(jù)流圖有以下幾種主要元素:
- 數(shù)據(jù)流:數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,因此由一組成分固定的數(shù)據(jù)組成。如訂票單由旅客姓名、年齡、單位、身份證號(hào)、日期、目的地等數(shù)據(jù)項(xiàng)組成。由于數(shù)據(jù)流是流動(dòng)中的數(shù)據(jù),所以必須有流向,除了與數(shù)據(jù)存儲(chǔ)之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語(yǔ)命名。
- 數(shù)據(jù)源或宿(“宿”表示數(shù)據(jù)的終點(diǎn)):代表系統(tǒng)之外的實(shí)體,可以是人、物或其他軟件系統(tǒng)。
- 對(duì)數(shù)據(jù)的加工(處理):加工是對(duì)數(shù)據(jù)進(jìn)行處理的單元,它接收一定的數(shù)據(jù)輸入,對(duì)其進(jìn)行處理,并產(chǎn)生輸出。
- 數(shù)據(jù)存儲(chǔ):表示信息的靜態(tài)存儲(chǔ),可以代表文件、文件的一部分、數(shù)據(jù)庫(kù)的元素等。
2.2 構(gòu)建數(shù)據(jù)流圖的步驟
2.3 注意事項(xiàng)
3.數(shù)據(jù)字典有哪些要素(條目)定義?
- 數(shù)據(jù)流條目:通常列出該數(shù)據(jù)流的各組成數(shù)據(jù)項(xiàng)
- 數(shù)據(jù)項(xiàng)條目:數(shù)據(jù)流的組成成員是數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)條目是不可再分解的數(shù)據(jù)單位。
- 數(shù)據(jù)存儲(chǔ)條目:與數(shù)據(jù)流條目一樣。對(duì)存儲(chǔ)數(shù)據(jù)的定義用數(shù)據(jù)存儲(chǔ)條目。
- 加工處理?xiàng)l目:通常采用輸入——處理——輸出(IPO,Input-Progress-Output)視圖描述。
第七章 軟件設(shè)計(jì)
1.軟件設(shè)計(jì)的目標(biāo)及主要任務(wù)有哪些?
軟件設(shè)計(jì)的目標(biāo):軟件系統(tǒng)設(shè)計(jì)是把軟件需求“變換”為用于構(gòu)造軟件的藍(lán)圖,“輸入”是需求分析各種模型元素,“輸出”是軟件設(shè)計(jì)模型和表示,軟件設(shè)計(jì)階段的基本目標(biāo)是構(gòu)造系統(tǒng)“怎么做”的模型描述 ,“設(shè)計(jì)先于編碼”,這是軟件工程“推遲實(shí)現(xiàn)”的基本原則。
主要任務(wù):主要有以下幾類設(shè)計(jì)活動(dòng)
- 總體設(shè)計(jì):也稱為概要設(shè)計(jì),軟件結(jié)構(gòu)設(shè)計(jì),或高層設(shè)計(jì)。
- 體系結(jié)構(gòu)設(shè)計(jì):定義軟件模塊(構(gòu)件)及模塊之間的關(guān)系。
- 接口設(shè)計(jì):包括用戶接口(界面),外部接口,內(nèi)部接口。
- 數(shù)據(jù)設(shè)計(jì):軟件涉及的數(shù)據(jù)結(jié)構(gòu),文件系統(tǒng)結(jié)構(gòu),數(shù)據(jù)庫(kù)的表結(jié)構(gòu)等。
- 軟件詳細(xì)設(shè)計(jì):也稱為模塊過(guò)程設(shè)計(jì),或低層設(shè)計(jì)。
- 模塊內(nèi)部細(xì)節(jié)設(shè)計(jì):包括模塊所需的算法和數(shù)據(jù)結(jié)構(gòu)等。
2.什么是模塊(構(gòu)件)化設(shè)計(jì)思想
- 模塊是一個(gè)獨(dú)立命名的,擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。
- 把一個(gè)大型軟件系統(tǒng)的全部功能,按照一定的原則合理地劃分為若干個(gè)模塊,每個(gè)模塊完成一個(gè)特定的子功能,所有的這些模塊以某種結(jié)構(gòu)形式組成一個(gè)整體,這就是軟件的模塊化設(shè)計(jì)。
- 軟件模塊化設(shè)計(jì)可以簡(jiǎn)化軟件的設(shè)計(jì)和實(shí)現(xiàn),提高軟件的可理解性和可測(cè)試性,并使軟件更容易得到維護(hù)。
- 分解、抽象、逐步求精、信息隱蔽和模塊獨(dú)立性,是軟件模塊化設(shè)計(jì)的指導(dǎo)思想。
3.模塊獨(dú)立性的兩個(gè)度量標(biāo)準(zhǔn)是什么?
模塊獨(dú)立性愈高,則塊內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)系越弱,即高內(nèi)聚,低耦合。
4.內(nèi)聚和耦合的含義是什么?各有哪些種類?請(qǐng)舉例說(shuō)明每一類型。
內(nèi)聚的含義:內(nèi)聚性是從功能的角度對(duì)模塊內(nèi)部聚合能力的量度。高內(nèi)聚是模塊獨(dú)立性追求的目標(biāo)。
內(nèi)聚的種類(從上到下內(nèi)聚性依次減弱):
1.功能性內(nèi)聚:模塊各個(gè)成分結(jié)合在一起,完成一個(gè)特定的功能,功能性模塊具有內(nèi)聚性最強(qiáng),與其它模塊聯(lián)系少的特點(diǎn)。例如:解析XML文檔模塊(解析XML元素,解析XML屬性,解析XML注釋等)。
2.順序性內(nèi)聚:模塊內(nèi)的各個(gè)任務(wù)是順序執(zhí)行的。通常,上一個(gè)任務(wù)的輸出是下一個(gè)任務(wù)的輸入。例如:規(guī)則引擎:一個(gè)任務(wù)讀配置,輸出執(zhí)行計(jì)劃,另一個(gè)任務(wù)以執(zhí)行計(jì)劃為輸入,執(zhí)行該計(jì)劃。
3.通信性內(nèi)聚:模塊內(nèi)部的各個(gè)任務(wù)靠公用數(shù)據(jù)聯(lián)系在一起,即都使用同一個(gè)輸入數(shù)據(jù),或者產(chǎn)生同一個(gè)輸出數(shù)據(jù)。例如:學(xué)生管理系統(tǒng)的數(shù)據(jù)庫(kù)CRUD操作,都對(duì)學(xué)生信息進(jìn)行增刪改查操作。
4.過(guò)程性內(nèi)聚:模塊內(nèi)個(gè)各個(gè)任務(wù)必須按照某一特定次序執(zhí)行。例如:讀/寫文件操作:判斷文件是否存在,判斷文件是否有相應(yīng)權(quán)限,打開(kāi)文件,讀,寫文件。
5.時(shí)間性內(nèi)聚:模塊內(nèi)的各個(gè)子任務(wù)由相同的執(zhí)行時(shí)間聯(lián)系在一起。例如:初始化模塊,異常處理模塊,某個(gè)異常處理模塊封裝了“釋放資源”,“記錄日志”,“通知用戶”等幾個(gè)任務(wù)。
6.邏輯性內(nèi)聚:模塊通常由若干個(gè)邏輯功能相似的任務(wù)組成,通過(guò)模塊外引入的一個(gè)開(kāi)關(guān)量選擇其一執(zhí)行。這種內(nèi)聚增大了模塊間的耦合。例如:一個(gè)輸出設(shè)備模塊將打印機(jī)類和顯示器類封裝到同一個(gè)包里,該包即輸出設(shè)備模塊。打印機(jī)類和顯示器類雖然都具有輸出功能,但是具有不同的職責(zé)。
7.偶然性內(nèi)聚:模塊內(nèi)的各個(gè)任務(wù)在功能上沒(méi)有實(shí)質(zhì)性聯(lián)系,純屬“偶然”因素組合子塊內(nèi)各個(gè)互不相關(guān)的任務(wù)。例如:一個(gè)處理正方形的模塊有兩個(gè)功能,計(jì)算面積,畫出這個(gè)正方形。
內(nèi)聚性總結(jié):在軟件設(shè)計(jì)中,應(yīng)力求做到高內(nèi)聚、盡量少用中內(nèi)聚,不用低內(nèi)聚。一般來(lái)說(shuō),在系統(tǒng)較高層次上的模塊功能復(fù)雜,內(nèi)聚要低一些;而較低層次上的模塊內(nèi)聚程度較高,達(dá)到功能內(nèi)聚的可能性比較大。
耦合的含義:耦合性是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間的互連程度的度量。耦合性的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,以及通過(guò)接口的數(shù)據(jù)類型和數(shù)目。弱耦合是模塊獨(dú)立性追求的目標(biāo)。
耦合的種類(從上到下耦合性依次增強(qiáng)):
1.非直接耦合:同級(jí)模塊相互之間沒(méi)有信息傳遞,即沒(méi)有耦合。非常底層的模塊,自給自足,可以無(wú)耦合。較高層的模塊,通常需要重用其他模塊的功能,產(chǎn)生耦合。
2.數(shù)據(jù)耦合:調(diào)用下屬模塊時(shí),如果交換的都是簡(jiǎn)單變量,便構(gòu)成數(shù)據(jù)耦合。
3.特征耦合(數(shù)據(jù)結(jié)構(gòu)耦合):調(diào)用下屬模塊時(shí),如果交換的是數(shù)據(jù)結(jié)構(gòu),便構(gòu)成數(shù)據(jù)特性耦合。由于傳遞的是數(shù)據(jù)結(jié)構(gòu),不僅數(shù)據(jù)量增加,而且會(huì)使模塊的相關(guān)性增加。
4.控制耦合:模塊間傳遞的信息不是一般的數(shù)據(jù),而是作為控制信息的開(kāi)關(guān)值或標(biāo)志量。
5.外部耦合:若允許一組模塊訪問(wèn)同一個(gè)全局變量,可稱他們?yōu)橥獠狂詈稀?/p>
6.公共耦合:若允許一組模塊訪問(wèn)同一個(gè)全局性的數(shù)據(jù)結(jié)構(gòu),則稱他們?yōu)楣柴詈稀H中缘臄?shù)據(jù)結(jié)構(gòu)可以是共享的通信區(qū),公共的內(nèi)存區(qū)域,任何存儲(chǔ)介質(zhì)文件,物理設(shè)備等。
7.內(nèi)容耦合:若一個(gè)模塊可以直接訪問(wèn)為另一個(gè)模塊中的內(nèi)部數(shù)據(jù),或者一個(gè)模塊直接轉(zhuǎn)到另一個(gè)模塊的內(nèi)部,或者一個(gè)模塊有多個(gè)入口,則稱為內(nèi)容耦合。
耦合性總結(jié):耦合是影響模塊結(jié)構(gòu)和軟件復(fù)雜程度的一個(gè)重要因素,應(yīng)該遵循如下的設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合,完全不用內(nèi)容耦合。
5.為什么要高內(nèi)聚低耦合?高內(nèi)聚低耦合是否意味著內(nèi)聚越高越好,耦合越低越好?
高內(nèi)聚,低耦合的好處體現(xiàn)在系統(tǒng)持續(xù)發(fā)展的過(guò)程中,高內(nèi)聚,低耦合的系統(tǒng)具有更好的重用性,維護(hù)性,擴(kuò)展性,可以更高效的完成系統(tǒng)的維護(hù)開(kāi)發(fā),持續(xù)的支持業(yè)務(wù)的發(fā)展,而不會(huì)成為業(yè)務(wù)發(fā)展的障礙。
1.并不是內(nèi)聚越高越好,耦合越低越好,真正好的設(shè)計(jì)是在高內(nèi)聚和低耦合間進(jìn)行平衡,也就是說(shuō)高內(nèi)聚和低耦合是沖突的。
2.最強(qiáng)的內(nèi)聚莫過(guò)于一個(gè)類只寫一個(gè)函數(shù),這樣內(nèi)聚性絕對(duì)是最高的。但這會(huì)帶來(lái)一個(gè)明顯的問(wèn)題:類的數(shù)量急劇增多,這樣就導(dǎo)致了其它類的耦合特別多,于是整個(gè)設(shè)計(jì)就變成了“高內(nèi)聚高耦合”了。由于高耦合,整個(gè)系統(tǒng)變動(dòng)同樣非常頻繁。
3.對(duì)于耦合來(lái)說(shuō),最弱的耦合是一個(gè)類將所有的函數(shù)都包含了,這樣類完全不依賴其它類,耦合性是最低的。但這樣會(huì)帶來(lái)一個(gè)明顯的問(wèn)題:內(nèi)聚性很低,于是整個(gè)設(shè)計(jì)就變成了“低耦合低內(nèi)聚”了。由于低內(nèi)聚,整個(gè)類的變動(dòng)同樣非常頻繁。
4.真正做到高內(nèi)聚、低耦合是很難的,很多時(shí)候未必一定要這樣,更多的時(shí)候“最適合”的才是最好的,不過(guò)、審時(shí)度勢(shì)、融會(huì)貫通、人盡其才、物盡其用,才是設(shè)計(jì)的王道。
第八章 結(jié)構(gòu)化設(shè)計(jì)
1. 軟件結(jié)構(gòu)圖的形態(tài)特征有哪些指標(biāo)?各有什么含義?
深度:指結(jié)構(gòu)圖控制的層次,即模塊的層數(shù)。
寬度:指一層中最大的模塊個(gè)數(shù)。
扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù)。
扇入:指一個(gè)模塊直接上屬模塊的個(gè)數(shù)。
2. 軟件結(jié)構(gòu)有哪些優(yōu)化原則?
3. 數(shù)據(jù)流模型的類型有哪些?各有什么特點(diǎn)?
4. 簡(jiǎn)述面向數(shù)據(jù)流的變換以及事務(wù)設(shè)計(jì)方法的步驟。
變換設(shè)計(jì)方法
事務(wù)設(shè)計(jì)方法
5. 結(jié)構(gòu)化詳細(xì)設(shè)計(jì)工具有哪幾種?各有什么特點(diǎn)?
圖形工具:把過(guò)程的細(xì)節(jié)表示成一個(gè)圖的組成部分,在這個(gè)圖上,邏輯構(gòu)造用具體的圖形來(lái)表示。
流程圖、盒圖、PAD圖
列表工具:用一個(gè)表來(lái)表示過(guò)程的細(xì)節(jié),這個(gè)表列出了各種操作及其相應(yīng)的條件,即描述了輸入、處理和輸出信息。
判定表、判定樹
語(yǔ)言工具:用偽代碼來(lái)表示過(guò)程的細(xì)節(jié),這種偽代碼很接近于編程語(yǔ)言。
PDL語(yǔ)言
第十一章 面向?qū)ο笤O(shè)計(jì)
1. 面向?qū)ο蟮姆治雠c設(shè)計(jì)方法與結(jié)構(gòu)化的分析設(shè)計(jì)方法有什么不同?
2. 面向?qū)ο蟮姆治雠c設(shè)計(jì)之間有什么樣的聯(lián)系?
面向?qū)ο蠓治龅妮斎胧怯脩舻墓δ苄枨?#xff0c;輸出是簡(jiǎn)單的、理性化的分析模型,此階段的工作更多側(cè)重于如何了理解軟件的功能需求。
面向?qū)ο笤O(shè)計(jì)的輸入是面向?qū)ο蠓治龅慕Y(jié)果,輸出最終的細(xì)化后的設(shè)計(jì)模型,此階段的工作更多側(cè)重于如何得到一個(gè)合適的、完整的解決方案。
主要區(qū)別:
參考書籍:《軟件工程方法與實(shí)踐》 竇萬(wàn)峰
總結(jié)
以上是生活随笔為你收集整理的《软件工程》 课后思考题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端学习(3174):react-hel
- 下一篇: 安卓地图的实现附源码