考點(diǎn)(6)軟件需求分析
1.需求分析的任務(wù)
確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。需求分析的出發(fā)點(diǎn)是可行性分析階段產(chǎn)生的文檔和數(shù)據(jù)流圖;需求分析的具體任務(wù)是確定對系統(tǒng)的綜合要求,分析系統(tǒng)的數(shù)據(jù)要求,導(dǎo)出系統(tǒng)的邏輯模型,修正系統(tǒng)開發(fā)計(jì)劃,開發(fā)原型系統(tǒng)。
2.需求分析常用的工具
(1)數(shù)據(jù)字典是定義一個應(yīng)用程序中使用的所有數(shù)據(jù)元素和結(jié)構(gòu)的含義、類型、數(shù)據(jù)大小、格式、度量單位、精度以及允許取值范圍的共享倉庫。
(2)數(shù)據(jù)流圖。是結(jié)構(gòu)化系統(tǒng)分析的基本工具。一個數(shù)據(jù)流圖確定了系統(tǒng)的轉(zhuǎn)化過程、系統(tǒng)所操縱的數(shù)據(jù)或物質(zhì)的收集(存儲),還有過程、存儲、外部世界之間的數(shù)據(jù)流或物質(zhì)流。
(3)狀態(tài)轉(zhuǎn)換圖。實(shí)時系統(tǒng)和過程控制應(yīng)用程序可以在任何給定的時間內(nèi)以有限的狀 態(tài)存在。
(4)對話圖。對話圖描繪了系統(tǒng)中的對話元素和它們之間的導(dǎo)航連接。
(5)類圖。類圖是用圖形方式敘述面向?qū)ο蠓治鏊_定的類及它們之間的關(guān)系。
3.需求分析的方法和步驟
需求分析的方法如下:
(1)理解當(dāng)前的現(xiàn)實(shí)環(huán)境。
(2)將當(dāng)前系統(tǒng)的具體模型抽象為當(dāng)前的邏輯模型。
(3)分析新系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,建立新系統(tǒng)的邏輯模型。
(4)確定新系統(tǒng)的人機(jī)界面和一些補(bǔ)充考慮的細(xì)節(jié)問題。
需求分析的步驟如下:
(1)沿?cái)?shù)據(jù)流圖回溯。
(2)用戶復(fù)查。
(3)細(xì)化數(shù)據(jù)流圖。
(4)修正開發(fā)計(jì)劃。
(5)書寫文檔。
(6)審查和復(fù)審。
4.軟件需求說明書
軟件需求說明書的內(nèi)容包括概述、數(shù)據(jù)描述(包括數(shù)據(jù)流圖、數(shù)據(jù)字典、系統(tǒng)接口說明和內(nèi)部接口)、功能描述(包括功能、處理說明和設(shè)計(jì)的限制)、性能描述(包括性能參數(shù)、測二訟類、預(yù)期的軟件響應(yīng)和應(yīng)考慮的特殊問題)、參考文獻(xiàn)目錄和附錄等。
考點(diǎn)(7)軟件系統(tǒng)設(shè)計(jì)
1.系統(tǒng)設(shè)計(jì)概述
系統(tǒng)設(shè)計(jì)一般分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個階段。
2.總體設(shè)計(jì)
總體設(shè)計(jì)的任務(wù)是確定軟件的總體結(jié)構(gòu)。
總體設(shè)計(jì)的目標(biāo)是用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)定的任務(wù),也就是說應(yīng)該確定系統(tǒng)的物理配置方案,并且進(jìn)而確定組成系統(tǒng)的每個程序的結(jié)構(gòu)。總體設(shè)計(jì)可以分為系統(tǒng)設(shè)計(jì)和軟件結(jié)構(gòu)設(shè)計(jì)。
總體設(shè)計(jì)的典型過程是設(shè)想供選擇的方案,選取合理的方案,推薦佳方案,功能分解,設(shè)計(jì)軟件結(jié)構(gòu),數(shù)據(jù)庫設(shè)計(jì),制定測試計(jì)劃,書寫文檔,審查和復(fù)查。
3.軟件的結(jié)構(gòu)、過程和模塊
(1)軟件結(jié)構(gòu)。是軟件模塊間關(guān)系的表示。
(2)軟件結(jié)構(gòu)的度量術(shù)語如下:
深度:是表示軟件結(jié)構(gòu)中控制的層數(shù)。
寬度:是軟件結(jié)構(gòu)內(nèi)同一層次上的模塊總和的大值。
扇出:是一個模塊直接控制的模塊數(shù)。
扇入:是有多個上級模塊直接調(diào)用一個模塊。
(3)軟件過程。軟件過程用于描述每個模塊的操作細(xì)節(jié),同時也包括一個模塊對下一層模塊控制的操作細(xì)節(jié)。
(4)模塊獨(dú)立性。是設(shè)計(jì)的軟件結(jié)構(gòu)使得每個模塊完成一個相對獨(dú)立的特定子功能,并且和其他模塊之間的關(guān)系很簡單。模塊獨(dú)立性是用藕合與內(nèi)聚來度量的。藕合:衡量不同模塊彼此之間相互依賴的緊密程度;內(nèi)聚:衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。
4.面向數(shù)據(jù)流的設(shè)計(jì)方法
面向數(shù)據(jù)流的設(shè)計(jì)方法是把信息映射成軟件結(jié)構(gòu),信息流的類型決定映射的方法。
(1)變換流是指信息沿輸入通路進(jìn)人系統(tǒng),同時由外部形式變換成內(nèi)部形式進(jìn)人系統(tǒng);信息通過變換中心,經(jīng)加工處理后,經(jīng)輸出通路變換成外部形式輸出。
(2)事務(wù)流是指數(shù)據(jù)沿輸入通路到達(dá)一個處理T,這個處理T根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行,這類數(shù)據(jù)流稱為事務(wù)流。
(3)面向數(shù)據(jù)流方法的設(shè)計(jì)過程是精化數(shù)據(jù)流圖,區(qū)分是事務(wù)流還是變換流,根據(jù)設(shè)計(jì)準(zhǔn)則精化軟件結(jié)構(gòu),導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu),復(fù)查,進(jìn)人詳細(xì)設(shè)計(jì)。
(4)變換分析指的是將變換流映射為變換結(jié)構(gòu)。變換分析的目的是用一系列設(shè)計(jì)步驟,把具有變換流特點(diǎn)的數(shù)據(jù)流按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。
(5)事務(wù)分析。事務(wù)分析的設(shè)計(jì)步驟和變換分析設(shè)計(jì)步驟大致相似,差別僅在于從數(shù)據(jù)流圖到軟件結(jié)構(gòu)的映射方法不同,它將事務(wù)中心映射成為軟件結(jié)構(gòu)中發(fā)送分支的調(diào)度模塊,將接收通路映射成為軟件結(jié)構(gòu)的接收分支。
(6)詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖中的每一個模塊確定所采用的算法和數(shù)據(jù)結(jié)構(gòu)。
考點(diǎn)(8)程序設(shè)計(jì)
1.程序設(shè)計(jì)階段的任務(wù)
編碼階段的任務(wù)是為每個模塊編寫程序,就是將詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)換成某種程序語言的源程序,編譯程序再將這些源程序轉(zhuǎn)換成依賴于具體機(jī)器的目標(biāo)代碼。
2.結(jié)構(gòu)化設(shè)計(jì)的概述
結(jié)構(gòu)化設(shè)計(jì)的基本要求是在詳細(xì)設(shè)計(jì)階段,所有的模塊都只使用順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)。結(jié)構(gòu)化設(shè)計(jì)的缺點(diǎn)是目標(biāo)程序所需要的存儲容量和運(yùn)行時間都有一些增加。
3.程序設(shè)計(jì)語言的選擇
(l)程序設(shè)計(jì)語言。程序設(shè)計(jì)語言是編程者用于求解問題的工具。
(2)程序高級語言通常分為基本語言、結(jié)構(gòu)化程序語言和專用語言。
(3)程序設(shè)計(jì)語言的選擇。選擇語言的方法是從所要解決的課題出發(fā)確定對語言的要求,并同時確定這些要求的相對重要性。
4.程序設(shè)計(jì)的方法
(1)模塊化。是把一個較大的程序劃分為若干個子程序,每一個子程序總是獨(dú)立成為一個模塊;每一個模塊又可繼續(xù)劃分為更小的子模塊。
(2)自頂向下。是先設(shè)計(jì)第1層,即頂層,然后步步深入,逐層細(xì)分,逐步求精,直到整個問題可用程序設(shè)計(jì)語言明確地描述出來為止。
(3)自底向上。是先設(shè)計(jì)底層,后設(shè)計(jì)頂層。
5.程序設(shè)計(jì)的步驟
(1)分析問題。
(2)建立數(shù)學(xué)模型。
(3)選擇算法。
(4)編寫程序。
(5)調(diào)試運(yùn)行
(6)分析結(jié)果。
(7)寫出程序的文檔。
1.需求分析的任務(wù)
確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。需求分析的出發(fā)點(diǎn)是可行性分析階段產(chǎn)生的文檔和數(shù)據(jù)流圖;需求分析的具體任務(wù)是確定對系統(tǒng)的綜合要求,分析系統(tǒng)的數(shù)據(jù)要求,導(dǎo)出系統(tǒng)的邏輯模型,修正系統(tǒng)開發(fā)計(jì)劃,開發(fā)原型系統(tǒng)。
2.需求分析常用的工具
(1)數(shù)據(jù)字典是定義一個應(yīng)用程序中使用的所有數(shù)據(jù)元素和結(jié)構(gòu)的含義、類型、數(shù)據(jù)大小、格式、度量單位、精度以及允許取值范圍的共享倉庫。
(2)數(shù)據(jù)流圖。是結(jié)構(gòu)化系統(tǒng)分析的基本工具。一個數(shù)據(jù)流圖確定了系統(tǒng)的轉(zhuǎn)化過程、系統(tǒng)所操縱的數(shù)據(jù)或物質(zhì)的收集(存儲),還有過程、存儲、外部世界之間的數(shù)據(jù)流或物質(zhì)流。
(3)狀態(tài)轉(zhuǎn)換圖。實(shí)時系統(tǒng)和過程控制應(yīng)用程序可以在任何給定的時間內(nèi)以有限的狀 態(tài)存在。
(4)對話圖。對話圖描繪了系統(tǒng)中的對話元素和它們之間的導(dǎo)航連接。
(5)類圖。類圖是用圖形方式敘述面向?qū)ο蠓治鏊_定的類及它們之間的關(guān)系。
3.需求分析的方法和步驟
需求分析的方法如下:
(1)理解當(dāng)前的現(xiàn)實(shí)環(huán)境。
(2)將當(dāng)前系統(tǒng)的具體模型抽象為當(dāng)前的邏輯模型。
(3)分析新系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,建立新系統(tǒng)的邏輯模型。
(4)確定新系統(tǒng)的人機(jī)界面和一些補(bǔ)充考慮的細(xì)節(jié)問題。
需求分析的步驟如下:
(1)沿?cái)?shù)據(jù)流圖回溯。
(2)用戶復(fù)查。
(3)細(xì)化數(shù)據(jù)流圖。
(4)修正開發(fā)計(jì)劃。
(5)書寫文檔。
(6)審查和復(fù)審。
4.軟件需求說明書
軟件需求說明書的內(nèi)容包括概述、數(shù)據(jù)描述(包括數(shù)據(jù)流圖、數(shù)據(jù)字典、系統(tǒng)接口說明和內(nèi)部接口)、功能描述(包括功能、處理說明和設(shè)計(jì)的限制)、性能描述(包括性能參數(shù)、測二訟類、預(yù)期的軟件響應(yīng)和應(yīng)考慮的特殊問題)、參考文獻(xiàn)目錄和附錄等。
考點(diǎn)(7)軟件系統(tǒng)設(shè)計(jì)
1.系統(tǒng)設(shè)計(jì)概述
系統(tǒng)設(shè)計(jì)一般分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個階段。
2.總體設(shè)計(jì)
總體設(shè)計(jì)的任務(wù)是確定軟件的總體結(jié)構(gòu)。
總體設(shè)計(jì)的目標(biāo)是用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)定的任務(wù),也就是說應(yīng)該確定系統(tǒng)的物理配置方案,并且進(jìn)而確定組成系統(tǒng)的每個程序的結(jié)構(gòu)。總體設(shè)計(jì)可以分為系統(tǒng)設(shè)計(jì)和軟件結(jié)構(gòu)設(shè)計(jì)。
總體設(shè)計(jì)的典型過程是設(shè)想供選擇的方案,選取合理的方案,推薦佳方案,功能分解,設(shè)計(jì)軟件結(jié)構(gòu),數(shù)據(jù)庫設(shè)計(jì),制定測試計(jì)劃,書寫文檔,審查和復(fù)查。
3.軟件的結(jié)構(gòu)、過程和模塊
(1)軟件結(jié)構(gòu)。是軟件模塊間關(guān)系的表示。
(2)軟件結(jié)構(gòu)的度量術(shù)語如下:
深度:是表示軟件結(jié)構(gòu)中控制的層數(shù)。
寬度:是軟件結(jié)構(gòu)內(nèi)同一層次上的模塊總和的大值。
扇出:是一個模塊直接控制的模塊數(shù)。
扇入:是有多個上級模塊直接調(diào)用一個模塊。
(3)軟件過程。軟件過程用于描述每個模塊的操作細(xì)節(jié),同時也包括一個模塊對下一層模塊控制的操作細(xì)節(jié)。
(4)模塊獨(dú)立性。是設(shè)計(jì)的軟件結(jié)構(gòu)使得每個模塊完成一個相對獨(dú)立的特定子功能,并且和其他模塊之間的關(guān)系很簡單。模塊獨(dú)立性是用藕合與內(nèi)聚來度量的。藕合:衡量不同模塊彼此之間相互依賴的緊密程度;內(nèi)聚:衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。
4.面向數(shù)據(jù)流的設(shè)計(jì)方法
面向數(shù)據(jù)流的設(shè)計(jì)方法是把信息映射成軟件結(jié)構(gòu),信息流的類型決定映射的方法。
(1)變換流是指信息沿輸入通路進(jìn)人系統(tǒng),同時由外部形式變換成內(nèi)部形式進(jìn)人系統(tǒng);信息通過變換中心,經(jīng)加工處理后,經(jīng)輸出通路變換成外部形式輸出。
(2)事務(wù)流是指數(shù)據(jù)沿輸入通路到達(dá)一個處理T,這個處理T根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行,這類數(shù)據(jù)流稱為事務(wù)流。
(3)面向數(shù)據(jù)流方法的設(shè)計(jì)過程是精化數(shù)據(jù)流圖,區(qū)分是事務(wù)流還是變換流,根據(jù)設(shè)計(jì)準(zhǔn)則精化軟件結(jié)構(gòu),導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu),復(fù)查,進(jìn)人詳細(xì)設(shè)計(jì)。
(4)變換分析指的是將變換流映射為變換結(jié)構(gòu)。變換分析的目的是用一系列設(shè)計(jì)步驟,把具有變換流特點(diǎn)的數(shù)據(jù)流按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。
(5)事務(wù)分析。事務(wù)分析的設(shè)計(jì)步驟和變換分析設(shè)計(jì)步驟大致相似,差別僅在于從數(shù)據(jù)流圖到軟件結(jié)構(gòu)的映射方法不同,它將事務(wù)中心映射成為軟件結(jié)構(gòu)中發(fā)送分支的調(diào)度模塊,將接收通路映射成為軟件結(jié)構(gòu)的接收分支。
(6)詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖中的每一個模塊確定所采用的算法和數(shù)據(jù)結(jié)構(gòu)。
考點(diǎn)(8)程序設(shè)計(jì)
1.程序設(shè)計(jì)階段的任務(wù)
編碼階段的任務(wù)是為每個模塊編寫程序,就是將詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)換成某種程序語言的源程序,編譯程序再將這些源程序轉(zhuǎn)換成依賴于具體機(jī)器的目標(biāo)代碼。
2.結(jié)構(gòu)化設(shè)計(jì)的概述
結(jié)構(gòu)化設(shè)計(jì)的基本要求是在詳細(xì)設(shè)計(jì)階段,所有的模塊都只使用順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)。結(jié)構(gòu)化設(shè)計(jì)的缺點(diǎn)是目標(biāo)程序所需要的存儲容量和運(yùn)行時間都有一些增加。
3.程序設(shè)計(jì)語言的選擇
(l)程序設(shè)計(jì)語言。程序設(shè)計(jì)語言是編程者用于求解問題的工具。
(2)程序高級語言通常分為基本語言、結(jié)構(gòu)化程序語言和專用語言。
(3)程序設(shè)計(jì)語言的選擇。選擇語言的方法是從所要解決的課題出發(fā)確定對語言的要求,并同時確定這些要求的相對重要性。
4.程序設(shè)計(jì)的方法
(1)模塊化。是把一個較大的程序劃分為若干個子程序,每一個子程序總是獨(dú)立成為一個模塊;每一個模塊又可繼續(xù)劃分為更小的子模塊。
(2)自頂向下。是先設(shè)計(jì)第1層,即頂層,然后步步深入,逐層細(xì)分,逐步求精,直到整個問題可用程序設(shè)計(jì)語言明確地描述出來為止。
(3)自底向上。是先設(shè)計(jì)底層,后設(shè)計(jì)頂層。
5.程序設(shè)計(jì)的步驟
(1)分析問題。
(2)建立數(shù)學(xué)模型。
(3)選擇算法。
(4)編寫程序。
(5)調(diào)試運(yùn)行
(6)分析結(jié)果。
(7)寫出程序的文檔。