徐育鋒, 何勝學, 范炳全, 張 立
(上海理工大學管理學院,上海 200093)
由于傳統的軟件開發技術是基于問題域的功能,因此,用它開發的系統是實現模塊功能的函數和過程的集合[1].但由于用戶的需求和軌道交通軟硬件技術的不斷發展變化,按照功能劃分設計的系統模塊必然也會隨之變化,從而使得這樣開發出來的程序模塊可重用性不高,且不易維護.面向對象建模技術從根本上改變了傳統的軟件設計思想,它對問題空間進行自然分割,以更接近人類思維的方式建立問題域模型,以便對客觀實體進行結構模擬和行為模擬,使設計出的軌道交通系統軟件盡可能直接地描述現實世界,從而構造出模塊化的、可重用的和維護性好的軟件.
目前面向對象技術已在交通領域得到了廣泛的應用.楊曉光[2]將面向對象理論運用到 ITS (intelligent transportation system)項目評價中.楊勇杰[3]運用面向對象的理論建立了空中交通流量管理系統的模型結構.王婷[4]采用面向對象分析和建模的方法對城市軌道交通列車控制系統進行了需求分析、模塊分解、對象模型建立以及對象間的靜態關聯性分析.陳玉[5]依據面向對象軟件開發思想確定了城市交通仿真系統的主要對象類,在此基礎上進行了對象建模、動態模型,并完成了主要對象類屬性和操作的設計.雋志才[6]采用面向對象設計思想和交通并行仿真建模理論分析了交通網絡分布并行仿真系統數據結構.
鑒于軌道交通網涉及的要素眾多,利用面向對象思想對軌道交通系統的特性進行分析建模,可以全面覆蓋軌道交通網絡系統的各種組成部分,便于分析各部分間復雜的相互關系.同時,新的需求及研究成果可以及時融入到已存在的系統,從而使所建模型系統的重用性優勢得以充分發揮.正是基于上述思想,本文首次利用面向對象的軟件開發思想對城市軌道交通網絡系統進行建模分析,明確了系統中基本類的特征,建立了初步的軌道交通網的靜態、動態以及功能程序模型.
面向對象建模技術也即三視點技術,它將分析時收集的信息構造在對象模型、動態模型和功能模型中,用這3種模型來描述一個目標系統.其中,對象模型是3個模型中最關鍵的1個模型,用以描述系統中對象之間的靜態關系,包括構成系統的類和對象的屬性、操作以及相互間的聯系;動態模型描述系統中對象的變化和對象之間相互關系的變遷,它著重于系統的控制邏輯;功能模型側重于系統內部數據的傳送和處理.這3種模型中功能模型說明發生了什么,動態模型說明何時發生,對象模型說明作用對象[7].
軌道交通網的問題空間中包含以下實體[8]:
a.軌道交通網的每個站點一般都由出入口、自動扶梯、自動售票機、閘機、站臺和服務人員組成,站點是乘客與軌道交通交互的界面,站點內的各項服務是否到位,很大程度上能體現出軌道交通的服務水平,所以,將站點作為一個類.
b.線路上包含站點,車輛在線路上運行,它決定了車輛的走向、站點的區位和乘客的流向,所以,將線路作為一個類.
c.換乘點是線網中各條線路的交叉點,它除了集散乘車乘客之外,還要能實現兩線或多線車站站臺之間的客流暢通,可以將換乘點看作一個類.
d.樞紐站是兩條以上軌道交通線路交叉處,這種車站的客流集散量很大,不僅在內部換乘,還與外部大型客運站連接,需做好內外交通組織設計,因此,將樞紐站作為一個類.
e.區段是兩個站點之間的連接通道,區段的長度是行車時間的決定因素之一;區段的通行能力是整條路線通行力的一部分,所以,有必要將區段作為一個類.
f.城市軌道交通列車作為城市公共交通的旅客運載工具,要保證列車運行的安全、準點、快速,以及為乘客提供良好的服務條件,使乘客乘車舒適、方便,可將它作為一個類.
g.土地使用是城市總體規劃的依據,也是軌道交通規劃設計的依據,同時,軌道交通的發展也會促進土地的開發利用,因此,有必要將城市用地作為一個類.
h.軌道交通網絡由列車、站點及與其相連接的線路、路段組成.網絡作為問題域的整體,可將它視為一個抽象對象.它與其余對象是整體與部分的關系,可定義為網絡類.
在求解空間中,每個實體將映射到抽象對象的一個類中.由于Java類構造支持數據封裝和將一個問題分解成對象和操作,因此,本文用它來表述城市軌道交通系統中面向對象問題求解空間的每個類的定義.限于篇幅,僅舉例介紹軌道交通列車類的定義.


