UM L在航天器姿态与轨道控制应用软件需求建模中的应用
2008-12-19史英海
史英海
(北京控制工程研究所,北京100190)
UM L在航天器姿态与轨道控制应用软件需求建模中的应用
史英海
(北京控制工程研究所,北京100190)
简要介绍了UML语言及其建模技术,描述了航天器姿态与轨道控制系统应用软件的组件构成与接口,并分析了组件间的依赖关系;针对航天器姿态与轨道控制应用软件的需求,对其功能需求和非功能需求进行分析研究;建立的软件需求模型实例体现了UML建模技术的特点和优势。
UML;应用软件;需求建模;航天器控制
1 引 言
航天器姿态与轨道控制分系统(简称AOCS)承担着卫星的姿态与轨道控制任务,是卫星系统的重要组成部分。作为典型的控制系统,AOCS由敏感器、控制器和执行器组成。其中,控制器完成数据采集、控制律计算以及控制输出等功能,是整个系统的核心,AOCS应用软件的主要任务是实现控制器的功能。
AOCS应用软件作为复杂的实时嵌入式软件具有规模大、结构复杂、硬件耦合性强等特点,同时,由于其特殊的应用领域,对软件的可靠性、实时性和安全性也有很高的要求。在明确的航天系统研制任务节点的约束下,为了得到高质量的AOCS应用软件交付品,软件研制需遵循合理、科学的开发过程,并借助高效、正确的开发手段。按照传统的软件生命周期划分,软件开发过程须经历需求分析、编码和测试等活动阶段。作为软件开发工作的第一个阶段,需求分析对系统高层设计、测试用例生成及系统体系结构验证起到非常重要的作用。基于需求分析,用户与开发人员共同理解系统的要求,确定软件功能、性能的设计、测试和维护依据。需求分析活动的制品为需求规格说明,在AOCS应用软件的开发过程中,需求规格说明覆盖了软件生命周期的全过程,是软件研制的重要节点和里程碑。同时,由于AOCS应用软件属于高可靠应用的实时嵌入式软件,需求规格说明须对软件的功能性需求和非功能性需求提供准确、详尽和正确的描述。
作为软件设计过程的重要活动,如何有效地开展需求分析工作取决于软件采用的分析设计方法。目前,多数AOCS应用软件的需求分析采用结构化分析方法。该方法在70年代末由Yourdon E.等提出并得以发展[1]。作为一种面向数据流进行需求分析的方法,结构化分析方法利用抽象模型概念,按照软件内部数据传递和变换的关系,自顶而下逐层分解,对软件的需求进行细化分析。结构化分析方法使用如下工具:数据流图、数据词典、判定表和判定树。随着计算机技术和软件技术的不断发展,到80年代中后期,面向对象方法发展成为成熟的软件分析设计方法,并深入到软件系统分析与设计领域。对需求分析活动而言,面向对象技术提供如下的改进[2]:
1)在存在变更的情况下,对稳定性的改进:较好地解决了因需求变化使系统复杂性增加的问题,使功能关系的耦合性问题在需求阶段得到更好地控制。
2)改进的问题域抽象:应用对象对应用领域的实体进行直接描述,基于对象的抽象表达,使需求规格说明更加完整和易于理解。
3)模型视图的一致性:通过统一的软件描述规范,使需求向后继开发活动过渡更合理。
为了统一面向对象技术的标准,美国工业标准化组织——OMG发布了统一建模语言 UML[3-4]。基于面向对象方法,使用UML语言描述系统的实体和抽象,称为 UML建模。目前,先进的软件开发组织,在软件开发的全过程,全面采用了面向对象方法,面向对象方法成为当前软件开发的主流技术。
本文将从AOCS应用软件组件构成出发,对其功能进行描述,面向AOCS应用软件的需求分析活动,使用UML技术进行需求建模。
2 UM L需求建模技术
2.1 UM L语言
统一建模语言UML是OMG确定的面向对象建模的标准语言,是一种定义严谨、易于表达、功能强大且普遍适用的建模语言。UML提供了描述软件系统模型的概念和图形表示方法,以及语言的扩张机制和对象约束语言。UML使用面向对象的概念来分析、描述软件系统并构造系统模型,是一种在建模领域中得到认可的优秀的软件工程方法。它统一了面向对象建模的基本概念、术语及其图形符号,建立了便于交流的共同语言,使得建立一个可视化、规范化、结构化和文档化的面向对象的系统成为可能。
UML通过提供不同形式的图形来表述从软件分析开始的软件开发全过程,一个图就是系统架构在某个侧面的表示,所有的图组成了系统的完整视图。
UML的重要内容由下列5类图(共10种图形)定义:
1)用例图:主要从用户角度描述系统的行为,并指出行为的操作者。
2)静态图:包括类图、对象图。
3)行为图:包括活动图、状态图。
4)交互图:包括顺序图、合作图。
5)实现图:包括组件图、配置图。
本文涉及组件图、用例图和顺序图。
2.2 组件图技术
组件图(component diagram)描述系统的物理结构以及各部件之间的依赖关系,同时显示系统组件间的结构关系[5]。组件被认为是独立的、在一个系统或子系统中的封装单位,具有一个或多个接口。本文将使用组件图技术描述AOCS应用软件与系统软件及其他子系统之间的关系。
2.3 用例图技术
用例图(use case diagram)从用户角度描述系统的功能,并指出各功能的操作者,以及操作者间、用例间、操作者与用例间的相互关系[5]。用例图技术主要执行两个步骤:
1)确定系统参与者。
2)确定系统用例。
此外,还须根据需求提供用例说明信息。
本文将使用用例图技术对AOCS应用软件的功能需求进行建模。
2.4 顺序图技术
顺序图(sequence diagram)按时间顺序描述对象间的交互行为,通过“生命线”和“消息”显示对象间如何交互[5]。
顺序图强调消息的时序,可以捕获单一用例的行为,并显示特定用例在时间框架下的对象及对象间传递的消息。本文将使用顺序图技术对AOCS应用软件的功能需求和非功能需求进行建模。
3 AOCS应用软件
3.1 组件构成
AOCS软件包含系统软件、应用软件及 AOCS各部件的软件。同时,应用软件负责与数管分系统OBDH(on-board data handling)等其他分系统进行数据的交互。
如图1所示,从组件构成的角度描述,AOCS应用软件与系统软件的接口为系统软件使用说明,AOCS应用软件依赖于该接口与系统软件完成功能交互。同时,AOCS应用软件依赖于各部件通讯协议作为接口与AOCS部件完成功能交互,依赖于OBDH通讯协议作为接口与OBDH分系统完成功能交互。功能上,应用软件组件除完成与姿态轨道控制计算相关的数据处理和控制律计算等功能外,还需完成与其他软件或系统组件交互的功能。
图1 AOCS软件组件图
3.2 需求描述
一般软件的需求可划分为功能需求与非功能需求,前者对软件的功能需求进行分析描述,而后者对软件的性能、可靠性等需求进行分析描述。对于AOCS应用软件而言,作为高可靠应用的实时嵌入式软件,非功能性需求非常重要。本文依据某实验卫星AOCS应用软件的功能和任务要求,对该软件的主要需求内容进行分析、描述。
3.2.1 功能需求描述
根据3.1节的描述将AOCS应用软件的功能需求划分为两类:
1)姿态轨道控制计算功能由以下部分组成:计算数据初始化、部件数据处理程序、轨道计算、太阳及地球星历计算、姿态确定计算、姿态控制计算、轨道控制计算和故障诊断。
2)其他软件或系统组件交互的功能由以下部分组成:部件及OBDH分系统硬件初始化、部件数据采集与输出、OBDH分系统通讯及数据处理程序。
功能需求可使用UML的用例图、顺序图进行需求建模。
3.2.2 非功能需求描述
AOCS应用软件的非功能需求包括性能需求和可靠性需求等,性能需求包括时间性能需求和空间性能需求。具体讲,时间性能需求包括任务对软件运行的时间约束、部件及分系统与应用软件通讯的时间约束等;空间性能需求为存储器容量对软件代码的约束。
对于AOCS应用软件而言,空间性能需求等使用文字描述方式即可准确表征。时间性能需求涵盖信息流方向、时间约束等复杂内容,可使用UML的顺序图技术进行建模。
4 AOCS应用软件的需求建模
4.1 功能需求建模
4.1.1 用例图需求建模
根据某实验卫星AOCS应用软件的功能需求,对其进行用例图建模,具体如下:
1)确定系统参与者
AOCS应用软件的用户,即卫星 AOCS分系统的总体设计方,以AOCS表示。
OBDH软件的用户,即卫星OBDH分系统的总体设计方,以OBDH表示。
2)确定系统用例
根据3.2.1所描述的需求分析进行用例建模。
完成以上步骤后,得到该卫星AOCS应用软件的用例模型,该用例图为软件设计和软件测试阶段提供依据。
如图2所示,该用例图显示了软件功能的11个用例,并直观地表征了用例间的层次和关联,有利于需求和设计阶段的过渡,为编码提供了清晰的代码设计思路,为测试人员提供了清晰的测试用例设计思路。
图2 AOCS应用软件用例图
以下对用例图所描述软件的最长功能分支进行说明:AOCS使用姿态控制计算功能,该功能要使用姿态确定计算功能,姿态确定计算功能使用部件数据处理功能,部件数据处理功能使用部件数据采集与输出功能,部件数据采集与输出功能又使用部件硬件初始化功能。由此,该分支包含的功能点得以明确地划分,同时,功能点的层次和关联关系得到了准确描述。基于该分支的用例图模型,面向设计阶段,代码编写人员依据用例进行合理的任务划分并可选用并行开发方式进行设计,以提高开发效率和质量;面向测试阶段,测试人员依据用例表征的功能点和相互关系,可合理设计测试用例并确定测试焦点;面向项目管理过程,项目管理人员依据用例表征的功能点等信息进行模块划分,从而得到工作量的估算等数据。
在实际的用例建模过程中,功能的需求分析工作要经历若干迭代的过程,对用例进行细化以得到更合理、直观的用例模型。
4.1.2 顺序图需求建模
对AOCS软件而言,部分功能包含了时间、时序的约束。通过使用顺序图技术,可以对某一个特定的场景进行建模,从而明确地描述此类功能需求。
如对某部件数据采集的功能需求,用时序和时间等信息表达,对该功能使用顺序图建模。如图3所示,该顺序图通过描述部件数据采集与输出功能的某一场景,表达了如下的需求信息:AOCS应用软件发送取数指令给部件1,部件1收到指令后,在50ns时间内向应用软件返回数据,在50ms时间内就完成全部数据返回功能。
4.2 非功能需求
AOCS应用软件的非功能需求包括性能需求、可靠性需求等,较为复杂的性能需求为软件的时间性能需求,使用顺序图可以准确、直观描述该类需求。
如图3所示,该顺序图除描述部件数据采集与输出功能外,还描述了应用软件与部件1通讯的时间性能需求。该时间性能需求表示,在AOCS应用软件的激活期内,从发送“取数”指令到收到“返回数据”,必须在50ms时间内完成;同时,部件1软件在收到AOCS发送的指令后,必须在50ns时间内做出反应,并在50ms内将数据发送完毕。该顺序图模型清晰地描述了3个时间性能需求,即AOCS应用软件的50ms数据采集等待时间,部件1软件的50ns反应时间,部件1软件的50ms数据发送时间。
图3 应用软件与部件1通讯顺序图
5 结 论
高质量的需求分析是高质量的软件产品的基础,正确、清晰、直观的需求规格说明将有利于提高软件的开发效率和代码质量,进而促进整个项目有序、合理地运行。在高可靠性、高安全性应用领域的背景下,AOCS应用软件更需要严谨细实的需求分析工作,以确保万无一失。采用 UML技术对AOCS应用软件进行需求建模,在体现了面向对象需求分析技术的优势和特点的同时,还使AOCS应用软件复杂的需求得到直观、明晰的描述,有效地解决了文字描述不直观、易歧义等固有问题,它将为AOCS应用软件的需求分析及其他相关的研制工作提供一个创新的思路。
[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].北京:机械工业出版社,2005
[3] 刘超.可视化面向对象建模技术——标准建模语言UML教程[M].北京:北京航空航天大学出版社,1999
[4] 耿国桐.UML宝典[M].北京:电子工业出版社,2004
[5] 余金山.实时 UML与 Rational rose real time建模案例剖析[M].北京:电子工业出版社,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-),男,辽宁人,高级工程师,研究方向计算机技术、智能控制 (e-mail:shiyh@bice.org.cn)。