史英海
(北京控制工程研究所,北京100190)
UM L在航天器姿態(tài)與軌道控制應(yīng)用軟件需求建模中的應(yīng)用
史英海
(北京控制工程研究所,北京100190)
簡要介紹了UML語言及其建模技術(shù),描述了航天器姿態(tài)與軌道控制系統(tǒng)應(yīng)用軟件的組件構(gòu)成與接口,并分析了組件間的依賴關(guān)系;針對航天器姿態(tài)與軌道控制應(yīng)用軟件的需求,對其功能需求和非功能需求進行分析研究;建立的軟件需求模型實例體現(xiàn)了UML建模技術(shù)的特點和優(yōu)勢。
UML;應(yīng)用軟件;需求建模;航天器控制
航天器姿態(tài)與軌道控制分系統(tǒng)(簡稱AOCS)承擔著衛(wèi)星的姿態(tài)與軌道控制任務(wù),是衛(wèi)星系統(tǒng)的重要組成部分。作為典型的控制系統(tǒng),AOCS由敏感器、控制器和執(zhí)行器組成。其中,控制器完成數(shù)據(jù)采集、控制律計算以及控制輸出等功能,是整個系統(tǒng)的核心,AOCS應(yīng)用軟件的主要任務(wù)是實現(xiàn)控制器的功能。
AOCS應(yīng)用軟件作為復(fù)雜的實時嵌入式軟件具有規(guī)模大、結(jié)構(gòu)復(fù)雜、硬件耦合性強等特點,同時,由于其特殊的應(yīng)用領(lǐng)域,對軟件的可靠性、實時性和安全性也有很高的要求。在明確的航天系統(tǒng)研制任務(wù)節(jié)點的約束下,為了得到高質(zhì)量的AOCS應(yīng)用軟件交付品,軟件研制需遵循合理、科學的開發(fā)過程,并借助高效、正確的開發(fā)手段。按照傳統(tǒng)的軟件生命周期劃分,軟件開發(fā)過程須經(jīng)歷需求分析、編碼和測試等活動階段。作為軟件開發(fā)工作的第一個階段,需求分析對系統(tǒng)高層設(shè)計、測試用例生成及系統(tǒng)體系結(jié)構(gòu)驗證起到非常重要的作用。基于需求分析,用戶與開發(fā)人員共同理解系統(tǒng)的要求,確定軟件功能、性能的設(shè)計、測試和維護依據(jù)。需求分析活動的制品為需求規(guī)格說明,在AOCS應(yīng)用軟件的開發(fā)過程中,需求規(guī)格說明覆蓋了軟件生命周期的全過程,是軟件研制的重要節(jié)點和里程碑。同時,由于AOCS應(yīng)用軟件屬于高可靠應(yīng)用的實時嵌入式軟件,需求規(guī)格說明須對軟件的功能性需求和非功能性需求提供準確、詳盡和正確的描述。
作為軟件設(shè)計過程的重要活動,如何有效地開展需求分析工作取決于軟件采用的分析設(shè)計方法。目前,多數(shù)AOCS應(yīng)用軟件的需求分析采用結(jié)構(gòu)化分析方法。該方法在70年代末由Yourdon E.等提出并得以發(fā)展[1]。作為一種面向數(shù)據(jù)流進行需求分析的方法,結(jié)構(gòu)化分析方法利用抽象模型概念,按照軟件內(nèi)部數(shù)據(jù)傳遞和變換的關(guān)系,自頂而下逐層分解,對軟件的需求進行細化分析。結(jié)構(gòu)化分析方法使用如下工具:數(shù)據(jù)流圖、數(shù)據(jù)詞典、判定表和判定樹。隨著計算機技術(shù)和軟件技術(shù)的不斷發(fā)展,到80年代中后期,面向?qū)ο蠓椒òl(fā)展成為成熟的軟件分析設(shè)計方法,并深入到軟件系統(tǒng)分析與設(shè)計領(lǐng)域。對需求分析活動而言,面向?qū)ο蠹夹g(shù)提供如下的改進[2]:
1)在存在變更的情況下,對穩(wěn)定性的改進:較好地解決了因需求變化使系統(tǒng)復(fù)雜性增加的問題,使功能關(guān)系的耦合性問題在需求階段得到更好地控制。
2)改進的問題域抽象:應(yīng)用對象對應(yīng)用領(lǐng)域的實體進行直接描述,基于對象的抽象表達,使需求規(guī)格說明更加完整和易于理解。
3)模型視圖的一致性:通過統(tǒng)一的軟件描述規(guī)范,使需求向后繼開發(fā)活動過渡更合理。
為了統(tǒng)一面向?qū)ο蠹夹g(shù)的標準,美國工業(yè)標準化組織——OMG發(fā)布了統(tǒng)一建模語言 UML[3-4]?;诿嫦?qū)ο蠓椒ǎ褂肬ML語言描述系統(tǒng)的實體和抽象,稱為 UML建模。目前,先進的軟件開發(fā)組織,在軟件開發(fā)的全過程,全面采用了面向?qū)ο蠓椒?,面向?qū)ο蠓椒ǔ蔀楫斍败浖_發(fā)的主流技術(shù)。
本文將從AOCS應(yīng)用軟件組件構(gòu)成出發(fā),對其功能進行描述,面向AOCS應(yīng)用軟件的需求分析活動,使用UML技術(shù)進行需求建模。
統(tǒng)一建模語言UML是OMG確定的面向?qū)ο蠼5臉藴收Z言,是一種定義嚴謹、易于表達、功能強大且普遍適用的建模語言。UML提供了描述軟件系統(tǒng)模型的概念和圖形表示方法,以及語言的擴張機制和對象約束語言。UML使用面向?qū)ο蟮母拍顏矸治?、描述軟件系統(tǒng)并構(gòu)造系統(tǒng)模型,是一種在建模領(lǐng)域中得到認可的優(yōu)秀的軟件工程方法。它統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語及其圖形符號,建立了便于交流的共同語言,使得建立一個可視化、規(guī)范化、結(jié)構(gòu)化和文檔化的面向?qū)ο蟮南到y(tǒng)成為可能。
UML通過提供不同形式的圖形來表述從軟件分析開始的軟件開發(fā)全過程,一個圖就是系統(tǒng)架構(gòu)在某個側(cè)面的表示,所有的圖組成了系統(tǒng)的完整視圖。
UML的重要內(nèi)容由下列5類圖(共10種圖形)定義:
1)用例圖:主要從用戶角度描述系統(tǒng)的行為,并指出行為的操作者。
2)靜態(tài)圖:包括類圖、對象圖。
3)行為圖:包括活動圖、狀態(tài)圖。
4)交互圖:包括順序圖、合作圖。
5)實現(xiàn)圖:包括組件圖、配置圖。
本文涉及組件圖、用例圖和順序圖。
組件圖(component diagram)描述系統(tǒng)的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系,同時顯示系統(tǒng)組件間的結(jié)構(gòu)關(guān)系[5]。組件被認為是獨立的、在一個系統(tǒng)或子系統(tǒng)中的封裝單位,具有一個或多個接口。本文將使用組件圖技術(shù)描述AOCS應(yīng)用軟件與系統(tǒng)軟件及其他子系統(tǒng)之間的關(guān)系。
用例圖(use case diagram)從用戶角度描述系統(tǒng)的功能,并指出各功能的操作者,以及操作者間、用例間、操作者與用例間的相互關(guān)系[5]。用例圖技術(shù)主要執(zhí)行兩個步驟:
1)確定系統(tǒng)參與者。
2)確定系統(tǒng)用例。
此外,還須根據(jù)需求提供用例說明信息。
本文將使用用例圖技術(shù)對AOCS應(yīng)用軟件的功能需求進行建模。
順序圖(sequence diagram)按時間順序描述對象間的交互行為,通過“生命線”和“消息”顯示對象間如何交互[5]。
順序圖強調(diào)消息的時序,可以捕獲單一用例的行為,并顯示特定用例在時間框架下的對象及對象間傳遞的消息。本文將使用順序圖技術(shù)對AOCS應(yīng)用軟件的功能需求和非功能需求進行建模。
AOCS軟件包含系統(tǒng)軟件、應(yīng)用軟件及 AOCS各部件的軟件。同時,應(yīng)用軟件負責與數(shù)管分系統(tǒng)OBDH(on-board data handling)等其他分系統(tǒng)進行數(shù)據(jù)的交互。
如圖1所示,從組件構(gòu)成的角度描述,AOCS應(yīng)用軟件與系統(tǒng)軟件的接口為系統(tǒng)軟件使用說明,AOCS應(yīng)用軟件依賴于該接口與系統(tǒng)軟件完成功能交互。同時,AOCS應(yīng)用軟件依賴于各部件通訊協(xié)議作為接口與AOCS部件完成功能交互,依賴于OBDH通訊協(xié)議作為接口與OBDH分系統(tǒng)完成功能交互。功能上,應(yīng)用軟件組件除完成與姿態(tài)軌道控制計算相關(guān)的數(shù)據(jù)處理和控制律計算等功能外,還需完成與其他軟件或系統(tǒng)組件交互的功能。
圖1 AOCS軟件組件圖
一般軟件的需求可劃分為功能需求與非功能需求,前者對軟件的功能需求進行分析描述,而后者對軟件的性能、可靠性等需求進行分析描述。對于AOCS應(yīng)用軟件而言,作為高可靠應(yīng)用的實時嵌入式軟件,非功能性需求非常重要。本文依據(jù)某實驗衛(wèi)星AOCS應(yīng)用軟件的功能和任務(wù)要求,對該軟件的主要需求內(nèi)容進行分析、描述。
3.2.1 功能需求描述
根據(jù)3.1節(jié)的描述將AOCS應(yīng)用軟件的功能需求劃分為兩類:
1)姿態(tài)軌道控制計算功能由以下部分組成:計算數(shù)據(jù)初始化、部件數(shù)據(jù)處理程序、軌道計算、太陽及地球星歷計算、姿態(tài)確定計算、姿態(tài)控制計算、軌道控制計算和故障診斷。
2)其他軟件或系統(tǒng)組件交互的功能由以下部分組成:部件及OBDH分系統(tǒng)硬件初始化、部件數(shù)據(jù)采集與輸出、OBDH分系統(tǒng)通訊及數(shù)據(jù)處理程序。
功能需求可使用UML的用例圖、順序圖進行需求建模。
3.2.2 非功能需求描述
AOCS應(yīng)用軟件的非功能需求包括性能需求和可靠性需求等,性能需求包括時間性能需求和空間性能需求。具體講,時間性能需求包括任務(wù)對軟件運行的時間約束、部件及分系統(tǒng)與應(yīng)用軟件通訊的時間約束等;空間性能需求為存儲器容量對軟件代碼的約束。
對于AOCS應(yīng)用軟件而言,空間性能需求等使用文字描述方式即可準確表征。時間性能需求涵蓋信息流方向、時間約束等復(fù)雜內(nèi)容,可使用UML的順序圖技術(shù)進行建模。
4.1.1 用例圖需求建模
根據(jù)某實驗衛(wèi)星AOCS應(yīng)用軟件的功能需求,對其進行用例圖建模,具體如下:
1)確定系統(tǒng)參與者
AOCS應(yīng)用軟件的用戶,即衛(wèi)星 AOCS分系統(tǒng)的總體設(shè)計方,以AOCS表示。
OBDH軟件的用戶,即衛(wèi)星OBDH分系統(tǒng)的總體設(shè)計方,以O(shè)BDH表示。
2)確定系統(tǒng)用例
根據(jù)3.2.1所描述的需求分析進行用例建模。
完成以上步驟后,得到該衛(wèi)星AOCS應(yīng)用軟件的用例模型,該用例圖為軟件設(shè)計和軟件測試階段提供依據(jù)。
如圖2所示,該用例圖顯示了軟件功能的11個用例,并直觀地表征了用例間的層次和關(guān)聯(lián),有利于需求和設(shè)計階段的過渡,為編碼提供了清晰的代碼設(shè)計思路,為測試人員提供了清晰的測試用例設(shè)計思路。
圖2 AOCS應(yīng)用軟件用例圖
以下對用例圖所描述軟件的最長功能分支進行說明:AOCS使用姿態(tài)控制計算功能,該功能要使用姿態(tài)確定計算功能,姿態(tài)確定計算功能使用部件數(shù)據(jù)處理功能,部件數(shù)據(jù)處理功能使用部件數(shù)據(jù)采集與輸出功能,部件數(shù)據(jù)采集與輸出功能又使用部件硬件初始化功能。由此,該分支包含的功能點得以明確地劃分,同時,功能點的層次和關(guān)聯(lián)關(guān)系得到了準確描述。基于該分支的用例圖模型,面向設(shè)計階段,代碼編寫人員依據(jù)用例進行合理的任務(wù)劃分并可選用并行開發(fā)方式進行設(shè)計,以提高開發(fā)效率和質(zhì)量;面向測試階段,測試人員依據(jù)用例表征的功能點和相互關(guān)系,可合理設(shè)計測試用例并確定測試焦點;面向項目管理過程,項目管理人員依據(jù)用例表征的功能點等信息進行模塊劃分,從而得到工作量的估算等數(shù)據(jù)。
在實際的用例建模過程中,功能的需求分析工作要經(jīng)歷若干迭代的過程,對用例進行細化以得到更合理、直觀的用例模型。
4.1.2 順序圖需求建模
對AOCS軟件而言,部分功能包含了時間、時序的約束。通過使用順序圖技術(shù),可以對某一個特定的場景進行建模,從而明確地描述此類功能需求。
如對某部件數(shù)據(jù)采集的功能需求,用時序和時間等信息表達,對該功能使用順序圖建模。如圖3所示,該順序圖通過描述部件數(shù)據(jù)采集與輸出功能的某一場景,表達了如下的需求信息:AOCS應(yīng)用軟件發(fā)送取數(shù)指令給部件1,部件1收到指令后,在50ns時間內(nèi)向應(yīng)用軟件返回數(shù)據(jù),在50ms時間內(nèi)就完成全部數(shù)據(jù)返回功能。
AOCS應(yīng)用軟件的非功能需求包括性能需求、可靠性需求等,較為復(fù)雜的性能需求為軟件的時間性能需求,使用順序圖可以準確、直觀描述該類需求。
如圖3所示,該順序圖除描述部件數(shù)據(jù)采集與輸出功能外,還描述了應(yīng)用軟件與部件1通訊的時間性能需求。該時間性能需求表示,在AOCS應(yīng)用軟件的激活期內(nèi),從發(fā)送“取數(shù)”指令到收到“返回數(shù)據(jù)”,必須在50ms時間內(nèi)完成;同時,部件1軟件在收到AOCS發(fā)送的指令后,必須在50ns時間內(nèi)做出反應(yīng),并在50ms內(nèi)將數(shù)據(jù)發(fā)送完畢。該順序圖模型清晰地描述了3個時間性能需求,即AOCS應(yīng)用軟件的50ms數(shù)據(jù)采集等待時間,部件1軟件的50ns反應(yīng)時間,部件1軟件的50ms數(shù)據(jù)發(fā)送時間。
圖3 應(yīng)用軟件與部件1通訊順序圖
高質(zhì)量的需求分析是高質(zhì)量的軟件產(chǎn)品的基礎(chǔ),正確、清晰、直觀的需求規(guī)格說明將有利于提高軟件的開發(fā)效率和代碼質(zhì)量,進而促進整個項目有序、合理地運行。在高可靠性、高安全性應(yīng)用領(lǐng)域的背景下,AOCS應(yīng)用軟件更需要嚴謹細實的需求分析工作,以確保萬無一失。采用 UML技術(shù)對AOCS應(yīng)用軟件進行需求建模,在體現(xiàn)了面向?qū)ο笮枨蠓治黾夹g(shù)的優(yōu)勢和特點的同時,還使AOCS應(yīng)用軟件復(fù)雜的需求得到直觀、明晰的描述,有效地解決了文字描述不直觀、易歧義等固有問題,它將為AOCS應(yīng)用軟件的需求分析及其他相關(guān)的研制工作提供一個創(chuàng)新的思路。
[1] Yourdon E,Constantine L.Structured design[M].Yourdon Press,1978
[2] Douglass B P.Doing hard time,developing real-time systems with UML,objects,frameworks,and patterns[M].北京:機械工業(yè)出版社,2005
[3] 劉超.可視化面向?qū)ο蠼<夹g(shù)——標準建模語言UML教程[M].北京:北京航空航天大學出版社,1999
[4] 耿國桐.UML寶典[M].北京:電子工業(yè)出版社,2004
[5] 余金山.實時 UML與 Rational rose real time建模案例剖析[M].北京:電子工業(yè)出版社,2007
App lication of UM Lin Requirem ent Modeling of Spacecraft Attitude and O rbit Control Software
SHIYinghai
(Beijing Institute of Control Engineering,Beijing 100190,China)
The unified modeling language(UML)and modeling are investigated.The architectures and interfaces of the components of spacecraft attitude and orbit control software are described,and the dependency relations between the components are analyzed.For the requirement analysis of spacecraft attitude and orbit control software,the functional requirements and the non-functional requirements are studied.The software models are presented,and the efficiency and reasonability of the UML are illustrated.
UML;application software;requirement modeling;spacecraft control
V412.4,TP313
A
1674-1579(2008)03-0042-04
2008-02-25
史英海(1975-),男,遼寧人,高級工程師,研究方向計算機技術(shù)、智能控制 (e-mail:shiyh@bice.org.cn)。