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