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