




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章軟件工程概述軟件:軟件的概念嚴(yán)格說來,軟件是計(jì)算機(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ā)成本估計(jì)不準(zhǔn),用戶不滿意;(2)軟件質(zhì)量不可靠;(3)軟件維護(hù)困難;(4)軟件不容易使用和管理,缺乏文檔資料;(5)軟件的開發(fā)跟不上硬件的發(fā)展和用戶要求的日益增長;(6)缺乏高素質(zhì)的軟件開發(fā)人員。產(chǎn)生軟件危機(jī)的原因:(1)軟件本身的問題(2)軟件人員本身的問題(3)軟件生命期中的管理問題解決軟件危機(jī)的辦法:(1)開發(fā)新型的計(jì)算機(jī)系統(tǒng),使用新的監(jiān)督與控制機(jī)制;(2)總結(jié)和吸取前人的經(jīng)驗(yàn)和教訓(xùn),使用成熟的開發(fā)方法;(3)消除錯誤思想和觀念,探索新的方法;(4)使用良好的開發(fā)工具和環(huán)境,提高開發(fā)效率;(5)進(jìn)行嚴(yán)格的組織和管理,采取有效的監(jiān)督。軟件危機(jī)的含義:在軟件開發(fā)和維護(hù)過程中所產(chǎn)生的一系列嚴(yán)重問題的現(xiàn)象,統(tǒng)稱為軟件危機(jī)。軟件工程:概念:是采用工程的概念、原理、技術(shù)和方法來開發(fā)、維護(hù)軟件,是開發(fā)與維護(hù)軟件的規(guī)范化系統(tǒng)方法,它將完善的工程原理應(yīng)用于經(jīng)濟(jì)地生產(chǎn)既可靠、又能在實(shí)際機(jī)器上有效運(yùn)行的軟件。其核心內(nèi)容就是“以工程化的方式組織軟件的開發(fā)”,涉及軟件計(jì)劃、開發(fā)和維護(hù)各個階段。軟件工程的基本目標(biāo)軟件工程的七條原理用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性三種軟件開發(fā)模型(瀑布、漸增、快速原型化)的優(yōu)缺點(diǎn)機(jī)適用范圍。軟件生命周期的經(jīng)典模型——瀑布模型計(jì)劃:問題定義可行性研究開發(fā):需求分析設(shè)計(jì)編碼測試運(yùn)行維護(hù)注意:各個階段產(chǎn)生的文檔資料的名稱。(13份)各個階段結(jié)束標(biāo)志(文檔的內(nèi)容)軟件生命周期的定義軟件工程的產(chǎn)生問題定義要解決的問題是什么?可行性研究可行性分析對于上一階段確定的問題有行得通的解決方法嗎?(可行性分析的目的)進(jìn)一步分析和澄清問題定義探索若干種可能的解法
Operationalfeasibility,操作可行性系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通?Technicalfeasibility,技術(shù)可行性使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個系統(tǒng)嗎?Economicfeasibility,經(jīng)濟(jì)可行性這個系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?對以后的行動方針提出建議例如,修改一個已有的庫存清單系統(tǒng),使它能在每天送給采購員一份定貨報表。修改已有的庫存清單程序并且編寫產(chǎn)生報表的程序,估計(jì)共需5000元;系統(tǒng)修改后能及時定貨將消除零件短缺問題,估計(jì)因此每年可以節(jié)省2500元,五年共可節(jié)省12500元。但是,不能簡單地把5000元和12500元相比較,因?yàn)榍罢呤乾F(xiàn)在投資的錢,后者是若干年以后節(jié)省的錢。假定年利率為12%,利用上面計(jì)算貨幣現(xiàn)在價值的公式可以算出修改庫存清單系統(tǒng)后每年預(yù)計(jì)節(jié)省的錢的現(xiàn)在價值,如表所示。年將來值現(xiàn)在值累計(jì)現(xiàn)在值125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.94(1)貨幣的時間價值
(2)投資回收期通常用投資回收期衡量一項(xiàng)開發(fā)工程的價值。所謂投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初投資所需要的時間。顯然,投資回收期越短就能越快獲得利潤,因此這項(xiàng)工程也就越值得投資。
例如,修改庫存清單系統(tǒng)兩年以后可以節(jié)省4225.12元,比最初的投資(5000元)還少774.88元,第三年以后將再節(jié)省1779.45元。774.88/1779.45=0.44,因此,投資回收期是2.44年。投資回收期僅僅是一項(xiàng)經(jīng)濟(jì)指標(biāo);為了衡量一項(xiàng)開發(fā)工程的價值,還應(yīng)該考慮其他經(jīng)濟(jì)指標(biāo)。(3)純收入衡量工程價值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)是工程的純收入,也就是在整個生命周期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。這相當(dāng)于比較投資開發(fā)一個軟件系統(tǒng)和把錢存在銀行中(或貸給其他企業(yè))這兩種方案的優(yōu)劣。如果純收入為零,則工程的預(yù)期效益和在銀行存款一樣,但是開發(fā)一個系統(tǒng)要冒風(fēng)險,因此從經(jīng)濟(jì)觀點(diǎn)看這項(xiàng)工程可能是不值得投資的。如果純收入小于零,那么這項(xiàng)工程顯然不值得投資。
例如,上述修改庫存清單系統(tǒng),工程的純收入預(yù)計(jì)是9011.94-5000=4011.94(元)需求分析所謂軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。具體任務(wù)確定對系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求需求分析的本質(zhì)就是對數(shù)據(jù)和加工進(jìn)行分析。導(dǎo)出系統(tǒng)的邏輯模型通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和主要的處理算法描述這個邏輯模型修正系統(tǒng)開發(fā)計(jì)劃開發(fā)原型系統(tǒng)(可選)調(diào)查組織概況組織的業(yè)務(wù)活動存在問題、約束條件未來要求需求獲取技術(shù)訪談與會議書面調(diào)查法觀察用戶工作流程用戶和開發(fā)人員共同組成聯(lián)合小組數(shù)據(jù)流圖(DFD)數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動和處理的情況。主要包括四種基本成分:數(shù)據(jù)源點(diǎn)/終點(diǎn)數(shù)據(jù)流加工數(shù)據(jù)存儲/文件基本系統(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ù)項(xiàng)項(xiàng)組成數(shù)據(jù)流可以從從加工流向加加工;從源點(diǎn)點(diǎn)流向加工;;從加工流向向終點(diǎn);從加加工流向文件件或從文件流流向加工兩個加工之間間可以有幾股股數(shù)據(jù)流,這這些數(shù)據(jù)流之之間沒有任何何聯(lián)系,DFD也不表明它們們的流動次序序數(shù)據(jù)流命名的的原則:現(xiàn)實(shí)環(huán)境中,,傳遞的一些些表格、單據(jù)據(jù)的名字可直直接作為數(shù)據(jù)據(jù)流的名字。。把現(xiàn)實(shí)環(huán)境中中傳遞的一組組數(shù)據(jù)中最重重要的那個數(shù)數(shù)據(jù)作為數(shù)據(jù)據(jù)流的名字。。不要把控制流流作為數(shù)據(jù)流流。在數(shù)據(jù)流命名名時,不要僅僅使用“數(shù)據(jù)據(jù)”、“信息息”等缺乏實(shí)實(shí)際具體含義義的詞匯作為為數(shù)據(jù)流的名名字。加工是對數(shù)數(shù)據(jù)進(jìn)行處理理的單元。在分層DFD中,要對加工工進(jìn)行編號,,以便于管理理。加工也要要選取適當(dāng)?shù)牡拿?,以提提高DFD的易讀性。加工命名原則則是:頂層的加工名名可以是軟件件項(xiàng)目的名字字通常先為數(shù)據(jù)據(jù)流命名,然然后再為與之之相關(guān)聯(lián)的加加工命名。加工的名字最最好是由一個個謂語動詞加加上一個賓語語組成,也可可把賓語和謂謂語顛倒書寫寫應(yīng)該避免僅使使用“加工””、“處理””這樣空洞籠籠統(tǒng)的動詞做做加工名。名字應(yīng)該反映映整個加工的的功能,而不不是它的一部部分功能通常名字中僅僅包括一個動動詞如果在為某個個加工命名時時遇到困難,,則很可能是是發(fā)現(xiàn)了分解解不當(dāng)?shù)嫩E象象,應(yīng)考慮重重新分解文件文件是用來暫暫時存儲數(shù)據(jù)據(jù)的。在分層層DFD中,文件一般般都局部于某某一層或某幾幾層。源點(diǎn)和終點(diǎn)是軟件系統(tǒng)之之外的實(shí)體,,可以是人、、物或其他軟軟件系統(tǒng)。源源點(diǎn)和終點(diǎn)是是為了幫助理理解系統(tǒng)接口口界面而引入入的,在DFD中不需要進(jìn)一一步描述它們們。分層圖的編號號原則是:(1)頂層圖圖編號為0,,頂層圖只有有一張,它的的加工就是整整個系統(tǒng);(2)頂層圖圖的子圖稱為為第一層數(shù)據(jù)據(jù)流圖,其中中的各個加工工按自然數(shù)順順序1,2,,3,…進(jìn)進(jìn)行編號,第第一層數(shù)據(jù)流流圖也只有一一張;(3)在第一一層以下的各各分層圖中,,每個加工的的編號應(yīng)該是是其所在的父父圖的編號加加小數(shù)點(diǎn),再再加該圖的局局部加工編號號構(gòu)成。每個個加工編號中中所含小數(shù)點(diǎn)點(diǎn)的個數(shù)加1,就是該圖圖所在的層次次數(shù);幾點(diǎn)說明:一個加工并不不一定是一個個程序。一個個數(shù)據(jù)存儲也也不等同于一一個文件數(shù)據(jù)存儲和數(shù)數(shù)據(jù)流都是數(shù)數(shù)據(jù),僅僅所所處的狀態(tài)不不同通常在數(shù)據(jù)流流圖中忽略出出錯處理,也也不包括諸如如打開或關(guān)閉閉文件之類的的內(nèi)務(wù)處理。。數(shù)據(jù)流的基基本要點(diǎn)是描描繪“做什么么”而不考慮慮“怎么做””。有時數(shù)數(shù)據(jù)的的源點(diǎn)點(diǎn)和終終點(diǎn)相相同,,如果果只用用一個個符號號代表表數(shù)據(jù)據(jù)的源源點(diǎn)和和終點(diǎn)點(diǎn),則則至少少將有有兩個個箭頭頭和這這個符符號相相連((一個個進(jìn)一一個出出),,可能能其中中一條條箭頭頭線相相當(dāng)長長,這這將降降低數(shù)數(shù)據(jù)流流圖的的清晰晰度。。另一一種表表示方方法是是再重重復(fù)畫畫一個個同樣樣的符符號表表示數(shù)數(shù)據(jù)的的終點(diǎn)點(diǎn)。有有時數(shù)數(shù)據(jù)存存儲也也需要要重復(fù)復(fù),以以增加加數(shù)據(jù)據(jù)流圖圖的清清晰度度。假設(shè)設(shè)一一家家工工廠廠的的采采購購部部每每天天需需要要一一張張定定貨貨報報表表,,報報表表按按零零件件編編號號排排序序,,表表中中列列出出所所有有需需要要再再次次定定貨貨的的零零件件。。對對于于每每個個需需要要再再次次定定貨貨的的零零件件應(yīng)應(yīng)該該列列出出下下述述數(shù)數(shù)據(jù)據(jù)::零零件件編編號號、、零零件件名名稱稱、、定定貨貨數(shù)數(shù)量量、、目目前前價價格格、、主主要要供供應(yīng)應(yīng)者者、、次次要要供供應(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ù)據(jù)的信息的的集合,也也就是對數(shù)數(shù)據(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ù)核核日期=年+月月+日年=“0001”..““9999””月=“01””..“12”日=“01””..“31”摘要=1{字字母}4支出=金額金額=“0000000.01”..“9999999.99”操作=“00001”..“99999”…………數(shù)據(jù)文件條目目文件條目是定定義文件的,,一般只需列列出文件的組組成數(shù)據(jù)項(xiàng),,以及文件的的組織方式存折={戶名名+所號+帳帳號+開戶日日+性質(zhì)+((印密)+1{存取行}50}0000000099999999組織:按帳號號次序從小至至大排列加工條目(小小說明)小說明集中描描述一個加工工“做什么””,即加工邏邏輯,也包括括其它一些與與加工有關(guān)的的信息,如執(zhí)執(zhí)行條件、優(yōu)優(yōu)先級、執(zhí)行行頻率、出錯錯處理等。目前用于寫小小說明的工具具有結(jié)構(gòu)化英英語、判定表表和判定樹。。下面是商店業(yè)業(yè)務(wù)處理系統(tǒng)統(tǒng)中“檢查發(fā)發(fā)貨單”的例例子IFtheinvoiceexceeds$500THENIFtheaccounthasanyinvoicemorethan60daysoverdue THENtheconfirmationpendingresolutionofthedebtELSEissueconfirmationandinvoiceENDIFELSEIFtheaccounthasanyinvoicemorethan60daysoverdueTHENissueconfirmation,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è)計(jì)可分分為概要設(shè)計(jì)計(jì)/總體設(shè)計(jì)計(jì)和詳細(xì)(detail)設(shè)計(jì)兩大步驟驟。概要設(shè)計(jì)計(jì)是根據(jù)需求求確定軟件和和數(shù)據(jù)的總體體框架,詳細(xì)細(xì)設(shè)計(jì)是將其其進(jìn)一步精化化成軟件的算算法表示和數(shù)數(shù)據(jù)結(jié)構(gòu)。從技術(shù)角度來來看,軟件設(shè)設(shè)計(jì)可分為數(shù)數(shù)據(jù)設(shè)計(jì)、系系統(tǒng)結(jié)構(gòu)設(shè)計(jì)計(jì)和過程設(shè)計(jì)計(jì)。數(shù)據(jù)設(shè)計(jì)計(jì)把分析階段段建立的信息息描述轉(zhuǎn)換為為實(shí)現(xiàn)軟件所所要求的數(shù)據(jù)據(jù)結(jié)構(gòu),側(cè)重重于數(shù)據(jù)結(jié)構(gòu)構(gòu)的定義;系系統(tǒng)結(jié)構(gòu)設(shè)計(jì)計(jì)定義軟件系系統(tǒng)各主要部部件、成分之之間的關(guān)系,,過程設(shè)計(jì)則則是把結(jié)構(gòu)成成分轉(zhuǎn)換成軟軟件的過程性性描述即完成成每一部件的的過程化描述述。概要設(shè)計(jì)在進(jìn)行軟件結(jié)結(jié)構(gòu)設(shè)計(jì)時應(yīng)應(yīng)該遵循的最最重要的原理理是模塊獨(dú)立立原理。采用模塊化原原理的優(yōu)點(diǎn)::可以使軟件結(jié)結(jié)構(gòu)清晰,容容易設(shè)計(jì)、容容易閱讀和理理解、容易測測試和調(diào)試。。提高軟件的可可靠性。有利利于軟件開發(fā)發(fā)工程的組織織管理。模塊獨(dú)立性可可用兩個定量量準(zhǔn)則來度量量:耦合和內(nèi)內(nèi)聚。耦合分七級::非直接耦合合、數(shù)據(jù)耦合合、特征耦合合/標(biāo)記耦合合、控制耦合合、外部耦合合、公共耦合合、內(nèi)容耦合合。內(nèi)聚分七級::偶然內(nèi)聚、、邏輯內(nèi)聚、、時間內(nèi)聚、、過程內(nèi)聚、、通信內(nèi)聚、、順序內(nèi)聚、、功能內(nèi)聚。。內(nèi)聚和耦合是是相互關(guān)聯(lián)的的。軟件概要設(shè)計(jì)計(jì)的目標(biāo)是力力求增加模塊塊的內(nèi)聚,盡盡量減少模塊塊間的耦合。。但增加內(nèi)聚聚比減少耦合合更重要,二二者不能兼顧顧的情況下,,應(yīng)當(dāng)把更多多的注意力集集中到提高模模塊的內(nèi)聚程程度上來。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)計(jì)的七條啟發(fā)發(fā)式原則改進(jìn)軟件結(jié)構(gòu)構(gòu)提高模塊獨(dú)獨(dú)立性模塊規(guī)模應(yīng)該該適中深度、寬度、、扇出和扇入入都應(yīng)適當(dāng)模塊的作用范范圍應(yīng)在控制制范圍之內(nèi)力爭降低模塊塊接口的復(fù)雜雜程度設(shè)計(jì)單入口單單出口的模塊塊模塊功能應(yīng)該該可以預(yù)測概要設(shè)計(jì)常用用圖形工具有有:層次圖、、HIPO圖、結(jié)構(gòu)圖。。變換流的DFD是一個線性結(jié)結(jié)構(gòu),由輸入入、變換和輸輸出三部分組組成。數(shù)據(jù)沿輸入通通路到達(dá)一個個處理,這個個處理根據(jù)輸輸入數(shù)據(jù)的類類型在若干個個動作序列中中選出一個來來執(zhí)行。這類類數(shù)據(jù)流稱為為事務(wù)流。概要設(shè)計(jì)的步步驟:分析DFD確定DFD的特點(diǎn)及邊界界映射為軟件結(jié)結(jié)構(gòu)細(xì)化后,得到到初始結(jié)構(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)為為例某商店開展信信用卡購物業(yè)業(yè)務(wù)。建立了了兩個賬目付付款賬目和用用戶總賬目。。前者記錄了了每位用戶每每次付款的日日期、金額,,由用戶的賬賬號、日期和和交易金額組組成。后者記記錄了用戶存存款余額。這這兩個賬目都都是按用戶的的賬號進(jìn)行登登錄的(見圖圖)。店方每每隔一段時間間都需要根據(jù)據(jù)上述兩個賬賬目產(chǎn)生一個個會計(jì)報告。。包括賬號、、日期、交易易金額、舊余余額、新余額額等內(nèi)容(見見圖)。現(xiàn)在在要求用Jackson方法設(shè)計(jì)一個個能夠產(chǎn)生上上述會計(jì)報告告的程序。顧客賬號支付日期交易金額.........顧客賬號存款余額......用戶數(shù)據(jù)顧客賬號支付日期交易金額舊存款余額新存款余額...店方數(shù)據(jù)店方總計(jì)付款賬目用戶總賬目會計(jì)報告Jackson開發(fā)方法實(shí)現(xiàn)現(xiàn)步驟①畫數(shù)據(jù)結(jié)構(gòu)構(gòu)圖這個系統(tǒng)的兩兩個輸入文件件是付賬賬目目和用戶總賬賬目。輸出文文件是會計(jì)報報告。兩個輸輸入文件是以以用戶賬號組組織記錄的。。他們的輸出出數(shù)據(jù)結(jié)構(gòu)的的Jackson圖表示如圖圖所示。付賬賬目用戶賬號組付賬記錄存款余額用戶總賬號用戶記錄信用卡報賬賬系統(tǒng)的輸輸入會計(jì)報告中中最后一行行店方總計(jì)計(jì)中由兩項(xiàng)項(xiàng)內(nèi)容組成成即交易額額總計(jì)和點(diǎn)點(diǎn)方余額總總計(jì)。報告告其他部分分是顧客數(shù)數(shù)據(jù)。其輸輸出數(shù)據(jù)結(jié)結(jié)構(gòu)的Jackson圖表示如圖圖所示。會計(jì)報告顧客數(shù)據(jù)店方數(shù)據(jù)用戶賬號組*交易金額總計(jì)存款金額總計(jì)用戶賬號存款記錄用戶總支付存款余額新存款余額舊存款余額報告行*信用卡報賬系統(tǒng)的輸出處理付款賬目和用戶總賬目并給出會計(jì)報告處理報告行*處理店方數(shù)據(jù)處理用戶賬號組*處理用戶賬號處理付款記錄計(jì)算交易金額總計(jì)計(jì)算存款余額總計(jì)計(jì)算舊存款余額計(jì)算用戶總支付計(jì)算新存款余額處理用戶數(shù)據(jù)計(jì)算存款余額I1I2圖4-47信用卡報賬系統(tǒng)程序結(jié)構(gòu)圖③寫出程序序的過程性性描述首先列出圖圖4-47中的循環(huán)環(huán)結(jié)構(gòu)的終終止條件I1和I2.I1:付款賬目文文件結(jié)束;;I2:用戶賬號組組結(jié)束。必要的可執(zhí)執(zhí)行操作和和輔助操作作說明。打開文件::open讀取文件數(shù)數(shù)據(jù):read向文件寫數(shù)數(shù)據(jù):write尋找數(shù)據(jù)項(xiàng)項(xiàng):finds關(guān)閉文件::close用Jackson偽代碼寫出出過程性描描述:({}內(nèi)為注釋釋部分),,處理付款款賬目和用戶總賬目目并給出會會計(jì)報告seq。open會計(jì)報告;;open付款賬目;;open用戶總賬目目;處理用戶數(shù)數(shù)據(jù)iteruntil付款賬目文文件結(jié)束;;處理用戶賬賬號組seq;read付款賬目;;處理用戶賬賬號{write處理用戶賬賬號行};;處理付款記記錄iteruntil用戶賬號組組結(jié)束;write報告行;計(jì)算交易金金額總計(jì);;read付款賬目;;end付款記錄;;計(jì)算用戶總總支付;計(jì)算存款余余額seq;處理舊存款款余額{read用戶總賬目目finds存款余額};計(jì)算新存款款余額;{write總計(jì)行}end計(jì)算存款余余額;end處理用戶賬賬號組;end處理用戶數(shù)數(shù)據(jù);處理店方數(shù)數(shù)據(jù)seq;計(jì)算交易金金額總計(jì);;計(jì)算存款余余額總計(jì);;write店方總計(jì)行行;end處理店方數(shù)數(shù)據(jù);close付款賬目;;close用戶總賬目目;close會計(jì)報告;;end處理付款賬賬目和用戶戶總賬目并并給出會計(jì)計(jì)報告。用Jackson方法得到的的程序結(jié)構(gòu)構(gòu)圖一般都都需要求精精和優(yōu)化。。因?yàn)檫@種種方法是從從輸入輸出出數(shù)據(jù)結(jié)構(gòu)構(gòu)導(dǎo)出程序序結(jié)構(gòu)圖,,因此有些些中間處理理過程在結(jié)結(jié)構(gòu)圖中無無法反映出出來。在求求精過程和和,不斷對對數(shù)據(jù)結(jié)構(gòu)構(gòu)圖進(jìn)行改改進(jìn)和細(xì)化化,使之完完整。詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階階段采用自自頂向下逐逐步求精的的方法,把把一個模塊塊的功能逐逐步分解細(xì)細(xì)化為一系系列具體的的處理步驟驟。結(jié)構(gòu)化程序序設(shè)計(jì)技術(shù)術(shù)是詳細(xì)設(shè)設(shè)計(jì)的邏輯輯基礎(chǔ)。結(jié)構(gòu)化程序序設(shè)計(jì)的三三種基本控控制結(jié)構(gòu)是是順序、選選擇、循環(huán)環(huán)。結(jié)構(gòu)化程序序設(shè)計(jì)目前前一個比較較流行的定定義是:結(jié)構(gòu)化程序序設(shè)計(jì)是一一種設(shè)計(jì)程程序的技術(shù)術(shù),它采用用自頂向下下逐步求精精的設(shè)計(jì)方方法和單入入口單出口口的控制結(jié)結(jié)構(gòu)。怎么判斷一一個程序是是否為結(jié)構(gòu)構(gòu)化的呢??如果對流流程圖中每每一構(gòu)件用用“邊框””圈起來,,邊界之間間不出現(xiàn)交交叉,則說說明所有構(gòu)構(gòu)件都為單單入口單出出口,則稱稱此程序?yàn)闉榻Y(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ì)細(xì)設(shè)計(jì)的工工具,選擇擇合適的工工具并且正正確地使用用它們是十十分重要的的。注意:各種圖形形的特點(diǎn),,優(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)點(diǎn)是是:直觀、、易學(xué)、歷歷史長、使使用廣泛。。缺點(diǎn)是:誘誘使程序員員過早地考考慮控制流流,容易忽忽略整體結(jié)結(jié)構(gòu);控制制流繪制時時容易亂轉(zhuǎn)轉(zhuǎn)移,破壞壞結(jié)構(gòu);不不容易表示示數(shù)據(jù)結(jié)構(gòu)構(gòu);不適于于大型程序序的設(shè)計(jì)僅僅適于小規(guī)規(guī)模程序的的設(shè)計(jì);例如:前面面講到的折折扣率例題題購貨時間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è)計(jì)的結(jié)結(jié)果翻譯成成計(jì)算機(jī)可可以“理解解”的形式式—用某種種程序設(shè)計(jì)計(jì)語言書寫寫的程序。。按照軟件工工程的方法法論,編碼碼是在對軟軟件進(jìn)行了了概要設(shè)計(jì)計(jì)和詳細(xì)設(shè)設(shè)計(jì)之后進(jìn)進(jìn)行的,編編碼不過是是把軟件設(shè)設(shè)計(jì)的結(jié)果果翻譯成用用某種程序序設(shè)計(jì)語言言書寫的程程序。因此
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級下冊數(shù)學(xué)教學(xué)設(shè)計(jì)-總復(fù)習(xí) 雞兔同籠|北師大版
- 三年級下冊數(shù)學(xué)教案-6.1 面積的初步認(rèn)識 丨蘇教版
- 六年級下冊數(shù)學(xué)教案-1.2 百分?jǐn)?shù)和分?jǐn)?shù)、小數(shù)的互化 ︳西師大版
- 2025年學(xué)習(xí)雷鋒精神62周年主題活動方案 合計(jì)3份
- 2024年槽鋼項(xiàng)目資金需求報告代可行性研究報告
- 2025年河北司法警官職業(yè)學(xué)院單招職業(yè)技能測試題庫完美版
- 專題21 信息的傳遞-2025年中考《物理》一輪復(fù)習(xí)知識清單與解題方法
- 2025年廣西自然資源職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫參考答案
- 2025年度代養(yǎng)大型豬群養(yǎng)殖基地合作協(xié)議
- 2025年度專業(yè)瓷磚鋪貼班組勞務(wù)合同
- 蘇科版七年級數(shù)學(xué)下冊期末復(fù)習(xí)+10(專題-幾何圖形的證明)
- 人人都是產(chǎn)品經(jīng)理2 0:寫給泛產(chǎn)品經(jīng)理
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套教學(xué)課件
- 振動振動測試基礎(chǔ)知識培訓(xùn)課件
- 《云南瀾滄鉛礦有限公司勐濱煤礦采礦權(quán)價款退還計(jì)算說明》
- sbl-ep16高低壓開關(guān)柜培訓(xùn)中法文kyn6140.5安裝使用說明書
- GB/T 9113.1-2000平面、突面整體鋼制管法蘭
- GB/T 8947-1998復(fù)合塑料編織袋
- PALL 頗爾過濾器 -乙烯系統(tǒng)培訓(xùn)
- 2021年湖北師范學(xué)院專升本C語言程序設(shè)計(jì)試卷
- CB/T 3136-1995船體建造精度標(biāo)準(zhǔn)
評論
0/150
提交評論