考點(diǎn)11 結(jié)構(gòu)化方法開發(fā)過程
結(jié)構(gòu)化方法將軟件生命周期分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分若干階段。
1計(jì)劃期
計(jì)劃期的主要任務(wù)是分析新系統(tǒng)應(yīng)設(shè)定的目標(biāo),分析用戶的基本需求,按設(shè)定目標(biāo)的要求進(jìn)行問題定義,并分析開發(fā)該系統(tǒng)的可行性,用戶與分析人員的交互和配合是這一時(shí)期的重要特征和要求。
(1)問題定義確定軟件系統(tǒng)的主要功能。分析人員在與用戶討論的基礎(chǔ)上提出軟件系統(tǒng)目標(biāo)、范圍與功能說明。
(2)可行性研究對問題定義階段所確定的問題實(shí)現(xiàn)的可能性和必要性進(jìn)行研究,并討論問題的解決辦法,對各種可能方案做出必要的成本-效益分析,分析人員據(jù)此提出可行性分析報(bào)告,作為使用部門是否繼續(xù)進(jìn)行該項(xiàng)工程的依據(jù)。
2開發(fā)期
開發(fā)期包括分析、設(shè)計(jì)和實(shí)施兩類任務(wù)。其中分析、設(shè)計(jì)包括需求分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)3個(gè)階段,實(shí)施則包括編碼和測試兩個(gè)階段。
(l)需求分析。確定用戶對軟件系統(tǒng)的功能性和非功能性的全部需求,并以需求規(guī)格說明書的形式表達(dá);
(2)總體設(shè)計(jì)。建立軟件系統(tǒng)的總體結(jié)構(gòu),子系統(tǒng)劃分,并提出軟件結(jié)構(gòu)圖;
(3)詳細(xì)設(shè)計(jì)。確定軟件結(jié)構(gòu)圖中每個(gè)模塊的內(nèi)部過程和結(jié)構(gòu);
(4)編碼。按照選定軟件的程序語言,將模塊的過程性描述翻譯成程序;
(5)測試。發(fā)現(xiàn)并排除上述各階段所產(chǎn)生的各種錯(cuò)誤。
3運(yùn)行期
運(yùn)行期的主要任務(wù)是軟件維護(hù)。
考點(diǎn)12 軟件需求規(guī)格說明書
軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。
(1)軟件需求規(guī)格說明書有以下幾個(gè)方面的作用。①便于用戶、開發(fā)人員進(jìn)行理解和交流;
②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);
③作為確認(rèn)測試和驗(yàn)收的依據(jù)。
(2)軟件需求規(guī)格說明書有以下幾個(gè)方面的內(nèi)容。
①概述;
②數(shù)據(jù)描述;
③功能描述;
④性能描述;
⑤參考文獻(xiàn);
⑥附錄。
(3)軟件需求規(guī)格說明書有以下幾個(gè)方面的特點(diǎn)。
①正確性;
②無歧義性;
③完整性;
④可驗(yàn)證性;
⑤一致性;
⑥可理解性;
⑦可修改性;
⑧可追蹤性。
3.3結(jié)構(gòu)化設(shè)計(jì)方法
考點(diǎn)13 軟件設(shè)計(jì)的基本概念
1軟件設(shè)計(jì)的基礎(chǔ)
軟件設(shè)計(jì)是軟件工程的重要階段,是一個(gè)把軟件需求轉(zhuǎn)換為軟件表示的過程軟件設(shè)計(jì)的重要性和地位概括為以下幾點(diǎn):
(l)軟件開發(fā)階段(設(shè)計(jì)、編碼、測試)占軟件項(xiàng)目開發(fā)總成本的絕大部分,是在軟件開發(fā)中形成質(zhì)量的關(guān)鍵環(huán)節(jié);
(2)軟件設(shè)計(jì)是開發(fā)階段最重要的步驟,是將需求準(zhǔn)確地轉(zhuǎn)化為完整的軟件產(chǎn)品或系統(tǒng)的途徑;
(3)軟件設(shè)計(jì)做出的決策,最終影響軟件實(shí)現(xiàn)的成??;
(4)設(shè)計(jì)是軟件工程和軟件維護(hù)的基礎(chǔ)。
從技術(shù)觀點(diǎn)上看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。其中,結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)各主要部件之間的關(guān)系;數(shù)據(jù)設(shè)計(jì)將分析時(shí)創(chuàng)建的模)MI轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義;接口設(shè)計(jì)是描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與入之間如何通信;過程設(shè)計(jì)則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換為軟件的過程性描述。
從工程管理角度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。
軟件設(shè)計(jì)的一般過程是:軟件設(shè)計(jì)是一個(gè)迭代的過程;先進(jìn)行高層次的結(jié)構(gòu)設(shè)計(jì);然后進(jìn)行低層次的過程設(shè)計(jì);穿插進(jìn)行數(shù)據(jù)設(shè)計(jì)和接口設(shè)計(jì)。
2軟件設(shè)計(jì)的基本原理
(1)抽象。抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細(xì)節(jié)。
(2)模塊化模塊是指把一個(gè)待開發(fā)的軟件分解成若千小的簡單的部分。模塊化是指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。
(3)信息隱蔽。是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。
(4)模塊獨(dú)立性。是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。
模塊的獨(dú)立程度是評價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。
內(nèi)聚性是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對指標(biāo),耦合性則用來度量模塊之間的相互聯(lián)系程度。
耦合可以分為下列幾種,它們之間的耦合度由高到低排列:
內(nèi)容耦合――若一個(gè)模塊直接訪問另一模塊的內(nèi)容,則這兩個(gè)模塊稱為內(nèi)容耦合。
公共耦合――若一組模塊都訪問同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱為公共耦合。
外部耦合――若一組模塊都訪問同一全局?jǐn)?shù)據(jù)項(xiàng),則稱為外部耦合。
控制耦合—一若一模塊明顯地把開關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能,則稱為控制耦合。
標(biāo)記耦合――若兩個(gè)以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時(shí),不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標(biāo)記耦合。
數(shù)據(jù)耦合――若一個(gè)模塊訪問另一個(gè)模塊,被訪問模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)模塊為數(shù)據(jù)耦合。
非直接耦合――若兩個(gè)模塊沒有直接關(guān)系,它們之間的聯(lián)系完全是通過程序的控制和調(diào)用來實(shí)現(xiàn)的,則稱這兩個(gè)模塊為非直接耦合,這樣的荊合獨(dú)立性。
結(jié)構(gòu)化方法將軟件生命周期分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分若干階段。
1計(jì)劃期
計(jì)劃期的主要任務(wù)是分析新系統(tǒng)應(yīng)設(shè)定的目標(biāo),分析用戶的基本需求,按設(shè)定目標(biāo)的要求進(jìn)行問題定義,并分析開發(fā)該系統(tǒng)的可行性,用戶與分析人員的交互和配合是這一時(shí)期的重要特征和要求。
(1)問題定義確定軟件系統(tǒng)的主要功能。分析人員在與用戶討論的基礎(chǔ)上提出軟件系統(tǒng)目標(biāo)、范圍與功能說明。
(2)可行性研究對問題定義階段所確定的問題實(shí)現(xiàn)的可能性和必要性進(jìn)行研究,并討論問題的解決辦法,對各種可能方案做出必要的成本-效益分析,分析人員據(jù)此提出可行性分析報(bào)告,作為使用部門是否繼續(xù)進(jìn)行該項(xiàng)工程的依據(jù)。
2開發(fā)期
開發(fā)期包括分析、設(shè)計(jì)和實(shí)施兩類任務(wù)。其中分析、設(shè)計(jì)包括需求分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)3個(gè)階段,實(shí)施則包括編碼和測試兩個(gè)階段。
(l)需求分析。確定用戶對軟件系統(tǒng)的功能性和非功能性的全部需求,并以需求規(guī)格說明書的形式表達(dá);
(2)總體設(shè)計(jì)。建立軟件系統(tǒng)的總體結(jié)構(gòu),子系統(tǒng)劃分,并提出軟件結(jié)構(gòu)圖;
(3)詳細(xì)設(shè)計(jì)。確定軟件結(jié)構(gòu)圖中每個(gè)模塊的內(nèi)部過程和結(jié)構(gòu);
(4)編碼。按照選定軟件的程序語言,將模塊的過程性描述翻譯成程序;
(5)測試。發(fā)現(xiàn)并排除上述各階段所產(chǎn)生的各種錯(cuò)誤。
3運(yùn)行期
運(yùn)行期的主要任務(wù)是軟件維護(hù)。
考點(diǎn)12 軟件需求規(guī)格說明書
軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。
(1)軟件需求規(guī)格說明書有以下幾個(gè)方面的作用。①便于用戶、開發(fā)人員進(jìn)行理解和交流;
②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);
③作為確認(rèn)測試和驗(yàn)收的依據(jù)。
(2)軟件需求規(guī)格說明書有以下幾個(gè)方面的內(nèi)容。
①概述;
②數(shù)據(jù)描述;
③功能描述;
④性能描述;
⑤參考文獻(xiàn);
⑥附錄。
(3)軟件需求規(guī)格說明書有以下幾個(gè)方面的特點(diǎn)。
①正確性;
②無歧義性;
③完整性;
④可驗(yàn)證性;
⑤一致性;
⑥可理解性;
⑦可修改性;
⑧可追蹤性。
3.3結(jié)構(gòu)化設(shè)計(jì)方法
考點(diǎn)13 軟件設(shè)計(jì)的基本概念
1軟件設(shè)計(jì)的基礎(chǔ)
軟件設(shè)計(jì)是軟件工程的重要階段,是一個(gè)把軟件需求轉(zhuǎn)換為軟件表示的過程軟件設(shè)計(jì)的重要性和地位概括為以下幾點(diǎn):
(l)軟件開發(fā)階段(設(shè)計(jì)、編碼、測試)占軟件項(xiàng)目開發(fā)總成本的絕大部分,是在軟件開發(fā)中形成質(zhì)量的關(guān)鍵環(huán)節(jié);
(2)軟件設(shè)計(jì)是開發(fā)階段最重要的步驟,是將需求準(zhǔn)確地轉(zhuǎn)化為完整的軟件產(chǎn)品或系統(tǒng)的途徑;
(3)軟件設(shè)計(jì)做出的決策,最終影響軟件實(shí)現(xiàn)的成??;
(4)設(shè)計(jì)是軟件工程和軟件維護(hù)的基礎(chǔ)。
從技術(shù)觀點(diǎn)上看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。其中,結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)各主要部件之間的關(guān)系;數(shù)據(jù)設(shè)計(jì)將分析時(shí)創(chuàng)建的模)MI轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義;接口設(shè)計(jì)是描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與入之間如何通信;過程設(shè)計(jì)則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換為軟件的過程性描述。
從工程管理角度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。
軟件設(shè)計(jì)的一般過程是:軟件設(shè)計(jì)是一個(gè)迭代的過程;先進(jìn)行高層次的結(jié)構(gòu)設(shè)計(jì);然后進(jìn)行低層次的過程設(shè)計(jì);穿插進(jìn)行數(shù)據(jù)設(shè)計(jì)和接口設(shè)計(jì)。
2軟件設(shè)計(jì)的基本原理
(1)抽象。抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細(xì)節(jié)。
(2)模塊化模塊是指把一個(gè)待開發(fā)的軟件分解成若千小的簡單的部分。模塊化是指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。
(3)信息隱蔽。是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。
(4)模塊獨(dú)立性。是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。
模塊的獨(dú)立程度是評價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。
內(nèi)聚性是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對指標(biāo),耦合性則用來度量模塊之間的相互聯(lián)系程度。
耦合可以分為下列幾種,它們之間的耦合度由高到低排列:
內(nèi)容耦合――若一個(gè)模塊直接訪問另一模塊的內(nèi)容,則這兩個(gè)模塊稱為內(nèi)容耦合。
公共耦合――若一組模塊都訪問同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱為公共耦合。
外部耦合――若一組模塊都訪問同一全局?jǐn)?shù)據(jù)項(xiàng),則稱為外部耦合。
控制耦合—一若一模塊明顯地把開關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能,則稱為控制耦合。
標(biāo)記耦合――若兩個(gè)以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時(shí),不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標(biāo)記耦合。
數(shù)據(jù)耦合――若一個(gè)模塊訪問另一個(gè)模塊,被訪問模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)模塊為數(shù)據(jù)耦合。
非直接耦合――若兩個(gè)模塊沒有直接關(guān)系,它們之間的聯(lián)系完全是通過程序的控制和調(diào)用來實(shí)現(xiàn)的,則稱這兩個(gè)模塊為非直接耦合,這樣的荊合獨(dú)立性。