序列圖(Sequence Diagram)有多種含義和用法。 在生物學(xué)上,序列圖可以指遺傳物質(zhì)上核苷酸序列物理圖的簡(jiǎn)稱,是人類基因組計(jì)劃中的最基礎(chǔ)的工作,是人類基因組在分子水平上最高層次、最為詳盡的物理圖,測(cè)定總長(zhǎng)為1M、由約30億對(duì)核苷酸組成的基因組DNA序列。在軟件工程中,序列圖是對(duì)象交互的一種表現(xiàn)方式。
簡(jiǎn)單介紹UML的模型中可分為兩種:動(dòng)態(tài)模型和靜態(tài)模型。用例圖、類圖和對(duì)象圖都是UML中的靜態(tài)結(jié)構(gòu)模型。而在UML系統(tǒng)動(dòng)態(tài)模型的其中一種就是交互視圖,它描述了執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系。序列圖就是交互視圖的一種形式。
序列圖主要用于按照交互發(fā)生的一系列順序,顯示對(duì)象之間的這些交互。很象類圖,開發(fā)者一般認(rèn)為序列圖只對(duì)他們有意義。然而,一個(gè)組織的業(yè)務(wù)人員會(huì)發(fā)現(xiàn),序列圖顯示不同的業(yè)務(wù)對(duì)象如何交互,對(duì)于交流當(dāng)前業(yè)務(wù)如何進(jìn)行很有用。除記錄組織的當(dāng)前事件外,一個(gè)業(yè)務(wù)級(jí)的序列圖能被當(dāng)作一個(gè)需求文件使用,為實(shí)現(xiàn)一個(gè)未來(lái)系統(tǒng)傳遞需求。在項(xiàng)目的需求階段,分析師能通過(guò)提供一個(gè)更加正式層次的表達(dá),把用例帶入下一層次。那種情況下,用例常常被細(xì)化為一個(gè)或者更多的如圖1所示的序列圖1。
組織的技術(shù)人員能發(fā)現(xiàn),序列圖在記錄一個(gè)未來(lái)系統(tǒng)的行為應(yīng)該如何表現(xiàn)中,非常有用。在設(shè)計(jì)階段,架構(gòu)師和開發(fā)者能使用圖,挖掘出系統(tǒng)對(duì)象間的交互,這樣充實(shí)整個(gè)系統(tǒng)設(shè)計(jì)。
序列圖的主要用途之一,是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個(gè)或者更多的序列圖。序列圖除了在設(shè)計(jì)新系統(tǒng)方面的用途外,它們還能用來(lái)記錄一個(gè)存在系統(tǒng)(稱它為“遺產(chǎn)”)的對(duì)象現(xiàn)在如何交互。當(dāng)把這個(gè)系統(tǒng)移交給另一個(gè)人或組織時(shí),這個(gè)文檔很有用。
定義序列圖是對(duì)對(duì)象之間傳送消息的時(shí)間順序的可視化表示。序列圖的主要用途是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個(gè)或者更多的序列圖。同時(shí)序列圖更有效地描述如何分配各個(gè)類的職責(zé)以及各類具有相應(yīng)職責(zé)的原因。
結(jié)構(gòu)序列圖(Sequence Diagram)是由對(duì)象(Object)、生命線(Lifeline)、激活(Activation)、消息(Messages)、分支與從屬流等元素構(gòu)成的2。
對(duì)象對(duì)象就是指類的實(shí)例,在序列圖中對(duì)象有三種狀態(tài):激活、運(yùn)行(存在)和銷毀。
生命線生命線(Lifeline)是一條垂直的虛線,用來(lái)表示序列圖中的對(duì)象在一段時(shí)間內(nèi)的存在,如圖2所示。
激活序列圖可以描述對(duì)象的激活(Activation),激活是對(duì)象操作的執(zhí)行,它表示一個(gè)對(duì)象直接或通過(guò)從屬操作完成操作的過(guò)程。如圖3所示,在UML圖中通過(guò)一個(gè)窄長(zhǎng)的矩形來(lái)表示,矩形的高度表示對(duì)象存在的過(guò)程。
消息消息(Messages)是對(duì)象間的一種通信機(jī)制。如圖4所示,消息由發(fā)送對(duì)象向另一個(gè)或其他幾個(gè)接收對(duì)象發(fā)送信號(hào),或由一個(gè)對(duì)象(發(fā)送者或調(diào)用者)調(diào)用另一個(gè)對(duì)象(接收者)的操作。
在UML中消息分為5類:遞歸調(diào)用、普通操作、返回消息、異步調(diào)用的消息、過(guò)程調(diào)用的消息。
分支與從屬流在UML中存在兩種方式可以來(lái)修改序列圖中消息的控制流,分別是:分支和從屬流。
分支是指從同一點(diǎn)發(fā)出的多個(gè)消息并指向不同的對(duì)象,根據(jù)條件是否互斥,可以有條件和并行兩種結(jié)構(gòu)。從屬流指的是從同一點(diǎn)發(fā)出多個(gè)消息指向同一個(gè)對(duì)象的不同生命線。
綜合示例綜合事例如圖5所示:
遺傳方面首先讓我們來(lái)了解一下DNA序列分析的原理和基本技術(shù)。主要采用桑格(Sanger)于對(duì)年代發(fā)明的"雙脫氧核糖核酸鏈末端終止法"進(jìn)行測(cè)定。測(cè)序反應(yīng)事實(shí)上就是一個(gè)在DNA聚合酶作用下的DNA復(fù)制過(guò)程。以一條鏈為模板,在一個(gè)測(cè)序引物的牽引下,新的DNA鏈得以不斷延伸。但如果加人一些雙脫氧核糖核苷酸即ddNTPs,就不能使延伸反應(yīng)繼續(xù)下去,最終隨機(jī)產(chǎn)生許多大小不等的末端是雙脫氧核苷酸的DNA片段,這些片段之間大小相差一個(gè)堿基,在電壓驅(qū)動(dòng)下,從一種由聚丙烯酰胺做成的凝膠上可間接地讀出這些有差異的代表其末端終止位置處堿基種類的片段,那么一系列的連續(xù)片段就代表了整個(gè)模板DNA的全部序列。用機(jī)器進(jìn)行自動(dòng)測(cè)序,一次可讀400-800個(gè)堿基。盡管全自動(dòng)測(cè)序較為方便省時(shí),但由于測(cè)定的序列長(zhǎng)度有一定限制,相對(duì)于龐大的人類基因組來(lái)說(shuō)可謂"老虎吃天,無(wú)從下口"。因此,測(cè)序的策略問(wèn)題就被提出來(lái)了。
常用的測(cè)序策略是"鳥槍法"。形象地說(shuō),就是將較長(zhǎng)的基因片段打斷,構(gòu)建一系列的隨機(jī)亞克隆,然后測(cè)定每個(gè)亞克隆的序列,用計(jì)算機(jī)分析以發(fā)現(xiàn)重疊區(qū)域,最終對(duì)大片段的DNA定序??茖W(xué)家利用物理圖中已定位的STS位點(diǎn)作為序列分析的起始位點(diǎn),大大減少了序列重疊部分的測(cè)定,提高了測(cè)序效率,使一些實(shí)驗(yàn)室可在一年內(nèi)測(cè)定幾個(gè)兆的堿基序列。
測(cè)序技術(shù)也在不斷地發(fā)展和提高。過(guò)去兩年內(nèi),通過(guò)在一個(gè)測(cè)序的電泳膠上增加電泳泳道和測(cè)序膠的長(zhǎng)度,使自動(dòng)測(cè)序儀的通讀水平提高了2-3倍。此外,一些不依賴于電泳技術(shù)來(lái)分離DNA片段的方法如質(zhì)譜分析也正在或已經(jīng)建立。雜交測(cè)序也是一項(xiàng)非電泳類方法,還有一種可用電子顯微鏡直接觀察的方法。
發(fā)展近幾年,由于DNA測(cè)序策略的日趨成熟,以及自動(dòng)測(cè)序儀的改進(jìn),序列測(cè)定速度和準(zhǔn)確率大為提高。美國(guó)人類基因組研究中心主任柯林斯(CollinS)自信地說(shuō),即便沒(méi)有新的技術(shù)突破,在2005年這一最后期限前完成準(zhǔn)確率達(dá)99.9%的人類基因組定序毫無(wú)問(wèn)題,或許還能提前兩年即在2003年以前完成?,F(xiàn)在幾乎每個(gè)星期都要鑒別出醫(yī)學(xué)上具有重要意義的一個(gè)DNA片段,最后,可能每個(gè)小時(shí)將會(huì)有一種新的基因被測(cè)定出DNA序列3。
本詞條內(nèi)容貢獻(xiàn)者為:
杜強(qiáng) - 高級(jí)工程師 - 中國(guó)科學(xué)院工程熱物理研究所