RTCASE在实时系统软件需求分析中的应用
摘 要:结合实时系统软件的需求分析和具体实例,介绍RTCASE软件开发工具在实时系统软件需求分析中的应用。
关键词:RTCASE;需求分析;实时系统
当前实时系统软件需求分析方面,国内大多采用Word+Visio的方式进行需求分析并编写需求规格说明书,这样带来的问题有:设计的不规范,随意性大;难以保证需求的一致性;工作量大,枯燥。如何才能从上面的问题中解脱出来?RTCASE为我们提供了一个很好解决措施,采用RTCASE进行软件需求分析,主要有以下优点:
1) 支持实时系统结构化分析方法。规范化功能性需求分析,杜绝需求的二义性和不一致性。
2) 提供类似DOORS方式非功能性需求描述,充实与完善需求规格说明。
3) 将传统的基于文档需求分析转为基于模型需求分析,用图的表示方式代替文字描述,并具有模型的一致性、平衡性检查功能。
4) 提供强大的各阶段模型验证功能。
5) 模型中各对象支持中文描述方法,便于生成文档报告。
6) 文档格式用户可以自定义,可自动生成文档。
1 RTCASE简介
RTCASE(Real-Time Computer Aided Software Engineering)是一种高效、方便的实时系统设计辅助工具,它以美国STGCASE公司产品为基础,完全支持中文,支持成熟的结构化分析与结构化设计方法。
RTCASE拥有良好的操作界面,易于使用。整个设计过程都由图形化的方式进行,用户可以按照结构化分析与设计的方法构造相关的图形,在图形中添加文字说明就可完成实时系统软件需求分析过程,并且最终能按照用户定制的报告模板自动生成满足相关标准的需求规格说明文档,把用户从传统的Word+Visio的繁重文档编写工作中解脱出来。
RTCASE中构建需求分析模型主要包括:数据流/控制流图的构建、添加处理说明、添加控制说明和构建数据字典。这里RTCASE采用的是Boeing-Hatley实时系统结构化分析方法,需求分析模型如图 1所示:
图 1需求分析模型
2 RTCASE进行实时系统软件需求分析的流程
使用RTCASE进行实时系统软件需求分析流程如下:
2.1 创建系统环境图
用于显示整个系统的功能以及系统如何与外部环境交互。环境图显示了系统接受到的所有输入以及来自系统的输出。用于表示数据源和数据接收器的终端也明确显示在图中。所要开发的系统显示为一个数据转换。环境图定义了系统数据转换与终端之间的接口。
利用RTCASE创建系统环境图主要包括以下几个步骤:
1) 添加主处理;
2) 添加终端;
3) 添加数据流;
4) 添加控制流;
5) 为整个项目添加处理说明;
6) 为主处理添加处理说明;
7) 平衡性检查;
8) 添加终端说明;
9) 数据项定义;
2.2 分解系统环境图
按功能将系统逐层分解,并以数据流/控制流的形式定义功能间的接口。转换可以是数据转换或控制转换。系统在结构上要分解为数据流/控制流图的层次集合,设计人员可以对这些图的完整性和一致性进行检查。
2.3 添加控制说明
控制说明支持状态转化图、状态转换表和进程激活表多种描述方式,可根据实际情况选取相应的描述方式。
2.4 文档生成
RTCASE根据定制的文档模板,自动生成需求规格说明。为满足文档的规范要求,可以按照文档规范制定文档模板,生成满足要求的文档。
3 RTCASE应用实例
创建项目名为“汽车巡航控制与监控系统”的项目作为示例,详细介绍下RTCASE在实时系统软件需求分析中的应用。
3.1 构成实例需求分析模型
首先创建系统环境图,步骤为:
1) 在项目浏览窗口, 双击“Create Context Diagram”->在“Name”中输入“汽车巡航控制与监控系统环境图”->“Caption”中输入“Cruise_Control_Monitor_System_Context”,并用鼠标点击OK按钮。这时将会弹出空的数据流/控制流图窗口。
2) 在系统环境图中添加“汽车巡航控制与监控”处理:在“Object Bar” “Flow Diagram”工具栏中, 鼠标点击“Process”图标->然后按住鼠标左键拖动光标到系统环境图中心并释放鼠标->在弹出的“Edit Process”对话框中,在“Name”栏中输入“汽车巡航控制与监控”,在“Caption”栏与“Identifier”栏中输入“Cruise_Control_Monitor_Auto”,在“Number”栏中输入“0”,清除“Is Primitive”选择项 ,点击“OK”。
3) 添加终端:在“Object Bar” “Flow Diagram”工具栏中, 鼠标点击“Terminator”图标->然后按住鼠标左键拖动光标到系统环境图中适当位置并释放鼠标->在弹出的“New Terminator”对话框中,在“Name”栏中输入“巡航控制杆”,在“Caption”栏与“Identifier”栏中输入“Cruise_Control_Lever”->选择OK按钮完成终端“巡航控制杆”创建->按照上面步骤创建如下其它“终端”:校准按钮(Calibration_Buttons)、维护按钮(Maintenance_Buttons)、驱动轴(Drive_Shaft)、引擎(Engine)、油箱(Gas_Tank)、调速机构(Throttle_Mechanism)、制动机构(Brake_Mechanism)、显示系统(Display)。
4) 添加数据流: 从工具栏中鼠标点击“Create Data Flow”图标->将光标拖动到终端“驱动轴”图形内部,然后点击鼠标左健->拖动鼠标直到光标移至处理“汽车巡航控制与监控”内部并双击鼠标左健->在弹出的对话框中,在“Data Items”栏输入“轴转数”->通过选择“Add/Remove”按钮可以将此数据项增加到此数据流清单中->选择OK按钮即完成此数据流创建,您会注意到此时在数据流图中数据项名有一星号标记,表明此数据项尚未定义->在数据词典中鼠标右击“轴转数”,从弹出的子菜单中选择执行“Edit Attributes”命令可以为创建的数据项设置相应的标识符与别名为“Shaft_Rotation_Count”->使用同样方法可以创建其它数据流:“显示信息”(Display_Information)、“油量”(Fuel_Amount)、“调速值”(Throttle_Value)。
5) 添加控制流:方法与添加数据流方法相同,只不过所选择的工具图标不一样,创建控制流图使用“Create Control Flow”工具图标,创建的控制流有:“巡航控制命令”(Cruise_Control_Command)、“校准命令”(Calibration_Command)、“维护命令”(Maintenance_Command)、“引擎状态”(Engine_Status)、“制动”(Braking)。
6) 接下来为整个项目创建“处理说明”。 打开系统环境图,将鼠标光标定位在系统环境图的空白处->点击鼠标右键,这时会弹出一子菜单->选择“Go to Associated P-spec”。 这
时会显示一空白的“处理说明”窗口,在此窗口中输入如下信息:“此模型表示汽车巡航控制与监控系统,此系统不仅具有通常的巡航控制功能,同时具有系统校准功能,并且具有维护监控功能。”
3.2 分解系统环境图
1) 添加处理。具体添加方法和上一小节描述的一致,这里基本处理可以分解为下面四个处理:“巡航控制”(Cruise_Control)、“校准”(Calibrate)、“测量距离与速度”(Distance_Speed_Measure)和处理“汽车监控”(Automobile_Monitor)。
2) 添加数据流和控制流。添加方法和上一小节描述一致。
3) 添加数据存储。方法同处理的添加,在这层分解中涉及三个数据存储,它们分别是:“校准常数”、 “当前速度”和“累积距离”。
4) 数据流/控制流平衡性检查。方法同上一小节平衡性检测方法,这里不详细描述。
5) 添加控制条。未使用到的数据项是控制信息,需要通过添加控制处理来使用这些数据项。在数据流/控制流图中,控制处理使用控制条表示,控制条图形上表示为粗斜线。添加方式同处理的添加方式。创建一控制流指向此控制条(即控制处理),此控制流包含如下数据项:“启动巡航”、 “关闭巡航”、“校准命令”、“引擎状态”。
经过上述步骤将形成的分解后的数据流/控制流图如图 2所示:
图 2分解后数据流/控制流图
3.3 添加控制说明
这里采用状态转移图来描述控制说明,在本例中有三个状态::“校准状态”(Calibrating)、 “初始状态”(Initial)及“巡航控制状态”(Cruising_Control)。最终形成的状态转移图如图 3所示:
图 3分解后数据流/控制流图
验证控制说明。选择“Validate”下拉菜单并执行“Diagram Syntax”对控制说明进行语法检查,如有错则会在“output”窗口显示语法错误信息,在此例中没有这方面错误。选择“Validate”下拉菜单并执行“Against Parent Diagram”可以对控制说明与数据流/控制流图进行一致性检查。
3.4 文档生成
从“Tools”下来菜单中选择执行“Generate Report”命令,在弹出对话框中“Report File to Generate”栏输入或选择要生成的WORD文档名,然后鼠标点击“Generate”按钮即可自动生成所需文档;文档生成后,鼠标点击“View”按钮即可浏览所生成的文档。
4 结论
RTCASE是实时系统软件结构化分析有力的工具,能够方便、直观的帮助我们进行需求分析。相对我们传统的Word+Visio的方式编写需求规格说明来说,是一种巨大的进步,特别是每一步中的平衡性检测,能够使我们的需求分析保持良好的一致性和正确性,为使用RTCASE开展下一步软件设计工作提供了强大的支持。
参考文献:
[1]并发与实时系统软件设计-美国: 清华大学出版社,2003.7
[2]RTCASE用户手册