軌道交通網的靜態建模描述了軌道交通系統中的網絡、站點、線路、換乘點、樞紐及區段等對象的數據結構,以及它們相互之間的結構化關系,借助CASE工具用統一 建模語言 UML(unified modeling language)產生靜態模型的圖形如圖 1所示.
類圖描述了每個對象的數據結構并將其封裝起來[9].以網絡為例,它的屬性包括線路總條數、線網結構等,它的操作方法包括調用站點對象集合、通過能力及輸送能力等方法.
類圖描述了類間的關聯、聚集、繼承和多重性的結構化關系[9].關聯是類之間的最一般的結構化關系,總網絡與土地之間是相互促進的關聯關系,軌道交通網的規劃設計依據城市土地的利用性質,同時,軌道網的規劃會提高沿線的土地開發強度.聚集是一種暗含包容關系的特殊形式關聯,在關聯線和包含類相接的一端放置菱形來區別普通的關聯,例如,總網絡由土地、線路、站點、區段及列車等聚集而成.繼承表示一類關系,在關聯線和基類相接的一端放置三角形以區別普通關聯,例如,樞紐繼承了換乘點的數據結構,換乘點繼承了站點的數據結構,樞紐和換乘點都是站點.多重性指可以和給定的某一類的一個實例關聯在一起的另一類型對象的數目,多重性指示器標在關聯線的兩端,例如,一個區段有且只有兩個站點組成,一個站點至少位于一個區段上.

圖1 城市軌道交通網類圖Fig.1 Class diagram of urban rail transport network
動態模型描述了系統中與時間和操作順序有關的內容,它由事件、場景、順序圖和通信圖這4個單元構建[7],通信圖和順序圖在本質上是一樣的,所以,此處省略.
事件是對對象的外部刺激,并以消息的形式通知對象[9].圖2表明總網絡收到事故點的消息,接著總網絡以消息的形式請求線路、站點、車輛發出預警,下面的代碼片段以線路為例闡明了這種情況:
Network n=new Network();∥實例化一個
網絡對象
Line l=new Line();∥實例化一個線路對象
l.linePrewarning(n);∥線路對象收到一個來
自網絡對象請求預警的消息
場景描述了在執行某些系統功能時必須出現的從始到終的內部消息(事件)序列,場景是特定的用例如何完成的假想的實例,即一個用例可以產生多個不同的場景[9].“軌道交通網發生事故后恢復運行”用例的其中一個場景:a.事故點向總網反應;b.總網同時請求線路、站點、車輛預警;c.系統檢查站點中的換乘點;d.軌道網系統通知換乘本線路的乘客轉乘地面公交;e.系統定位到發生事故的區段并封閉區段站點;f.維修工人對事故點進行檢修;g.事故點確認檢修完成;h.此區段、站點解除封閉;i.總網向線路、站點和車輛解除預警.
順序圖是圖形化地描述在執行給定的場景時消息如何從一個對象流到另一個對象的方法.圖2是以“軌道交通網發生事故后恢復運行”為用例的其中一個場景順序圖.
順序圖的核心作用是來確定靜態模型中每個類需要的操作方法[9].代表向該對象提出新請求的實線箭頭表示了接收請求的對象必須執行的方法,例如,在圖2中可以看到一個標記了“總網請求線路預警”的實線箭頭指向線路對象的生命線,表明線路類需要定義一個方法,以允許客戶對象傳入特定的總網絡對象的引用,并接收從該方法返回線路是否對乘客進行了警戒的響應.該方法的聲明如下: boolean linePrewarning(Network n).表示從其他對象執行方法返回的響應的虛線箭頭不能建模為方法,但是,暗示了發起響應方法的返回類型,例如,由于消息“總網絡請求線路預警”的響應是“線路已警戒乘客”,因此,方法返回boolean結果.

