论文部分内容阅读
随着软件的战略价值日益增长,企业期待着能够加速软件开发的技术,我们寻找着提高软件质量、降低软件成本和开发时间的方法。当前,面向对象方法和技术成为了软件开发的主流技术,UML作为面向对象建模事实上的国际标准,以其丰富的图形符号和强大的表现能力得到了非常广泛的应用,很多软件公司都推出了支持UML的开发工具和开发环境。像Rational公司的Rose,MS公司的visio等等。由此很好地满足了系统开发的可视化的需要。但即使面向对象建模的技术和方法已经相当成熟并逐渐完善,依然存在一些问题。以UML为例,它拥有表示各种事物和关系的图形符号、也有用这些符号建立系统模型的一整套规则和机制。但UML只是一种标准的建模语言,并非一种标准的开发过程。简单的说,UML为系统建模提供了一套完整复杂的积木,用这些积木能很方便直观的搭建不同用途的建筑模型,但建筑的结构是否合理,地基是否牢固,建筑是否满足开发商和住户的各种常规或特殊的要求等等则取决于搭积木的人的经验,并没有一个固定的可遵循的一定正确的方案。当建筑的规模较小,结构用途比较简单的情况下,依靠搭积木的人的正确的经验可以建成一个成功的模型,但随着建筑复杂性的增加和建模过程中开发商和住户要求的可能的改变,建模的过程变得复杂,必须分阶段分部分逐步的细化和完善,直至建立最终的可以进入到工程实施的模型。而建筑模型一旦完成就是一个有机的整体,根据初期模型进行完善或改动形成的新的模型的正确性得不到保证,模型中的某些部分存在的某些错误要改正起来也会异常困难。所以,人们希望能在用这套积木搭建模型的过程中加入一些逻辑,对模型的各部分的特性和功能作形式化的说明和定义,使得在不同的阶段搭建的模型可以保持一致,尽量减少错误。结合形式化方法会是一个很好的解决渠道。国际上近年来出现了很多这方面的研究成果,在面向对象开发的不同阶段结合不同的形式化方法,目的都在于从不同的侧重点或是不同程度上利用形式化方法的特点——描述的一致性与可验证性来优化开发。本文中提出的方法是形式化的定义部分UML图(本文的研究主要集中于描述系统动态方面的交互图,而对描述系统静态部分的UML图的研究见参考资料[40])的语义,由此建立形式 面向对象开发的形式化需求建模化模型与相应UML模型之间的转换关系,且在系统需求分析及建模阶段利用这一转换关系将UML模型转换为形式化RAISE模型,在RAISE模型基础上进行逐步的精化,并保证抽象模型的所有属性都在精化后的模型中保持一致。这样在系统开发的初期需求阶段,尽量减少需求模型精化过程中出现的错误。当然,事实上,并不存在一种完美的建模方法,任何一种方法有其优势也必有其缺陷,本文所作的工作既保留了利用UML进行系统分析设计时强大的系统建模能力和简洁明了的面向对象模型表示法,又能够形式化的对软件需求模型进行精化和验证,在两种方法的结合中找到了一个较好的平衡点。