徐育鋒, 何勝學, 范炳全, 張 立
(上海理工大學管理學院,上海 200093)
由于傳統(tǒng)的軟件開發(fā)技術(shù)是基于問題域的功能,因此,用它開發(fā)的系統(tǒng)是實現(xiàn)模塊功能的函數(shù)和過程的集合[1].但由于用戶的需求和軌道交通軟硬件技術(shù)的不斷發(fā)展變化,按照功能劃分設(shè)計的系統(tǒng)模塊必然也會隨之變化,從而使得這樣開發(fā)出來的程序模塊可重用性不高,且不易維護.面向?qū)ο蠼<夹g(shù)從根本上改變了傳統(tǒng)的軟件設(shè)計思想,它對問題空間進行自然分割,以更接近人類思維的方式建立問題域模型,以便對客觀實體進行結(jié)構(gòu)模擬和行為模擬,使設(shè)計出的軌道交通系統(tǒng)軟件盡可能直接地描述現(xiàn)實世界,從而構(gòu)造出模塊化的、可重用的和維護性好的軟件.
目前面向?qū)ο蠹夹g(shù)已在交通領(lǐng)域得到了廣泛的應用.楊曉光[2]將面向?qū)ο罄碚撨\用到 ITS (intelligent transportation system)項目評價中.楊勇杰[3]運用面向?qū)ο蟮睦碚摻⒘丝罩薪煌髁抗芾硐到y(tǒng)的模型結(jié)構(gòu).王婷[4]采用面向?qū)ο蠓治龊徒5姆椒▽Τ鞘熊壍澜煌熊嚳刂葡到y(tǒng)進行了需求分析、模塊分解、對象模型建立以及對象間的靜態(tài)關(guān)聯(lián)性分析.陳玉[5]依據(jù)面向?qū)ο筌浖_發(fā)思想確定了城市交通仿真系統(tǒng)的主要對象類,在此基礎(chǔ)上進行了對象建模、動態(tài)模型,并完成了主要對象類屬性和操作的設(shè)計.雋志才[6]采用面向?qū)ο笤O(shè)計思想和交通并行仿真建模理論分析了交通網(wǎng)絡分布并行仿真系統(tǒng)數(shù)據(jù)結(jié)構(gòu).
鑒于軌道交通網(wǎng)涉及的要素眾多,利用面向?qū)ο笏枷雽壍澜煌ㄏ到y(tǒng)的特性進行分析建模,可以全面覆蓋軌道交通網(wǎng)絡系統(tǒng)的各種組成部分,便于分析各部分間復雜的相互關(guān)系.同時,新的需求及研究成果可以及時融入到已存在的系統(tǒng),從而使所建模型系統(tǒng)的重用性優(yōu)勢得以充分發(fā)揮.正是基于上述思想,本文首次利用面向?qū)ο蟮能浖_發(fā)思想對城市軌道交通網(wǎng)絡系統(tǒng)進行建模分析,明確了系統(tǒng)中基本類的特征,建立了初步的軌道交通網(wǎng)的靜態(tài)、動態(tài)以及功能程序模型.
面向?qū)ο蠼<夹g(shù)也即三視點技術(shù),它將分析時收集的信息構(gòu)造在對象模型、動態(tài)模型和功能模型中,用這3種模型來描述一個目標系統(tǒng).其中,對象模型是3個模型中最關(guān)鍵的1個模型,用以描述系統(tǒng)中對象之間的靜態(tài)關(guān)系,包括構(gòu)成系統(tǒng)的類和對象的屬性、操作以及相互間的聯(lián)系;動態(tài)模型描述系統(tǒng)中對象的變化和對象之間相互關(guān)系的變遷,它著重于系統(tǒng)的控制邏輯;功能模型側(cè)重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理.這3種模型中功能模型說明發(fā)生了什么,動態(tài)模型說明何時發(fā)生,對象模型說明作用對象[7].
軌道交通網(wǎng)的問題空間中包含以下實體[8]:
a.軌道交通網(wǎng)的每個站點一般都由出入口、自動扶梯、自動售票機、閘機、站臺和服務人員組成,站點是乘客與軌道交通交互的界面,站點內(nèi)的各項服務是否到位,很大程度上能體現(xiàn)出軌道交通的服務水平,所以,將站點作為一個類.
b.線路上包含站點,車輛在線路上運行,它決定了車輛的走向、站點的區(qū)位和乘客的流向,所以,將線路作為一個類.
c.換乘點是線網(wǎng)中各條線路的交叉點,它除了集散乘車乘客之外,還要能實現(xiàn)兩線或多線車站站臺之間的客流暢通,可以將換乘點看作一個類.
d.樞紐站是兩條以上軌道交通線路交叉處,這種車站的客流集散量很大,不僅在內(nèi)部換乘,還與外部大型客運站連接,需做好內(nèi)外交通組織設(shè)計,因此,將樞紐站作為一個類.
e.區(qū)段是兩個站點之間的連接通道,區(qū)段的長度是行車時間的決定因素之一;區(qū)段的通行能力是整條路線通行力的一部分,所以,有必要將區(qū)段作為一個類.
f.城市軌道交通列車作為城市公共交通的旅客運載工具,要保證列車運行的安全、準點、快速,以及為乘客提供良好的服務條件,使乘客乘車舒適、方便,可將它作為一個類.
g.土地使用是城市總體規(guī)劃的依據(jù),也是軌道交通規(guī)劃設(shè)計的依據(jù),同時,軌道交通的發(fā)展也會促進土地的開發(fā)利用,因此,有必要將城市用地作為一個類.
h.軌道交通網(wǎng)絡由列車、站點及與其相連接的線路、路段組成.網(wǎng)絡作為問題域的整體,可將它視為一個抽象對象.它與其余對象是整體與部分的關(guān)系,可定義為網(wǎng)絡類.
在求解空間中,每個實體將映射到抽象對象的一個類中.由于Java類構(gòu)造支持數(shù)據(jù)封裝和將一個問題分解成對象和操作,因此,本文用它來表述城市軌道交通系統(tǒng)中面向?qū)ο髥栴}求解空間的每個類的定義.限于篇幅,僅舉例介紹軌道交通列車類的定義.
軌道交通網(wǎng)的靜態(tài)建模描述了軌道交通系統(tǒng)中的網(wǎng)絡、站點、線路、換乘點、樞紐及區(qū)段等對象的數(shù)據(jù)結(jié)構(gòu),以及它們相互之間的結(jié)構(gòu)化關(guān)系,借助CASE工具用統(tǒng)一 建模語言 UML(unified modeling language)產(chǎn)生靜態(tài)模型的圖形如圖 1所示.
類圖描述了每個對象的數(shù)據(jù)結(jié)構(gòu)并將其封裝起來[9].以網(wǎng)絡為例,它的屬性包括線路總條數(shù)、線網(wǎng)結(jié)構(gòu)等,它的操作方法包括調(diào)用站點對象集合、通過能力及輸送能力等方法.
類圖描述了類間的關(guān)聯(lián)、聚集、繼承和多重性的結(jié)構(gòu)化關(guān)系[9].關(guān)聯(lián)是類之間的最一般的結(jié)構(gòu)化關(guān)系,總網(wǎng)絡與土地之間是相互促進的關(guān)聯(lián)關(guān)系,軌道交通網(wǎng)的規(guī)劃設(shè)計依據(jù)城市土地的利用性質(zhì),同時,軌道網(wǎng)的規(guī)劃會提高沿線的土地開發(fā)強度.聚集是一種暗含包容關(guān)系的特殊形式關(guān)聯(lián),在關(guān)聯(lián)線和包含類相接的一端放置菱形來區(qū)別普通的關(guān)聯(lián),例如,總網(wǎng)絡由土地、線路、站點、區(qū)段及列車等聚集而成.繼承表示一類關(guān)系,在關(guān)聯(lián)線和基類相接的一端放置三角形以區(qū)別普通關(guān)聯(lián),例如,樞紐繼承了換乘點的數(shù)據(jù)結(jié)構(gòu),換乘點繼承了站點的數(shù)據(jù)結(jié)構(gòu),樞紐和換乘點都是站點.多重性指可以和給定的某一類的一個實例關(guān)聯(lián)在一起的另一類型對象的數(shù)目,多重性指示器標在關(guān)聯(lián)線的兩端,例如,一個區(qū)段有且只有兩個站點組成,一個站點至少位于一個區(qū)段上.
圖1 城市軌道交通網(wǎng)類圖Fig.1 Class diagram of urban rail transport network
動態(tài)模型描述了系統(tǒng)中與時間和操作順序有關(guān)的內(nèi)容,它由事件、場景、順序圖和通信圖這4個單元構(gòu)建[7],通信圖和順序圖在本質(zhì)上是一樣的,所以,此處省略.
事件是對對象的外部刺激,并以消息的形式通知對象[9].圖2表明總網(wǎng)絡收到事故點的消息,接著總網(wǎng)絡以消息的形式請求線路、站點、車輛發(fā)出預警,下面的代碼片段以線路為例闡明了這種情況:
Network n=new Network();∥實例化一個
網(wǎng)絡對象
Line l=new Line();∥實例化一個線路對象
l.linePrewarning(n);∥線路對象收到一個來
自網(wǎng)絡對象請求預警的消息
場景描述了在執(zhí)行某些系統(tǒng)功能時必須出現(xiàn)的從始到終的內(nèi)部消息(事件)序列,場景是特定的用例如何完成的假想的實例,即一個用例可以產(chǎn)生多個不同的場景[9].“軌道交通網(wǎng)發(fā)生事故后恢復運行”用例的其中一個場景:a.事故點向總網(wǎng)反應;b.總網(wǎng)同時請求線路、站點、車輛預警;c.系統(tǒng)檢查站點中的換乘點;d.軌道網(wǎng)系統(tǒng)通知換乘本線路的乘客轉(zhuǎn)乘地面公交;e.系統(tǒng)定位到發(fā)生事故的區(qū)段并封閉區(qū)段站點;f.維修工人對事故點進行檢修;g.事故點確認檢修完成;h.此區(qū)段、站點解除封閉;i.總網(wǎng)向線路、站點和車輛解除預警.
順序圖是圖形化地描述在執(zhí)行給定的場景時消息如何從一個對象流到另一個對象的方法.圖2是以“軌道交通網(wǎng)發(fā)生事故后恢復運行”為用例的其中一個場景順序圖.
順序圖的核心作用是來確定靜態(tài)模型中每個類需要的操作方法[9].代表向該對象提出新請求的實線箭頭表示了接收請求的對象必須執(zhí)行的方法,例如,在圖2中可以看到一個標記了“總網(wǎng)請求線路預警”的實線箭頭指向線路對象的生命線,表明線路類需要定義一個方法,以允許客戶對象傳入特定的總網(wǎng)絡對象的引用,并接收從該方法返回線路是否對乘客進行了警戒的響應.該方法的聲明如下: boolean linePrewarning(Network n).表示從其他對象執(zhí)行方法返回的響應的虛線箭頭不能建模為方法,但是,暗示了發(fā)起響應方法的返回類型,例如,由于消息“總網(wǎng)絡請求線路預警”的響應是“線路已警戒乘客”,因此,方法返回boolean結(jié)果.
圖2 “軌道交通網(wǎng)發(fā)生事故后恢復運行”用例的順序圖Fig.2 Sequence diagram of resuming operation after the accident
功能模型描述了系統(tǒng)中的計算,僅說明計算中輸入到輸出的推導,不考慮計算的次序.它由多個數(shù)據(jù)流圖組成,描述數(shù)據(jù)流從外部輸入經(jīng)計算和內(nèi)部存儲輸出到外部的過程[7].圖3(見下頁)是軌道交通網(wǎng)中實現(xiàn)全日行車計劃功能的數(shù)據(jù)流圖,線路作為整個數(shù)據(jù)流圖的驅(qū)動者,通過輸入線路的屬性高峰小時客流量和全日客流分布模擬圖,計算全日分時最大斷面流量、分時開行列車數(shù)和行車間隔時間,最終得到全日行車計劃表[10].然而,在計算全日分時開行列車數(shù)時還需調(diào)用被動對象線路斷面滿載率和列車定員數(shù)表,它們本身不能產(chǎn)生任何操作,僅僅是對存儲和訪問數(shù)據(jù)請求的響應.
功能模型中的處理對應對象模型中的操作.通常在頂層數(shù)據(jù)流圖中的處理對應于復雜對象提供的操作,軌道交通網(wǎng)系統(tǒng)與開發(fā)人員、終極用戶之間形成最頂層數(shù)據(jù)流圖,軌道交通網(wǎng)系統(tǒng)軟件對應于軌道交通網(wǎng)系統(tǒng)中提供的操作;而在低層數(shù)據(jù)流圖中的處理對應于基本的對象操作,如在圖3中計算全日開行列車數(shù)對應于線路中的操作“全日分時開行列車數(shù)()”.
圖3 全日行車計劃表功能模型Fig.3 Functional model of full-day driving schedules
本文建立的軌道交通網(wǎng)絡對象模型、動態(tài)模型和功能模型并不是完全獨立的過程,它們是相輔相成、不可分割的一個整體.對象模型是動態(tài)模型和功能模型的基礎(chǔ)和主要依據(jù);動態(tài)模型反過來補充和完善靜態(tài)模型和喚醒功能模型動作的決策;功能模型描述對象模型中的操作和動態(tài)模型中的動作喚醒的功能.
本文的研究為我國城市軌道交通運營系統(tǒng)的自主開發(fā)提供了一個可行的方法,從而為軌道交通網(wǎng)的規(guī)劃設(shè)計、運營管理提供了有效的工具,大大提高了軌道交通運營系統(tǒng)的效率,最終為實現(xiàn)軌道交通運營系統(tǒng)軟硬件完全國產(chǎn)化起一定的鋪墊作用,從而可以降低軌道交通建設(shè)與運營的成本.
當然,在這方面的工作還有很大的研究空間,對軌道交通系統(tǒng)所涉及的基礎(chǔ)資料數(shù)據(jù)庫系統(tǒng)的設(shè)計與實現(xiàn)有待進一步分析.軌道交通網(wǎng)建模只是一個準備階段,是整個軟件系統(tǒng)代碼實現(xiàn)的基礎(chǔ),具體的某些方法的代碼實現(xiàn)本文還未作深入研究,可以運用UML語言并借助Enterprise Architect工具進行代碼實現(xiàn)的深入研究,最終實現(xiàn)軟件生產(chǎn)的自動化.
[1] 于鐵峰,葛雁平,吳紅明,等.面向?qū)ο蠹夹g(shù)在建筑建模中的應用[J].計算機輔助設(shè)計與圖形學報,1997,9 (2):98-102.
[2] 楊曉光,云美萍,周雪梅,等.中國智能交通系統(tǒng)評價方法研究[J].交通運輸系統(tǒng)工程與信息,2006,6(6): 14-20.
[3] 楊勇杰,郭寶華,張燕.面向?qū)ο蟮目罩薪煌髁抗芾硐到y(tǒng)建模與仿真[J].控制理論與應用,2008,27(6): 9-14.
[4] 王婷,唐濤.基于UM L的城市軌道交通列車控制系統(tǒng)分析與建模[J].系統(tǒng)仿真學報,2005,17(8): 1993-1996.
[5] 陳玉.基于面向?qū)ο蠹夹g(shù)的城市交通仿真研究[J].科技資訊,2009(2):7-8.
[6] 雋志才,高林杰,倪安寧.面向?qū)ο蟮慕煌ňW(wǎng)絡分布式仿真并行數(shù)據(jù)結(jié)構(gòu)[J].交通與計算機,2006,24(1): 36-39.
[7] 洪永清,黃德才,呂麗民.面向?qū)ο蠼Ec設(shè)計[M].北京:人民郵電出版社,1998.
[8] 毛保華,李夏苗,王明生.城市軌道交通規(guī)劃與設(shè)計[M].北京:人民交通出版社,2006.
[9] 巴克.從概念到代碼[M].萬波,譯.北京:人民交通出版社,2007.
[10] 季令,張國寶.城市軌道交通運營組織[M].北京:中國鐵道出版社,1998.