2
3
4
5
6
7
8
9
10
系分論文3
論軟件需求分析方法和工具的選用——論文3:通信行業(yè)的應(yīng)用
【摘要】
本文以某通信公司的業(yè)務(wù)報表系統(tǒng)開發(fā)為例,討論了軟件需求分析工具與方法的選用。我們認為,軟件需求分析是軟件工程中重要的一步,直接關(guān)系到后繼工程的進行以及最終的產(chǎn)品能否滿足用戶的需求,因此在整個工程中起著關(guān)鍵性的作用。采用適當?shù)墓ぞ,有可能顯著減少需求階段的錯誤,也可大幅度提高需求分析的質(zhì)量和工作效率。當然工具的選用應(yīng)當與實際的項目相結(jié)合,充分地發(fā)揮工具的作用。本文結(jié)合我們工作的實際經(jīng)歷,簡要討論了開發(fā)系統(tǒng)時所選用的工具及其應(yīng)用,選用時所考慮的原則以及所碰到的問題。在文中也結(jié)合多種開發(fā)方法(即傳統(tǒng)的瀑布法、信息工程法、面向?qū)ο蟮姆椒ǎ┑谋容^,指出各種方法的不足之處,說明我們所采用的工具對軟件需求分析所起的作用,以及相應(yīng)產(chǎn)生的效果。
【正文】
我在某市一家通信公司工作,作為一名技術(shù)骨于,受領(lǐng)導(dǎo)委托,參與了開發(fā)本公司的業(yè)務(wù)報表系統(tǒng),我擔任系統(tǒng)的需求分析、總體設(shè)計和部分代碼的編寫工作。
我所在的企業(yè)作為一家通信運營公司,分為總部、省級公司和地市級分公司三級,各級公司之間都有數(shù)據(jù)報表的要求。但是,每一個地市分公司因所處的地方不同,經(jīng)營環(huán)境不同,所面臨的問題也不一樣,因此形成了各具特色的數(shù)據(jù)報表(除地市分公司向省公司匯報的之外)。公司又分設(shè)了許多部門,這些部門也都會需要數(shù)據(jù),作為分析決策的依據(jù)。因此,了解各個部門的需求就成了業(yè)務(wù)報表系統(tǒng)的關(guān)鍵。
在調(diào)研的過程中,我選用了一種工具叫Play CASE,可以從網(wǎng)上免費下載,有很強的功能。下面就介紹一下,在需求分析階段,我是如何使用這一工具的。
第一步,了解業(yè)務(wù)組織結(jié)構(gòu)。公司內(nèi)部的數(shù)據(jù)實際上是在部門之間流動的。業(yè)務(wù)部門需要知道在本地覆蓋區(qū)內(nèi)各基站的話務(wù)量、當天的話務(wù)量(即話務(wù)量的時空分布)。財務(wù)部門需要知道本月各類用戶的話費收入、預(yù)交款收入、與其他電信運營商的網(wǎng)間結(jié)算等。計劃部門需要各部門的分析數(shù)據(jù)。計費部門需要提供本月的賬革統(tǒng)計數(shù)據(jù)、話單統(tǒng)計數(shù)據(jù)分布(比如分別按照基站分布、時段分布以及按用戶類別分布)、預(yù)交款統(tǒng)計數(shù)據(jù)、當前的欠費總額分布、催繳情況等等。這些部門時常為了數(shù)據(jù)而產(chǎn)生了大量無謂的爭議。在使用Play CASE工具時,先要將這些部門錄入到Play CASE的“業(yè)務(wù)部門”中.構(gòu)成了一個信息源的接收點(或發(fā)送點);而Play CASE通過圖示表示了這些部門的關(guān)系,并轉(zhuǎn)換成了相應(yīng)的軟件結(jié)構(gòu)。實際上,這是一種系統(tǒng)建模的方法,即把業(yè)務(wù)系統(tǒng)中的各個組織轉(zhuǎn)變?yōu)檐浖δ苤械母鱾結(jié)構(gòu)。這樣,在需求分析階段,明確哪些部門需要數(shù)據(jù),從而保證了需求分析對整個公司的全面性,而不會忽略掉某一個部門,導(dǎo)致需求分析的不完整。
第二步,了解各個業(yè)務(wù)部門中的業(yè)務(wù)流程,使之通過Play CASE轉(zhuǎn)換成軟件的運行過程,這是一種動態(tài)建模的方法。在上一步的基礎(chǔ)上,追蹤各個部門的行為,錄入到Play CASE中,并以形式化的語言描述各過程。對于復(fù)雜的過程,該工具還提供了進一步細化的方法,并且形成了業(yè)務(wù)流程圖和業(yè)務(wù)狀態(tài)圖。根據(jù)這些流程圖、狀態(tài)圖與實際業(yè)務(wù)部門的業(yè)務(wù)相結(jié)合比較,還是較為吻合的。在此步的實施過程中,運用了動態(tài)建模技術(shù),使各部門業(yè)務(wù)流程的情況在軟件的運行過程反映出來,從而保證了需求分析階段中運行過程的描述能真實地反映實際情況,防止在后繼的程序編寫過程中,可能會經(jīng)常發(fā)生的一類情況:程序員因為沒有理解業(yè)務(wù)流程而出現(xiàn)“閉門造車”的現(xiàn)象,從軟件的功能角度上保證了軟件的正確性。
第三步,將業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)變?yōu)檐浖䲠?shù)據(jù),這一步工作實際上就是收集各部門所需要的數(shù)據(jù)。分析各部門需要的數(shù)據(jù)都有哪些;以及數(shù)據(jù)是如何轉(zhuǎn)換的,這可以歸入“功能建!钡姆懂。將這些相應(yīng)數(shù)據(jù)錄入到Play CASE中,選定所屬的部門。這時就自動地建立了DFD圖(數(shù)據(jù)流程圖),數(shù)據(jù)字典,省去了人工建立時的很大麻煩。
第四步,將業(yè)務(wù)上的數(shù)據(jù)關(guān)系轉(zhuǎn)變成軟件中的數(shù)據(jù)關(guān)系。這里采用了面向?qū)ο蟮姆椒,把業(yè)務(wù)部門所需要的數(shù)據(jù)看作一個實體,部門間的數(shù)據(jù)關(guān)系就是實體之間的關(guān)系。比如:經(jīng)營部門所需要的用戶資料、用戶話費,實際上就是用戶這一實體與賬單這一實體間的關(guān)系。Play CASE提供了構(gòu)件(不過我覺得是部件更為合適一些),來表示對應(yīng)的數(shù)據(jù),并提供了三種構(gòu)件的表示關(guān)系即組裝關(guān)系、分類關(guān)系與相連關(guān)系。這三類關(guān)系基本上反映出了現(xiàn)實世界中的業(yè)務(wù)數(shù)據(jù)之間的關(guān)系。例如現(xiàn)實世界中的用戶資料與用戶話費,在Play CASE中,可將用戶構(gòu)件與賬單構(gòu)件用相連關(guān)系表示。這種方法,實際上是借鑒了OOA面向?qū)ο蟮姆治龇椒ㄖ械念、聚集、繼承、封裝等概念,能較好地反映出現(xiàn)實中的業(yè)務(wù);同時,這一步的工作也為總體設(shè)計中數(shù)據(jù)庫的概念模式設(shè)計奠定了很好的基礎(chǔ)。
經(jīng)歷了上述四個步驟以后,利用Play CASE工具自動生成了軟件需求規(guī)格說明書、初步的DFD圖和業(yè)務(wù)流程圖,為下一步的總體設(shè)計打好了基礎(chǔ)。
使用Play CASE工具,使需求分析既能繼承傳統(tǒng)的結(jié)構(gòu)化分析方法,又能吸收面向?qū)ο笤O(shè)計方法的優(yōu)點。比如能把業(yè)務(wù)流程轉(zhuǎn)變成為運行過程,業(yè)務(wù)組織轉(zhuǎn)變成了軟件的結(jié)構(gòu)等都體現(xiàn)了這一點。而在運行過程中,對復(fù)雜過程的細分以及追蹤則反映了傳統(tǒng)方法中的自上到下分解的分析思想,這對于解決復(fù)雜系統(tǒng)的分析是很有幫助的。
通過使用,我覺得這個工具還是很不錯的。因為它實際將以下四個方面的問題結(jié)合起來了:軟件、業(yè)務(wù)、開發(fā)人員和用戶。對于用戶而言,Play CASE用圖形化的方式顯示出業(yè)務(wù)流程,使用戶了解業(yè)務(wù)在軟件中的運行過程,提供了將來驗收軟件時的依據(jù)。對于開發(fā)人員來說,使開發(fā)人員能更清楚地了解業(yè)務(wù)流程,不會再發(fā)生“因為不理解用戶的需求而出現(xiàn)的閉門造車情況,從而導(dǎo)致開發(fā)出來的產(chǎn)品不符合用戶需要”的現(xiàn)象。因此,Play CASE所自動提供的需求說明書能夠很好地溝通用戶與開發(fā)人員之間的理解,使他們都能對需求有共同的理解。
使用Play CASE工具后,使我們的需求分析取得了很好的效果,不但能自動地提供許多結(jié)果,如需求說明書等;還使需求的質(zhì)量有了很大的提高,受到領(lǐng)導(dǎo)的贊揚(領(lǐng)導(dǎo)不是學(xué)計算機的,但對公司的業(yè)務(wù)十分熟悉);在后繼的設(shè)計與維護工作中,我們感到工作似乎輕松了很多。
當然,該軟件工具也有不足之處,一個突出問題是靈活性不夠,一縣公司的部門或者組織機構(gòu)發(fā)生變化時,整個設(shè)計都要重新來過。因此,在改進的過程中,我們在第一步過程預(yù)留了好多個虛擬的部門,以備將來進一步的擴充或者變動。
評注:(1)具體項目有些體會,完成情況似乎不錯。(2)條理較清晰,比較系統(tǒng)地描述了使用Play CASE的過程和體會。(3)偏重于工具的討論,對需求分析的方法分析還嫌不夠。(4)項目相對較小,僅涉及報表系統(tǒng),對更為復(fù)雜的業(yè)務(wù)流程應(yīng)舉例分析,才能更充分地體現(xiàn)方法與工具的作用。(本文主要參考了廣東魏福建等人的論文)
系分論文4
論軟件需求分析方法和工具的選用——論文4:IC行業(yè)內(nèi)部的CAD應(yīng)用
【摘要】
本文通過一個集成電路設(shè)計有關(guān)的軟件項目,討論了該項目的主要特點和本人所擔任的工作,著重討論了在項目需求分析過程中采用的具體方法和工具以及選用的理由。
由于項目的專業(yè)領(lǐng)域的特殊性,分兩類不同的需求討論了需求分析中遇到的問題及解決方法;在這個過程中給出了對選用的具體工具和方法的效果的描述。接著本文討論了對使用方法的改進的一些想法以及具體的實現(xiàn)過程。最后提出了我對需求分析的某些看法,強調(diào)了與客戶溝通的重要性。
【正文】
近年,我一直從事某企業(yè)中有關(guān)IT項目的開發(fā),有一個系統(tǒng)是用于計算機輔助電路設(shè)計的,包括了從上流設(shè)計到下流設(shè)計的所有流程,如用于可設(shè)計百萬門數(shù)量級的邏輯門電路。有關(guān)方面把電路中路徑的提取、過濾以及表示的某軟件開發(fā)任務(wù)交給我公司,我有幸擔任了該部分的需求分析以及設(shè)計。
我所設(shè)計部分為一單獨可啟動的軟件,主要是解析文件中的連線路徑,以列表視圖和用直方圖等把它們顯示出來,還可以執(zhí)行諸如查找與過濾等功能。
委托方對此提供了很初步的需求說明,把一些基本功能及性能要求描述了一下。我在需求分析時的工作主要有兩點:第一,對該軟件的界面等詳細需求要自己重新進行分析提取。第二,對于已提供的功能要求需要深化和細化,以形成真正完整的需求分析文檔。
在接到需求分析任務(wù)后,我分析了一下所要完成的工作。發(fā)現(xiàn)由于是專用領(lǐng)域的軟件,對專業(yè)領(lǐng)域要求相當高,所以準備把此項目分成兩部分:
(1)界面所受專業(yè)領(lǐng)域影響幾乎沒有,但由于全部沒有任何要求,反而會感到風(fēng)險和改動可能是最大的。
(2)功能方面由于委托方的許多功能都可以調(diào)用相應(yīng)模塊來得到,并且已有了相應(yīng)的書面的簡單需求,相應(yīng)來說只是完成深化。對界面,我采用了部分RUP的思想迭代與漸進。而對功能需求采取了分層細化,每細化一層就要求委托方確認、修改和補充。
首先把風(fēng)險較大的部分完成,這是現(xiàn)代軟件開發(fā)的基本常識。我選擇先進行界面的需求分析。第一步是根據(jù)功能描述抽取出邏輯模型,并使邏輯模型與界面元素及功能一一對應(yīng),大體上決定了界面應(yīng)有的功能,然后根據(jù)該界面功能描述,確定具體的控件,這時,我參考了委托方已初步完成的主窗口的界面布局及控件的使用規(guī)律,然后根據(jù)需要完成的功能從Qt(由于要支持Windows和Unix雙平臺,所以控件庫采用Qt)的類庫中選擇相應(yīng)的控件。在提取和抽象邏輯模型時,我采用了Rose 2000中的用例圖,即以 USE-CASE圖來描述與外部的關(guān)系。之所以采用Rose,我是基于以下的原因:第一,在已開發(fā)的部分中,委托方統(tǒng)一要求我們使用Rose進行類和順序圖等的設(shè)計和代碼生成。第二,Rose提供了標準的圖來描述系統(tǒng)與外部的關(guān)系,在全球范圍已是一種標準結(jié)構(gòu)。第三,使用上的方便性。我用Rose的USE-CASE圖,理清了我們的軟件窗口與委托方主窗口以及外部角色(操作者)之間的相互關(guān)系。
在確定了界面元素后,考慮到文檔的可理解性不是很強,我采用Visio 2000把界面的外觀繪制出來,寫上了基本的控件作用,隨后送給委托方評審,幸運的是除了幾個小功能的修改,委托方基本批準了我的方案。
下面的工作是為控件的行為及狀態(tài)變化制定相應(yīng)的狀態(tài)遷移圖,我選用的工具仍是Rose,我用了狀態(tài)圖和時序圖,把重要的控件狀態(tài)變化及相應(yīng)順序進行了描述,隨后的幾天把相應(yīng)的DOC文檔建好寫明,基本上界面設(shè)計就完成了。
下面的需求是針對功能需求的。雖然委托方技術(shù)部門有初步的需求文檔,但由于領(lǐng)域的專門化不對,我不清楚其中復(fù)雜的路徑提取關(guān)系及較深入的專業(yè)術(shù)語,一直有一種舉步維艱的感覺。只能采用分層細化的原則,從最初的幾條深入一層變成十幾條。這樣的話,不會一下子碰到太深的專業(yè)問題,可以循序漸進從委托方與文獻的解答中不斷學(xué)習(xí),深化自己對專業(yè)領(lǐng)域的了解,這樣在設(shè)計中自己始終是層層推進的,不至于一于碰到無法逾越的專業(yè)障礙。
在這一階段的開發(fā)中,由于一直是與自己不熟悉的專業(yè)領(lǐng)域打交道,所以我覺得一些輔助設(shè)計工具似乎無法發(fā)揮應(yīng)有的功能。在這期間,對我?guī)椭畲蟮膽?yīng)是公司的E-Mail系統(tǒng),所有不清楚的問題的提出,以及對問題的解答都通過它進行周轉(zhuǎn)。換句話說,在需求分析階段,它起到了一個與客戶的交流溝通和客戶需求的提取作用。所以,我認為在這一階段,E-Mail系統(tǒng)是對我?guī)椭畲蟮墓ぞ,其次是Excel,我用它建立了問題跟蹤圖表,對每一個提出的問題,均需要記錄上去,把問題結(jié)果(可分為已清楚、仍不太清楚、不清楚、尚未回答)均記錄下來,根據(jù)這些表,我可以很好地了解自己工作中的核心問題,并有了解決它的方向,提高了工作效率。
每進行一層的細化,我都把結(jié)果交付委托方審核,由他們進行提出何時能終止細化,大約在八層細化后,對方認為已達到了效果,確認可以結(jié)束。至此,分析工作全部完成,項目的需求分析基本成功了。
在這次需求分析中,我認為取得成功的原因主要是方法和工具選擇得正確。在界面設(shè)計中采用了流行的輔助工具,對需求及邏輯模型的建立提供很大的幫助,可以更方便幫助自己理清思路。選用了迭代法,把一些錯誤的影響在功能分析和界面分析的不斷迭代過程中加以改正。在后期,以功能需求為主時,我主要依賴的是溝通工具和表格工具,這也說明輔助工具不是萬能的,需求分析的關(guān)鍵之關(guān)鍵,應(yīng)是與客戶的交流與溝通。
通過這次案例,我認為在軟件的需求分析工作中,方法的重要性應(yīng)遠超過工具的使用,應(yīng)當首先確定分析中的風(fēng)險,把風(fēng)險分類,用不同的方法去解決各類風(fēng)險,而工具的選擇不僅是要看影響力和名氣,而是要真正為我所用,應(yīng)把握其精髓,即是此工具到底可以對開發(fā)有什么幫助,而不是僅限于如何使用。我認為在需求分析中工具的作用不外乎兩個:一是實際系統(tǒng)與環(huán)境模型等的抽象工具,二是需求表達工具。第一類的代表是Rose,第二類的代表是Word,WPS,Visio等,在這次項目中由于地理上的限制還用到了溝通工具,Web瀏覽與E-Mail服務(wù)系統(tǒng)。
最后我還是總結(jié)一下,在需求分析中工具方法都只是輔助項目成功的因素,真正的決定因素還是—一“與客戶的溝通”。
評注;
(1)較實際地討論了方法與工具。(2)兩類需求的討論有點特色,解決需求問題的方法較成功,有說服力。(3)能發(fā)表自己的觀點和意見,體會較實在。(4)本例似乎有些特殊性,還是要鼓勵對自己熟悉的業(yè)務(wù)領(lǐng)域做項目,否則的話,有時會事倍功半。(5)最好再列舉更多的項目或例子,使方法與工具的討論更全面一些。(本文主要參考了上海解亮等人的論文)
上一頁 [1] [2] [3] [4] [5] [6] 下一頁
轉(zhuǎn)帖于:軟件水平考試_考試吧- 推薦給朋友
- 收藏此頁
·網(wǎng)絡(luò)工程師資料:網(wǎng)絡(luò)體系結(jié)構(gòu)-軟考網(wǎng)絡(luò)類題解 (2008-4-25 14:33:38)
·計算機網(wǎng)絡(luò)基礎(chǔ)網(wǎng)絡(luò)拓撲結(jié)構(gòu)及優(yōu)缺點分析 (2008-2-22 14:04:32)
·網(wǎng)絡(luò)工程師必知:靜態(tài)路由協(xié)議配置方法 (2008-2-22 14:03:39)
·計算機網(wǎng)絡(luò)尼奎斯特 香農(nóng)公式例題解析 (2008-2-22 14:02:35)
·軟考復(fù)習(xí):因特網(wǎng)IP的分類、尋址規(guī)則及子網(wǎng)掩碼 (2008-2-22 13:57:21)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。