版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章軟件工程概述軟件:軟件的概念嚴(yán)格說來,軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件的特點(diǎn)(分類、發(fā)展)軟件是一種具有抽象特性的邏輯實(shí)體軟件的生產(chǎn)、開發(fā)無明顯的制造過程,容易復(fù)制軟件的使用、運(yùn)行期間無機(jī)械磨損……(8)軟件危機(jī)(1)軟件開發(fā)的進(jìn)度和開發(fā)成本估計不準(zhǔn),用戶不滿意;(2)軟件質(zhì)量不可靠;(3)軟件維護(hù)困難;(4)軟件不容易使用和管理,缺乏文檔資料;(5)軟件的開發(fā)跟不上硬件的發(fā)展和用戶要求的日益增長;(6)缺乏高素質(zhì)的軟件開發(fā)人員。產(chǎn)生軟件件危機(jī)的的原因::(1)軟軟件本身身的問題題(2)軟軟件人員員本身的的問題(3)軟軟件生命命期中的的管理問問題解決軟件件危機(jī)的的辦法::(1)開開發(fā)新型型的計算算機(jī)系統(tǒng)統(tǒng),使用用新的監(jiān)監(jiān)督與控控制機(jī)制制;(2)總總結(jié)和吸吸取前人人的經(jīng)驗(yàn)驗(yàn)和教訓(xùn)訓(xùn),使用用成熟的的開發(fā)方方法;(3)消消除錯誤誤思想和和觀念,,探索新新的方法法;(4)使使用良好好的開發(fā)發(fā)工具和和環(huán)境,,提高開開發(fā)效率率;(5)進(jìn)進(jìn)行嚴(yán)格格的組織織和管理理,采取取有效的的監(jiān)督。。軟件危機(jī)機(jī)的含義義:在軟件開發(fā)和維護(hù)過程中所所產(chǎn)生的的一系列列嚴(yán)重問題題的現(xiàn)象,,統(tǒng)稱為為軟件危危機(jī)。軟件工程程:概念:是采用工工程的概概念、原原理、技技術(shù)和方方法來開開發(fā)、維維護(hù)軟件件,是開開發(fā)與維維護(hù)軟件件的規(guī)范范化系統(tǒng)統(tǒng)方法,,它將完完善的工工程原理理應(yīng)用于于經(jīng)濟(jì)地地生產(chǎn)既既可靠、、又能在在實(shí)際機(jī)機(jī)器上有有效運(yùn)行行的軟件件。其核心內(nèi)內(nèi)容就是是“以工工程化的的方式組組織軟件件的開發(fā)發(fā)”,涉涉及軟件件計劃、、開發(fā)和和維護(hù)各各個階段段。軟件工程程的基本本目標(biāo)軟件工程程的七條條原理用分階段段的生命命周期計計劃嚴(yán)格格管理堅持進(jìn)行行階段評評審實(shí)行嚴(yán)格格的產(chǎn)品品控制采用現(xiàn)代代程序設(shè)設(shè)計技術(shù)術(shù)結(jié)果應(yīng)能能清楚地地審查開發(fā)小組組的人員員應(yīng)少而而精承認(rèn)不斷斷改進(jìn)軟軟件工程程實(shí)踐的的必要性性三種軟件件開發(fā)模模型(瀑布、、漸增、、快速原原型化))的優(yōu)缺缺點(diǎn)機(jī)適適用范圍圍。軟件生命命周期的的經(jīng)典模模型———瀑布模型型計劃:問題定義義可行性研研究開發(fā):需求分析析設(shè)計編碼測試運(yùn)行維護(hù)注意:各個階階段產(chǎn)生生的文檔檔資料的的名稱。。(13份)各個階段段結(jié)束標(biāo)標(biāo)志(文文檔的內(nèi)內(nèi)容)軟件生命命周期的的定義軟件工程程的產(chǎn)生生問題定義義要解決的的問題是是什么??可行性性研究可行性分分析對于上一一階段確確定的問問題有行行得通的的解決方方法嗎??(可行行性分析析的目的的)進(jìn)一步分分析和澄澄清問題題定義探索若干干種可能能的解法法Operationalfeasibility,操作可行行性系統(tǒng)的操操作方式式在這個個用戶組組織內(nèi)行行得通??Technicalfeasibility,,技術(shù)可行行性使用現(xiàn)有有的技術(shù)術(shù)能實(shí)現(xiàn)現(xiàn)這個系系統(tǒng)嗎??Economicfeasibility,經(jīng)濟(jì)可行行性這個系統(tǒng)統(tǒng)的經(jīng)濟(jì)濟(jì)效益能能超過它它的開發(fā)發(fā)成本嗎嗎?對以后的的行動方方針提出出建議例如,修改一一個已有有的庫存存清單系系統(tǒng),使使它能在在每天送送給采購購員一份份定貨報報表。修修改已有有的庫存存清單程程序并且且編寫產(chǎn)產(chǎn)生報表表的程序序,估計計共需5000元;系系統(tǒng)修改改后能及及時定貨貨將消除除零件短短缺問題題,估計計因此每每年可以以節(jié)省2500元,五五年共可可節(jié)省12500元。。但是,,不能簡簡單地把把5000元和和12500元元相比較較,因?yàn)闉榍罢呤鞘乾F(xiàn)在投投資的錢錢,后者者是若干干年以后后節(jié)省的的錢。假假定年利利率為12%,,利用上上面計算算貨幣現(xiàn)現(xiàn)在價值值的公式式可以算算出修改改庫存清清單系統(tǒng)統(tǒng)后每年年預(yù)計節(jié)節(jié)省的錢錢的現(xiàn)在在價值,,如表所所示。年將來值現(xiàn)在值累計現(xiàn)在值125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.94(1)貨貨幣的時時間價值值(2)投投資回收收期通常用投投資回收收期衡量量一項(xiàng)開開發(fā)工程程的價值值。所謂謂投資回回收期就就是使累累計的經(jīng)經(jīng)濟(jì)效益益等于最最初投資資所需要要的時間間。顯然然,投資資回收期期越短就就能越快快獲得利利潤,因因此這項(xiàng)項(xiàng)工程也也就越值值得投資資。例如,修改庫庫存清單單系統(tǒng)兩兩年以后后可以節(jié)節(jié)省4225..12元元,比最最初的投投資(5000元)還還少774.88元,,第三年年以后將將再節(jié)省省1779.45元。。774.88/1779..45==0.44,因因此,投投資回收收期是2.44年。投資回收收期僅僅僅是一項(xiàng)項(xiàng)經(jīng)濟(jì)指指標(biāo);為為了衡量量一項(xiàng)開開發(fā)工程程的價值值,還應(yīng)應(yīng)該考慮慮其他經(jīng)經(jīng)濟(jì)指標(biāo)標(biāo)。(3)純純收入衡量工程程價值的的另一項(xiàng)項(xiàng)經(jīng)濟(jì)指指標(biāo)是工工程的純純收入,,也就是是在整個個生命周周期之內(nèi)內(nèi)系統(tǒng)的的累計經(jīng)經(jīng)濟(jì)效益益(折合合成現(xiàn)在在值)與與投資之之差。這這相當(dāng)于于比較投投資開發(fā)發(fā)一個軟軟件系統(tǒng)統(tǒng)和把錢錢存在銀銀行中((或貸給給其他企企業(yè))這這兩種方方案的優(yōu)優(yōu)劣。如如果純收收入為零零,則工工程的預(yù)預(yù)期效益益和在銀銀行存款款一樣,,但是開開發(fā)一個個系統(tǒng)要要冒風(fēng)險險,因此此從經(jīng)濟(jì)濟(jì)觀點(diǎn)看看這項(xiàng)工工程可能能是不值值得投資資的。如如果純收收入小于于零,那那么這項(xiàng)項(xiàng)工程顯顯然不值值得投資資。例如,上述修修改庫存存清單系系統(tǒng),工工程的純純收入預(yù)預(yù)計是9011.94-5000==4011.94(元元)需求分析析所謂軟件件需求是是指用戶戶對目標(biāo)標(biāo)軟件系系統(tǒng)在功功能、行行為、性性能、設(shè)設(shè)計約束束等方面面的期望望。具體任務(wù)務(wù)確定對系系統(tǒng)的綜綜合要求求分析系統(tǒng)統(tǒng)的數(shù)據(jù)據(jù)要求需求分析析的本質(zhì)質(zhì)就是對對數(shù)據(jù)和和加工進(jìn)進(jìn)行分析析。導(dǎo)出系統(tǒng)統(tǒng)的邏輯輯模型通常用數(shù)數(shù)據(jù)流圖圖、數(shù)據(jù)據(jù)字典和和主要的的處理算算法描述述這個邏邏輯模型型修正系統(tǒng)統(tǒng)開發(fā)計計劃開發(fā)原型型系統(tǒng)((可選選)調(diào)查組織概況況組織的業(yè)業(yè)務(wù)活動動存在問題題、約束束條件未來要求求需求獲取取技術(shù)訪談與會會議書面調(diào)查查法觀察用戶戶工作流流程用戶和開開發(fā)人員員共同組組成聯(lián)合合小組數(shù)據(jù)流圖圖(DFD))數(shù)據(jù)流圖圖描繪系系統(tǒng)的邏邏輯模型型,圖中中沒有任任何具體體的物理理元素,,只是描描繪信息息在系統(tǒng)統(tǒng)中流動動和處理理的情況況。主要包括括四種基基本成分分:數(shù)據(jù)源點(diǎn)點(diǎn)/終點(diǎn)點(diǎn)數(shù)據(jù)流加工數(shù)據(jù)存儲儲/文件件基本系統(tǒng)統(tǒng)模型
系統(tǒng)
輸入1
輸入2
輸出1
輸出2
機(jī)票預(yù)定系統(tǒng)
帳單
訂票單
機(jī)票
下圖是一一個飛機(jī)機(jī)機(jī)票預(yù)預(yù)定系統(tǒng)統(tǒng)的基本本系統(tǒng)模模型
旅行社
預(yù)定機(jī)票
機(jī)票準(zhǔn)備
旅客
記帳
訂票單
機(jī)票
航班目錄
費(fèi)用
帳單
記帳文件
航班
下圖是機(jī)機(jī)票預(yù)定定系統(tǒng)的的DFDDFD圖各成分分的作用用和注意意事項(xiàng)::數(shù)據(jù)流由由一一組數(shù)據(jù)據(jù)項(xiàng)組成成數(shù)據(jù)流可可以從加加工流向向加工;;從源點(diǎn)點(diǎn)流向加加工;從從加工流流向終點(diǎn)點(diǎn);從加加工流向向文件或或從文件件流向加加工兩個加工工之間可可以有幾幾股數(shù)據(jù)據(jù)流,這這些數(shù)據(jù)據(jù)流之間間沒有任任何聯(lián)系系,DFD也不表明明它們的的流動次次序數(shù)據(jù)流命命名的原原則:現(xiàn)實(shí)環(huán)境境中,傳傳遞的一一些表格格、單據(jù)據(jù)的名字字可直接接作為數(shù)數(shù)據(jù)流的的名字。。把現(xiàn)實(shí)環(huán)環(huán)境中傳傳遞的一一組數(shù)據(jù)據(jù)中最重重要的那那個數(shù)據(jù)據(jù)作為數(shù)數(shù)據(jù)流的的名字。。不要把控控制流作作為數(shù)據(jù)據(jù)流。在數(shù)據(jù)流流命名時時,不要要僅使用用“數(shù)據(jù)據(jù)”、““信息””等缺乏乏實(shí)際具具體含義義的詞匯匯作為數(shù)數(shù)據(jù)流的的名字。。加工是是對數(shù)據(jù)據(jù)進(jìn)行處處理的單單元。在分層DFD中,要對對加工進(jìn)進(jìn)行編號號,以便便于管理理。加工工也要選選取適當(dāng)當(dāng)?shù)拿肿?,以提提高DFD的易讀性性。加工命名名原則是是:頂層的加加工名可可以是軟軟件項(xiàng)目目的名字字通常先為為數(shù)據(jù)流流命名,,然后再再為與之之相關(guān)聯(lián)聯(lián)的加工工命名。。加工的名名字最好好是由一一個謂語語動詞加加上一個個賓語組組成,也也可把賓賓語和謂謂語顛倒倒書寫應(yīng)該避免免僅使用用“加工工”、““處理””這樣空空洞籠統(tǒng)統(tǒng)的動詞詞做加工工名。名字應(yīng)該該反映整整個加工工的功能能,而不不是它的的一部分分功能通常名字字中僅包包括一個個動詞如果在為為某個加加工命名名時遇到到困難,,則很可可能是發(fā)發(fā)現(xiàn)了分分解不當(dāng)當(dāng)?shù)嫩E象象,應(yīng)考考慮重新新分解文件文件是用用來暫時時存儲數(shù)數(shù)據(jù)的。。在分層層DFD中,文件件一般都都局部于于某一層層或某幾幾層。源點(diǎn)和終終點(diǎn)是軟件系系統(tǒng)之外外的實(shí)體體,可以以是人、、物或其其他軟件件系統(tǒng)。。源點(diǎn)和和終點(diǎn)是是為了幫幫助理解解系統(tǒng)接接口界面面而引入入的,在在DFD中不需要要進(jìn)一步步描述它它們。分層圖的的編號原原則是::(1)頂層圖編編號為0,頂層圖圖只有一一張,它它的加工工就是整整個系統(tǒng)統(tǒng);(2)頂層圖的的子圖稱稱為第一一層數(shù)據(jù)據(jù)流圖,,其中的的各個加加工按自自然數(shù)順順序1,2,3,…進(jìn)行編號號,第一一層數(shù)據(jù)據(jù)流圖也也只有一一張;(3)在第一層層以下的的各分層層圖中,,每個加加工的編編號應(yīng)該該是其所所在的父父圖的編編號加小小數(shù)點(diǎn),,再加該該圖的局局部加工工編號構(gòu)構(gòu)成。每每個加工工編號中中所含小小數(shù)點(diǎn)的的個數(shù)加加1,就是該該圖所在在的層次次數(shù);幾點(diǎn)說明明:一個加工工并不一一定是一一個程序序。一個個數(shù)據(jù)存存儲也不不等同于于一個文文件數(shù)據(jù)存儲儲和數(shù)據(jù)據(jù)流都是是數(shù)據(jù),,僅僅所所處的狀狀態(tài)不同同通常在數(shù)數(shù)據(jù)流圖圖中忽略略出錯處處理,也也不包括括諸如打打開或關(guān)關(guān)閉文件件之類的的內(nèi)務(wù)處處理。數(shù)數(shù)據(jù)流的的基本要要點(diǎn)是描描繪“做做什么””而不考考慮“怎怎么做””。有時數(shù)據(jù)據(jù)的源點(diǎn)點(diǎn)和終點(diǎn)點(diǎn)相同,,如果只只用一個個符號代代表數(shù)據(jù)據(jù)的源點(diǎn)點(diǎn)和終點(diǎn)點(diǎn),則至至少將有有兩個箭箭頭和這這個符號號相連((一個進(jìn)進(jìn)一個出出),可可能其中中一條箭箭頭線相相當(dāng)長,,這將降降低數(shù)據(jù)據(jù)流圖的的清晰度度。另一一種表示示方法是是再重復(fù)復(fù)畫一個個同樣的的符號表表示數(shù)據(jù)據(jù)的終點(diǎn)點(diǎn)。有時時數(shù)據(jù)存存儲也需需要重復(fù)復(fù),以增增加數(shù)據(jù)據(jù)流圖的的清晰度度。假設(shè)一家家工廠的的采購部部每天需需要一張張定貨報報表,報報表按零零件編號號排序,,表中列列出所有有需要再再次定貨貨的零件件。對于于每個需需要再次次定貨的的零件應(yīng)應(yīng)該列出出下述數(shù)數(shù)據(jù):零零件編號號、零件件名稱、、定貨數(shù)數(shù)量、目目前價格格、主要要供應(yīng)者者、次要要供應(yīng)者者。零件件入庫或或出庫稱稱為事務(wù)務(wù),通過過放在倉倉庫中的的CRT終端把事事務(wù)報告告給定貨貨系統(tǒng)。。當(dāng)某種種零件的的庫存數(shù)數(shù)量少于于庫存量量臨界值值時就應(yīng)應(yīng)該再次次定貨。。分析:第一步可可以從問問題描述述中提取取數(shù)據(jù)流流圖的四四種成分分首先考慮慮數(shù)據(jù)的的源點(diǎn)和和終點(diǎn)接下來考考慮加工工最后,考考慮數(shù)據(jù)據(jù)流和數(shù)數(shù)據(jù)存儲儲注意,并并不是所所有數(shù)據(jù)據(jù)存儲和和數(shù)據(jù)流流都能直直接從問問題描述述中提取取出來
定貨
系統(tǒng)
倉庫
管理員
采購員
事務(wù)
定貨報表
倉庫
管理員
1處理事務(wù)
2產(chǎn)生報表
采購員
庫存清單
庫存清單
事務(wù)
定貨報表
定貨信息
定貨信息
定貨信息
1.1接收事務(wù)
1.2更新庫存清單
2產(chǎn)生報表
1.3處理定貨
倉庫
管理員
采購員
庫存清單
事務(wù)
事務(wù)
庫存信息
庫存清單
定貨信息
定貨信息
定貨報表
定貨信息
數(shù)據(jù)字典典(DD)數(shù)據(jù)字典典是關(guān)于于數(shù)據(jù)的的信息的的集合,,也就是是對數(shù)據(jù)據(jù)流圖中中包含的的系統(tǒng)元元素的定定義的集集合。有了DFD和DD,才算是完完整地描描述了一一個系統(tǒng)統(tǒng)。數(shù)據(jù)據(jù)流圖和和數(shù)據(jù)字字典是需需求規(guī)格格說明書書的主要要組成部部分。數(shù)據(jù)流條條目數(shù)據(jù)流條條目是定定義數(shù)據(jù)據(jù)流的。。定義的的方式一一般是列列出該數(shù)數(shù)據(jù)流的的各組成成數(shù)據(jù)項(xiàng)項(xiàng)。在定定義數(shù)據(jù)據(jù)流時,,通常借借助于一一些簡單單的符號號。存折={{戶名++所號++帳號++開戶日日+性質(zhì)質(zhì)+(印印密)++1{存存取行}}50}}0000000099999999戶名=2{字母母}24所號=““001”…““999”帳號=““00000001””…“99999999”開戶日==年+月月+日性質(zhì)=““1”...“6”印密=““0”存取行==日期++(摘要要)+支支出+存存入+余余額+操操作+復(fù)復(fù)核日期=年年+月++日年=“0001”...“9999””月=“01”...“12”日=“01”...“31”摘要=1{字母母}4支出=金金額金額=““0000000.01”...“9999999.99”操作=““00001””..““99999””……………數(shù)據(jù)文件件條目文件條目目是定義義文件的的,一般般只需列列出文件件的組成成數(shù)據(jù)項(xiàng)項(xiàng),以及及文件的的組織方方式存折={{戶名++所號++帳號++開戶日日+性質(zhì)質(zhì)+(印印密)++1{存存取行}}50}}0000000099999999組織:按按帳號次次序從小小至大排排列加工條目目(小說說明)小說明集集中描述述一個加加工“做做什么””,即加加工邏輯輯,也包包括其它它一些與與加工有有關(guān)的信信息,如如執(zhí)行條條件、優(yōu)優(yōu)先級、、執(zhí)行頻頻率、出出錯處理理等。目前用于于寫小說說明的工工具有結(jié)結(jié)構(gòu)化英英語、判判定表和和判定樹樹。下面是商商店業(yè)務(wù)務(wù)處理系系統(tǒng)中““檢查發(fā)發(fā)貨單””的例子子IFtheinvoiceexceeds$500THENIFtheaccounthasanyinvoicemorethan60daysoverdueTHENtheconfirmationpendingresolutionofthedebtELSEissueconfirmationandinvoiceENDIFELSEIFtheaccounthasanyinvoicemorethan60daysoverdueTHENissueconfirmation,,invoiceandwritemessageoncreditactionreportELSEissueconfirmationandinvoiceENDIFENDIF
1234條件發(fā)貨單金額>$500>$500≤$500≤$500賒欠情況>60天≤60天>60天≤60天操作不發(fā)出批準(zhǔn)書√
發(fā)出批準(zhǔn)書
√√√發(fā)出發(fā)貨單
√√√發(fā)出賒欠報告
√
檢查發(fā)貨單
金額>$500
金額?$500
欠款>60天——不發(fā)出批準(zhǔn)書
欠款?60天——發(fā)出批準(zhǔn)書、發(fā)貨單
欠款>60天——發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報告
欠款?60天——發(fā)出批準(zhǔn)書、發(fā)貨單
從工程管管理的角角度看,,軟件設(shè)設(shè)計可分分為概要要設(shè)計//總體設(shè)設(shè)計和詳詳細(xì)(detail))設(shè)計兩大大步驟。。概要設(shè)設(shè)計是根根據(jù)需求求確定軟軟件和數(shù)數(shù)據(jù)的總總體框架架,詳細(xì)細(xì)設(shè)計是是將其進(jìn)進(jìn)一步精精化成軟軟件的算算法表示示和數(shù)據(jù)據(jù)結(jié)構(gòu)。。從技術(shù)角角度來看看,軟件件設(shè)計可可分為數(shù)數(shù)據(jù)設(shè)計計、系統(tǒng)統(tǒng)結(jié)構(gòu)設(shè)設(shè)計和過過程設(shè)計計。數(shù)據(jù)據(jù)設(shè)計把把分析階階段建立立的信息息描述轉(zhuǎn)轉(zhuǎn)換為實(shí)實(shí)現(xiàn)軟件件所要求求的數(shù)據(jù)據(jù)結(jié)構(gòu),,側(cè)重于于數(shù)據(jù)結(jié)結(jié)構(gòu)的定定義;系系統(tǒng)結(jié)構(gòu)構(gòu)設(shè)計定定義軟件件系統(tǒng)各各主要部部件、成成分之間間的關(guān)系系,過程程設(shè)計則則是把結(jié)結(jié)構(gòu)成分分轉(zhuǎn)換成成軟件的的過程性性描述即即完成每每一部件件的過程程化描述述。概要設(shè)計計在進(jìn)行軟軟件結(jié)構(gòu)構(gòu)設(shè)計時時應(yīng)該遵遵循的最最重要的的原理是是模塊獨(dú)獨(dú)立原理理。采用模塊塊化原理理的優(yōu)點(diǎn)點(diǎn):可以使軟軟件結(jié)構(gòu)構(gòu)清晰,,容易設(shè)設(shè)計、容容易閱讀讀和理解解、容易易測試和和調(diào)試。。提高軟件件的可靠靠性。有有利于軟軟件開發(fā)發(fā)工程的的組織管管理。模塊獨(dú)立立性可用用兩個定定量準(zhǔn)則則來度量量:耦合合和內(nèi)聚聚。耦合分七七級:非非直接耦耦合、數(shù)數(shù)據(jù)耦合合、特征征耦合//標(biāo)記耦耦合、控控制耦合合、外部部耦合、、公共耦耦合、內(nèi)內(nèi)容耦合合。內(nèi)聚分七七級:偶偶然內(nèi)聚聚、邏輯輯內(nèi)聚、、時間內(nèi)內(nèi)聚、過過程內(nèi)聚聚、通信信內(nèi)聚、、順序內(nèi)內(nèi)聚、功功能內(nèi)聚聚。內(nèi)聚和耦耦合是相相互關(guān)聯(lián)聯(lián)的。軟件概要要設(shè)計的的目標(biāo)是是力求增增加模塊塊的內(nèi)聚聚,盡量量減少模模塊間的的耦合。。但增加加內(nèi)聚比比減少耦耦合更重重要,二二者不能能兼顧的的情況下下,應(yīng)當(dāng)當(dāng)把更多多的注意意力集中中到提高高模塊的的內(nèi)聚程程度上來來。系統(tǒng)結(jié)構(gòu)構(gòu)設(shè)計的的七條啟啟發(fā)式原原則改進(jìn)軟件件結(jié)構(gòu)提提高模塊塊獨(dú)立性性模塊規(guī)模模應(yīng)該適適中深度、寬寬度、扇扇出和扇扇入都應(yīng)應(yīng)適當(dāng)模塊的作作用范圍圍應(yīng)在控控制范圍圍之內(nèi)力爭降低低模塊接接口的復(fù)復(fù)雜程度度設(shè)計單入入口單出出口的模模塊模塊功能能應(yīng)該可可以預(yù)測測概要設(shè)計計常用圖圖形工具具有:層層次圖、、HIPO圖、結(jié)構(gòu)構(gòu)圖。變換流的的DFD是一個線線性結(jié)構(gòu)構(gòu),由輸輸入、變變換和輸輸出三部部分組成成。數(shù)據(jù)沿輸輸入通路路到達(dá)一一個處理理,這個個處理根根據(jù)輸入入數(shù)據(jù)的的類型在在若干個個動作序序列中選選出一個個來執(zhí)行行。這類類數(shù)據(jù)流流稱為事事務(wù)流。。概要設(shè)計計的步驟驟:分析DFD確定DFD的特點(diǎn)及及邊界映射為軟軟件結(jié)構(gòu)構(gòu)細(xì)化后,,得到初初始結(jié)構(gòu)構(gòu)圖獲得最終終的軟件件結(jié)構(gòu)圖圖變換分析析事務(wù)分析析扇入深度寬度軟件層次結(jié)構(gòu)圖扇出扇出
A
B
C
DEFEGH
IJKLM結(jié)構(gòu)圖參數(shù)舉例:深度:5寬度:5A的扇出:3M的扇入:3變換型分分析舉例例第一級分分解McMAMTMEC,eC,eu,wu,wMcMA1ME1CeruMA2ME2QPRepc,pru,wwMcMAMTMEC,eC,eu,wu,werQPRpc,pru,wGetCGetEWriteWWriteUecGetBBtoCcbReadDDtoEedReadAAtoBbaadbuwUtoVWriteVuvv下面以信信用卡報報賬系統(tǒng)統(tǒng)為例某商店開開展信用用卡購物物業(yè)務(wù)。。建立了了兩個賬賬目付款款賬目和和用戶總總賬目。。前者記記錄了每每位用戶戶每次付付款的日日期、金金額,由由用戶的的賬號、、日期和和交易金金額組成成。后者者記錄了了用戶存存款余額額。這兩兩個賬目目都是按按用戶的的賬號進(jìn)進(jìn)行登錄錄的(見見圖)。。店方每每隔一段段時間都都需要根根據(jù)上述述兩個賬賬目產(chǎn)生生一個會會計報告告。包括括賬號、、日期、、交易金金額、舊舊余額、、新余額額等內(nèi)容容(見圖圖)?,F(xiàn)現(xiàn)在要求求用Jackson方法設(shè)計計一個能能夠產(chǎn)生生上述會會計報告告的程序序。顧客賬號支付日期交易金額.........顧客賬號存款余額......用戶數(shù)據(jù)顧客賬號支付日期交易金額舊存款余額新存款余額...店方數(shù)據(jù)店方總計付款賬目目用戶總賬賬目會計報告告Jackson開發(fā)方法法實(shí)現(xiàn)步步驟①畫數(shù)據(jù)據(jù)結(jié)構(gòu)圖圖這個系統(tǒng)統(tǒng)的兩個個輸入文文件是付付賬賬目目和用戶戶總賬目目。輸出出文件是是會計報報告。兩兩個輸入入文件是是以用戶戶賬號組組織記錄錄的。他他們的輸輸出數(shù)據(jù)據(jù)結(jié)構(gòu)的的Jackson圖表示如如圖所示示。付賬賬目用戶賬號組付賬記錄存款余額用戶總賬號用戶記錄信用卡報報賬系統(tǒng)統(tǒng)的輸入入會計報告告中最后后一行店店方總計計中由兩兩項(xiàng)內(nèi)容容組成即即交易額額總計和和點(diǎn)方余余額總計計。報告告其他部部分是顧顧客數(shù)據(jù)據(jù)。其輸輸出數(shù)據(jù)據(jù)結(jié)構(gòu)的的Jackson圖表示如如圖所示示。會計報告顧客數(shù)據(jù)店方數(shù)據(jù)用戶賬號組*交易金額總計存款金額總計用戶賬號存款記錄用戶總支付存款余額新存款余額舊存款余額報告行*信用卡報賬系統(tǒng)的輸出處理付款賬目和用戶總賬目并給出會計報告處理報告行*處理店方數(shù)據(jù)處理用戶賬號組*處理用戶賬號處理付款記錄計算交易金額總計計算存款余額總計計算舊存款余額計算用戶總支付計算新存款余額處理用戶數(shù)據(jù)計算存款余額I1I2圖4-47信用卡報賬系統(tǒng)程序結(jié)構(gòu)圖③寫出程程序的過過程性描描述首先列出出圖4--47中中的循環(huán)環(huán)結(jié)構(gòu)的的終止條條件I1和I2.I1:付款賬目目文件結(jié)結(jié)束;I2:用戶賬號號組結(jié)束束。必要的可可執(zhí)行操操作和輔輔助操作作說明。。打開文件件:open讀取文件件數(shù)據(jù)::read向文件寫寫數(shù)據(jù)::write尋找數(shù)據(jù)據(jù)項(xiàng):finds關(guān)閉文件件:close用Jackson偽代碼寫寫出過程程性描述述:({{}內(nèi)為為注釋部部分),,處理付付款賬目目和用戶總賬賬目并給給出會計計報告seq。open會計報告告;open付款賬目目;open用戶總賬賬目;處理用戶戶數(shù)據(jù)iteruntil付款賬目目文件結(jié)結(jié)束;處理用戶戶賬號組組seq;read付款賬目目;處理用戶戶賬號{{write處理用戶戶賬號行行};處理付款款記錄iteruntil用戶賬號號組結(jié)束束;write報告行;;計算交易易金額總總計;read付款賬目目;end付款記錄錄;計算用戶戶總支付付;計算存款款余額seq;處理舊存存款余額額{read用戶總賬賬目finds存款余額額};計算新存存款余額額;{write總計行}}end計算存款款余額;;end處理用戶戶賬號組組;end處理用戶戶數(shù)據(jù);;處理店方方數(shù)據(jù)seq;計算交易易金額總總計;計算存款款余額總總計;write店方總計計行;end處理店方方數(shù)據(jù);;close付款賬目目;close用戶總賬賬目;close會計報告告;end處理付款款賬目和和用戶總總賬目并并給出會會計報告告。用Jackson方法得到到的程序序結(jié)構(gòu)圖圖一般都都需要求求精和優(yōu)優(yōu)化。因因?yàn)檫@種種方法是是從輸入入輸出數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)導(dǎo)出程程序結(jié)構(gòu)構(gòu)圖,因因此有些些中間處處理過程程在結(jié)構(gòu)構(gòu)圖中無無法反映映出來。。在求精精過程和和,不斷斷對數(shù)據(jù)據(jù)結(jié)構(gòu)圖圖進(jìn)行改改進(jìn)和細(xì)細(xì)化,使使之完整整。詳細(xì)設(shè)計計詳細(xì)設(shè)計計階段采采用自頂頂向下逐逐步求精精的方法法,把一一個模塊塊的功能能逐步分分解細(xì)化化為一系系列具體體的處理理步驟。。結(jié)構(gòu)化程程序設(shè)計計技術(shù)是是詳細(xì)設(shè)設(shè)計的邏邏輯基礎(chǔ)礎(chǔ)。結(jié)構(gòu)化程程序設(shè)計計的三種種基本控控制結(jié)構(gòu)構(gòu)是順序序、選擇擇、循環(huán)環(huán)。結(jié)構(gòu)化程程序設(shè)計計目前一一個比較較流行的的定義是是:結(jié)構(gòu)化程程序設(shè)計計是一種種設(shè)計程程序的技技術(shù),它它采用自自頂向下下逐步求求精的設(shè)設(shè)計方法法和單入入口單出出口的控控制結(jié)構(gòu)構(gòu)。怎么判斷斷一個程程序是否否為結(jié)構(gòu)構(gòu)化的呢呢?如果果對流程程圖中每每一構(gòu)件件用“邊邊框”圈圈起來,,邊界之之間不出出現(xiàn)交叉叉,則說說明所有有構(gòu)件都都為單入入口單出出口,則則稱此程程序?yàn)榻Y(jié)結(jié)構(gòu)化程程序。
begin
A
1
B
3
4
2
B
6
5
C
7
D
8
end
F
F
F
F
F
T
T
T
T
T
begin
A
1B3
4
2B6
5C
7D
end
F
FFF
T
T
T58F=0F=1F=0?
F
T
C
7
D
8
7
FTT程序流程程圖、盒盒圖、PAD圖、判定定表、判判定樹和和PDL語言等都都是完成成詳細(xì)設(shè)設(shè)計的工工具,選選擇合適適的工具具并且正正確地使使用它們們是十分分重要的的。注意:各種圖圖形的特特點(diǎn),優(yōu)優(yōu)缺點(diǎn),,適用范范圍等,,各種圖形形之間的的轉(zhuǎn)換。PAD圖應(yīng)用舉舉例(N-S圖→PAD圖)abTxiFfx2Tx4F=1=2=3ix5gdo-whiledeDo-untilhx3cDo-untilx6jaUntilx6bx1fx4Untilx5ighjUntilx3ede=1=2=3x2對應(yīng)的PAD圖程序流程程圖的優(yōu)優(yōu)點(diǎn)是::直觀、、易學(xué)、、歷史長長、使用用廣泛。。缺點(diǎn)是::誘使程程序員過過早地考考慮控制制流,容容易忽略略整體結(jié)結(jié)構(gòu);控控制流繪繪制時容容易亂轉(zhuǎn)轉(zhuǎn)移,破破壞結(jié)構(gòu)構(gòu);不容容易表示示數(shù)據(jù)結(jié)結(jié)構(gòu);不不適于大大型程序序的設(shè)計計僅適于于小規(guī)模模程序的的設(shè)計;;例如:前前面講到到的折扣扣率例題題購貨時間4~6、10、12
1~3、7~9、11
購貨數(shù)量〈1010~20〉20〈1010~20〉20折扣率5%10%20%10%20%30%讀入購貨月份T和購貨量WTin{4-6,10,12}折扣率=5%W<10W>20W<10W>20折扣率=10%折扣率=20%折扣率=20%折扣率=30%結(jié)束TFTFTFTFTF購貨時間T與購貨量WTTin{4-6,10,12}FTW<10FTW<10F折扣率為5%TW>20F折扣率為10%TW>20F折扣率為20%折扣率為10%折扣率為30%折扣率為20%折扣率問問題的N-S圖編碼所謂編碼碼就是把把軟件設(shè)設(shè)計的結(jié)結(jié)果翻譯譯成計算算機(jī)可以以“理解解”的形形式—用用某種程程序設(shè)計計語言書書寫的程程序。按照軟件件工程的的方法論論,編碼碼是
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙教新版必修3生物下冊月考試卷含答案
- 2025年統(tǒng)編版八年級歷史下冊月考試卷
- 2025年度乳制品安全檢測與質(zhì)量控制服務(wù)合同3篇
- 二零二五年度安徽電信合同履行全程監(jiān)控合同
- 2025年度高科技產(chǎn)業(yè)園區(qū)土地租賃及配套設(shè)施建設(shè)合同3篇
- 2025年度留學(xué)獎學(xué)金申請代理服務(wù)合同4篇
- 二零二五版分手后情侶分手后共同債務(wù)清償及財產(chǎn)分割合同4篇
- 二零二五版高端醫(yī)療器械采購訂單及合同執(zhí)行監(jiān)管服務(wù)合同
- 二零二五年度辦公樓樓梯口裝飾裝修工程合同樣本4篇
- 2025年度東北大豆出口貿(mào)易公司與國外采購商購銷合同4篇
- 收納盒注塑模具設(shè)計(論文-任務(wù)書-開題報告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號處理與特征提取
- 高中數(shù)學(xué)知識點(diǎn)全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點(diǎn)詞組歸納總結(jié)
- 蘇教版四年級數(shù)學(xué)下冊第3單元第2課時“常見的數(shù)量關(guān)系”教案
- 基于協(xié)同過濾算法的電影推薦系統(tǒng)設(shè)計
- 消防應(yīng)急預(yù)案流程圖
- 人教統(tǒng)編版高中語文必修下冊第六單元(單元總結(jié))
評論
0/150
提交評論