论文部分内容阅读
需求工程在软件开发活动中占有十分重要的位置,良好的软件需求对于降低开发成本和保障项目成功至关重要,有效的用户需求获取是需求建模的一个重要前提,随着软件需求的工程化发展,需求获取变得相当复杂和困难。场景被公认为需求获取和需求验证的有效工具。然而,场景只是用户对目标系统的部分描述,容易产生需求覆盖性问题,不同用户提交的场景可能存在不一致。在场景组合演化的过程中,需求规约中可能隐含有某些用户所不期望的行为,也可能出现某些暗含需求信息的丢失。面对这些问题和挑战,本文提出一种基于场景的需求建模解决方案。整个方案可看成是一个具有反馈能力的抽象机器,控制部件是状态合并,反馈部件是用户,输入仅限于用户初始提交的场景集合,输出是合并后的商自动机,反馈输入是合并算法产生的新的事件序列,反馈输出是用户对新事件序列作出的判断。从形式观点来看,输入是可执行的字符串集合,将其概括为能被形式系统所接受的一个语言,输出的是识别一种语言的语法,这种语言的特征由输入串所代表。整个建模过程体现了以用户为主导的需求建模思想。由于场景固有的局部描述特性,场景及其组合演化的语义研究是必要的。针对其算法语义存在的某些局限性,本文提出了一个场景及其组合的抽象语义模型,把场景抽象为有点集形式的事件结构。结合场景生命周期,给出了一个带事件轨迹的行为模型的范畴论语义表示框架,在这个语义表示框架中,把场景及其组合演化的问题转化为图表处理,带转换的Fibration函子提供了场景及其组合的抽象语义解释。本文采用消息序列图(Message Sequence Chart,MSC)描述场景,抽取MSC场景规约中的事件序列作为场景样本,通过样本构造一个能接受正样本的最大的确定有限自动机,合并状态得到商自动机,在状态合并过程中产生的新事件序列作为问题供用户回答,其中的负样本用于检测状态合并的有效性。提出了一种在基于场景建模系统行为的过程中,为用户提供问题追踪机制、支持场景交互增量产生的方法。在状态合并过程中,如果无法正确地识别系统状态,可能会导致合成模型覆盖了系统不期望行为,如果不能正确地识别某些系统转换,可能会导致合成模型没有覆盖系统期望行为。本文引入流体概念,把流体作为事件序列与状态模型间的一种接口,通过流体注释产生状态不变式,为了提高标号迁移系统(Labeled Transition System,LTS)这种抽象状态机的可读性,给出一种基于状态不变式的LTS修饰算法。在系统构件的LTS模型中,所有状态都是可接受状态,这种确定性假设限制了在软件开发过程中对含有不确定行为的建模与分析。本文提出了一种基于事件模型的不确定行为的合并与精化方法,采用模态迁移系统(Modal Transition System,MTS)描述系统行为,把LTSs模型扩展为MTSs模型,首先定义行为模型之间的精化关系,利用精化关系产生合并规则,运用合并规则产生行为模型的极小共同精化模型或最小共同精化模型,从而消除局部行为模型中存在的不确定行为。在基于构件的软件开发过程中,通过构件复用和组合构建复杂系统。场景建模的系统构件是一个基于事件轨迹的LTS行为模型,针对系统构件的可组合性问题,本文采用范畴论方法,首先构造出能刻画系统构件的规约及其实现的两个范畴,然后给出在构件规约和构件实现之间存在的一个最强规约函子,最后分析并指出在两个范畴之间存在函子的前提下所有的系统构件是可组合的。