![軟件工程技術(shù)基礎(chǔ)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c4/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c41.gif)
![軟件工程技術(shù)基礎(chǔ)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c4/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c42.gif)
![軟件工程技術(shù)基礎(chǔ)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c4/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c43.gif)
![軟件工程技術(shù)基礎(chǔ)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c4/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c44.gif)
![軟件工程技術(shù)基礎(chǔ)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c4/b4b39fa2-d1b3-4373-8f0f-2b85e8b739c45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第4章 軟件工程技術(shù)基礎(chǔ)n4.1 軟件工程的基本原則n4.2 軟件開發(fā)過程n4.3 軟件開發(fā)中的系統(tǒng)分析與設(shè)計方法n4.4 軟件開發(fā)管理技術(shù)第4章 軟件工程技術(shù)基礎(chǔ)從20世紀60年代末開始出現(xiàn)了“軟件危機”。它的主要表現(xiàn)是:軟件質(zhì)量難以保證;成本增長難以控制,極少有在預(yù)定的成本預(yù)算內(nèi)完成的;軟件開發(fā)進度難以控制,周期拖得很長;軟件的維護很困難,維護人員和費用不斷增加等等。第4章 軟件工程技術(shù)基礎(chǔ) “軟件工程”主要思想是按工程化的原則和方法來組織和規(guī)范軟件開發(fā)過程,解決軟件研制中面臨的困難和混亂,從而根本上解決軟件危機。 所謂軟件工程,就是研究大規(guī)模程序設(shè)計的方法、工具和管理的一門工程科學。4.
2、1 軟件工程的基本原則軟件工程的基本原則包括:n劃分軟件生命期:在時間上進行分解,將軟件開發(fā)過程分解為一系列的分階段的任務(wù)。n進行計劃評審:和一般工程項目一樣,軟件開發(fā)要嚴格按計劃管理,堅持進行階段評審。n編制軟件文檔:在軟件工程每一階段都要編制完整、精確的文檔。4.1.1 軟件生命期 一般說來,軟件從產(chǎn)生、發(fā)展到淘汰要經(jīng)歷定義、開發(fā)和維護三大階段。更詳細劃分,又可分為六個或七個階段。 具體來說,即定義階段的可行性論證與開發(fā)計劃、需求分析,開發(fā)階段的概要設(shè)計、詳細設(shè)計和編碼,維護階段的測試、運行維護。4.1.2 計劃與評審軟件工程按軟件開發(fā)活動步驟應(yīng)該制定以下計劃:n項目實施總計劃n軟件配置管
3、理計劃n軟件質(zhì)量保證計劃n測試計劃n安全保密計劃n系統(tǒng)安裝計劃n運行和維護管理計劃4.1.3 編制軟件文檔文檔具有如下主要作用:n(1)作為開發(fā)人員在一定階段內(nèi)承擔任務(wù)的工作結(jié)果和結(jié)束標志。n(2)向管理人員提供軟件開發(fā)工作的進展情況,把軟件開發(fā)過程中的一些“不可見”的事物轉(zhuǎn)換成“可見”的文字資料。 n(3)記錄開發(fā)過程中的技術(shù)信息,以便協(xié)調(diào)工作,并作為下一階段工作的基礎(chǔ)。 4.1.3 編制軟件文檔n(4)提供有關(guān)軟件維護、培訓、流通和運行信息,有助于管理人員、開發(fā)人員、操作人員和用戶之間工作的了解。n(5)向未來用戶介紹軟件的功能和能力,使之能判斷該軟件能否適合使用者的需要。4.2.1 軟件
4、開發(fā)過程模型 軟件開發(fā)的目標就是在規(guī)定的投資和時間限制內(nèi),開發(fā)出符合用戶需求的高質(zhì)量軟件。4.2 軟件開發(fā)過程4.2.1 軟件開發(fā)過程模型軟件開發(fā)過程模型主要有兩類:n1. 瀑布模型 瀑布型開發(fā)方法遵循軟件生命期的劃分,明確規(guī)定每個階段的任務(wù)。瀑布型開發(fā)方法的階段劃分和開發(fā)過程如圖6.1所示。4.2.1 軟件開發(fā)過程模型4.2.1 軟件開發(fā)過程模型 瀑布型開發(fā)方法適合于在軟件需求比較明確、開發(fā)技術(shù)比較成熟、工程管理比較嚴格的場合下使用。各種應(yīng)用軟件的開發(fā)均可使用此法。4.2.1 軟件開發(fā)過程模型n 2漸增模型 漸增型開發(fā)方法不要求從一開始就有一個完整的軟件需求定義。漸增型開發(fā)方法允許從部分需求
5、定義出發(fā)。先建立一個不完全的系統(tǒng),通過測試運行整個系統(tǒng)取得經(jīng)驗和反饋,加深對軟件需求的理解,進一步使系統(tǒng)擴充和完善。如此反復進行,直至軟件人員和用戶對所設(shè)計完成的軟件系統(tǒng)滿意為止,如圖6.2所示。4.2.1 軟件開發(fā)過程模型4.2.1 軟件開發(fā)過程模型 漸增型開發(fā)方法適合于那些用戶需求不太明確,而是要在開發(fā)過程中不斷認識、不斷獲取新的知識去豐富和完善的系統(tǒng)。對于研究性質(zhì)的實驗軟件,一般采用此法。4.2.2 可行性論證可行性研究主要集中在如下兩個方面:n經(jīng)濟可行性:這是對經(jīng)濟合理性進行評價,包括對項目進行成本效益分析,比較項目開發(fā)的成本與預(yù)期將得到的效益。n技術(shù)可行性:分析技術(shù)風險的各種因素,例
6、如有關(guān)技術(shù)是否成熟?有沒有勝任開發(fā)該系統(tǒng)的熟練技術(shù)人員?為開發(fā)項目的所有硬件、軟件資源能否按期得到等等。4.2.2 可行性論證可行性報告應(yīng)包括以下幾個方面:n背景情況:包括國內(nèi)外水平、歷史現(xiàn)狀和市場需求。n系統(tǒng)描述:包括總體方案和技術(shù)路線、課題分解、關(guān)鍵技術(shù)、計劃目標和階段目標。n成本效益分析:即經(jīng)濟可行性,包括經(jīng)費核算和預(yù)期經(jīng)濟效益。n技術(shù)風險評價:即技術(shù)可行性,包括技術(shù)實力、設(shè)備條件和已有工作基礎(chǔ)。n其他與項目有關(guān)的問題:如法律問題,確定由于系統(tǒng)開發(fā)可能引起的侵權(quán)或法律責任等。4.2.3 需求分析需求分析階段的具體任務(wù)大體包括以下幾方面:1. 確定系統(tǒng)的要求n系統(tǒng)功能要求:系統(tǒng)必須完成的所
7、有功能,這是最主要的需求。n系統(tǒng)性能要求:與具體系統(tǒng)的實現(xiàn)有關(guān)。一般包括系統(tǒng)的響應(yīng)時間(系統(tǒng)的反應(yīng)速度)、系統(tǒng)所需的存儲空間、系統(tǒng)的可靠性(平均無故障時間)等等。4.2.3 需求分析n系統(tǒng)運行要求:即系統(tǒng)運行時所處環(huán)境的要求。n系統(tǒng)未來可能提出的要求4.2.3 需求分析2分析系統(tǒng)的數(shù)據(jù)要求n數(shù)據(jù)流圖(data flow diagram,簡稱DFD)是描述數(shù)據(jù)處理過程的有力工具。DFD從數(shù)據(jù)傳遞和加工的角度,以圖形的方式描述數(shù)據(jù)處理系統(tǒng)的工作情況。n數(shù)據(jù)詞典(data dictionary,簡稱DD)是分析數(shù)據(jù)處理的另一常用工具,通常與DFD圖配合使用。數(shù)據(jù)詞典的任務(wù)是對DFD中出現(xiàn)的所有數(shù)據(jù)元
8、素給出明確定義,使DFD中的數(shù)據(jù)流名字、加工名字和文件名字具有確切的解釋。所有名字按詞條給出定義。全體定義構(gòu)成數(shù)據(jù)詞典。4.2.3 需求分析4.2.3 需求分析3修正開發(fā)計劃4編寫文檔 這階段主要要完成兩份文檔:軟件需求規(guī)格說明書和初步用戶手冊。 經(jīng)過需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,接下來就是決定“怎么做”。 概要設(shè)計也稱總體設(shè)計。它的主要任務(wù)有兩個: (1)設(shè)計軟件系統(tǒng)結(jié)構(gòu),也就是要確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系; (2)設(shè)計主要數(shù)據(jù)結(jié)構(gòu)。4.2.4 概要設(shè)計4.2.4 概要設(shè)計1. 概要設(shè)計的過程n (1)選取最佳實現(xiàn)方案:4.2.4 概要
9、設(shè)計n(2)設(shè)計軟件總體結(jié)構(gòu):通過對系統(tǒng)進行功能分解,來劃分功能模塊。應(yīng)該把模塊組織成良好的層次系統(tǒng)。上層模塊調(diào)用下層模塊,最下層的模塊完成最基本、最具體的功能。軟件結(jié)構(gòu)一般用層次圖或結(jié)構(gòu)圖來描述。4.2.4 概要設(shè)計n(3)設(shè)計主要數(shù)據(jù)結(jié)構(gòu):決定主要算法的數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)或數(shù)據(jù)庫模式。分析員應(yīng)該對數(shù)據(jù)庫作進一步設(shè)計,包括模式、子模式、完整性、安全性設(shè)計。n(4)完成用戶手冊:對需求分析階段編寫的初步用戶手冊進行重新審定、完善,在概要設(shè)計的基礎(chǔ)上確定用戶使用的要求。4.2.4 概要設(shè)計n(5)制定初步測試計劃:完成概要設(shè)計以后,應(yīng)對測試的策略、方法和步驟等提出明確的要求。n(6)概要設(shè)計評審
10、:評審時待別要著重以下幾個方面:軟件的整體結(jié)構(gòu)和各子系統(tǒng)的結(jié)構(gòu)、各部分之間的聯(lián)系、用戶接口等等。4.2.4 概要設(shè)計2模塊化軟件設(shè)計的基本概念和原理n(1)模塊化 模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集中起來組成一個整體,從而完成指定的功能,滿足問題的要求。4.2.4 概要設(shè)計4.2.4 概要設(shè)計n(2)信息隱蔽和局部化 信息隱蔽:在設(shè)計模塊時,應(yīng)讓一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于其他不需要這些信息的模塊來說,是不能訪問的。 所謂局部化:是把一些關(guān)系密切的軟件元素盡可能地放在一起。4.2.4 概要設(shè)計n(3)模塊獨立 模塊獨立指的是:每個模塊完成一個相對獨
11、立的特定子功能,與其他模塊之間的關(guān)系盡量簡單。 模塊獨立的程度由兩個標準耦合和內(nèi)聚來衡量。n耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。耦合強弱取決于模塊間接口的復雜程度。n內(nèi)聚是對模塊內(nèi)各個無素彼此結(jié)合的緊密程度的度量。4.2.4 概要設(shè)計4.2.4 概要設(shè)計(4)模塊劃分的原則n改進軟件結(jié)構(gòu)提高模塊獨立性,降低模塊接口的復雜程度。n模塊規(guī)模應(yīng)該適中。n深度、寬度、扇出和扇入都應(yīng)適當。 深度表示軟件結(jié)構(gòu)中控制的層數(shù),它往往能粗略標志個系統(tǒng)的大小和復雜程度。如果層數(shù)過多則應(yīng)考慮模塊能否合并。 寬度是軟件結(jié)構(gòu)同一層次上的模塊總數(shù)的最大值。一般說來寬度越大系統(tǒng)越復雜。 4.2.4 概要設(shè)計扇
12、出是一個模塊直接控制(調(diào)用)的模塊數(shù)目。扇出過大意味著模塊過分復雜,過小也不好。在設(shè)計得好的系統(tǒng)中,通常模塊扇出是3或4。 一個模塊的扇入表明有多少個上級模塊直接調(diào)用它。n設(shè)計單入口單出口的模塊。4.2.4 概要設(shè)計4.2.4 概要設(shè)計3軟件結(jié)構(gòu)的表示n通常在概要設(shè)計時,采用層次圖來描述軟件的層次結(jié)構(gòu),它很適合在自頂向下設(shè)計軟件的過程中使用。4.2.4 概要設(shè)計4.2.5 詳細設(shè)計 詳細設(shè)計階段的根本目標是確定應(yīng)該怎樣具體地實現(xiàn)所要求的系統(tǒng)。 也就是說,經(jīng)過整個階段的設(shè)計工作應(yīng)該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把整個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。4.2.5 詳細設(shè)計
13、描述程序處理過程的工具稱為詳細設(shè)計的工具,它們可以分為圖形、表格和語言三類。下面介紹幾種常用的表示工具。1程序流程圖 程序流程圖又稱為程序框圖,如圖65所示。4.2.5 詳細設(shè)計4.2.5 詳細設(shè)計n它的主要優(yōu)點是對控制流程的描繪很直觀,便于初學者掌握。n程序流程圖的主要缺點有:程序流程圖本質(zhì)上不是逐步求精、細化的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。4.2.5 詳細設(shè)計2盒圖(NS圖) Nassi和Shneiderman提出了NS圖
14、,又稱為盒圖。它有下述特點:n功能域(即一個待定控制結(jié)構(gòu)的作用域)明確??梢詮暮袌D上一眼就看出來。n不可能任意轉(zhuǎn)移控制。n很容易確定局部和全程數(shù)據(jù)的作用城。n很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。4.2.5 詳細設(shè)計4.2.5 詳細設(shè)計3PAD圖 PAD是問題分析圖(problem analysis diagram)的英文縮寫,自1973年由日本日立公司發(fā)明以后得到一定程度的推廣。它用二維樹形結(jié)構(gòu)圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。圖6.7給出了PAD圖的基本符號。4.2.5 詳細設(shè)計4.2.5 詳細設(shè)計PAD圖的主要優(yōu)點如下:n使用PAD符號所設(shè)計出來的程序必然是結(jié)
15、構(gòu)化程序。nPAD圖所描繪的程序結(jié)構(gòu)十分清晰。n用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。n容易將PAD圖轉(zhuǎn)換成高級語言源程序。nPAD圖既可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。4.2.5 詳細設(shè)計nPAD圖支持自頂向下、逐步求精方法的使用。 4.2.5 詳細設(shè)計4過程設(shè)計語言(PDL) PDL也稱為偽碼,這是一個籠統(tǒng)的名稱,現(xiàn)在有許多種不同的過程設(shè)計語言在使用。它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計工具。4.2.5 詳細設(shè)計Procedure 查找錯拼單詞 isbegin 把整個文件分離成單詞; 查字典; 顯示字典中查不到的單詞end4.2.5 詳細設(shè)計PDL具有下述特點:n它具有結(jié)構(gòu)化
16、控制、數(shù)據(jù)說明和模塊化的特點。n僅有少量的語法規(guī)則,大量使用自然語言語句,能靈活方便地描述程序算法。n既包括簡單的數(shù)據(jù)結(jié)構(gòu),又包括復雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表)。n提供各種接口描述模式。4.2.5 詳細設(shè)計nPDL具有如下一些優(yōu)點:可以作為注釋直接插在源程序中間??梢允褂闷胀ǖ恼木庉嫵绦蚧蛭淖痔幚硐到y(tǒng),很方便地完成PDL的書寫和編輯工作。已經(jīng)有自動處理程序存在,而且可以自動由PDL生成程序代碼。nPDL的缺點是不如圖形工具形象直觀,描述復雜的條件組合與動作的對應(yīng)關(guān)系時,不夠簡單。4.2.6 軟件編碼 編碼是設(shè)計的自然結(jié)果,也就是把軟件設(shè)計的結(jié)果翻譯成用某種程序設(shè)計語言書寫的程序。4.2.6 軟件編
17、碼 源程序代碼的邏輯簡明清晰、易讀易懂是好程序的一個重要標準。編寫程序時主要應(yīng)注意以下幾個方面。n(1)程序內(nèi)部文檔:包括恰當?shù)臉俗R符、適當?shù)淖⑨尯统绦虼a的布局等等。n(2)語句構(gòu)造:每個語句都應(yīng)該簡單而直接,不能為了提高效率而使程序變得過分復雜。4.2.6 軟件編碼n(3)輸入輸出:在設(shè)計和編寫程序時應(yīng)該考慮有關(guān)輸入輸出的規(guī)則。n(4)效率:包括時間效率和空間效率(存儲效率)。4.2.7 軟件測試 軟件測試是保證軟件質(zhì)量的關(guān)鍵,也是對需求、設(shè)計和編碼的最終評審。1.軟件測試的目標測試的目的是找出錯誤。成功的測試是一種能暴露出尚未發(fā)現(xiàn)的錯誤的測試。6.2.7 軟件測試2. 軟件測試的原則測試
18、工作不應(yīng)由開發(fā)軟件的個人或小組承擔。在計劃測試時,不應(yīng)默認不會找到錯誤。測試文件必須說明預(yù)期的測試結(jié)果。對合法的和非法的輸入條件都要進行測試。4.2.7 軟件測試3. 軟件測試的方法 軟件測試有黑盒測試和白盒測試兩類方法。n黑盒測試也稱為功能測試或數(shù)據(jù)驅(qū)動測試。它把程序看成是一個黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只對程序的接口進行測試,即檢查程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息。4.2.7 軟件測試n白盒測試是把程序看成是一個透明的白盒子,也就是完全了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯來測試,檢驗程序中的每條通路是否都能正確工作。因此,白盒測試又稱為結(jié)構(gòu)測
19、試或邏輯驅(qū)動測試。4.2.7 軟件測試4. 設(shè)計測試方案n測試方案包括預(yù)定測試的功能、應(yīng)該輸入的測試數(shù)據(jù)和預(yù)期結(jié)果。其中最困難的問題是設(shè)計測試用的輸入數(shù)據(jù),即測試用例。n設(shè)計測試方案的基本目標是,確定一組最可能發(fā)現(xiàn)某個錯誤或某類錯誤的測試數(shù)據(jù)。主要設(shè)計技術(shù)有適用于黑盒測試的等價劃分、邊界值分析和錯誤推測法等等,以及適用于白盒測試的邏輯覆蓋法。通常的做法是,用黑盒法設(shè)計基本的測試方案,再用白盒法補充一些方案。4.2.7 軟件測試4.2.7 軟件測試5軟件測試的步驟n(1)單元測試(模塊測試) 主要測試模塊的五個特性:模塊接口、模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、錯誤處理路徑、邊緣條件。n(2)組
20、裝測試 主要任務(wù)是按照選定的策賂,采用系統(tǒng)化的方法,將經(jīng)過單元測試的模塊按預(yù)先制定的計劃逐步進行組裝和測試,測試的目的在于發(fā)現(xiàn)與模塊接口有關(guān)的問題,并將各個模塊構(gòu)成一個設(shè)計所要求的軟件系統(tǒng)。4.2.7 軟件測試n(3)確認測試 確認測試的任務(wù)是檢驗所開發(fā)的軟件,看它是否能按顧客提出的要求運行,也就是是否符合軟件規(guī)格說明書中確定的軟件技術(shù)指標。4.2.7 軟件測試4.2.8 軟件維護n軟件維護是軟件生存周期的最后一個階段。它是指已完成開發(fā)工作,交付使用以后,對軟件產(chǎn)品所進行的一些軟件工程活動。1. 軟件維護的必要性改正在運行中新發(fā)現(xiàn)的軟件錯誤和設(shè)計上的缺陷。這些錯誤和缺陷是在開發(fā)后期測試階段未能
21、發(fā)現(xiàn)的。適應(yīng)功能需求變化,增強軟件的功能,并提高軟件的性能。4.2.8 軟件維護要求已運行的軟件能適應(yīng)待定的硬件、軟件的工作環(huán)境或是要求適應(yīng)已變動的數(shù)據(jù)或文件。使投入運行的軟件與其他相關(guān)的程序有良好的接口,利于協(xié)同工作。使運行軟件的應(yīng)用范圍得到必要的擴充。4.2.8 軟件維護2軟件維護的內(nèi)容 n(1)改正性維護是在軟件運行中發(fā)生異?;蚬收蠒r進行的。n(2)適應(yīng)性維護是為了使該軟件能適應(yīng)外部環(huán)境的變動,例如,新的操作系統(tǒng)和新的版本不斷涌現(xiàn)。此外,“數(shù)據(jù)環(huán)境”的變動也要求進行適應(yīng)性維護。n(3)完善性維護是為了擴充軟件的功能,提高原有軟件性能而開展的軟件工程活動。4.3 軟件開發(fā)中的系統(tǒng)分析與設(shè)計
22、方法 結(jié)構(gòu)化的系統(tǒng)分析與設(shè)計方法是軟件工程領(lǐng)域的經(jīng)典方法,為軟件工程的產(chǎn)生與興起發(fā)揮了重要的作用,是目前最成熟的,也是應(yīng)用得最多、最廣泛的方法。許多方法都是源于對它的改進或擴充,如快速原型方法。 面向?qū)ο蟮南到y(tǒng)分析與設(shè)計方法在90年代開始逐漸走向成熟,表現(xiàn)了蓬勃的生命力,為軟件工程的發(fā)展注入了新的活力。毫無疑問,面向?qū)ο蠓椒▽⑹俏磥碜钣邪l(fā)展前途的軟件工程技術(shù)。4.3 軟件開發(fā)中的系統(tǒng)分析與設(shè)計方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法n1. 結(jié)構(gòu)化分析方法 結(jié)構(gòu)化分析方法(structured analysis)簡稱SA方法,是面向數(shù)據(jù)流進行需求分析的方法。 結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析
23、。由于利用圖形來表達需求,顯得清晰、簡明,避免了冗長、重復、難于閱讀和修改等缺點,易于學習和掌握。4.3.1 結(jié)構(gòu)化系統(tǒng)方法結(jié)構(gòu)化分析方法包括:n判定表n判定樹n數(shù)據(jù)流圖n數(shù)據(jù)詞典n結(jié)構(gòu)化語言 數(shù)據(jù)流圖用以表達系統(tǒng)內(nèi)數(shù)據(jù)的運動情況,是SA的最主要部分;數(shù)據(jù)詞典定義系統(tǒng)中的數(shù)據(jù);結(jié)構(gòu)化語言、判定表和判定樹用來描述數(shù)據(jù)流的加工。4.3.1 結(jié)構(gòu)化系統(tǒng)方法(1)數(shù)據(jù)流圖 數(shù)據(jù)流圖簡稱DFD,它是描述數(shù)據(jù)處理過程的有力工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)處理系統(tǒng)的工作情況。在數(shù)據(jù)流圖中有四種基本符號:4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法n數(shù)據(jù)流是沿箭頭指向傳送數(shù)據(jù)
24、的通道,它們大多是在加工之間傳輸被加工數(shù)據(jù)的命名通道。同一數(shù)據(jù)流圖上不能有兩個數(shù)據(jù)流同名。多個數(shù)據(jù)流可以指向一個加工,也可從某個加工散發(fā)出多個數(shù)據(jù)流。n加工以數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)內(nèi)容為加工對象。加工的名字??蓪憺橐粋€動賓結(jié)構(gòu),簡明扼要地表明了完成的是什么功能。4.3.1 結(jié)構(gòu)化系統(tǒng)方法n文件在數(shù)據(jù)流圖中起著暫時保存數(shù)據(jù)的作用,所以也被稱作數(shù)據(jù)存儲,它可以是數(shù)據(jù)庫或任何形式的數(shù)據(jù)組織。指向文件的數(shù)據(jù)流可理解為寫入文件,從文件引出的數(shù)據(jù)流理解為自文件讀出。n數(shù)據(jù)流圖上的第4種元紊是數(shù)據(jù)源點或終點,它表示圖中所出現(xiàn)數(shù)據(jù)的始發(fā)點或終止點,是數(shù)據(jù)流圖的外圍環(huán)境部分。在實際問題中它可能是人員、計算機外部設(shè)備或傳
25、感裝置。4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法 (2)數(shù)據(jù)詞典 數(shù)據(jù)詞典的任務(wù)是對數(shù)據(jù)流圖中出現(xiàn)的所有數(shù)據(jù)元素給出明確定義。它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和文件名字具有確切的解釋。4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法在數(shù)據(jù)詞典的定義式中,出現(xiàn)的符號可能有以下幾個:4.3.1 結(jié)構(gòu)化系統(tǒng)方法n對應(yīng)圖68的數(shù)據(jù)詞典如下:借書證證號+單位+姓名+年齡+職務(wù)+證章|密碼借書單證號+姓名+1書號+書名5索書單借書單+可借標記拒絕非法證|不合格單|證單不符已借出索書單+己借出標記供書單證號+姓名+1書號+書名+可供標記|已借出標記54.3.1 結(jié)構(gòu)化系統(tǒng)方法借書記錄借書
26、單+還書日期庫存書目書號+書名+作者+出版社+出版年代+庫存總數(shù)+借出冊數(shù)借書登記卡借書日期+供書單4.3.1 結(jié)構(gòu)化系統(tǒng)方法2. 結(jié)構(gòu)化設(shè)計方法 采用自頂向下方法。 利用該方法可以從數(shù)據(jù)流圖向系統(tǒng)結(jié)構(gòu)圖進行轉(zhuǎn)換,因而可以和需求分析階段所采用的結(jié)構(gòu)化分析方法很好地銜接。n(1)結(jié)構(gòu)化設(shè)計方法的步驟 首先研究、分析以及審查數(shù)據(jù)流圖,然后根據(jù)數(shù)據(jù)流圖決定問題的類型。4.3.1 結(jié)構(gòu)化系統(tǒng)方法n(2)數(shù)據(jù)處理問題的兩種類型變換型4.3.1 結(jié)構(gòu)化系統(tǒng)方法相應(yīng)地,這類系統(tǒng)的典型軟件結(jié)構(gòu)如圖6.10所示。4.3.1 結(jié)構(gòu)化系統(tǒng)方法事務(wù)處理型 事務(wù)處理型問題通常是在接受一項事務(wù)后,根據(jù)該事務(wù)的特點和性質(zhì),
27、選擇分派給一個適當?shù)奶幚韱卧缓蠼o出結(jié)果。4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法(3)從數(shù)據(jù)流圖導出初始結(jié)構(gòu)圖n變換型問題4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法n事務(wù)處理型問題4.3.1 結(jié)構(gòu)化系統(tǒng)方法4.3.1 結(jié)構(gòu)化系統(tǒng)方法n3. 結(jié)構(gòu)化編程方法結(jié)構(gòu)化編程(SP)主要包括兩個方面: (1)在代碼編寫時,強調(diào)采用單入口單出口的基本控制結(jié)構(gòu)(順序、選擇、循環(huán)),避免使用GOTO語句。 (2)在軟件設(shè)計和實現(xiàn)過程中,提倡采用自頂向下和逐步細化的原則。4.3.1 結(jié)構(gòu)化系統(tǒng)方法使用結(jié)構(gòu)程序設(shè)計技術(shù)主要有以下一些好處: (1)自頂向下逐步細化的
28、方法符合人類解決復雜問題的普遍規(guī)律,因此可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率。 (2)結(jié)構(gòu)化程序有清晰的層次結(jié)構(gòu),易于閱讀和理解。 (3)使用單入口單出口的控制結(jié)構(gòu)而不使用GOTO語句,使得程序邏輯結(jié)構(gòu)清晰,易讀易懂易測試,容易保證程序的正確性。4.3.2 快速原型方法 快速原型方法是迅速地根據(jù)軟件系統(tǒng)的需求產(chǎn)生出軟件系統(tǒng)的一個原型的過程。 該原型要表現(xiàn)出目標系統(tǒng)的功能和行為特性。 原型法打破了傳統(tǒng)的自頂向下開發(fā)模式,是目前比較流行的實用開發(fā)模式之一。4.3.2 快速原型方法n1為什么采用原型法 原因1:并非所有需求都能預(yù)先定義 原因2:項目參加者之間存在通信障礙 原因3:目前存在建造快速
29、原型的工具4.3.2 快速原型方法n2. 實現(xiàn)原型的一般途徑(1)用于驗證軟件需求的原型(2)用于驗證設(shè)計方案的原型(3)用于演進成目標系統(tǒng)的原型1. 面向?qū)ο蠓椒ǖ漠a(chǎn)生 傳統(tǒng)的方法主要是面向過程的,也就是在分析設(shè)計時更多地從過程處理的角度進行。系統(tǒng)框架結(jié)構(gòu),系統(tǒng)模塊的劃分、設(shè)計都是基于系統(tǒng)所實現(xiàn)的功能,而功能是系統(tǒng)中最易變的部分。這樣,如果系統(tǒng)需求發(fā)生一些變化(例如需要改進某些功能或者擴充某些新的功能),系統(tǒng)的結(jié)構(gòu)就會受到破壞。4.3.3 面向?qū)ο蠓椒?.3.3 面向?qū)ο蠓椒?在實際系統(tǒng)中,最穩(wěn)定的部分是對象。 傳統(tǒng)的結(jié)構(gòu)化分析和設(shè)計方法中存在迥然不同的表示方法。例如在分析階段采用DFD表示
30、,而在設(shè)計階段采用結(jié)構(gòu)圖的表示方法。多年來,專業(yè)人員在分析和設(shè)計過程中一直受到基本表示法變換的困擾。而在面向?qū)ο蠓椒ㄖ?,從分?OOA)、設(shè)計(OOD)到編程實現(xiàn)(OOP)采用的都是同樣的表示方法。4.3.3 面向?qū)ο蠓椒?. 面向?qū)ο蠓椒ǖ膬?yōu)點(1)可重用性:繼承是面向?qū)ο蠓椒ǖ囊粋€重要機制。用面向?qū)ο蠓椒ㄔO(shè)計的系統(tǒng)的基本對象類可以被其他新系統(tǒng)重用。(2)可維護性:通過面向?qū)ο蠓椒?gòu)造的系統(tǒng)由于建立在系統(tǒng)對象類的基礎(chǔ)上,結(jié)構(gòu)比較穩(wěn)定。當系統(tǒng)的功能要求擴充或改善時,可以在保持系統(tǒng)結(jié)構(gòu)不變的情況下進行維護。4.3.3 面向?qū)ο蠓椒?3)表示方法的一致性:面向?qū)ο蠓椒ㄔ谙到y(tǒng)的整個開發(fā)過程中,從OO
31、A到OOD, 直到OOP,采用一致的表示方法,從而加強了分析、設(shè)計和編程之間的內(nèi)在一致性,并且改善了用戶、分析員、設(shè)計員以及程序員之間的信息交流。4.3.3 面向?qū)ο蠓椒?. 面向?qū)ο蠓椒ǖ幕靖拍頽對象(object):客觀世界是由實體及實體間的聯(lián)系組成的。我們把客觀世界的實體稱為問題空間的對象。n類(class):類描述的是具有相似性質(zhì)的一組對象。n方法(method):允許作用于某個對象上的各種操作。4.3.3 面向?qū)ο蠓椒╪消息(message):用來請求對象執(zhí)行某一處理或回答某些信息的要求。n繼承(inheritance):表示類之間的相似性的機制。如果類X繼承類Y,則X為Y的子類,
32、Y為X的父類(超類)。n封裝(encapsulation):是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設(shè)計者分開。用戶只能見到對象封裝界面上的信息,不必知道實現(xiàn)的細節(jié)。封裝一方面通過數(shù)據(jù)抽象,把相關(guān)的信息結(jié)合在一起,另一方面簡化了接口。4.3.3 面向?qū)ο蠓椒?面向?qū)ο蟮姆治龊驮O(shè)計方法簡介 OOA(面向?qū)ο蠓治觯┦轻槍栴}域和系統(tǒng)責任的,不考慮與系統(tǒng)實現(xiàn)有關(guān)的因素。OOA模型由5個層次構(gòu)成,即類及對象層、結(jié)構(gòu)層、主題層、屬性層和服務(wù)層。構(gòu)造OOA模型的方法: (1)發(fā)現(xiàn)對象及類 (2)識別結(jié)構(gòu):結(jié)構(gòu)指的是類之間的關(guān)系,可分為一般特殊結(jié)構(gòu)和整體部分結(jié)構(gòu)。4.3.3 面向?qū)ο蠓椒?3)區(qū)分
33、主題:主題表示的是類的劃分。(4)定義屬性:屬性是一些數(shù)據(jù),類中的每個對象都有它自己的屬性值。要為所有的類定義它們的屬性。(5)定義服務(wù):服務(wù)就是對象提供的或所能完成的操作(在一般的OO術(shù)語中,稱之 為方法)。實例連接:表示一個對象需要其他對象的某些狀態(tài)信息。消息連接:表示一個對象為了完成服務(wù)需要什么信息4.3.3 面向?qū)ο蠓椒?OOA活動識別并且定義直接反映問題域的類和對象。OOD活動則識別并且定義為實現(xiàn)這個系統(tǒng)所需添加的類和對象,它們反映系統(tǒng)需求的一個具體實現(xiàn)。OOD模型由問題域、人機交互、任務(wù)管理和數(shù)據(jù)管理四個部分構(gòu)成。OOD模型中的問題域部分就是OOA的分析結(jié)果。圖6.18描述了OOD
34、模型結(jié)構(gòu)。4.3.3 面向?qū)ο蠓椒╪在OOD模型中,人機交互部分包括有效的人機交互所需的顯示和輸入對象和類。n任務(wù)管理部分包括任務(wù)的定義、通信和協(xié)調(diào)。n數(shù)據(jù)管理部分提供了存儲和檢索對象的基本結(jié)構(gòu)。4.3.3 面向?qū)ο蠓椒?.4 軟件開發(fā)管理技術(shù)4.4.1 質(zhì)量管理1軟件質(zhì)量 國際標準化組織(ISO)于1985年提出了一個質(zhì)量度量模型。它由高、中、低三個層次組成,并對高、中層建立了國際標準,低層由用戶自行制定。下面簡要介紹其高層模型。在這個高層模型中,質(zhì)量因素由8個元素組成,即:4.4.1 質(zhì)量管理n正確性:程序滿足規(guī)范書及完成用戶目標的程度。n可靠性:程序在所需精度下完成其功能的期望程度。n效率:軟件完成其功能所需的資源。n安全性:對未經(jīng)許可人員接近軟件或數(shù)據(jù)所施加的控制程度。n可使用性:人員學習操作軟件、準備輸入和解釋輸出所需的努力。 4.4.1 質(zhì)量管理n可維護性:在需求變更時,更改軟件或彌補軟件缺陷的容易程度。n靈活性:改變一個操作程序所需的努力。n連接性:與其他系統(tǒng)耦合所需的努力。4.4.1 質(zhì)量管理2. 質(zhì)量保證(1)技術(shù)審查 審查就是在軟件生存周期每個階段結(jié)束之前,都正式使用結(jié)束標準對該階段生產(chǎn)出的軟件配置成分進行嚴格的技術(shù)審查。(2)管理復審 管理復審是指向開發(fā)組織或使用部門
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Tripetroselinin-1-2-3-Tri-6-Z-octadecenoyl-glycerol-生命科學試劑-MCE-1244
- Diethylene-glycol-d8-2-2-Oxybis-ethan-1-ol-d-sub-8-sub-生命科學試劑-MCE-5883
- 2025年度掛車司機運輸合同違約責任與賠償合同
- 2025年度網(wǎng)絡(luò)安全行業(yè)競業(yè)限制協(xié)議生效細則及數(shù)據(jù)隱私
- 二零二五年度創(chuàng)業(yè)公司股權(quán)分配及股權(quán)激勵協(xié)議
- 2025年度消防電梯采購與應(yīng)急救援系統(tǒng)配套合同
- 2025年度水果種植基地農(nóng)業(yè)保險合同
- 2025年度綠色能源股權(quán)合作開發(fā)合同
- 施工現(xiàn)場施工防傳染病制度
- 施工進度管理及控制制度
- 醫(yī)院消防安全培訓課件
- 質(zhì)保管理制度
- 《00541語言學概論》自考復習題庫(含答案)
- 2025年機關(guān)工會個人工作計劃
- 2024年全國卷新課標1高考英語試題及答案
- 華為經(jīng)營管理-華為激勵機制(6版)
- 江蘇省南京市、鹽城市2023-2024學年高三上學期期末調(diào)研測試+英語+ 含答案
- 2024護理不良事件分析
- 光伏項目的投資估算設(shè)計概算以及財務(wù)評價介紹
- 2024新版《藥品管理法》培訓課件
- 干燥綜合征診斷及治療指南
評論
0/150
提交評論