摘要:以教務(wù)選課系統(tǒng)的分析過程為例,比較論述了結(jié)構(gòu)化分析方法和面向?qū)ο蠓治龇椒ǖ母髯蕴攸c和不同之處。
關(guān)鍵詞:信息系統(tǒng)分析;結(jié)構(gòu)化;面向?qū)ο?/p>
信息系統(tǒng)分析的主要任務(wù)是在總體規(guī)劃的指導(dǎo)下,在充分認(rèn)識原信息系統(tǒng)的基礎(chǔ)上,通過問題識別、可行性分析、詳細(xì)調(diào)查、系統(tǒng)化分析,最后完成新系統(tǒng)的邏輯方案設(shè)計,或稱邏輯模型設(shè)計。主要解決“做什么”的問題。
在軟件業(yè),已經(jīng)成熟并占據(jù)主導(dǎo)地位的信息系統(tǒng)分析方法主要有結(jié)構(gòu)化分析方法和面向?qū)ο蠓治龇椒?。結(jié)構(gòu)化方法是在軟件行業(yè)得到廣泛接受和使用,并一度成為早期占主導(dǎo)地位的系統(tǒng)分析方法。而面向?qū)ο蠓椒ㄌ岢龊?,?dāng)代軟件工程的發(fā)展面臨著從傳統(tǒng)的結(jié)構(gòu)化方法到面向?qū)ο蠓椒ǖ霓D(zhuǎn)變。而有關(guān)二者的優(yōu)劣之爭,白面向?qū)ο蠓椒ǔ霈F(xiàn)后就沒有平息過。實際上,結(jié)構(gòu)化方法和面向?qū)ο蠓椒ㄖg并不是革命性的變化,而模型驅(qū)動開發(fā)(MDD)則是一種革命性的變化。
下面以“教務(wù)選課系統(tǒng)”為實例,在系統(tǒng)分析實踐中主要針對結(jié)構(gòu)化方法與面向?qū)ο蠓椒ㄟM(jìn)行對比和摸索,并根據(jù)具體情況對如何合理地綜合使用這兩種設(shè)計方法進(jìn)行探討。
為減輕教務(wù)工作的強(qiáng)度,提高選課效率和信息化程度,在校領(lǐng)導(dǎo)的支持下,由教務(wù)處牽頭對教務(wù)選課系統(tǒng)提出以下要求。在新學(xué)期開始之前,教務(wù)處課程管理人員結(jié)合各專業(yè)課程大綱和教師所提交的授課內(nèi)容,對課程進(jìn)行篩選,并最終確定新學(xué)期要開設(shè)的課程。在課程確定后,學(xué)生可以根據(jù)課程要求選擇課程。其中必修課為必選內(nèi)容,此部分不能選擇;學(xué)生可以根據(jù)興趣愛好選擇選修課。選修課的數(shù)量不能大于6門,且上課時間不能沖突。當(dāng)課程的選課人數(shù)已達(dá)到課程設(shè)置人數(shù)時,學(xué)生將不能再選擇此門課程。在一段時間內(nèi),學(xué)生可以修改所選的課程。當(dāng)選課時期結(jié)束后,學(xué)生只能查看已選課程。在選課結(jié)束后,教師可以查看所開課程的選課人數(shù)。如果選課人數(shù)少于課程設(shè)置人數(shù)的五分之一時,教師可以選擇是否取消課程。
一、結(jié)構(gòu)化分析方法
(1)結(jié)構(gòu)化分析方法簡介
結(jié)構(gòu)化系統(tǒng)分析方法(Structured System Analysis簡稱SSA)就是運用系統(tǒng)工程的思想和工程化的方法,按用戶至上的原則,結(jié)構(gòu)化、模塊化、自頂向下的對系統(tǒng)進(jìn)行分析。結(jié)構(gòu)化系統(tǒng)分析方法是結(jié)構(gòu)化方法、工程化系統(tǒng)開發(fā)方法和生命周期方法的結(jié)合,是迄今為止開發(fā)方法中應(yīng)用最普遍、最成熟的一種系統(tǒng)分析方法。
結(jié)構(gòu)化系統(tǒng)分析方法,就是堅持自頂向下的對系統(tǒng)進(jìn)行結(jié)構(gòu)化劃分。在系統(tǒng)調(diào)查或理順管理業(yè)務(wù)時,從最頂層的管理業(yè)務(wù)人手,逐步深入至最基層。在系統(tǒng)分析階段,提出新系統(tǒng)方案和系統(tǒng)設(shè)計時,從宏觀整體考慮人手,先考慮系統(tǒng)整體的優(yōu)化,然后再考慮局部的優(yōu)化問題。結(jié)構(gòu)化分析方法強(qiáng)調(diào)過程抽象和功能模塊化,使用的工具主要有業(yè)務(wù)流圖TFD、數(shù)據(jù)流圖DFD、數(shù)據(jù)字典、結(jié)構(gòu)化語言、判定表和判定樹等。結(jié)構(gòu)化系統(tǒng)分析方法的特點:是在生命周期法基礎(chǔ)上發(fā)展起來的,該方法適合于大型信息系統(tǒng)的開發(fā);更強(qiáng)調(diào)開發(fā)人員與用戶的緊密結(jié)合,而且在開發(fā)策略上更強(qiáng)調(diào)“從上到下”,注重開發(fā)過程的整體性和全局性;該方法的不足是分析過程復(fù)雜繁瑣,周期長,系統(tǒng)難以適應(yīng)環(huán)境的變化。
(2)教務(wù)選課系統(tǒng)結(jié)構(gòu)化分析
按照結(jié)構(gòu)化方法,系統(tǒng)分析的具體步驟為:第一步:初步調(diào)查;第二步:詳細(xì)調(diào)查;第三步:組織結(jié)構(gòu)與系統(tǒng)功能分析;第四步:系統(tǒng)業(yè)務(wù)流程分析;第五步:系統(tǒng)數(shù)據(jù)流程分析;第六步:建立新系統(tǒng)邏輯模型,提交系統(tǒng)分析報告。
根據(jù)上述對學(xué)生選課系統(tǒng)的業(yè)務(wù)需求描述,可以比較容易地得到系統(tǒng)業(yè)務(wù)流程圖。根據(jù)業(yè)務(wù)流程圖理出的業(yè)務(wù)流程順序,結(jié)合相應(yīng)調(diào)查過程中所掌握的數(shù)據(jù)處理過程,按照自頂向下、逐步細(xì)化的原則,分層展開,由粗到細(xì),逐步求精,便可以繪制出系統(tǒng)的數(shù)據(jù)流程圖,包括頂層DFD、一層DFD、二層DFD等等。
二、面向?qū)ο蠓治龇椒?/p>
(1)面向?qū)ο蠓治龇椒ê喗?/p>
面向?qū)ο蠓治觯∣bject Oriented Analysis簡稱OOA)就是利用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)分析。OOA的基本任務(wù)是運用面向?qū)ο蠓椒ǎ瑢栴}域和系統(tǒng)責(zé)任進(jìn)行分解和理解,找出描述問題域及系統(tǒng)責(zé)任所需的類及對象,定義這些類和對象的屬性與服務(wù),以及它們之間所形成的結(jié)構(gòu)、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。OOA是將現(xiàn)實世界中的問題進(jìn)行分析和理解,理清其中的關(guān)系并映射到系統(tǒng)層面的一個過程。這個過程可以分為2個階段,即需求分析階段和系統(tǒng)分析階段。OOA的最終目的是產(chǎn)生一個符合用戶需求,并能夠直接反映問題域和系統(tǒng)責(zé)任的00A模型及其詳細(xì)說明。
OOA在近年發(fā)展很快,該方法的應(yīng)用為軟件組件復(fù)用提供了一種可行的方法,因而在類似大型系統(tǒng)的開發(fā)中可以有效地降低開發(fā)成本、縮短開發(fā)周期和提高開發(fā)質(zhì)量。由于面向?qū)ο笫且环N較新的思維方式,因而在進(jìn)行OOA時可能會造成用戶的某些不適應(yīng)。另外,由于00A的抽象程度較高,要完備地發(fā)現(xiàn)應(yīng)用領(lǐng)域的全部對象,以其將這種對象映射為規(guī)范的對象描述都有一定的困難。
(2)教務(wù)選課系統(tǒng)面向?qū)ο蠓治?/p>
按照面向?qū)ο蠓椒ǎ到y(tǒng)分析的具體步驟為:第一步:發(fā)現(xiàn)業(yè)務(wù)參與者;第二步:獲取業(yè)務(wù)用例,建立業(yè)務(wù)模型;第三步:建立系統(tǒng)用例和用例規(guī)約;第四步:建立靜態(tài)視圖,主要包括類圖;第五步:建立動態(tài)視圖,主要包括狀態(tài)圖、活動圖、序列圖、協(xié)作圖。
根據(jù)教務(wù)選課系統(tǒng)的業(yè)務(wù)需求描述,分別建立系統(tǒng)用例圖。根據(jù)分析得到的系統(tǒng)用例,進(jìn)一步分析出靜態(tài)視圖和動態(tài)視圖。
三、兩種分析方法的比較
從上述對同一業(yè)務(wù)需求的教務(wù)選課系統(tǒng)的分析過程和結(jié)果可以看出,結(jié)構(gòu)化方法和面向?qū)ο蠓椒ㄊ怯性S多不同之處的,具體如下:
(1)二者的處理中心不同。
結(jié)構(gòu)化方法是以處理過程為中心,強(qiáng)調(diào)先分析確定業(yè)務(wù)流程,然后再分析處理邏輯(DFD數(shù)據(jù)流圖)。面向?qū)ο蠓椒▌t是以數(shù)據(jù)為中心來描述系統(tǒng)。數(shù)據(jù)相對于功能而言,具有更強(qiáng)的穩(wěn)定性,這樣分析出的系統(tǒng)模型往往能較好地映射問題域模型。由于00方法采用對現(xiàn)實世界的自然映射,現(xiàn)實世界中的業(yè)務(wù)流程發(fā)生變化時,軟件實現(xiàn)也可以比較方便地跟著轉(zhuǎn)變;而采用結(jié)構(gòu)化方法的映射,軟件上相應(yīng)修改的工作量就會大一些。
(2)二者的工具和技術(shù)支持不同。
系統(tǒng)分析是一個注重實踐的領(lǐng)域,不僅僅依賴于一整套核心的概念與原理,要想分析設(shè)計出一個成功的系統(tǒng)來,還需要相應(yīng)的語言、工具和技術(shù)的有力支持。經(jīng)過多年的實踐和發(fā)展,適應(yīng)結(jié)構(gòu)化方法的技術(shù)和開發(fā)環(huán)境已經(jīng)相當(dāng)成熟穩(wěn)定。而對面向?qū)ο蠓椒ǘ裕m然近時期涌現(xiàn)了大量的新工具和新技術(shù),比如UML,但仍有待于不斷的完善和改進(jìn)。
(3)二者的適用范圍不同。
結(jié)構(gòu)化方法適用于數(shù)據(jù)少而操作多的問題,對于以功能為主的系統(tǒng),結(jié)構(gòu)化方法比較適應(yīng)它。面向?qū)ο蠓椒ㄕ孟喾?,對于以?shù)據(jù)為主的而操作較少的系統(tǒng),用面向?qū)ο蠓椒ǚ治鲆糜诮Y(jié)構(gòu)化方法。
軟件工程的目標(biāo)是以最小的代價開發(fā)出滿足用戶需求的信息系統(tǒng)。為此,根據(jù)系統(tǒng)的實際需求,關(guān)注運用方法的成本和價值,分別針對具體情況選擇采用不同的分析方法,可以充分發(fā)揮面向?qū)ο笈c結(jié)構(gòu)化方法各自的優(yōu)勢。目前在大多數(shù)信息系統(tǒng)的分析過程中,這兩者方法都兼而有之。特別需求強(qiáng)調(diào)的是,無論使用哪一種信息系統(tǒng)的分析方法,正確清晰地界定需求都是成功開發(fā)一個信息系統(tǒng)的必不可少的前提條件。
作者簡介
裘志華(1971-),女,碩士,教授.研究領(lǐng)域:信息系統(tǒng)開發(fā),數(shù)據(jù)庫管理.
(作者單位:遼寧對外經(jīng)貿(mào)學(xué)院)