• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    對軟件工程課中數(shù)據(jù)流圖教學的探討

    2014-05-30 10:48:04彭立
    新校園·上旬刊 2014年7期
    關鍵詞:軟件工程教學

    彭立

    摘 要:數(shù)據(jù)流圖是軟件工程實踐中一種非常重要的建模工具。因為缺乏足夠的重視,加之沒有全面掌握數(shù)據(jù)流圖的畫法,學生對該知識點的掌握情況往往不盡如人意。本文對數(shù)據(jù)流圖的教學進行了探討,強調(diào)了數(shù)據(jù)流圖對整個項目開發(fā)的重要性,闡明了數(shù)據(jù)流圖中各種元素的含義以及繪圖的原則。

    關鍵詞:軟件工程;數(shù)據(jù)流圖;教學;繪圖原則

    一、引言

    軟件工程是人們?yōu)榱藨獙浖C而提出并研究的一門學科,對于大型軟件的開發(fā)和維護,它具有極其重要的指導作用,因而一直以來都是高校計算機專業(yè)的必修課。軟件工程提出了軟件生命周期這個概念,而需求分析是軟件生命周期中最為重要的一個階段,因為這個階段工作的好壞決定了開發(fā)出的系統(tǒng)是否滿足用戶的要求。在該階段,分析員需要建立系統(tǒng)的邏輯模型,其中包括系統(tǒng)的功能模型。無論是采用結(jié)構(gòu)化分析方法還是面向?qū)ο蠓治龇椒?,?shù)據(jù)流圖都是功能建模的最好工具,原因有二:一方面,數(shù)據(jù)流圖中的符號少而簡單,且易于理解和掌握,對于用戶而言也是如此;另一方面,數(shù)據(jù)流圖描繪了數(shù)據(jù)從輸入到輸出的過程中所經(jīng)歷的變換,使系統(tǒng)的功能可從一個比較高的層面被展現(xiàn)出來,從而便于分析員和用戶之間的交流。數(shù)據(jù)流圖對需求分析的重要性決定了它是軟件工程教學中的一項重要內(nèi)容,教師往往會花大量的時間對該知識點進行講解。盡管如此,筆者從作業(yè)、課程設計和畢業(yè)設計等方面發(fā)現(xiàn)許多學生對該知識點的掌握情況并不理想。究其原因主要有兩點:一是沒有真正意識到數(shù)據(jù)流圖對整個項目開發(fā)的重要性;二是沒有全面掌握數(shù)據(jù)流圖的畫法。本文從這兩方面原因入手,就如何抓好數(shù)據(jù)流圖的教學進行了探討。

    二、數(shù)據(jù)流圖對整個項目開發(fā)的重要性

    因為數(shù)據(jù)流圖只是在一個比較抽象的層面對軟件系統(tǒng)的功能進行描述,學生很難認識到它對整個項目開發(fā)的重要性,他們往往覺得繪制數(shù)據(jù)流圖只是做做樣子而已,流圖的質(zhì)量無關緊要。為了糾正學生的錯誤認識,教師在教學中應跟學生講清楚并強調(diào)以下事實。

    數(shù)據(jù)流圖的重要性主要體現(xiàn)在需求分析階段,在該階段,數(shù)據(jù)流圖被用于建立系統(tǒng)的完整邏輯模型,它明確了系統(tǒng)的邊界以及數(shù)據(jù)在系統(tǒng)內(nèi)部流動及變換的邏輯過程。通過繪制分層數(shù)據(jù)流圖,系統(tǒng)的所有功能以一種由抽象到具體的方式被展現(xiàn)出來。數(shù)據(jù)流圖是分析員和用戶之間交流的工具。通過數(shù)據(jù)流圖,分析員表達了他們對用戶需求的理解,用戶能判斷分析員是否真正理解了他們的需求。數(shù)據(jù)流圖是需求規(guī)格說明書的重要組成部分,在描述業(yè)務流程較為復雜的功能項時,它具有文字說明所無法比擬的優(yōu)勢,而需求規(guī)格說明書是系統(tǒng)設計和測試的主要依據(jù)。

    除了在需求分析階段,數(shù)據(jù)流圖在軟件生命周期的其它階段也能發(fā)揮作用??尚行匝芯渴且粋€簡化和壓縮了的分析和設計過程,在該階段,數(shù)據(jù)流圖能被用于建立系統(tǒng)的高層邏輯模型。在總體設計階段,基于自動化邊界劃分,數(shù)據(jù)流圖能幫助設計人員確定系統(tǒng)的物理實現(xiàn)方案,此外,若采用結(jié)構(gòu)化設計方法,從數(shù)據(jù)流圖能直接導出系統(tǒng)的體系結(jié)構(gòu)。在系統(tǒng)測試中,數(shù)據(jù)流圖能指導測試人員設計測試用例。

    三、數(shù)據(jù)流圖的畫法

    1.數(shù)據(jù)流圖中的元素

    在講授數(shù)據(jù)流圖的畫法之前,首先要讓學生弄清楚圖中各種元素的含義。流圖中的元素有5種:源點、終點、數(shù)據(jù)流、加工、數(shù)據(jù)存儲。

    (1)源點和終點。源點和終點是與系統(tǒng)存在數(shù)據(jù)交換的外部實體,它們可以是人,也可以是其它系統(tǒng)。其中,源點為系統(tǒng)提供輸入,終點接收系統(tǒng)的輸出。

    (2)數(shù)據(jù)流。數(shù)據(jù)流代表了流圖中不同元素之間傳遞的數(shù)據(jù),它具有一定的數(shù)據(jù)結(jié)構(gòu),更具體地說,它是由若干個數(shù)據(jù)項按一定的方式(例如順序、選擇和循環(huán)或這三種方式的組合)組織而成。

    (3)加工。將接收到的輸入流變換成輸出流,這種變換主要體現(xiàn)在以下幾個方面:

    *數(shù)據(jù)的轉(zhuǎn)移。例如將數(shù)據(jù)從一個文件取出來,存入另一個文件。

    *執(zhí)行計算。例如根據(jù)所采購的商品的數(shù)量和單價計算總價。

    *做出判斷。例如根據(jù)用戶名和密碼判斷當前登陸的用戶是否合法。

    *基于內(nèi)容和業(yè)務規(guī)則劃分數(shù)據(jù)流。例如將某個訂單劃分為可供貨的訂單或不可供貨的訂單。

    *過濾或匯總數(shù)據(jù)記錄以產(chǎn)生新的數(shù)據(jù)流。例如過濾掉班級學生記錄中女生的記錄,只保留男生的記錄;或者將不同班級的學生記錄組合在一起構(gòu)成全年級的學生記錄。

    (4)數(shù)據(jù)存儲。數(shù)據(jù)存儲是為加工存放數(shù)據(jù)的地方。例如文件和表都可看成是數(shù)據(jù)存儲。加工可對數(shù)據(jù)存儲進行讀寫刪改操作。數(shù)據(jù)存儲和數(shù)據(jù)流的不同之處在于,前者存放的是靜態(tài)數(shù)據(jù),而后者中的數(shù)據(jù)是動態(tài)數(shù)據(jù)。

    2.繪制數(shù)據(jù)流圖的原則

    為了繪制有效的數(shù)據(jù)流圖,必須掌握繪圖的原則。在軟考中,有關數(shù)據(jù)流圖的試題很多都涉及到繪圖原則,因此在教學中,教師應通過案例教學法跟學生講清楚每一條原則。通過查找資料,筆者總結(jié)了一套完整的繪圖原則,現(xiàn)分兩部分說明如下。

    (1)總的原則

    ①為流圖中的每一個元素采用合適的命名。數(shù)據(jù)流或數(shù)據(jù)存儲的名字應反映其全部內(nèi)容,而不僅僅是它的某些成分,一般采用名詞或名詞短語。加工的名字應反映它全部的功能,而不僅僅是它的部分功能,最好是由一個及物動詞加上一個賓語組成。絕不要用“如果,則”這樣的聲明作為加工的名字。源點和終點的名字可采用它們在問題域中習慣使用的名字。

    ②流圖中每個元素都必須有名字,與數(shù)據(jù)存儲相連的數(shù)據(jù)流除外。

    ③加工的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流不能同名,即使它們有相同的結(jié)構(gòu)。

    ④每一個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流。

    ⑤所有的數(shù)據(jù)流必須以一個加工開始或者結(jié)束。

    根據(jù)以上原則,可發(fā)現(xiàn)圖1中有5處錯誤:數(shù)據(jù)流X不應出現(xiàn)在流圖中;數(shù)據(jù)流H不應出現(xiàn)在流圖中;加工2的的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流同名,都為Z;加工4只有輸入數(shù)據(jù)流;加工5只有輸出數(shù)據(jù)流。

    圖1 數(shù)據(jù)流圖繪圖原則例1

    ⑥流圖中不可夾帶控制流。這條原則指出數(shù)據(jù)流圖不能和程序流程圖混為一談。數(shù)據(jù)流圖中的加工代表的都是對數(shù)據(jù)的處理,數(shù)據(jù)流的方向反映的是數(shù)據(jù)流動的方向,而不是加工執(zhí)行的順序。程序流程圖中所包含的步驟既可以是對數(shù)據(jù)的處理,也可以是控制轉(zhuǎn)移,圖中的箭頭線指明了步驟執(zhí)行的順序。圖2中的兩張流圖違背了該原則。(a)中的“取下一張卡片”并不代表數(shù)據(jù)流動,而是表明“檢查卡片合理性”結(jié)束后,應由“操作員”取出下一張卡片,所以它是控制流。類似地,(b)中的“每月第一天”也不代表數(shù)據(jù)流動,它只是“計算工資”的激發(fā)條件。

    圖2 數(shù)據(jù)流圖繪圖原則例2

    ⑦為了避免流圖中出現(xiàn)線條交叉,同一個源點、終點或數(shù)據(jù)存儲均可在不同位置多次出現(xiàn),對于相同的源點或終點,要在其符號的右下方畫小斜線,對于相同的數(shù)據(jù)存儲,要在其符號左邊畫豎線。

    ⑧若某個數(shù)據(jù)存儲只被一個加工訪問,它應隱含在該加工內(nèi)部,而不應出現(xiàn)在流圖中。

    ⑨保持數(shù)據(jù)守恒。一個加工的輸出流中的數(shù)據(jù)項要么來自該加工的輸入流,要么是該加工所產(chǎn)生的數(shù)據(jù)。例如:某個加工有兩個輸入流“學生信息”和“教材”,其輸出流為“訂書單”,其中,學生信息=學號+姓名,教材=教材ISBN+教材價格,訂書單=教材ISBN+教材價格+教材數(shù)量;若該加工能根據(jù)“學生信息”計算出“教材數(shù)量”,則對其而言數(shù)據(jù)是守恒的。

    ⑩自頂向下逐層分解,繪出分層數(shù)據(jù)流圖。對于一個大型的軟件系統(tǒng),若在一張流圖中畫出其所有的數(shù)據(jù)流和加工,則該圖將極其龐大復雜且難以理解。而繪制分層數(shù)據(jù)流圖是控制畫圖復雜性的最好方法。一套分層數(shù)據(jù)流圖可分為頂層、中間層和底層三個層次。頂層中的流圖只有一張,它明確了系統(tǒng)的邊界。該圖中只有一個加工,它代表整個系統(tǒng),它的輸入流代表了系統(tǒng)的輸入數(shù)據(jù),它的輸出流代表了系統(tǒng)的輸出數(shù)據(jù)。底層中的每一張流圖由一些無需分解的加工組成,這些加工都已足夠簡單,稱為基本加工。中間層位于底層和頂層之間。中間層的每一張流圖是對其上層父圖中某個加工的細化,它包含的每一加工可能還會繼續(xù)分解,從而形成子圖。

    (2)繪制分層數(shù)據(jù)流圖的原則

    ①保持父圖與子圖的平衡。對于父圖中任意一個加工,其輸入數(shù)據(jù)流(或輸出數(shù)據(jù)流)必須與其分解后產(chǎn)生的子圖的輸入數(shù)據(jù)流(或輸出數(shù)據(jù)流)保持“一致”。這并不意味著兩者在數(shù)量上和名稱上必須完全相同,而意味著兩者所包含的數(shù)據(jù)項在數(shù)量上和名稱上必須完全相同。在圖3中,(b)為(a)中的加工“開領書單”細化后得到的子圖,若“發(fā)票”包含的數(shù)據(jù)項=“學生”包含的數(shù)據(jù)項+“教材”包含的數(shù)據(jù)項,則(a)和(b)是平衡的。

    圖3 數(shù)據(jù)流圖繪圖原則例3

    ②注意分解的速度。一般來說,一個加工最好分解為2~4個子加工,最多不得超過7個。

    ③遵守圖和加工的編號規(guī)則。頂層圖只有一張,圖中的加工也只有一個,該圖和圖中的加工都無需編號。0層圖(位于頂層圖下方)只有一張,該圖無需編號,圖中的加工編號分別是1,2,……,n。對于其余層次中的每一張流圖,其編號就是父圖中相應加工的編號,圖中加工的編號由圖號、圓點和序號組成,例如1.1,1.2,……,1.n。

    四、結(jié)語

    除了讓學生掌握數(shù)據(jù)流圖的畫法外,教師還應設法為學生提供更多的練習素材??紤]到教材上的習題太少且與實際脫節(jié),教師應從網(wǎng)絡或其它途徑搜集習題和資料,并從中挑選難度適中的題目作為學生的練習素材。我們相信,學生只要樹立了對數(shù)據(jù)流圖重要性的正確認識,全面掌握了其畫法并勤于練習,他們就能在軟件項目開發(fā)中真正用好這個工具。

    參考文獻:

    [1]Donald S Le Vie,Jr.Understanding Data Flow Diagrams[EB/OL].http://ratandon.mysite.syr.edu/cis453/notes/DFD_over_Flowcharts.pdf.

    [2]張海藩.軟件工程導論[M].北京:清華大學出版社,2008.

    [3]Data flows:Note on Data-Driven Process Modeling[EB/OL].http://faculty.babson.edu/dewire/Readings/dfdintro.htm.

    [4]張雅軍.淺析軟件工程中的數(shù)據(jù)流圖的畫法[J].天津職業(yè)院校聯(lián)合學報,2008,10(2):70-73.

    猜你喜歡
    軟件工程教學
    微課讓高中數(shù)學教學更高效
    甘肅教育(2020年14期)2020-09-11 07:57:50
    如何讓高中生物教學變得生動有趣
    甘肅教育(2020年12期)2020-04-13 06:25:34
    “自我診斷表”在高中數(shù)學教學中的應用
    東方教育(2017年19期)2017-12-05 15:14:48
    對外漢語教學中“想”和“要”的比較
    唐山文學(2016年2期)2017-01-15 14:03:59
    依托工作室的軟件工程實踐教學研究
    應用瀑布模型的MOOC制作方法
    計算機教育(2016年7期)2016-11-10 08:38:07
    融合APTECH體系的軟件產(chǎn)業(yè)人才培養(yǎng)探究
    計算機教育(2016年7期)2016-11-10 08:04:30
    基于工程教育認證的《軟件工程》課程教學質(zhì)量建設研究 
    軟件導刊(2016年9期)2016-11-07 22:31:23
    關于提高軟件工程實踐教學質(zhì)量的幾點思考
    關于如何創(chuàng)新和完善計算機軟件工程管理的探討
    垫江县| 朔州市| 剑川县| 京山县| 五寨县| 静宁县| 荆州市| 龙里县| 秀山| 山东省| 介休市| 汶川县| 和平县| 闻喜县| 丰镇市| 阜平县| 深州市| 万盛区| 永善县| 循化| 大方县| 察隅县| 湘阴县| 合山市| 宁武县| 南澳县| 泽普县| 花莲县| 新竹县| 方山县| 德昌县| 沽源县| 平阴县| 双城市| 梨树县| 松江区| 崇文区| 弥勒县| 蓬莱市| 洛隆县| 上林县|