周子涵
摘要:近年來,軟件產(chǎn)品制造行業(yè)已經(jīng)提出了一種較為創(chuàng)新的軟件設(shè)計(jì)方法,即基于結(jié)構(gòu)的軟件開發(fā)項(xiàng)目工程。它普遍深受開發(fā)者的喜愛,并且在國(guó)際市場(chǎng)上發(fā)展得很快。該方法基于面向?qū)ο蟮募夹g(shù),以對(duì)象類組件作為構(gòu)建系統(tǒng)的基礎(chǔ)模塊,通過對(duì)組件的選取、實(shí)例化和集成來構(gòu)建一個(gè)新的應(yīng)用系統(tǒng)?;诮M件的軟件工程的主要關(guān)鍵在于把需求集合分解成為自上而下的組件集合,并將這些組件由下至上地組合起來運(yùn)用在目標(biāo)應(yīng)用系統(tǒng)中。如果整個(gè)系統(tǒng)的研究和開發(fā)完全是基于面向?qū)ο蟮募夹g(shù),那么首先我們就可以在這個(gè)領(lǐng)域內(nèi)建立一個(gè)對(duì)象的模型,然后從這些對(duì)象模型中提取和生成組件庫(kù)。本文就基于構(gòu)件的軟件開發(fā)模型及其實(shí)現(xiàn)進(jìn)行探究。
關(guān)鍵詞:構(gòu)件;軟件開發(fā);模型
有些系統(tǒng)很有可能已經(jīng)搭建起關(guān)系型的數(shù)據(jù)庫(kù),積累了大量的資料,并且研究和開發(fā)了一些相關(guān)的應(yīng)用程序;或者,初步分析計(jì)算機(jī)工作很有可能就已經(jīng)依照了結(jié)構(gòu)化的軟件工程設(shè)計(jì)的方式來完成。為了進(jìn)一步或者再次重新設(shè)計(jì)和開發(fā)此類系統(tǒng),一方面是想要繼承其現(xiàn)有的研究工作和成果,同時(shí)也想要在其實(shí)現(xiàn)的過程中盡可能多地采取使用面向?qū)ο蟮募夹g(shù)手段來改善各種應(yīng)用系統(tǒng)的設(shè)計(jì)與維護(hù),減少了重復(fù)的編碼,縮短了開發(fā)期,提高系統(tǒng)的可理解度,減少了維護(hù)人員的工作量等,以有效地解決此種類型系統(tǒng)的設(shè)計(jì)與開發(fā)。本文綜合分析了結(jié)構(gòu)化的方法與面向?qū)ο蟮姆椒▋?yōu)點(diǎn),提出了一種基于架構(gòu)的軟件開發(fā)模型。
一、基于構(gòu)件的軟件開發(fā)模型
在對(duì)系統(tǒng)進(jìn)行結(jié)構(gòu)化需求分析和詳細(xì)設(shè)計(jì)(包括關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì))后,得到系統(tǒng)的數(shù)據(jù)流圖(DFD)和功能結(jié)構(gòu)圖(SC)。在此基礎(chǔ)上,首先提取系統(tǒng)所需的各種功能模塊,然后確定應(yīng)用系統(tǒng)的總體框架,然后對(duì)各個(gè)組件進(jìn)行詳細(xì)劃分,確定各組件需要實(shí)現(xiàn)的功能。組件的劃分應(yīng)該合理,以免造成不必要的重復(fù)和困難。
第一步,根據(jù)項(xiàng)目負(fù)責(zé)人領(lǐng)導(dǎo)下的工作組需求分析和詳細(xì)設(shè)計(jì)形成的SC圖,確定應(yīng)用的整體框架,并繪制出整體框架的功能圖---包括每個(gè)具體的功能模塊,一個(gè)完整的SC圖就是應(yīng)用的整體框架圖;根據(jù)DFD圖,確定各功能的外部關(guān)系和實(shí)現(xiàn)條件。
第二步,在項(xiàng)目負(fù)責(zé)人的指導(dǎo)帶領(lǐng)下,工作組進(jìn)一步地確定和規(guī)劃各種功能性的組件,尋找到一些可重新復(fù)用的組件并正確地定義它們之間的接口關(guān)系;同時(shí)根據(jù)一個(gè)問題域來設(shè)置一些基礎(chǔ)類,并將這些基礎(chǔ)類數(shù)據(jù)存儲(chǔ)到一個(gè)基礎(chǔ)庫(kù)中,供以后的各個(gè)過程使用。而且這些基礎(chǔ)的類庫(kù)都要與應(yīng)用程序共享提交到用戶手里。
第三步是由項(xiàng)目負(fù)責(zé)人將定義的組件分發(fā)給編碼人員。對(duì)于可視化組件,還應(yīng)提供組件的設(shè)計(jì)界面。在詳細(xì)的設(shè)計(jì)過程中,應(yīng)該要做到的是完成各個(gè)組件之間的接口。如果還沒有做到這一步驟,就應(yīng)該通過分割可以復(fù)用的組件第二步來完成。編碼器人員負(fù)責(zé)完成各個(gè)組件的代碼編碼與調(diào)試;同時(shí)由專門組織編碼工作人員負(fù)責(zé)對(duì)不可重新使用的軟件(模塊)進(jìn)行代碼編碼與調(diào)試,實(shí)現(xiàn)整個(gè)應(yīng)用程序的整體框架。在編碼過程中,可以通過使用一種面向?qū)ο蟮木幊陶Z(yǔ)言方法來確定該個(gè)組件內(nèi)部類型以及其運(yùn)算方法、屬性和類之間的相互關(guān)系。
第四步是組裝應(yīng)用系統(tǒng)和系統(tǒng)級(jí)調(diào)試。
二、信息系統(tǒng)的構(gòu)件化結(jié)構(gòu)
在采取結(jié)構(gòu)化的方法對(duì)組件進(jìn)行了需求分析并進(jìn)行詳盡的設(shè)計(jì)后,就能夠充分運(yùn)用上述模型來確定信息系統(tǒng)的部件結(jié)構(gòu)。對(duì)于每一個(gè)組件,確定它們外部的接口,操作接口及要實(shí)現(xiàn)的功能。本文主要以通用查詢組件為例,說明了查詢組件劃分及定義過程。
確保所選組件均能作為一種可重用的組件,并準(zhǔn)確地定義其之間的接口。通用型查詢?cè)谡麄€(gè)應(yīng)用領(lǐng)域的系統(tǒng)中非常常見(其他各個(gè)應(yīng)用領(lǐng)域需求不盡相同),而且這些需求非常相似,它們都可以解決一個(gè)完全相同的問題,因此它們是可識(shí)別、通用、獨(dú)立、完整的,具備將其作為一個(gè)可重用組件開發(fā)的基本條件。通用查詢組件接口:輸入條件包括用戶名、注冊(cè)權(quán)限及與數(shù)據(jù)庫(kù)之間的相互鏈接字符串;未退出。
三、構(gòu)件的設(shè)計(jì)與實(shí)現(xiàn)
在設(shè)計(jì)組件時(shí),需要考慮實(shí)際因素,如程序的分配方法、操作環(huán)境、開發(fā)工具和編程語(yǔ)言。例如,系統(tǒng)采用客戶/服務(wù)器模式,編程語(yǔ)言為PowerBuild6.0。PB6.0提供了一種用于管理程序的PBL機(jī)制,它可以將實(shí)現(xiàn)某些功能的資源和代碼存儲(chǔ)在PBL中,從而導(dǎo)致了程序調(diào)試及安裝工作變?yōu)楹?jiǎn)易。您同樣可以將組件直接放入PBL中,而無需再次生成OLE或DLL文件;另一方面,也就是我們可以直接生成DLL文件或者通過OLE技術(shù)將PBD文件直接連接到整個(gè)應(yīng)用程序中,實(shí)現(xiàn)了組件運(yùn)行時(shí)的動(dòng)態(tài)連接,從而更好地充分發(fā)揮了整個(gè)組件的功能和可重用性。
對(duì)于單個(gè)組件,可以根據(jù)分析階段獲得的接口需求定制組件的用戶界面,并結(jié)合開發(fā)工具的特點(diǎn)進(jìn)行定制。查詢結(jié)果時(shí),切換窗口顯示查詢結(jié)果。接口描述:一個(gè)列表框用于顯示可查詢的數(shù)據(jù)庫(kù)表名,另一個(gè)列表框用于在選擇表時(shí)顯示表的所有名稱," select "頁(yè)面用于自動(dòng)顯示選擇字段名,"其中"頁(yè)面用于自動(dòng)設(shè)置一個(gè)查詢條件與時(shí)間表之間的關(guān)系," order "頁(yè)面用于自動(dòng)設(shè)置多條時(shí)間表所有記錄信息的顯示順序,使用一個(gè)查詢按鈕自動(dòng)啟動(dòng)查詢的功能,使用一個(gè)保存語(yǔ)句按鈕將所需要設(shè)置的查詢條件自動(dòng)保存成"文件",歷史查詢按鈕則是用于從一個(gè)文件中直接導(dǎo)入先前已經(jīng)設(shè)置的查詢條件,還有一個(gè)隱藏的顯示框,它來自動(dòng)顯示所搜索到的事情。
結(jié)束語(yǔ):
本文所要求的開發(fā)模式實(shí)現(xiàn)是將結(jié)構(gòu)化的方法與面向?qū)ο蟮姆椒ㄏ嘟Y(jié)合而來。在使用該系統(tǒng)的模型來設(shè)計(jì)或者開發(fā)特定的系統(tǒng)時(shí),需要首先完成以下任務(wù):提取組件;檢查各個(gè)組件執(zhí)行人員和用例;繪制組件以了解該組件做的事情;確定類及其屬性和運(yùn)算;確定用戶界面;確定數(shù)據(jù)庫(kù)接口;確定組件接口,以及確定組件屬性后處理。
參考文獻(xiàn):
[1]袁小玲,吳業(yè)福.組件技術(shù)--企業(yè)管理信息系統(tǒng)開發(fā)的新方法[J].計(jì)算機(jī)工程與應(yīng)用.1998,35(9)56~57
[2]Ivar Jocobson,Grady Booch.Games rumbaugh.the unified soft-ware development process[M].Addison Wesley Longman,Inc.1999.
[3]陳松.組件化程序開發(fā)模式〔J〕.計(jì)算機(jī)工程與應(yīng)用,1998,35(9):33~35