具备自监视功能的计算机、监视程序的制作方法_2

文档序号:8269371阅读:来源:国知局
r>[0031]图4是软件开发的流程图。
[0032]图5是第一实施方式的计算机的系统结构图。
[0033]图6是在程序的监视中使用的测试脚本的例子。
[0034]图7是说明利用输入操作的程序的状态迀移的图。
[0035]图8是第一实施方式的计算机的处理流程图。
[0036]图9是示出第二实施方式的电路结构的图。
[0037](符号说明)
[0038]10:软件要件;11:测试脚本;12:序列图;13:状态图;14:观测器代码;15:应用代码;21:软件要件存储部;22:测试脚本生成部;23:观测器生成部;24:软件模型生成部;25:代码生成部;26:代码写入部;100:车载终端;101:运算处理装置;102:存储装置;103:输入装置;104:通信装置;105:盘装置;200:管理中心。
【具体实施方式】
[0039](第一实施方式)
[0040]<程序开发方法的概要>
[0041]概要地说明本发明的监视程序以及成为监视对象的运算程序的开发方法。图1是说明本发明的运算程序以及监视程序的制作方法的图。在本实施方式中,叙述使用作为在开放源代码中提供的综合开发环境的Eclipse,来制作Java(注册商标)应用的例子。
[0042]在制作软件时,需要最初定义成为设计的基础的软件要件(符号10)。软件要件是指定义了软件应满足的要求的要件。软件要件既可以通过自然语言来描述,也可以通过计算机可直接解释的规范描述语言等语言来描述。
[0043]软件开发者根据所定义的软件要件设计程序,制作作为运算程序的源代码的应用代码(符号15)。此处,虽然省略了关于程序设计的描述,但例如既可以根据软件要件制作软件模型来生成代码,也可以根据软件要件制作程序设计并通过手动作业进行编码。在应用代码15的生成中,能够使用已知的技术以及手法。
[0044]另外,软件开发者根据软件要件制作测试脚本(符号11)。测试脚本是指,用于对程序进行测试的用自然语言描述的脚本。在该脚本中,描述有由利用者实施的一连串的操作、和针对该操作的结果,开发者在参照该脚本的同时测试应用代码15。
[0045]测试脚本还能够通过UML(Unified Modeling Language:统一模型语言)描述。例如,如果使用序列图(符号12),则能够将利用者的操作作为触发,描述在目标之间进行了什么样的调出。另外,如果使用状态图(符号13),则能够描述利用者的操作所引起的目标的状态变化。在图1中,示出了依次制作用自然语言描述的测试脚本(符号11)、利用序列图的测试脚本(符号12)、利用状态图的测试脚本(符号13)的例子,但关于测试脚本,制作某一个既可,无需制作全部。
[0046]观测器代码(符号14)是根据测试脚本而制作的代码,是监视运算程序是否进行沿着测试脚本的动作的监视程序的源代码。例如,作为根据通过UML描述的状态图自动生成观测器代码的技术,有IBM公司的Rat1nal Rhapsody (注册商标)。此处,举出了根据状态图自动生成观测器代码的例子,但也可以参照用自然语言描述的测试脚本(符号11)、或者利用序列图的测试脚本(符号12),通过手动作业来制作观测器代码。针对每个上述测试脚本,制作观测器代码14。
[0047]观测器代码14和应用代码15相互独立,所以即使根据观测器代码生成监视程序,也无法直接监视对运算程序进行的输入操作。因此,在本实施方式中,利用面向方面编程(Aspect-oriented programming),在设为双方的程序能够相互交换信息之后进行构筑。关于面向方面编程的详情后述。最终,通过将所构筑的模块写入到微型计算机、车载计算机等,完成实际的广品。
[0048]<软件制作装置>
[0049]详细说明第一实施方式的软件制作装置。图2是示出本发明的软件制作装置的系统结构的图。
[0050]软件要件存储部21是存储描述了软件应满足的要求的软件要件(符号10)的单元。软件要件既可以通过自然语言描述,也可以使用用于描述软件的规范的LTL(LinearTemporal Logic:线性时序逻辑)、CTL(Computat1nal Tree Logic:计算树逻辑)这样的规范描述语言来描述。
[0051]测试脚本生成部22是制作基于软件要件的测试脚本的单元。如上所述,测试脚本既可以通过自然语言描述,也可以通过序列图、状态图描述。在通过UML描述测试脚本的情况下,能够利用为了 Eclipse用而提供的各种UML插件。软件开发者通过测试脚本生成部22提供的编辑器制作测试脚本。
[0052]代码生成部23是制作应用代码15的单元。代码既可以利用编辑器通过手动作业进行编码来制作,也可以制作软件模型并根据软件模型自动生成。在软件模型的制作、应用代码的生成中,也能够利用为了 Eclipse用而提供的各种设计工具。例如,如果使用Mathfforks公司的Simulink (注册商标)这样的开发工具,则能够根据软件模型自动生成应用代码。
[0053]观测器生成部24是根据测试脚本生成部22中生成的测试脚本生成观测器代码的单元。如上述那样,一个观测器代码对应于一个测试脚本,所以在有多个测试脚本的情况下,由观测器生成部24生成多个观测器代码。
[0054]在测试脚本生成部23中制作了状态图的情况下,能够通过上述Rat1nalRhapsody,自动生成Java的观测器代码。观测器代码当然也可以根据利用自然语言的测试脚本(符号11)、利用序列图的测试脚本(符号12)来手动制作。
[0055]代码合成部25是将观测器生成部24生成的观测器代码、和代码生成部23生成的应用代码合成而构筑的单元。如上述那样,观测器代码和应用代码相互独立,所以无法直接相互参照,无法监视对运算程序进行了的输入操作。因此,在本实施方式中,通过面向方面编程,实现代码之间的输入操作的转送。
[0056]说明面向方面编程。面向方面编程(Aspect Oriented Programming)是指,用于将无法通过目标分类的概念编入到程序的技术。如果使用面向方面编程,则例如,能够将作为记录(Logging)、声明(Assert1n)、错误处理等难以分级的、并非本来的功能的处理的附加的处理编入到程序中。将该处理称为方面,将编入方面的执行地点称为接入点。即,通过将把输入操作送到观测器代码的处理作为方面,将接入点配置在观测器代码以及应用代码内,能够受理由利用者实施的输入操作。这样,软件开发者仅需制作方面、指定接入点,而无需修改已经制作的代码就能够追加功能。
[0057]作为面向方面语言的代表例,有AspectJ。AspectJ是对Java语言追加了用于实现面向方面编程的规范的语言。代码合成部25使用AspectJ,连结应用代码和观测器代码。具体而言,将受理输入操作的代码制作为方面,将接入点定义到应用代码内以及观测器代码内的希望受理输入操作的部分。由此,监视程序能够取得针对运算程序的输入操作。使用为了 Eclipse用而提供的AspectJ插件来合成代码。
[0058]图3是示出通过第一实施方式的软件制作装置生成的程序的结构的图。另外,在实施方式的说明中,将根据应用代码生成的运算程序称为监视对象程序,将根据观测器代码生成的监视程序称为观测器。
[0059]通过代码合成部25构筑应用代码和观测器代码,生成执行程序30。执行程序30中包括作为与应用代码对应的程序的监视对象程序32、和作为与各观测器代码对应的程序的多个观测器31A、31B、31C...。将对监视对象程序进行了的输入操作还大致同时地输入到各观测器。另外,关于监视对象程序和各观测器,只要满足同时执行这样的条件,则既可以储存于一个模块,也可以分到多个模块。另外,主观测器31M是用于检查所述多个观测器的状态的程序。将主观测器31M作为不依赖于应用的通用的程序存储于观测器生成部24,由代码合成部25同时构筑。图3所示的符号31的范围是
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1