基于SOFL的工作流建模和复审.docVIP

  • 15
  • 0
  • 约5.78万字
  • 约 52页
  • 2020-07-28 发布于湖北
  • 举报
基于SOFL的工作流建模和复审 摘要 随着软件行业的不断发展,各种软件被大量运用到实际生活的各个角落。无论从小小的嵌入式软件,到整个医院的管理系统;从个人的上网浏览软件,到军用的战斗机内核,都能够看到软件进入人们生活的例子。在21世纪,由于计算机的普及和那几乎无处不在的网络的发展,软件对于人们显得尤为重要。 软件的开发和硬件不同。硬件的开发过程拥有完整统一的标准,并且可以通过流水线大型批量制造,得到的所有产品也是完全相同,没有任何差异性。而软件则相反,根据不同用户的不同需求,软件开发人员需要经历需求分析,软件设计,编写代码,软件测试等大致四个环节。可以说,每个软件的开发过程都是为每一个用户度身定做的。这不仅需要花费更多的开发人员的精力,因为没有统一的标准可言,因此无法准确的衡量一个软件是否合格,质量怎样。另外更重要的是,因为软件的开发过程是以人为核心,因此无论再标准的软件开发过程,再细致的软件开发管理,都难以避免地将错误引入到软件中。并且由于软件的特殊性,一些错误并不能够被及时的发现,或者难以被重现,因此对于诸如软件是否符合标准,是否能够正确使用,如何才能够提高软件质量等等问题的讨论一直受到人们的关注。但是在这方面依旧没有非常显著的突破。 当前对于软件正确性的追求主要是由规范的开发流程以及完备的软件测试来实现的。对于前者,如果开发人员运用规范标准的软件开发流程,开发设计人员各司其职,对于所开发的软件的质量的确具有显著的提升。并且,这些标准规范的软件开发过程仍然在不断的发展过程中,相信在日后会更好地帮助开发人员避免不必要的错误,缩短开发周期,提升软件质量。而后者则是目前确保软件正确的最主要手段。由于软件被运用于越来越高标准的环境中,软件的测试也越来越受到人们的重视。因此我们可以看到在整个软件的开发周期中,软件测试占用了比编写代码更多的时间。另外,许多有悠久历史及开发经验的大型软件公司中,负责软件测试的人员人数也比开发人员更多。由此可见人们对于软件测试的重视度。 但是目前的测试,大多是基于测试用例的,即通过编写尽可能全面覆盖的测试用例,在软件运行这些用例的过程中发现问题并解决问题。尽管良好完备的测试能够发现一个软件绝大部分的问题,但是通过这种被动的方式是无法彻底解决软件中的bug的,因为你永远不可能覆盖所有的情况,而总有可能存在一种出错情况是在测试中没有被覆盖掉的。因此我们需要一种全新的方式来发现错误解决错误,提高软件质量。 在解决软件正确性的研究中,还存在着另外一种完全不同的测试方法,那就是利用数理逻辑的方式,通过推导,证明软件是正确的。因此,这种方法同时带来了我们如何将软件转化为形式化的语言,方便推理证明的问题。不过,这并不是本文讨论的重点,我们更关心的是一个已经被描述建模好的软件,如何通过数理逻辑的方法证明它的正确性。 在本项目中,我们采用了SOFL (Structured Object-oriented Formal Language) 来实现软件的形式化。即,我们不关心一个软件如何被描述成SOFL。我们的重点在于一个使用SOFL描述的软件如何被证明是正确的,不包含bug的,从而提升软件质量。 SOFL(Structured Object-oriented Formal Language)是一门描述形式化语言,可以准确地涵盖一个服务的输入、输出、处理过程等等。SOFL共分为两大部分:语言规约(SOFL Specification)和CDFD图。在SOFL中有一些基本的单位,例如模块(Module),过程(Process),数据流(Dataflow)等。CDFD图描述的主要是这些基本单位之间的关系。例如两个过程之间有哪些数据流相连,或者整个流程的数据流向及模块等等。CDFD图中还具有一定的父子关系,类似于UML中的类图(Class Diagram)。即,如果某个过程可以被分解的话,那这个过程的子图同样存在于CDFD图中,并且是对父CDFD图的细化。而子图中的总输入,输出流与父图中该过程的输入,输出流相一致。语言规约主要描述的是各个单位内部的细节。例如每个过程的具体实现是怎样的,模块中包含着哪些内、外部变量,哪些常量等等。这两种描述方式相互互补,并不可以互相转化。SOFL将两种描述方式所提供的信息结合起来,呈现出一个流程的完整信息。 我们开发的系统(Soflipse)是一款集成于eclipse开发平台的插件。通过使用Soflipse,用户可以利用自己手绘的方式描述自己的软件,并且通过在图中的关键处填入适当的信息,帮助系统自动生成SOFL语言规约。在用户对自己的软件建模完成之后,复审工作便同时开始。通过扫描系统生成的SOFL语言规约,查看其中是否具有语法错误,语义错误等问题。这其中,语法错误是指SOFL语言规约没有符合SOFL

文档评论(0)

1亿VIP精品文档

相关文档