寫在前面:這一章主要講軟件開發(fā)過程,包含可行性研究、需求分析、總體設(shè)計、詳細設(shè)計和實現(xiàn),最重要的部分是需求分析和軟件設(shè)計兩大塊,結(jié)尾附腦圖。順祝商祺!
一、可行性研究
1、什么是數(shù)據(jù)流圖?其作用是什么?其中的基本符合各表示什么含義?
答:(1)數(shù)據(jù)流圖(簡稱DFD),是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。
(2)數(shù)據(jù)流圖的作用
①數(shù)據(jù)流:是數(shù)據(jù)在系統(tǒng)內(nèi)部傳播的路徑,因此由一組成分固定的數(shù)據(jù)項組成。
②加工:(又稱為數(shù)據(jù)處理)對數(shù)據(jù)流進行某些操作或變換。
③數(shù)據(jù)存儲:(又稱為文件)指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。
④數(shù)據(jù)源點或終點:是本軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實體。
(3)基本符號表示的含義
①→:箭頭,表示數(shù)據(jù)流。
②?:圓或橢圓,表示加工。
③=:雙杠,表示數(shù)據(jù)存儲。
④口:方框,表示數(shù)據(jù)的源點或終點。
解析:這里基本不會考DFD的概念,因為應(yīng)用題里會重點考DFD的畫法,理解這里的解答,在畫DFD的時候就能規(guī)范自己是否缺少元素。
2、在軟件開發(fā)的早期階段為什么要進行可行性研究?應(yīng)該從哪些方面研究目標系統(tǒng)的可行性?
可行性研究的任務(wù)有哪些?
答:(1)可行性研究的目的是【用最小的代價、在盡可能短的時間內(nèi)】研究并確定客戶提出的問題是否有行得通的解決辦法。a.初步確定項目的規(guī)模和目標,確定項目的約束和限制。b.分析員進行簡要的需求分析,經(jīng)過壓縮的設(shè)計,探索出若干種可供選擇的主要解決辦法。對每種解決方法都要研究它的可行性。
(2)從下述三個方面研究每種解決方案的可行性:
①技術(shù)可行性:要確定使用現(xiàn)有的技術(shù)能否實現(xiàn)系統(tǒng),就要對要開發(fā)項目的功能、性能、限制條件進行分析,確定在現(xiàn)有的資源條件下,技術(shù)風(fēng)險有多大,項目能否實現(xiàn)。這里的資源包括已有的或可搞到的硬件、軟件資源,現(xiàn)有技術(shù)人員的技術(shù)水平和已有的工作基礎(chǔ)。
②經(jīng)濟可行性:進行開發(fā)成本的估算以及取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā)。對于大多數(shù)系統(tǒng),一般衡量經(jīng)濟上是否合算,應(yīng)考慮一個最小利潤值,經(jīng)濟可行性研究范圍較廣,包括成本效益分析、公司經(jīng)營長期策略、開發(fā)所需的成本和資源、潛在的市場前景。
③社會可行性:確定要開發(fā)的項目是否存在任何侵犯、妨礙等責(zé)任問題,要開發(fā)項目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。
3、成本——效益分析的目的是什么?可用哪些指標進行度量?
答:(1)成本效益分析的目的
是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。首先估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進行比較和權(quán)衡。
(2)成本效益的度量指標
①有形效益:可以用貨幣的時間價值、投資回收期、純收入等指標進行度量,具體如下:
a.貨幣的時間價值:經(jīng)過成本估算后,得到項目開發(fā)時所需要的費用,該費用就是項目的投資。項目開發(fā)后,應(yīng)取得相應(yīng)的效益,有多少效益才合算。
b.投資回收期:累計的經(jīng)濟效益等于最初的投資費用所需的時間。投資回收期越短,就越快獲得利潤,則該項目就越值得開發(fā)。?
c.純收入:整個生存周期之內(nèi)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。相當(dāng)于投資開發(fā)一個項目與把錢存入銀行中進行比較,若純收入為零,則項目的預(yù)期效益和在銀行存款一樣,但是開發(fā)一個項目要冒風(fēng)險,因此,從經(jīng)濟觀點來看,這個項目可能是不值得投資開發(fā)的;若純收入小于零,那么這個項目顯然不值得投資開發(fā)。
②無形效益:主要從性質(zhì)上(公司經(jīng)營長期策略、潛在的市場前景)、心理上進行衡量,很難直接進行定量的比較。系統(tǒng)的經(jīng)濟效益等于因使用新的系統(tǒng)而增加的收入加上使用新的系統(tǒng)可以節(jié)省的運行費用。運行費用包括:操作人員人數(shù)、工作時間、消耗的物資等。
解析:投資$-效益=利潤。投資:開發(fā)成本(軟硬件+人員組織+支持設(shè)備和材料);
多長時間可以收回投資?T
,越早獲利$
,越值得;
整個生命周期:
,差值=0,要同時承擔(dān)開發(fā)風(fēng)險,不值得。
無形效益=新系統(tǒng)收入增加+運行費用節(jié)省
4、可行性研究包括哪些步驟?
簡述軟件分析員在系統(tǒng)分析中的任務(wù)和作用。
答:(1)系統(tǒng)定義:需要分析人員對有關(guān)人員進行調(diào)查訪問,仔細閱讀和分析有關(guān)的材料,對項目的規(guī)模和目標進行定義和確認,清晰地描述項目的一切限制和約束,確保分析人員正在解決的問題確實是要解決的問題。
(2)研究正在運行的系統(tǒng):①正在運行的系統(tǒng)可能是一個人工操作的系統(tǒng),也可能是舊的計算機系統(tǒng),要開發(fā)一個新的計算機系統(tǒng)來代替舊的系統(tǒng)。因此,現(xiàn)有的系統(tǒng)是信息的重要來源,要研究它的基本功能、存在問題、運行現(xiàn)有系統(tǒng)費用、新系統(tǒng)新的功能要求、新系統(tǒng)運行時能否減少使用費用等。②收集、研究、分析現(xiàn)有系統(tǒng)的文檔資料,實地考察現(xiàn)有系統(tǒng),在考察的基礎(chǔ)上,訪問有關(guān)人員,然后描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖,與有關(guān)人員一起審查該系統(tǒng)流程圖是否正確。這個系統(tǒng)流程圖反映了現(xiàn)有系統(tǒng)的基本功能和處理流程。
(3)導(dǎo)出新系統(tǒng)的邏輯模型根據(jù)對現(xiàn)有系統(tǒng)的分析研究,逐漸明確了新系統(tǒng)的功能、處理流程以及所受的約束,然后使用建立邏輯模型的工具數(shù)據(jù)流圖和數(shù)據(jù)字典來描述數(shù)據(jù)在系統(tǒng)中的流動和處理情況。
(4)設(shè)計方案分析人員建立了新系統(tǒng)的高層邏輯模型之后,要從技術(shù)角度出發(fā),提出實現(xiàn)高層邏輯模型的不同方案,即導(dǎo)出若干較高層次的物理解法。根據(jù)技術(shù)可行性、經(jīng)濟可行性、社會可行性對各種方案進行評估,去掉行不通的解法,就得到了可行的解法。
(5)推薦可行的方案根據(jù)上述可行性研究的結(jié)果,應(yīng)該決定該項目是否值得去開發(fā)。若值得開發(fā),那么可行性的解決方案是什么,并且說明該方案可行的原因和理由。
(6)編寫可行性研究報告將上述可行性研究過程的結(jié)果寫成相應(yīng)的文檔,即可行性研究報告,提請用戶和使用部門仔細審查,從而決定該項目是否進行開發(fā),是否接受可行的實現(xiàn)方案。
(7)作用:系統(tǒng)分析工作是解決一個問題的工作,目標是將一個對計算機應(yīng)用系統(tǒng)的需求轉(zhuǎn)化成實際的物理實現(xiàn)。
二、需求分析
1、論述需求工程過程,說明各階段關(guān)系。?
答:需求工程過程包括需求開發(fā)和需求管理兩個部分。
(1)需求開發(fā)的一般分為需求獲取、需求分析、編寫需求規(guī)格說明書、需求驗證四階段:
需求獲取:通過與用戶的交流,對現(xiàn)有系統(tǒng)的觀察及對任務(wù)進行分析,從而開發(fā)、捕獲和修訂用戶的需求;
需求分析:通過之前需求獲取所得到的信息,為最終用戶所看到的系統(tǒng)建立一個概念模型,作為對需求的抽象描述;
需求規(guī)格說明書:由需求模型構(gòu)件生成精確的形式化的描述,它將作為用戶和開發(fā)者之間的一致協(xié)議;
需求驗證:需求分析的結(jié)果應(yīng)該通過評審、測試等手段驗證它的正確性、完整性和一致性。
(2)需求管理主要包括需求基線建立、變更控制及需求跟蹤等活動:
需求管理中最基本的任務(wù)則是明確需求,并使所有相關(guān)人員達成共識;建立需求跟蹤能力聯(lián)系鏈,確保所有用戶需求被正確地應(yīng)用,并且在需求發(fā)生變更時,能夠完全地控制其影響范圍,始終保持產(chǎn)品與需求的一致性。
2、為什么要進行需求分析?通常對軟件系統(tǒng)有哪些需求?
什么是需求分析?需求分析階段的基本任務(wù)是什么?
答:(1)原因:為了開發(fā)真正滿足用戶需求的軟件產(chǎn)品,需求分析是軟件開發(fā)工作獲得成功的前提條件,不能滿足用戶需求的程序只會令用戶失望,給開發(fā)者帶來煩惱。
(2)定義:指開發(fā)人員要準確理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的形式功能規(guī)約(需求規(guī)格說明)的過程。
(3)基本任務(wù):要準確地定義新系統(tǒng)的目標,為了滿足用戶需要,回答系統(tǒng)必須“做什么”的問題。
a.功能需求:所開發(fā)的軟件必須具備什么樣的功能??煽啃院涂捎眯孕枨?、出錯處理、可維護性、可擴展性【將來可能提出的要求】。
b.性能需求:待開發(fā)的軟件的技術(shù)性能指標。如存儲容量、運行時間等限制。
3、怎樣與用戶有效地溝通以獲取用戶的真實需求?
答:訪談是最早開始使用的獲取用戶需求的技術(shù),也是目前廣泛使用的需求分析技術(shù),訪談有兩種形式,分別是正式的和非正式的訪談。
正式訪談時:分析員提出一些事先準備好的具體問題。
非正式訪談時:分析員提出一些用戶可以自由回答的開放性問題,以鼓勵被訪問人員說出自己的想法,其中情景分析技術(shù)往往非常有效。
4、什么是結(jié)構(gòu)化分析,有什么特點??
答:面向數(shù)據(jù)流進行需求分析,遵循自頂向下、逐步求精原則。
主要特點:①快速、自然和方便;②成功率較高,發(fā)展較為成熟;③簡單、易掌握。
適應(yīng)于:瀑布模型,特別適合于數(shù)據(jù)處理領(lǐng)域中的應(yīng)用;
不適應(yīng):對規(guī)模大的項目,特別復(fù)雜的應(yīng)用不太適應(yīng);難于解決軟件重用問題;難于適應(yīng)需求的變化。
三、總體設(shè)計
1、簡述總體設(shè)計的一般過程?
好的軟件體系結(jié)構(gòu)設(shè)計應(yīng)遵循哪些原則?
答:總體設(shè)計又稱為概要設(shè)計或初步設(shè)計。
通常由兩個主要階段組成:(1)系統(tǒng)設(shè)計:確定系統(tǒng)的具體實現(xiàn)方案。(2)結(jié)構(gòu)設(shè)計:確定軟件結(jié)構(gòu)。好的軟件體系結(jié)構(gòu)設(shè)計應(yīng)遵循合適性、結(jié)構(gòu)穩(wěn)定性、可擴展性、可復(fù)用性等原則。
分為9個步驟:設(shè)想供選擇的方案、選取合理的方案、推薦最佳方案、功能分解、設(shè)計軟件結(jié)構(gòu)、設(shè)計數(shù)據(jù)庫、制定測試計劃、書寫文檔、審查和復(fù)審。
2、為每種類型的模塊內(nèi)聚舉一個具體例子。
模塊的內(nèi)聚性有哪幾種?各表示什么含義?
答:(1)功能內(nèi)聚:是最強的內(nèi)聚,指模塊內(nèi)所有元素共同完成一個功能,缺一不可,因此模塊不能再分割。功能內(nèi)聚的模塊易于理解、易修改,因為它的功能是明確的、單一的,因此與其他模塊的耦合是弱的。功能內(nèi)聚的模塊有利于實現(xiàn)軟件的重用,從而提高軟件開發(fā)的效率。計算雇員年齡并給出生日的子程序就是功能內(nèi)聚性的,因為它只完成一項工作,而且完成得很好。
(2)順序內(nèi)聚:一個按給出的生日計算雇員年齡、退休時間的子程序,如果它是利用所計算的年齡來確定雇員將要退休的時間,那么它就具有順序內(nèi)聚性。而如果它是分別計算年齡和退休時間的,但使用相同生日數(shù)據(jù),那它就只具有通訊內(nèi)聚性。
(3)通信內(nèi)聚:指模塊內(nèi)所有處理元素都在同一個數(shù)據(jù)結(jié)構(gòu)上操作(有時稱之為信息內(nèi)聚),或者指各處理使用相同的輸入數(shù)據(jù)或者產(chǎn)生相同的輸出數(shù)據(jù)。把某一數(shù)據(jù)結(jié)構(gòu)、文件、設(shè)備等操作都放在一個模塊內(nèi),可達到信息隱藏。一般來說,這些類只著眼于數(shù)據(jù)的查詢、訪問和存儲。
(4)過程內(nèi)聚:一個子程序,它產(chǎn)生讀取雇員的名字,然后是地址,最后是它的電話號碼。這種順序之所以重要,僅僅是因為它符合用戶的要求,用戶希望按這種順序進行屏幕輸入。另外一個子程序?qū)⒆x取關(guān)于雇員的其它信息。這個子程序是過程內(nèi)聚性,因為是由一個特定順序而不是其它任何原因,把這些操作組合在一起的。
(5)偶然內(nèi)聚(巧合):指一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系,一個模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也比較松散,就叫做偶然內(nèi)聚。
(6)邏輯內(nèi)聚:指模塊內(nèi)執(zhí)行幾個邏輯上相似的功能,通過參數(shù)確定該模塊完成哪一個功能。一個模塊將打印季度、月份和日開支報告,具體打印哪一個,將由傳入的控制標志決定,這個子程序具有邏輯內(nèi)聚性,它的內(nèi)部邏輯是由輸進去的外部控制標志決定。
(7)時間內(nèi)聚:把需要同時執(zhí)行的動作組合在一起形成的模塊,一個模塊包含了需要在同一時間段中執(zhí)行的多個任務(wù),則稱該模塊的內(nèi)聚為時間內(nèi)聚。例如,將多個變量的初始化(init)放在同一個模塊中實現(xiàn),或?qū)⑿枰瑫r使用的多個庫文件的打開(open)操作放在同一個模塊中,都會產(chǎn)生時間內(nèi)聚的模塊。
解析:公孫通過(功能7順序6通信5過程4)都是說一個雇員;? 偶落實(偶然1邏輯2時間3)?都講一個模塊。它們的內(nèi)聚性由1-7低到高。
過程內(nèi)聚(補充):如果一個模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定的次序執(zhí)行,稱為過程內(nèi)聚。過程內(nèi)聚模塊的各組成功能由控制流聯(lián)結(jié)在一起,實際上是若干個處理功能的公共過程單元。
3、為每種類型的模塊耦合舉一個具體例子。
答:(1)數(shù)據(jù)耦合:指兩個模塊之間有調(diào)用關(guān)系,傳遞的是簡單的數(shù)據(jù)參數(shù),相當(dāng)于高級語言中的值傳遞。這種耦合程度較低,模塊的獨立性較高。計算機網(wǎng)絡(luò)屬于松耦合系統(tǒng)。
(2)控制耦合:當(dāng)操作A調(diào)用操作B時,并且向B傳遞了一個控制標記,例如遙控器與電器。(3)公共環(huán)境耦合:多機系統(tǒng)。(4)內(nèi)容耦合:匯編程序模塊。
(5)標記耦合:當(dāng)類B被聲明為類A某一操作中的一個參數(shù)類型時會發(fā)生此種耦合。由于類B現(xiàn)在作為類A定義的一部分,所以修改系統(tǒng)就會變得更為復(fù)雜。
解析:無直接耦合:指兩個模塊之間沒有直接的關(guān)系,它們分別從屬于不同模塊的控制與調(diào)用,它們之間不傳遞任何信息。因此模塊間耦合性最弱,模塊獨立性最高。
4、模塊化的三個重要特征是什么,闡明各自的作用。
答: (1)相對獨立性:可以對模塊單獨進行設(shè)計、制造、調(diào)試、修改和存儲,這便于由不同的專業(yè)化企業(yè)分別進行生產(chǎn);
(2)互換性:模塊接口部位的結(jié)構(gòu)、尺寸和參數(shù)標準化,容易實現(xiàn)模塊間的互換,從而使模塊滿足更大數(shù)量的不同產(chǎn)品的需要;
(3)通用性:有利于實現(xiàn)橫系列、縱系列產(chǎn)品間的模塊的通用,實現(xiàn)跨系列產(chǎn)品間的模塊的通用。
5、衡量模塊獨立的兩個標準是什么?它們各表示什么含義?
什么是耦合性?模塊的耦合性有哪些內(nèi)容?
答:(1)衡量模塊獨立的兩個標準衡量模塊的獨立性的標準是兩個定性的度量標準:耦合性和內(nèi)聚性。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,將軟件系統(tǒng)劃分模塊時,盡量做到高內(nèi)聚低耦合,提高模塊的獨立性,為設(shè)計高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。
(2)①耦合性也稱塊間聯(lián)系,指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息。
②內(nèi)聚性又稱塊內(nèi)聯(lián)系,指模塊的功能強度的度量,即一個模塊內(nèi)部各元素彼此結(jié)合的緊密程度的度量。若一個模塊內(nèi)各元素(語句之間、程序段之間)聯(lián)系得越緊密,則它的內(nèi)聚性就越高。
解析:耦合性(塊間各模塊聯(lián)系)
獨立性
;
內(nèi)聚性(塊內(nèi)各元素結(jié)合)
獨立性
5.2、通常采取哪些措施來降低模塊間的耦合度?
答:(1)在耦合方式上:降低模塊間接口的復(fù)雜性。模塊間接口的復(fù)雜性包括模塊的接口方式、接口信息的結(jié)構(gòu)和數(shù)量。接口方式不采用直接引用(內(nèi)容耦合),而采用調(diào)用方式。接口信息通過參數(shù)傳遞且傳遞信息的結(jié)構(gòu)盡量簡單,不用復(fù)雜參數(shù)結(jié)構(gòu),參數(shù)的個數(shù)也不宜太多,如果很多,可考慮模塊的功能是否龐大復(fù)雜。
(2)在傳遞信息類型上:盡量使用數(shù)據(jù)耦合,避免控制耦合,慎用或有控制地使用公共耦合。這只是原則,耦合類型的選擇要根據(jù)實際情況綜合地考慮。
四、詳細設(shè)計
1、詳細設(shè)計的基本任務(wù)包括哪些?
詳細設(shè)計的任務(wù)是什么??
答:詳細設(shè)計是軟件工程中軟件開發(fā)的一個步驟,就是對概要設(shè)計的一個細化,包括對業(yè)務(wù)對象、功能邏輯、數(shù)據(jù)庫和人機界面設(shè)計等。
主要任務(wù):設(shè)計每個模塊的實現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)。
主要目標:實現(xiàn)模塊功能的算法,保證邏輯正確且算法描述簡明易懂。
(1)數(shù)據(jù)結(jié)構(gòu)設(shè)計:對需求分析、總體設(shè)計階段確定的概念性的數(shù)據(jù)類型,要進行確切的定義。這一部分的設(shè)計內(nèi)容一般比較多,所以大多數(shù)采用小型數(shù)據(jù)庫輔助的方法。
(2)物理設(shè)計:對數(shù)據(jù)庫進行物理設(shè)計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲格式、安排和方法,這些都依賴于具體所使用的數(shù)據(jù)庫系統(tǒng)。
(3)算法設(shè)計:在總體設(shè)計的結(jié)構(gòu)完成后,結(jié)構(gòu)各個環(huán)節(jié)的實現(xiàn)是多解的。這就需要用系統(tǒng)設(shè)計與分析的技術(shù)來描述。可以用某種圖形、表格、語言等工具將每個模塊處理過程的詳細算法描述出來。
(4)界面設(shè)計:用戶界面的設(shè)計現(xiàn)在顯得比較重要,可以采用字符、圖形和多媒體人機界面設(shè)計。這就要結(jié)合具體的系統(tǒng)來處理。
(5)其他設(shè)計:根據(jù)軟件系統(tǒng)的類型,還可能要進行以下設(shè)計:
①代碼設(shè)計:為了提高數(shù)據(jù)的輸入、分類、存儲及檢索等操作的效率以及節(jié)約內(nèi)存空間,對數(shù)據(jù)庫中的某些數(shù)據(jù)項的值要進行代碼設(shè)計。
②輸入/輸出格式設(shè)計
③人機對話設(shè)計:對于一個實時系統(tǒng),用戶與計算機頻繁對話,因此要進行對話方式、內(nèi)容及格式的具體設(shè)計。
④網(wǎng)絡(luò)設(shè)計:如果設(shè)計的軟件是一個分布式系統(tǒng),那么還要進行網(wǎng)絡(luò)的拓撲結(jié)構(gòu)設(shè)計。
(6)編寫設(shè)計說明書。
(7)評審:對處理過程的算法和數(shù)據(jù)庫的物理結(jié)構(gòu)都要評審。
2、解釋體系結(jié)構(gòu)中深度、寬度、扇出、扇入對軟件的影響。
答:深度:表示軟件結(jié)構(gòu)中控制的層數(shù)。
寬度:表示軟件結(jié)構(gòu)中同一層次上的模塊總數(shù)的最大值。
扇入:指直接調(diào)用該模塊的上級模塊的個數(shù),扇入大表示模塊的重用性高、利用率高。
扇出:指該模塊直接調(diào)用的下級模塊的個數(shù),扇出大表示模塊的復(fù)雜度高。
設(shè)計原則:高扇入低扇出
解析:深度層數(shù),寬度同一層;上入下出,高入低出
3、什么是面向數(shù)據(jù)流的設(shè)計方法?它有哪些策略?
事務(wù)型軟件結(jié)構(gòu)圖有什么特點,原因是什么?
什么是“事務(wù)流”?
答:(1)面向數(shù)據(jù)流的設(shè)計方法也稱結(jié)構(gòu)化設(shè)計方法(SD),它與結(jié)構(gòu)化分析(SA)相銜接,它按一定的設(shè)計策略將數(shù)據(jù)流圖轉(zhuǎn)換成軟件的模塊層次結(jié)構(gòu)。
(2)面向數(shù)據(jù)流的設(shè)計策略
①事務(wù)型分析設(shè)計:一個大的復(fù)雜的系統(tǒng)分解成較小的,相對簡單的子系統(tǒng),這些子系統(tǒng)彼此之間相對獨立一些,而高層數(shù)據(jù)流圖的數(shù)據(jù)處理往往反映這些子系統(tǒng)的功能,有平行分別處理的特點,因此,高層數(shù)據(jù)流圖的轉(zhuǎn)換通常可作為事務(wù)型處理,把一個加工邏輯看成是一類特定的事務(wù),把它們分別映射成一個模塊,最高層模塊為系統(tǒng)模塊,通過對輸入初始命令的判斷決定調(diào)用哪個模塊。這種事務(wù)型分析設(shè)計的策略也用于較低層數(shù)據(jù)流圖向軟件結(jié)構(gòu)圖的轉(zhuǎn)換。
②變換型分析設(shè)計:變換型數(shù)據(jù)流圖具有主要的處理功能及實現(xiàn)這項處理功能所需要的輸入數(shù)據(jù)流和經(jīng)過處理后產(chǎn)生的輸出數(shù)據(jù)流。確定了第三部分,高層模塊就可分解出三個從屬于它的新模塊,分別執(zhí)行輸入、變換、輸出功能。變換分析設(shè)計一般用于對較低層數(shù)據(jù)流圖向軟件結(jié)構(gòu)圖的轉(zhuǎn)換。
(3)事務(wù)流:若某個加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并根據(jù)輸入的值選擇其中一個路徑來執(zhí)行,這種特征的DFD稱為事務(wù)型的數(shù)據(jù)流圖,這個加工稱為事務(wù)處理中心。

解析:前期關(guān)于事務(wù)流、變換流的題型非常多,近幾年由于這兩種策略已經(jīng)比較落后,因此考題逐步減少,但是仍在考綱內(nèi)未刪除。
五、實現(xiàn)
1、什么是軟件性能?論述軟件開發(fā)中如何提高軟件的性能。
答:軟件的性能是軟件的一種非功能特性,它關(guān)注的不是軟件是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。由于感受軟件性能的主體是人,不同的人對于同樣的軟件能有不同的主觀感受,而且不同的人對于軟件性能關(guān)心的視角也不同。包括系統(tǒng)響應(yīng)時間、應(yīng)用延遲時間、吞吐量、并發(fā)用戶數(shù)和資源利用率。
2、程序的編碼風(fēng)格主要體現(xiàn)在哪幾個方面?
答:程序的編碼風(fēng)格即為程序設(shè)計風(fēng)格或編程風(fēng)格,其主要作用是使無論是程序本人還是其他人,都能比較容易的閱讀、理解及修改源代碼。
主要表現(xiàn)在四個方面:源程序文檔化、數(shù)據(jù)說明方法,表達式和語句結(jié)構(gòu)及輸入/輸出方法。
