周立君
摘要:現(xiàn)今社會,軟件工程作為信息產(chǎn)業(yè)的一個支柱,已逐漸為人們所熟悉和廣泛使用。數(shù)據(jù)流圖作為軟件工程不可缺少的輔助工具,有著不可替代的作用。通過數(shù)據(jù)流圖,軟件設(shè)計者可以更有效地對系統(tǒng)進(jìn)行設(shè)計,更好地捕獲用戶需求。用戶也可以更好地了解該系統(tǒng)。
關(guān)鍵詞:軟件工程;數(shù)據(jù)流圖;結(jié)構(gòu)化分析方法
引言
軟件工程作為信息產(chǎn)業(yè)的一個支柱,已逐漸為人們所熟悉和廣泛使用。數(shù)據(jù)流圖作為軟件工程不可缺少的輔助工具,有著不可替代的作用。通過數(shù)據(jù)流圖,軟件設(shè)計者可以更有效地對系統(tǒng)進(jìn)行設(shè)計,更好地捕獲用戶需求。用戶也可以更好地了解該系統(tǒng)。
1繪制流程圖應(yīng)遵循的原則
1.1合理進(jìn)行編號
常用數(shù)字對分層數(shù)據(jù)流程圖進(jìn)行編號,提出的MPALA方法可以根據(jù)信道質(zhì)量靈活調(diào)整MCS和重復(fù)次數(shù)。當(dāng)信道質(zhì)量提高時,本章提出的鏈路自適應(yīng)方法可以選擇更高的MCS,因此選擇更大的傳輸塊(TBS),能夠節(jié)省數(shù)據(jù)傳輸時間,進(jìn)而提高數(shù)據(jù)傳輸速率。當(dāng)信噪比繼續(xù)提高且大于一3dB,因此父圖擁有的子圖數(shù)少于或等于父圖中的加工個數(shù)。
1.2自頂向下分層展開繪制
對一個龐大而又復(fù)雜的系統(tǒng),如果系統(tǒng)分析員一開始就注意每一個具體的邏輯功能,很可能要畫出幾百個甚至上千個處理邏輯。它們之間的數(shù)據(jù)流像一團(tuán)亂麻似的分布在數(shù)據(jù)流程圖上,同樣先不管其內(nèi)部,而只分析它們之間的數(shù)據(jù)聯(lián)系,這樣反復(fù)下去,依此類推,直至最終搞清了所有的問題為止。
1.3由左至右地繪制
繪制數(shù)據(jù)流程圖,一般先從左側(cè)開始,標(biāo)出外部項。左側(cè)的外部項,通常是系統(tǒng)主要的數(shù)據(jù)輸入來源,然后畫出由該外部項產(chǎn)生的數(shù)據(jù)流和相應(yīng)的處理邏輯,如果需要將數(shù)據(jù)保存,則在數(shù)據(jù)流程圖上加上數(shù)據(jù)存儲。最后在數(shù)據(jù)流程圖的右側(cè)畫出接受系統(tǒng)輸出數(shù)據(jù)的外部項,右側(cè)的外部項是系統(tǒng)數(shù)據(jù)的輸出去向。
2開發(fā)大型軟件和編寫小型程序之間的區(qū)別
開發(fā)大型軟件和編寫小型程序有著本質(zhì)的區(qū)別??偟膩碚f:軟件工程由編程演變而來,編程一般考慮小型程序的編寫,而軟件工程則需考慮大型軟件系統(tǒng)的研制。
2.1從所需的人力看
小型程序從確定要求、編制、使用等直到修改往往是由同一個人完成的,因此只要編程者本人心理明白程序的構(gòu)思就夠了,而大型系統(tǒng)則必須由許多人(包括用戶'幣目負(fù)責(zé)人,分析員,程序員,資料員操作員)等組成一支開發(fā)隊來協(xié)同完成,所以人與人之間必須準(zhǔn)確地進(jìn)行協(xié)商討論。
2.2從產(chǎn)品使用情況看
小型產(chǎn)品往往是一次性的,即如果需要作較大的修改,人們通常寧可丟棄舊的程序而重新編寫,但大型系統(tǒng)的開發(fā)耗費(fèi)了大量的人力與物力,所以人們一般不會輕易將其丟棄,而總是在舊程序的基礎(chǔ)上一改再改,希望延長它的使用期。
3軟件工程的現(xiàn)狀
3.1軟件工程的發(fā)展特點
通過知網(wǎng)的全文檢索功能,檢索關(guān)鍵詞“軟件工程、發(fā)展、現(xiàn)狀、前景”,從中選取了100篇相關(guān)文獻(xiàn)進(jìn)行了計量可視化分析,結(jié)果有關(guān)軟件工程的現(xiàn)狀以及發(fā)展前景問題的研究大體上呈現(xiàn)出逐年上升的趨勢,這說明中國的軟件工程產(chǎn)業(yè)的發(fā)展越來越引起人們的重視。
結(jié)合調(diào)查結(jié)果能夠了解到,近些年軟件工程行業(yè)表現(xiàn)出快速發(fā)展的態(tài)勢,成為在中國最熱門的產(chǎn)業(yè)之一,給國家以及個人的發(fā)展貢獻(xiàn)了不小的力量。軟件工程必然會成為推動將來經(jīng)濟(jì)發(fā)展的主要動力之一。首先,軟件工程的就業(yè)前景良好,軟件發(fā)展產(chǎn)業(yè)鏈提供了大量高收入有前途的就業(yè)崗位,但是目前國內(nèi)高精尖應(yīng)用型軟件技術(shù)人才還很稀缺。其次,就業(yè)的工資待遇高,發(fā)展前景好。軟件工程師一個月的收入通常超過10000元,所以說圍繞著軟件工程專業(yè)的一些職業(yè)是非常好的就業(yè)選擇。第三,就業(yè)者的選擇多,職業(yè)種類多。在計算機(jī)軟件的編程、開發(fā)、測試、設(shè)計等領(lǐng)域會產(chǎn)生多個分支,軟件工程不僅僅局限于編程,它還會帶來多樣化的就業(yè)崗位,因此,軟件工程的就業(yè)選擇會向著更加多元化的方向發(fā)展。
3.2計算機(jī)軟件工程的知識體系-
對于知識教育系統(tǒng)而言,計算機(jī)軟件工程技術(shù)所涉及的內(nèi)容非常之多且復(fù)雜程度較高,依據(jù)由易至難能夠劃分成下列3個層次,首先是知識點的掌握,這是最容易掌握和最重要的一層,是學(xué)習(xí)軟件工程學(xué)科的重中之重;二是知識領(lǐng)域劃分為知識單位,如掌握一些特殊化的技巧、符號等;第三層次是最高水平的知識領(lǐng)域,要求有更高水平的操控熟練程度以及知識掌握程度。
4數(shù)據(jù)流程圖的基本符號
數(shù)據(jù)流程圖由四種基本符號組成,重復(fù)次數(shù)設(shè)置最大保證通信質(zhì)量。當(dāng)信噪比高于12時,由于直接方法的MCS=0,為了適應(yīng)不同的信道質(zhì)量、保證物聯(lián)網(wǎng)設(shè)備和基站能正確接收數(shù)據(jù)塊(即保證誤塊率小于10%),直接方法的誤塊率始終低于0.05,且比MPAIA方法的誤塊率低。但直接方法和本章提出的MPALA方法均能達(dá)到目標(biāo)誤塊率10%,這表明本章提出的鏈路自適應(yīng)方法能夠根據(jù)鏈路狀態(tài)動態(tài)調(diào)整系統(tǒng)參數(shù),保證通信的可靠性。處理邏輯由一個長方形表示,處理邏輯符號由三部分組成:標(biāo)識部分、功能描述部分和功能執(zhí)行部分。鏈路自適應(yīng)方法可以根據(jù)信道質(zhì)量動態(tài)選擇重復(fù)次數(shù)和MCS,可以選擇更合適的重復(fù)次數(shù)和MCS的組合方案來適應(yīng)不同信道狀態(tài)。故無論信道質(zhì)量是好還是差,提出的MPALA方法都能靈活的選擇系統(tǒng)參數(shù),使得誤塊率達(dá)到目標(biāo),并提高數(shù)據(jù)傳輸速率。為評估本章提出的MPALA方法的性能,分別測試數(shù)據(jù)包大小為500比特、1000比特和1500比特時兩種方法的數(shù)據(jù)傳輸速率。
5發(fā)展前景
5.1模塊化思維將指導(dǎo)軟件產(chǎn)業(yè)的未來發(fā)展
在全球經(jīng)濟(jì)的一體化發(fā)展以及市場競爭日趨激烈的背景下,計算機(jī)軟件企業(yè)必須要保證其自身的創(chuàng)新能力以及業(yè)務(wù)靈活性能夠滿足市場發(fā)展的要求;同時,隨著Ⅱ環(huán)境變得更加復(fù)雜,以及歷史遺留下來的系統(tǒng)問題越來越多,計算機(jī)軟件公司正面臨著新的挑戰(zhàn)。模塊化思維可以有效地解決這些問題,打包各種軟件應(yīng)用程序和軟件組件,從而顯著地提高企業(yè)資產(chǎn)的利用率和自身的能力。
5.2軟件工程將朝著智能和自動化方向發(fā)展
近年來,信息化與自動化越來越成為科技發(fā)展的重要趨勢,而軟件產(chǎn)業(yè)作為最有發(fā)展前途的產(chǎn)業(yè)之一,受到全世界各國的高度重視。對于將來而言,高度智能化以及自動化必然是軟件工程發(fā)展的目標(biāo)。軟件工程只有擺脫了低效率的開發(fā)方式、低質(zhì)量的軟件產(chǎn)品和低水平的拓展性能,它才可以向著“智動一體化”的方向不斷創(chuàng)新發(fā)展。
結(jié)語
總之,作為軟件開發(fā)人員,要培養(yǎng)軟件工程的思維與方法。在項目初期的時候,有些開發(fā)人員喜歡談?wù)搶崿F(xiàn)的細(xì)節(jié),并且樂此不疲,或者喜歡討論如何用靈活而簡短的代碼來實現(xiàn)一個特定的功能,而忽略了對整個系統(tǒng)結(jié)構(gòu)的考慮。所以作為一個開發(fā)人員,尤其是一個有經(jīng)驗的開發(fā)人員,應(yīng)該把自己從代碼中解脫出來,更多的時候在我們的腦子里甚至?xí)簳r要放棄去考慮如何實現(xiàn)的問題,而從項目或產(chǎn)品的總體去考慮一個軟件產(chǎn)品。