圖2 “軌道交通網發生事故后恢復運行”用例的順序圖Fig.2 Sequence diagram of resuming operation after the accident
功能模型描述了系統中的計算,僅說明計算中輸入到輸出的推導,不考慮計算的次序.它由多個數據流圖組成,描述數據流從外部輸入經計算和內部存儲輸出到外部的過程[7].圖3(見下頁)是軌道交通網中實現全日行車計劃功能的數據流圖,線路作為整個數據流圖的驅動者,通過輸入線路的屬性高峰小時客流量和全日客流分布模擬圖,計算全日分時最大斷面流量、分時開行列車數和行車間隔時間,最終得到全日行車計劃表[10].然而,在計算全日分時開行列車數時還需調用被動對象線路斷面滿載率和列車定員數表,它們本身不能產生任何操作,僅僅是對存儲和訪問數據請求的響應.
功能模型中的處理對應對象模型中的操作.通常在頂層數據流圖中的處理對應于復雜對象提供的操作,軌道交通網系統與開發人員、終極用戶之間形成最頂層數據流圖,軌道交通網系統軟件對應于軌道交通網系統中提供的操作;而在低層數據流圖中的處理對應于基本的對象操作,如在圖3中計算全日開行列車數對應于線路中的操作“全日分時開行列車數()”.

圖3 全日行車計劃表功能模型Fig.3 Functional model of full-day driving schedules
本文建立的軌道交通網絡對象模型、動態模型和功能模型并不是完全獨立的過程,它們是相輔相成、不可分割的一個整體.對象模型是動態模型和功能模型的基礎和主要依據;動態模型反過來補充和完善靜態模型和喚醒功能模型動作的決策;功能模型描述對象模型中的操作和動態模型中的動作喚醒的功能.
本文的研究為我國城市軌道交通運營系統的自主開發提供了一個可行的方法,從而為軌道交通網的規劃設計、運營管理提供了有效的工具,大大提高了軌道交通運營系統的效率,最終為實現軌道交通運營系統軟硬件完全國產化起一定的鋪墊作用,從而可以降低軌道交通建設與運營的成本.
當然,在這方面的工作還有很大的研究空間,對軌道交通系統所涉及的基礎資料數據庫系統的設計與實現有待進一步分析.軌道交通網建模只是一個準備階段,是整個軟件系統代碼實現的基礎,具體的某些方法的代碼實現本文還未作深入研究,可以運用UML語言并借助Enterprise Architect工具進行代碼實現的深入研究,最終實現軟件生產的自動化.
[1] 于鐵峰,葛雁平,吳紅明,等.面向對象技術在建筑建模中的應用[J].計算機輔助設計與圖形學報,1997,9 (2):98-102.
[2] 楊曉光,云美萍,周雪梅,等.中國智能交通系統評價方法研究[J].交通運輸系統工程與信息,2006,6(6): 14-20.
[3] 楊勇杰,郭寶華,張燕.面向對象的空中交通流量管理系統建模與仿真[J].控制理論與應用,2008,27(6): 9-14.
[4] 王婷,唐濤.基于UM L的城市軌道交通列車控制系統分析與建模[J].系統仿真學報,2005,17(8): 1993-1996.
[5] 陳玉.基于面向對象技術的城市交通仿真研究[J].科技資訊,2009(2):7-8.
[6] 雋志才,高林杰,倪安寧.面向對象的交通網絡分布式仿真并行數據結構[J].交通與計算機,2006,24(1): 36-39.
[7] 洪永清,黃德才,呂麗民.面向對象建模與設計[M].北京:人民郵電出版社,1998.
[8] 毛保華,李夏苗,王明生.城市軌道交通規劃與設計[M].北京:人民交通出版社,2006.
[9] 巴克.從概念到代碼[M].萬波,譯.北京:人民交通出版社,2007.
[10] 季令,張國寶.城市軌道交通運營組織[M].北京:中國鐵道出版社,1998.