论文部分内容阅读
原型系统在软件开发中占据着非常重要的地位,在软件开发的分析阶段开发原型系统是一个用来消除客户和软件开发者之间的理解误差和验证客户需求的有效方法。如果能够根据系统需求模型自动生成可执行的原型系统,那么就可以大大节约软件工程师的精力并达到正确验证客户需求和进行早期的测试。
联合国大学国际软件技术研究所提出了一个从形式化的UML需求模型自动生成可执行原型系统的方法,并开发了基于该方法的工具(AutoPA2.0)。该UML系统需求模型包括概念模型和用例模型两部分。该方法能够对用前置条件和后置条件规约的简单用例自动生成一系列改变系统状态的原子操作,这些原子操作包括创建和删除一个对象、更新对象、建立和删除两个对象之间的链接。
但是该方法对复杂的用例不能直接从前置条件和后置条件生成可执行的代码,同时该方法在实现过程中用FOUR SETS(pro-objects,pre-links,post-objects,post-links)来规约前置条件和后置条件,这并不是一个形式化的方法,并且FOUR SETS规约系统限制的能力有限。
本论文在该方法的基础上,提出用OCL(对象约束语言)来规约系统限制、用例的前置条件和后置条件,并引进了两个原子操作:FindObjects,FindLinks。用OCL代替FOUR SETS比较好地解决了FOUR SETS存在的问题。同时本文也扩充了UML的系统需求模型,引进了活动图和形式化的系统顺序图来描述复杂的用例行为,并且提出和实现了从活动图和顺序图自动生成可执行代码的算法。基于这些改进,本文的方法能够对用前置条件和后置条件规约的简单的用例自动生成一系列的改变系统状态的原子操作,同时对复杂的用活动图或系统顺序图描述的用例,也可以自动生成可执行的代码。
基于本文的方法,我们在AutoPA2.0的基础上也开发了相应的工具(AutoPA3.0),用户只需要在UML工具(MagicDraw)中画出系统需求模型,该工具就能够自动生成可执行的原型系统供用户使用。
本文扩充了系统需求模型的用例模型,采用形式化的系统顺序图或活动图来描述复杂的用例行为,但是引进的活动图并没有在系统需求模型中被形式化,这就使得该方法并不是完全基于形式化的模型。一个简单的解决方法是只使用形式化的系统顺序图来描述复杂的用例行为,这样该方法和工具就是完全基于形式化的模型。更好的解决方法是采用形式化用例模型中所定义的转移系统将活动图形式化进系统需求模型中,此部分还需要进一步的研究讨论。