一种软件需求模型到设计模型的转换方法

时间:2022-10-18 02:00:32

一种软件需求模型到设计模型的转换方法

摘要:针对复杂软件开发过程中需求模型到设计模型转换的问题,讨论了在软件设计过程中如何将数据流图转换为结构图。首先,根据软件设计方法提出了从需求模型到设计模型的项目背景。其次,对本项目的需求进行了分析,着重介绍了本项目绘图输入模块的设计方法。最后,描述并给出了实验结果。实验结果表明该文提出的数据流图到结构图的转换方法的正确性和有效性。

关键词:需求模型;设计模型;数据流图;软件结构图;转换

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)19-4415-03

随着计算机和互联网的飞速发展,软件规模和复杂度不断增大。在经历了程序设计阶段、软件设计阶段和受到软件危机的影响,软件开发进入了应用多种技术和管理方法指导软件开发的软件工程阶段。在软件生命周期中,需求和设计是重要的两个环节。需求分析是对软件功能目标的明确,设计阶段分为总体设计和详细设计,其中总体设计的任务是将软件需求转化为数据结构和软件的总体结构。由于需求分析针对软件的问题空间,设计阶段针对软件开发的解空间,两者在软件开发过程中如何很好的衔接成为软件设计人员需要解决的问题。随着研究人员对需求和设计研究的深入,从需求模型过渡到设计模型的问题逐渐成为软件工程研究领域关注的热点[1]。

在面向对象设计(OOD)的方法中,目前主要有基于特征模型的方法、基于Use Case图的方法、基于设计模式的方法以及基于模型转换的方法[2]。而在面向数据流设计的方法中,由于传统的结构设计(SD)方法的局限性和转换工作本身固有的困难性,从数据流图导出结构图的转换工作至今仍然以手工方式进行。

该工具的设计旨在对复杂软件系统数据流图到结构图的转换展开研究工作,为复杂软件系统提供绘制数据流图和从数据流图到软件结构图的转换功能。

2 系统的设计与实现

系统的开发过程分为以下几个阶段:

2.1 需求分析

1) 建立和存储数据流图

数据流图是一种图形化技术,描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。数据流图由数据处理,数据源或终点,数据存储文件和数据流构成。通常数据处理用圆形表示,数据源或终点用矩形表示,数据存储文件用右侧未封闭的矩形表示,数据流用带箭头的直线表示。

要完成数据流图的绘制,工具要提供绘制上述四种图形的功能。为了设计出更合适的数据流图,要对这些图形进行细化的处理:①对选定图形的大小进行调整;②对选定图形添加文字内容;③对选定图形进行拖动。

为了给数据流图向软件结构图的转化提供接口,数据流图的各个组件要以一定的形式保存起来,方便转换方法对其进行调用和处理操作。同时,为了保证数据流图的持久使用性,要将数据流图的信息以一定的格式保存在本地,再次使用时可以随时获取从而显示在绘图界面上。

2) 从数据流图转化为结构图

设计以数据流图为输入端,以结构图为输出端的转化算法。

3) 显示结构图

利用数据流图的绘制模块加以修改和扩展,将转化算法的输出数据显示出来。用户可以对结构图进行自定义的修改。

2.2 系统设计

工具按功能需求分为:输入,处理,输出三个模块,分别完成创建数据流图,从数据流图转换到结构图,输出结构图的功能。

2.2.1 输入模块

工具的形式化设计采用JavaSwing技术,工具窗体由菜单栏,工具栏,文件资源管理,绘图面板栏等组成。

借助Java2D技术通过继承建立圆形,矩形,右侧未封闭矩形,带箭头直线的实体类,运用适配器模式实现对图形的选定操作,从而实现对选定图形的细化处理。

建立数据实体类将数据流图的各个节点的详细信息存入集合,利用XML实现对集合中每个信息读写操作。

下面的流程图(图1)展示了绘制数据流图的一般过程:

输入模块的关键在于绘图面板的设计,以下是绘制数据流图的几个关键点:

1) 绘图面板的状态:由工具栏按钮的事件响应控制绘制图形的种类,按钮与绘图面板的状态一一对应。

2) 确定鼠标按下所在坐标:如果点在图形中,返回该图形对象并设置其已被选定属性。对于点是否在直线上这个问题,通过确定的一个非常小的范围,判断点到直线的距离是否在此范围内来解决。

3) 绘图面板的事件监听:鼠标单击则选定图形,双击则对组件进行命名,拖动则跟随鼠标改变组件的位置。

4) 临时坐标:为了达到绘图的平滑效果和良好的用户体验,采用临时坐标对当前绘制的图形进行定位修正。当坐标改变时,绘图面板立即刷新,从而达到预期理想的效果。

2.2.2 处理和输出模块

转换算法的主要思想是采用添加边界节点法,将边界部分有多条数据流的数据流图汇聚到一个新节点,将添加的节点作为结构图的第二层,作为数据流传递的间接接口。[2]

转换过程中需要采用上述方法将图结构转换为树结构,最后以树结构的形式呈现出结构图。

2.3 实验结果

输入数据流图示如图2所示,其中包括:数据源点和终点,A表示输入部分,B表示处理部分,C表示输出部分。

3 相关工作比较

在研究该项目的过程中,查阅了数据流图向结构图转换的相关研究成果。和《从数据流图到模块结构图的自动转换系统》(以下简称“自动转换系统”)[3]这一研究成果相比较,相似点在于从数据流图到结构图的转换的思路都是将数据流图转化为有向图结构。但也有不同之处,《自动转换系统》采用“有向控制图”的方法对数据流图进行了特定的限制,而本项目则是采用“添加边界节点”的方法将数据流图以有向图形式进行处理;另外在获取数据流图这一步骤中,《自动转换系统》采用输入参数的方法,而本项目采用的形式化交互式的绘图模式,方便性和人性化程度都更高。

4 结束语

本文针对复杂软件开发过程中需求模型到设计模型转换的问题,讨论了在软件设计过程中如何将数据流图转换为结构图。首先,根据软件设计方法提出了从需求模型到设计模型的项目背景。其次,对本项目的需求进行了分析,着重介绍了本项目绘图输入模块的设计方法。最后,描述并展示了实验结果。实验结果表明本文提出的数据流图到结构图的转换方法的正确性和有效性。该工具的设计实现了从数据流图到结构图的转换,建立了软件生命周期中需求和设计之间的联系,有利于帮助软件设计从需求向设计的转化。

参考文献:

[1] 梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006,17(6):1257-1275.

[2] 祝义,黄志球,曹子宁,等.一种基于形式化规约生成软件体系结构模型的方法[J].软件学报,2010,21(11):2738-2751.

[3] 丁忠俊.从数据流图到模块结构图的自动转换系统[J].小型微型计算机系统,1995,16(8):41-46.

上一篇:基于MESH网络的燃气报警机制研究 下一篇:手机造型设计分析