CN106104469A - 软件规格间依存关系验证装置以及软件规格间依存关系验证方法 - Google Patents
软件规格间依存关系验证装置以及软件规格间依存关系验证方法 Download PDFInfo
- Publication number
- CN106104469A CN106104469A CN201480077084.7A CN201480077084A CN106104469A CN 106104469 A CN106104469 A CN 106104469A CN 201480077084 A CN201480077084 A CN 201480077084A CN 106104469 A CN106104469 A CN 106104469A
- Authority
- CN
- China
- Prior art keywords
- dependence
- specification items
- information
- rule
- software metrics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
软件规格间匹配性验证装置(100)具有:规格构造解析部(103),其取得对应的软件规格,并提取预先按照所述分层构造设定了在软件规格中的相对位置的各规格项目;规格项目匹配部(105),其使用匹配规则,来判别各规格项目间有无依存关系,其中,匹配规则记述了在对应的规格项目间应成立的依存关系;依存关系信息生成部(106),其提取依存关系信息,该依存关系信息用于指定被判定为具有依存关系的规格项目的组合;依存关系验证部(109),其根据针对特定的规格项目的组合,通过包含应该成立的匹配条件的验证规则而提取出的依存关系信息,判定是否满足匹配条件,在判定为不满足时,将该依存关系作为不匹配信息进行输出;验证结果可视化部(110),其通过预定的用户接口输出所述不匹配信息。
Description
技术领域
本发明涉及一种软件规格间依存关系验证装置以及软件规格间依存关系验证方法。
背景技术
在大规模软件开发中,在多个软件规格间产生的不匹配是产生由于开发工序返工而导致的预算超支的主要原因,需要在开发早期检测并修正这样的不匹配。为了检测软件规格间的不匹配,有效的是基于软件规格间的依存关系来验证不匹配。在这里,“依存关系”是指如某个软件的基本功能规格和详细功能规格那样,在对应的规格中包含的对应的规格项目之间成立的关系,例如表示对应的规格项目彼此“一致”等。在本说明书中,以下为了简单,将“软件规格”简称为“规格”。
作为用于验证多个规格间的依存关系的现有技术,具有如下方法:使用表示作为对象的规格间的依存关系的信息,将该信息通过图或表形式显示为图表。当采用该方法时,无需花费功夫打开多个软件规格书来横向对比,可一目了然地掌握规格间的依存关系。由此,能够检测规格间依存关系的缺陷、矛盾等不匹配。
例如在专利文献1、2中公开了这样的技术。专利文献1具有如下记载:“一种成果管理装置,其管理在由多个工序构成的软件过程的各个工序中生成的成果,该成果管理装置具备:成果输入部,其通过输入装置输入在开发预定***的所述软件过程的预定工序中生成的成果;信息提取部,其通过处理装置从所述成果输入部输入的成果中检索预定的关键字,提取表示检索到的部位的检索部位信息;追踪信息生成部,其通过处理装置,根据所述信息提取部提取出的检索部位信息生成追踪信息,该追踪信息用于管理通过所述预定的***中的所述各工序生成的成果之间的关联;以及追踪信息存储部,其在存储装置中存储所述追踪信息生成部生成的追踪信息”。另外,专利文献2公开了以下的结构:“一种在软件开发时,验证是否正确地在设计规格中反映了要求规格的方法,该方法对要求文档赋予要求规格识别符,并将其存储在文档数据库中(步骤11),其中,要求文档记述了针对作为开发对象的软件的要求规格;对基于要求文档生成的设计文档赋予设计规格识别符,并将其存储在文档数据库中(步骤12);从所述文档数据库输入要求文档,基于要求规格识别符生成要求规格列表(步骤13);从所述文档数据库输入设计文档,基于设计规格识别符生成设计规格列表(步骤14);核对针对所述要求文档、设计文档的每个项目赋予的识别符的对应,检查要求规格的过量或不足(步骤15);当在核对结果中存在过量或不足时,输出要求规格的过量或不足警告消息(步骤16)”。
现有技术文献
专利文献
专利文献1:日本特开2011-253345号公报
专利文献2:日本特开平8-249168号公报
发明内容
发明所要解决的课题
然而,在专利文献1、2的技术中,为了验证规格间依存关系需要事先在规格书中或在规格书外定义规格间的依存关系或以该依存关系为基准的信息(在专利文献1中为根据进行预定的关键字检索而检索出的检索部位信息生成的追踪信息,在专利文献2中为要求规格识别符)。此时,当规格的数量大时,针对全部的规格进行定义会花费很多工时,并且即使花费工时进行了定义,也会存在难以随着规格的修正无遗漏地更新规格间依存关系这样的问题。假设,即使无遗漏地更新了规格间依存关系,也会存在以下问题:在进行验证结果的可视化处理时显示变得大量且复杂,实际上难以掌握规格间依存关系。
另外,在上述的专利文献1、2的技术中,能够作为项目的过量或不足检测出规格间依存关系的不匹配。例如,在专利文献1中,基于作为追踪信息的追踪矩阵来判定有无成果之间的不匹配部位。另外,在专利文献2中,核对针对要求文档、设计文档的每个项目赋予的识别符的对应,检查要求规格的过量或不足。在通过这样的项目的过量或不足来检测不匹配的方法中,存在即使在依存关系间具有矛盾也无法检测的问题。作为规格间依存关系的矛盾,具有数据锁定的矛盾等。例如,当在要求规格中定义了施加排他锁来对特定数据进行访问的要求项目时,需要在对要求项目进行详细化来在设计规格中定义的相对应的设计项目中也同样地进行施加相同的排他锁来对相同的数据进行访问的定义。但是,在将文件分开而产生了确认遗漏时,有可能在设计规格项目中未定义为排他锁而错误地定义为共享锁。此时,排他锁和共享锁这样的数据访问的依存关系同时发生,在要求规格与设计规格之间产生矛盾。仅通过规格间依存关系的遗漏确认无法检测这样的规格间的矛盾。
根据以上的课题,本发明的目的在于提供一种软件规格间依存关系验证装置以及软件规格间依存关系验证方法,其能够确认在规格间无过量或不足地存在依存关系,另外还能够检测出在依存关系之间产生的依存关系的矛盾。
解决课题的手段
用于解决上述以及其他的课题的本发明的一个方式是一种软件规格间匹配性验证装置,其用于验证在具有分层构造的软件规格中包含的数据项目即规格项目的匹配性,该验证装置具有:规格构造解析部,其构成为取得至少一组相互对应的软件规格,提取预先按照所述分层构造设定了所述软件规格中的相对位置的所述各规格项目;匹配规则存储部,其存储匹配规则,该匹配规则记述了在所述对应的软件规格中包含的所述规格项目间应成立的对应关系即依存关系;规格项目匹配部,其构成为使用所述匹配规则来判别所述各规格项目间有无依存关系;依存关系信息生成部,其提取对通过所述规格项目匹配部判定为具有依存关系的所述规格项目的组合进行指定的信息,来作为依存关系信息;验证规则存储部,其存储验证规则,该验证规则在所述软件规格之间对于特定的所述规格项目的组合规定并定义应成立的匹配条件;依存关系验证部,其构成为对于特定的所述规格项目的组合,基于所述提取的依存关系信息,判定是否存在不满足在所述验证规则存储部中存储的所述验证规则所规定的所述匹配条件的依存关系,在判定为存在不满足的依存关系时,将不满足该匹配条件的依存关系作为表示所述软件规格间的不匹配的不匹配信息来输出;验证结果输出部,其构成为通过预定的用户接口输出来自所述依存关系验证部的所述不匹配信息。
发明的效果
通过本发明,提供一种软件规格间依存关系验证装置以及软件规格间依存关系验证方法,其能够确认在规格间无过量或不足地存在依存关系,另外还能够检测出在依存关系之间产生的依存关系的矛盾。
附图说明
图1表示本发明的一个实施方式的软件规格间依存关系验证装置的软件结构例子。
图2表示本发明的一个实施方式的软件规格间依存关系验证装置的硬件结构例子。
图3表示与作为验证对象的功能相关的规格数据例子。
图4表示规定图3的规格数据构造的模式(schema)定义例子。
图5表示与作为验证对象的处理的流程有关的规格数据例子。
图6表示规定图5的规格数据构造的模式(schema)定义例子。
图7表示规定图4与图6的模式定义间的匹配规则的匹配规则数据库104的结构例子。
图8表示依存关系信息数据库107的结构例子。
图9A表示规定在依存关系间成立的验证规则的验证规则数据库108的结构例子。
图9B是针对在多个规格项目间成立的依存关系进行示例的示意图。
图10表示规格构造解析处理流程1000的一个例子。
图11表示规格项目匹配处理流程1100的一个例子。
图12表示依存关系信息生成处理流程1200的一个例子。
图13表示依存关系验证处理流程1300的一个例子。
图14表示验证结果可视化处理流程1400的一个例子。
图15表示验证结果可视化画面的一个例子。
图16表示验证结果可视化画面的另一个例子。
具体实施方式
以下,对于本发明,按照其中的一个实施方式一边参照附图一边进行说明。首先,对本发明的一实施方式的软件规格间依存关系验证装置100的结构例子进行说明。图1表示本实施方式的软件规格间依存关系验证装置(以下简称为“验证装置”)100的软件结构例子。该验证装置100是用于早期检测软件规格间的不匹配从而实现开发返工的降低的装置。验证装置100包含存储验证对象的规格数据、在验证处理中使用的各种数据等的数据库(以下简称为“DB”);使用在DB中存储的各种数据用于执行本实施方式的软件规格间依存关系验证处理的各处理部。
如图1所示,作为DB,具备存储作为验证对象的软件规格的规格DB101;存储模式(schema)定义的模式定义DB102,该模式定义用于规定对于作为验证对象的软件规格应用的记述规则;存储匹配规则的匹配规则DB104,该存储匹配记述了在规格数据中包含的规格项目间的依存关系成立条件;将规格项目间有无依存关系与规格项目信息对应起来进行存储的依存关系信息DB107;以及存储验证规则的验证规则DB108,该验证规则规定并定义了用语的一致等在规格间应成立的匹配条件。在后述的验证装置100的存储器或辅助存储装置中存储这些DB,在适当的时候读出并使用。对于各DB的具体结构,在后面进行叙述。
其次,作为处理部,同样如图1所示,包含规格构造解析部103、规格项目匹配部105、依存关系信息生成部106、依存关系验证部109、以及验证结果可视化部110(验证结果输出部)。在图1中,沿着由以下说明的本实施方式的验证装置100执行的数据处理的流程,将各处理部等通过箭头关联起来。规格构造解析部103执行以下处理:参照在规格DB101中存储的解析对象的规格,从模式定义DB102中取得与该验证对象规格相对应的模式定义,解析规格构造来提取结构化的规格数据。
规格项目匹配部105执行以下的处理:从匹配规则DB104提取记述了在提取出的规格数据中包含的规格项目之间的依存关系成立条件的规则即匹配规则,并从通过规格构造解析部103提取出的规格数据中提取规格项目间有无依存关系。
依存关系信息生成部106执行以下的处理:将通过规格项目匹配部105提取出的规格项目间有无依存关系进行列表,并将其与从作为验证对象的各规格中提取出的规格项目对应起来存储到依存关系信息DB107中。
依存关系验证部109执行以下的处理:从依存关系信息DB107提取依存关系信息,并从验证规则DB108取得定义的验证规则,来验证在依存关系信息之间是否存在违反验证规则的依存关系,在判定为存在违反时将其作为规格间的不匹配信息进行输出。
验证结果可视化部110执行以下的处理:将依存关系验证部109输出的规格间的不匹配信息进行可视化来进行输出。此外,对于不匹配信息,能够适当采用通过视觉信息以外的例如声音信息等进行输出。将这些处理部构成为计算机程序,存储在后述的验证装置100的存储器或辅助存储装置中,通过处理器在适当的时候来执行。关于各处理部执行的数据处理流程,将在后面参照处理流程例子来进行叙述。
此外,在验证装置100中,设置了作为各程序运行的基础的操作***(OS)120、承担向各程序的数据输入输出处理的数据输入输出部(数据I/O部)130。关于OS120、数据I/O部130,能够根据后述的验证装置100的硬件结构、程序的种类等适当地选定并采用。
接着,对本实施方式的验证装置100的硬件结构进行说明。图2表示本实施方式的验证装置100的硬件结构的例子。如图2所示,验证装置100具备处理器201、显示装置202、输入装置203、存储器204、以及辅助存储装置205,构成为通过内部网络206将这些构成要素之间可通信地连接。处理器201是在存储器204上读入辅助存储装置205中保存的程序(图1的各处理部)以及数据(在图1的各DB以及规格DB101中存储的验证对象的软件规格书),执行与规格的管理以及不匹配验证相关的处理的CPU(Central Processing Unit中央处理器)等运算装置。显示装置202是用于显示CPU201的处理结果的输出装置,可使用适当形式的监视显示器。在显示装置202中也可以包含声音输出装置。输入装置203是用于输入处理部的执行请求或针对显示的原型的设计内容的输入装置,可以适当采用键盘、鼠标、触摸屏等。存储器204是RAM(Random Access Memory随机存取存储器)等的主存储装置,读入并保存CPU201执行的程序以及数据。辅助存储装置205是保存验证装置100执行数据处理所需要的程序(图1的各处理部)以及数据(图1的各DB)的HDD(Hard Disk Drive硬盘驱动器)、SSD(Solid State Drive固态硬盘)等存储设备。
接着,对成为本实施方式的验证装置100的规格间依存关系验证处理的对象的软件规格书(以下简称为“规格书”)进行说明。图3表示成为验证装置100的验证对象的结构化的规格书300的一个例子。在图3中,作为具体的例子,表示了通过XML(eXtensible MarkupLanguage可扩展标记语言)表现的规格书。进行验证处理的用户向验证装置100输入作为验证对象的规格书300的数据,并将其存储在图1所示的验证装置100的规格DB101中。规格书300是表现了通过该规格书规定的软件所实现的功能的一览的文档。在规格书内,通过XML标签的形式来表现规格项目的含义。规格书300是一种程序,如被符号301、302所指示的虚线包围那样,通过一览的形式表现了针对各功能(Function)分配了具有“id识别符”、“name名称”、“type类型”这样的各个属性的“Data数据”。在规格书中,如符号301所示那样,首先把在根项目(Root schema)中用于对规格书的构造进行规定的模式定义的文件参照路径指定为“Root/Functions”。通过如此指定在规格书300上应用的模式定义文件(图4),能够判别规格书的种类和构造。此外,规格书300如果结构化为能够识别在内部保存的规格项目,则不将规格书的形式限制为特定的形式。例如,即使在表形式或图形式的规格书中,通过对表的行/列或图的形状等分配规格项目,也能够与该XML例子一样应用本发明。
接着,说明对规格书300的构造进行规定的模式定义。图4表示对图3所示的规格书300的构造进行规定的模式定义400的一个例子。通过用户向验证装置100输入模式定义400,并将其存储在图1所示的验证装置100的模式定义DB102中。在图4中,作为具体例子,说明通过XML Schema表现的模式定义400。XML Schema是用于规定规格书300的分层构造的语言,在图4的例子中,首先如符号401所示,通过“schema name”为“Functions”,与图3的规格书300对应起来。并且,如符号402所示,表现了“root”项目具有作为子要素(element)的“Function”项目,并且如符号403所示,表现了“Function”项目包含“Data”项目,各“Data”项目具有“id”属性、“name”属性、以及“type”属性。规格书300需要按照该模式定义400所规定的构造来进行记述。
接着,图5以及图6与图3以及图4同样地,表示了通过XML表现的规格书500以及用于规定该规格书构造的模式定义600的例子。关于图5所示的规格书500,如同将根项目规定为“Flow”那样(符号501),是用于将数据处理的流程表现为包含多个功能的处理流程的规格书,并且将该规格书500定位为与通过一览形式表现对应软件功能的图3的规格书300具有依存关系的规格书。关于在规格书300与规格书500之间存在怎样的依存关系,将在后面进行叙述。图5的规格书500是一种程序,如被符号501、502所指示的虚线包围那样,以流程的形式来表现针对在“Flow”项目中包含的各个过程(过程(对应于图3的Function))分割了具有“id”、“name”、“type”这样的各属性的“Data”。在与通过称为“Flow”的“schema name”(符号601)对应起来的模式定义600相对应地来说明该规格书500时,在规格书500中表现了首先“root”项目具有作为子要素(element)的“Flow”项目(符号602),“Flow”项目进一步具有作为子要素的Process项目(符号603),“Process”项目具有“Data”项目、“id”属性、“name”属性、以及“type”属性。在规格书500中,把在根项目(Root schema)中用于对规格书的构造进行规定的模式定义的文件参照路径指定为“Root/Flow”。并且,将用于指定“id”属性、“name”属性以及“type”属性的各规格项目的数据路径规定为“Root/Flow/Process”。
接着,对本实施方式的验证装置100中设置的各DB进行说明。首先,对匹配规则DB104进行说明。图7表示存储了匹配规则700的匹配规则DB104的结构例子,匹配规则700记述了图3以及图5所示的规格书300、500之间的依存关系的提取方法。在匹配规则DB104中存储的匹配规则700记述了将两个模式定义400、600作为对象的依存关系提取方法。在图7所例示的匹配规则700中,分别记述了与图4所示的模式定义400相关的记述701、702以及与图6所示的模式定义600相关的记述703、704。在与各模式定义400、600相关的记述中,关于成为依存关系提取的对象的规格项目,记述了用于通过各规格内的相对位置来进行指定的项目的路径701、703;作为用于判定有无依存关系的信息的匹配要素702、704。另外,关于匹配方法,记述了规格项目的比较手段705以及组合706。在图7中,作为匹配要素702、704,从规格书300、500的模式定义400、600中提取“id”、“name”、“type”这三个。在比较手段705中,例如记述“完全一致”、“部分一致”、“通过特定变换而一致”等在各匹配要素702、704所具有的值之间成立的条件。组合706例如通过“和”或者“或”的形式来记述跨越多行记述的匹配规则700的同时或排他成立条件。对于提取的依存关系种类707,当在通过匹配方法705、706进行比较从而判定为具有依存关系时,记述可提取的依存关系的种类名称。在图7的例子中,作为两个项目702和704完全相同这样的关系,定义了“一致关系”。此外例如如果为功能与数据之间的关系,则考虑排他锁/共享锁关系、CRUD(Create生成,Read读取,Update更新,Delete删除)关系等各种各样的依存关系的种类。在后述的依存关系验证处理中使用在这里使用的依存关系的种类。具体来说,在图7的匹配规则700的例子中,定义了如下的规则:图3所示的规格书300的Root项目以下的Function项目的属性值与图5所示的规格书500的Root项目以下的Flow项目以下的Process项目的属性值相比,当id属性、name属性以及type属性分别完全一致时,判定为在两个项目之间存在称为“一致关系”的名称上的依存关系。
接着,对依存关系信息DB107进行说明。图8表示将使用图7的匹配规则700提取出的图3的规格书300的各规格项目801与图5的规格书500的各规格项目802之间的依存关系对应起来进行存储的依存关系信息DB107的结构例子。检索在规格书300、400中包含的每一个规格项目,把作为与匹配规则DB104中规定的匹配规则700相匹配而提取出的全部的规格项目间的依存关系,与依存关系种类803对应起来存储到依存关系信息DB107中。在图8的例子中,对于规格“Functions”未记录对于规格“Flow”记录的规格项目即“Start-End”。如此,当判定为与一方的规格中存在的规格项目对应的规格项目不存在于另一方的规格中时,能够通过后述的依存关系验证部109提取作为表示疑似规格项目不匹配的信息的依存关系候补信息,并通过验证关系可视化部110向用户进行提示。
接着,对验证规则DB108进行说明。图9A表示存储验证规则900的验证规则DB108的结构例子,验证规则900列举了在依存关系的种类之间应同时成立的条件。验证规则900是为了检测规格间的不匹配而规定的规则,在图9A中通过R1、R2、…这样的记号来进行识别。在判定为存在不满足验证规则900的依存关系时,判定为依存关系之间具有矛盾并将其作为不匹配进行检测。首先,记述验证所需要的输入项目的数量901以及针对该输入项目的事先条件902。事先条件902用于缩减可验证的规格书。即只将满足该事先条件的规格书视为可验证的规格书,来执行验证规则903的检查。在执行了验证时,将满足事先条件902且满足验证规则903的依存关系判定为匹配,将满足事先条件902且不满足验证规则903的依存关系判定为不匹配。
具体来说,在图9的验证规则DB108中,作为第一个规则R1,当输入了四个规格项目时,在项目1和项目2、项目3和项目4之间分别具有“一致关系”,在项目1和项目3之间具有“排他(锁)关系”的情况下,规定为与项目1、项目3分别处于“一致关系”的项目2和项目4之间还应该具有“排他(锁)关系”。这是一方定义为排他关系,而在处于一致关系的别的项目中定义为非排他关系(例如为共享关系)的、用于检测依存关系相矛盾的定义的规则。输入项目数量没有限制,定义为了记述验证规则所需要的数量的输入项目数901。当指定了输入项目数量时,可按照该数量在事先条件902以及验证规则903的部分以“项目+编号”的形式用于定义。在实际进行验证时,准备指定数量的规格项目来输入到“项目+编号”的部分来执行验证。此外,在图9A的验证规则DB108中,在事先条件902和验证规则903中利用的“关系(项目1、项目2)”这样的记述具备如下功能:检索图8所示的已提取依存关系信息800来对相应的行进行检测,返回在此定义的依存关系种类803的值。关于各验证规则900,预先设定为在对应的规格中包含的各规格项目之间应成立的关系。在图9B中,示意性地表示图9A所示的验证规则900的含义。图9B例示了如下规则(相当于图9A的规则R1):在通过列表形式和图表形式来对应地表现相同的基本功能规格的情况下,当在对应的项目1和项目3之间设定了排他关系时,还在对各自的结构进行分解而得到的详细功能规格中,在对应的项目2和项目4之间必须设定排他关系。
接着,对本实施方式的验证装置100中的各处理部的数据处理进行具体说明。首先,对规格构造解析部103的规格构造解析处理进行说明。图10是表示规格构造解析部103的规格构造解析处理流程例子的流程图。关于规格构造解析处理,执行以下的处理:将成为解析对象的规格文件作为结构化的数据读入到存储器上。在验证装置100的全体处理流程以将验证装置100的电源接通等作为契机而启动的前提下,首先,规格构造解析部103在S1001中开始了处理后,从辅助存储装置205中存储的规格DB101、模式定义DB102分别取得规格和对该规格的构造进行规定的模式定义(S1002)。例如,规格书300、500以及模式定义400、600相当于在本实施方式中取得的规格以及模式定义。接着,规格构造解析部103通过模式验证(schema validation)确认在取得的规格内没有违反模式定义的记述(S1003)。关于模式验证,例如在规格为XML模式定义为XML Schema时,能够通过一般的XML验证技术来执行,所以在这里省略详细叙述。接下来,作为S1003的确认结果,规格构造解析部103判定是否具有违反模式定义的项目(S1004),当判定为具有违反模式定义的项目时(S1004是),因为无法正确读入规格,所以结束全体处理流程并发布例外(S1007)。当判定为没有违反模式定义的项目时(S1004否),按照模式结构在存储器上读入规格(S1005),结束规格构造解析流程的执行(S1006)。通过该规格构造解析处理,将成为规格间依存关系验证对象的规格作为结构化数据读入到验证装置100中。
接着,对规格项目匹配处理进行说明。图11是表示规格项目匹配部105的规格项目匹配处理的处理流程例子的流程图。关于规格项目匹配处理执行以下的处理:判定在通过规格构造解析处理已提取的规格中包含的规格项目之间是否具有依存关系,在具有依存关系时提取该依存关系来作为依存关系信息。首先,规格项目匹配部105在S1101中开始了处理后,从规格构造解析部103取得已解析规格数据,并从匹配规则DB104取得并读入记述了规格项目间的依存关系成立条件的匹配规则700(S1102)。接着,规格项目匹配部105针对在匹配规则DB104中存储的全部匹配规则700循环执行满足该规则的依存关系的提取(S1103~S1112)。在各循环处理中,规格项目匹配部105针对在一个匹配规则700内记载的第一个规格(在本实施方式中为图3的规格书300),从规格数据中提取全部的通过项目的路径指定的规格项目集合(S1104)。另外,规格项目匹配部105针对第二个规格(在本实施方式中为图5的规格书500)同样地从规格数据中提取全部的通过项目的路径指定的规格项目集合(S1105)。接着,规格项目匹配部105针对在第一个规格中提取出的全部的规格项目实施循环处理(S1106~S1111),同样地针对在第二个规格中提取出的全部的规格项目实施循环处理(S1107~S1110)。规格项目匹配部105在各循环处理中,判定两个规格项目的各匹配要素702、704(例如规格项目内的属性)是否满足在匹配方法705、706中记载的条件(S1108)。当判定为满足匹配条件,并具有依存关系时(S1108是),规格项目匹配部105在依存关系信息DB107中设定两个项目的路径信息和依存关系的种类来作为两个项目间的依存关系信息(S1109)。当判定为不满足匹配条件时(S1108否),规格项目匹配部105因为没有依存关系而实施下一个循环处理(S1106、S1107)。因此在对于全部的匹配规则700处理结束取得了全部的依存关系信息的时间点(S1112),结束规格项目匹配处理流程(S1113)。
接着,对依存关系信息生成处理进行说明。图12是表示依存关系信息生成部106的依存关系信息生成处理1200的处理流程例子的流程图。依存关系信息生成处理是如下的处理:对通过规格项目匹配处理1100提取出的依存关系信息进行整形,并存储到依存关系信息DB107中。依存关系信息生成部106首先在S1201中开始了处理后,取得已提取的依存关系信息(S1202),对于依存关系一个都没有的规格项目设定为无依存关系(S1203)。然后,依存关系信息生成部106将依存关系信息整形为图8所示的依存关系信息DB107的记录形式后存储到依存关系信息DB107中(S1204),结束依存关系信息生成处理流程(S1205)。
接着,对依存关系验证处理进行说明。图13是表示依存关系验证部109中的依存关系验证处理的处理流程例子1300的流程图。在依存关系验证处理中,使用依存关系信息和验证规则900,验证在依存关系信息之间是否没有违反验证规则900的依存关系,当判定为有违反时,提取并输出该依存关系来作为规格间的不匹配,其中,验证规则900规定并预先定义了在规格间应成立的匹配条件。依存关系验证部109首先在S1301中开始了处理后,从依存关系信息DB107取得依存关系信息,并从验证规则DB108取得验证规则900(S1302)。接下来,依存关系验证部109对取得的每个验证规则900执行循环处理(S1303~S1309)。在每个该验证规则900的循环处理内,针对一个验证规则900生成全部的需要输入项目数量的规格项目的组合,按照全部组合的量执行循环处理(S1304~S1308)。在规格项目组合的循环处理内,依存关系验证部109判定输入项目是否满足验证规则900的事先条件(在图9A的规则R1的例子中,预定的一致关系、排他关系是否成立)(S1305)。当判定为输入项目不满足事先条件902时(S1305否),因为无法应用验证规则900所以对下一个验证规则900执行相同的判定处理(S1304)。当判定为输入项目满足验证规则900的事先条件902时(S1305是),依存关系验证部109针对输入项目验证验证规则903是否成立(S1306)。作为验证结果,在判定为验证规则903成立时设为没有不匹配,作为验证结果,在判定为验证规则903不成立时设为有不匹配,与依存关系信息相组合来生成验证结果(S1307)。当判定为规格项目组合的循环处理已结束时(S1308),依存关系验证部109针对下一个验证规则900再次执行规格项目组合的循环处理(S1304)。依存关系验证部109在结束了针对验证规则DB108中存储的全部的验证规则900的循环处理的时间点(S1309),结束依存关系验证处理流程1300的执行(S1310)。通过以上的依存关系验证处理,能够验证在对应的规格间预定的依存关系是否成立。此外,当在不同的验证规则900中设定了相同的事先条件902时,不需要对该事先条件902重复执行判定处理。从该观点出发,能够在存储器204等中保存针对特定的事先条件902的判定结果,如果针对相同的事先条件902具有已有的判定结果则可利用该判定结果。
接着,对验证结果可视化处理进行说明。图14是表示验证结果可视化部110中的验证结果可视化处理的处理流程例子1400的流程图。在验证结果可视化处理中,在显示了提取出的依存关系后,强调显示不满足验证规则900的不匹配部分,来向用户容易理解地显示在规格间的哪个部分发生了不匹配。验证结果可视化部110首先在S1401中开始了处理后,取得在依存关系信息DB107中存储的全部的依存关系信息以及全部的依存关系验证结果(S1402)。验证结果可视化部110使用取得的依存关系信息800,首先显示全部的规格项目及其之间的依存关系信息(S1403),并在该显示的相应的依存关系部分上重叠显示验证结果(S1404),结束验证结果可视化处理流程的执行(S1405)。通过该验证结果可视化处理,如果存在在规格间产生的不匹配,则能够立即通过视觉来掌握。
在图15中表示图14所示的验证结果可视化处理结果的一个例子。图15是表示通过在本实施方式的验证装置100中采用的用户接口来进行了验证结果可视化的例子的画面1500的样本。在验证结果可视化画面1500中,当在显示装置202上显示了在依存关系信息DB107中存储的全部的依存关系后,在相应的部分重叠显示验证结果。以图15的例子来说,如规格项目1(1501)、规格项目3(1502)那样在画面上的任意位置配置规格项目,并参照依存关系信息DB107将具有依存关系的规格项目之间通过线进行连接(1503)。由此,生成图15所示的网络形式的依存关系图。并且在该依存关系图上,参照应用验证规则900而得到的验证结果,来强调显示判定为不匹配的部分(1504),从而使用户能够一目了然地知道全部中的哪个部分有不匹配。
此外,当在画面上一度显示全部的依存关系信息时,显示量过多而变得繁杂时,作为图14所示的处理流程的替代,还可最初只显示用户选择的最小限度的依存关系,将范围缩小至与该依存关系直接或间接相关的依存关系,即共有相同的规格项目的依存关系,一个接一个地提取并显示。由此,能够显示与希望成为依存关系验证对象的部分没有关系的依存关系的显示,避免画面显示的繁杂。
图16是表示验证结果可视化例子的画面样本,一个接一个地提取并显示上述依存关系中的部分依存关系。在图15的全部依存关系的显示中,当显示项目数量和依存关系线的数量多从而复杂地混杂在一起而难以确认时,能够将验证结果可视化画面1600用于只将所需最小限度的依存关系信息进行可视化。图16所示的验证结果可视化画面1600具备项目选择窗口1601、一个接一个依存关系显示窗口1602。在项目选择窗口1601中通过一览的形式显示在依存关系信息DB107中包含的全部的规格项目,验证装置100的用户通过在画面上点击对象等能够选择任意一个规格项目(1603)。当用户选择了任意一个规格项目时,将该选择的规格项目作为起点(1604),并一个接一个地提取通过依存关系与作为起点的规格项目关联起来的规格项目。将这样提取的依存关系在一个接一个依存关系显示窗口1602内通过树结构来显示。由此,用户能够只取出并显示认为想要确认验证结果的范围的依存关系,并且在树结构中依存关系线不混杂,所以用户能够以更短时间确认与期望的规格项目相关的依存关系。此外,因为***性地表示在一个接一个提取出的依存关系上在哪里存在不匹配,所以例如,通过强调显示在从作为起点的规格项目直到不匹配的部位的规格项目的路径中存在的规格项目,对于用户来说能够更容易理解地提示验证结果。
如以上说明的那样,根据本实施方式的规格间依存关系验证装置100,能够容易地确认是否无过量或不足地存在对应的规格书300、500中包含的各规格项目间的依存关系。此外,还能够容易地发现在对应的规格项目之间存在的依存关系之间产生的不匹配。
本发明并不限定于上述的实施方式,包含各种变形例子。例如,上述的实施方式是为了容易理解地说明本发明而详细说明的实施方式,但是并不限于必须具备说明的全部结构。另外,能够将实施方式的结构的一部分置换为其他的结构,另外,还可对某个实施方式的结构追加其他的结构。
符号的说明
100:规格间依存关系验证装置
101:规格DB
102:模式定义DB
103:规格构造解析部
104:匹配规则DB
105:规格项目匹配部
106:依存关系信息生成部
107:依存关系信息DB
108:验证规则DB
109:依存关系验证部
110:验证结果可视化部
201:处理器
202:显示装置
203:输入装置
204:存储器
205:辅助存储装置。
Claims (10)
1.一种软件规格间匹配性验证装置,其用于验证在具有分层构造的软件规格中包含的数据项目即规格项目的匹配性,其特征在于,具有:
规格构造解析部,其构成为取得至少一组的相互对应的软件规格,并提取预先按照所述分层构造设定了在所述软件规格中的相对位置的所述各规格项目;
匹配规则存储部,其存储有匹配规则,该匹配规则记述了在所述对应的软件规格中包含的所述规格项目间应成立的对应关系即依存关系;
规格项目匹配部,其构成为使用所述匹配规则来判别所述各规格项目间有无依存关系;
依存关系信息生成部,其构成为提取对通过所述规格项目匹配部判定为具有依存关系的所述规格项目的组合进行指定的信息,来作为依存关系信息;
验证规则存储部,其存储有验证规则,该验证规则对于所述软件规格之间特定的所述规格项目的组合规定并定义了应成立的匹配条件;
依存关系验证部,其构成为对于特定的所述规格项目的组合,基于所述提取的依存关系信息,判定是否具有不满足在所述验证规则存储部中存储的所述验证规则所规定的所述匹配条件的依存关系,在判定为具有不满足的依存关系时,将不满足该匹配条件的依存关系作为表示所述软件规格间的不匹配的不匹配信息来输出;以及
验证结果输出部,其构成为通过预定的用户接口输出来自所述依存关系验证部的所述不匹配信息。
2.根据权利要求1所述的软件规格间匹配性验证装置,其特征在于,
所述依存关系信息生成部在按照所述匹配规则提取所述软件规格间的依存关系信息时,当判定为在一方的所述软件规格中具有满足该匹配规则的规格项目,在另一方的所述软件规格中没有满足该匹配规则的规格项目的情况下,提取满足该匹配规则的规格项目来作为依存关系候补信息,所述依存关系验证部采用使用所述依存关系信息和所述依存关系候补信息来记述的所述验证规则来检测不匹配的候补。
3.根据权利要求1所述的软件规格间匹配性验证装置,其特征在于,
在所述匹配规则中,对于每个该匹配规则,包含表示该匹配规则所规定的依存关系的种类的信息即依存关系种类信息,在所述验证规则中包含在多个所述依存关系种类间应满足的逻辑条件,所述依存关系信息生成部在提取所述依存关系信息时,作为依存关系信息提取规格项目间有无依存关系,并且还提取该依存关系的种类,所述依存关系验证部基于在提取的多个所述依存关系种类间应满足的所述逻辑条件,来检测所述规格项目间的依存关系种类之间的不匹配。
4.根据权利要求1所述的软件规格间匹配性验证装置,其特征在于,
所述验证结果输出部通过将具有依存关系的规格项目间的关联可视化的形式来显示提取出的所述依存关系信息,并在显示的该规格项目间的关联上重叠显示检测出的不匹配信息。
5.根据权利要求4所述的软件规格间匹配性验证装置,其特征在于,
所述验证结果输出部在显示提取出的依存关系信息时,显示可选择地显示在作为验证对象的所述规格中包含的所述规格项目的画面,将选择的该规格项目作为起点来解析已提取的多个所述依存关系信息,并且提取并显示全部的与成为起点的所述规格项目直接或间接地具有依存关系的规格项目。
6.根据权利要求5所述的软件规格间匹配性验证装置,其特征在于,
所述验证结果输出部在与选择出的所述规格项目相关联显示的依存关系上重叠显示检测出的所述不匹配信息时,进行显示从而能够识别将从成为所述起点的规格项目开始直到判定为不匹配的依存关系的部分为止进行连接的规格项目。
7.根据权利要求1所述的软件规格间匹配性验证装置,其特征在于,
所述规格项目匹配部针对表示对所述规格项目赋予的属性的属性值,使用以该属性值的一致作为依存关系成立条件的所述匹配规则来提取所述依存关系信息。
8.根据权利要求3所述的软件规格间匹配性验证装置,其特征在于,
在所述验证规则中设定了输入项目数,该输入项目数表示应基于该验证规则判定匹配性的规格项目的数量,所述依存关系验证部在使用所述依存关系信息来检测所述规格项目间的不匹配时,从规格中提取在所述验证规则中设定的所述输入项目数的规格项目,针对该全部的规格项目的组合使用所述验证规则来验证不匹配。
9.根据权利要求8所述的软件规格间匹配性验证装置,其特征在于,
针对每个所述验证规则设定了事先条件,该事先条件规定了在以所述输入项目数提取出的所述规格项目中的一部分规格项目之间成立的依存关系的条件,所述依存关系验证部在从规格中提取在所述验证规则中设定的所述输入项目数的规格项目时,在判定为通过已应用的其他的验证规则已经执行了与所述事先条件相关的验证时,再次利用在该执行时判定为满足所述事先条件的规格项目组合,不判定所述规格项目是否满足所述事先条件来执行验证。
10.一种软件规格间匹配性验证方法,其用于验证在具有分层构造的软件规格中包含的数据项目即规格项目的匹配性,其特征在于,
通过计算机取得至少一组的相互对应的软件规格,并提取预先按照所述分层构造设定了在所述软件规格中的相对位置的所述各规格项目,其中,所述计算机具有存储数据的存储器以及使用该数据执行运算处理的处理器,
存储匹配规则,该匹配规则记述了在所述对应的软件规格中包含的所述规格项目间应成立的对应关系即依存关系,
使用所述匹配规则来判别所述各规格项目间有无依存关系,
提取对通过所述规格项目匹配部判定为具有依存关系的所述规格项目的组合进行指定的信息,来作为依存关系信息,
存储验证规则,该验证规则对于所述软件规格之间特定的所述规格项目的组合规定并定义了应成立的匹配条件,
对于特定的所述规格项目的组合,基于所述提取的依存关系信息,判定是否具有不满足在所述验证规则存储部中存储的所述验证规则所规定的所述匹配条件的依存关系,在判定为具有不满足的依存关系时,将不满足该匹配条件的依存关系作为表示所述软件规格间的不匹配的不匹配信息来输出,
通过预定的用户接口输出来自所述依存关系验证部的所述不匹配信息。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/058171 WO2015145556A1 (ja) | 2014-03-25 | 2014-03-25 | ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106104469A true CN106104469A (zh) | 2016-11-09 |
Family
ID=54194157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480077084.7A Withdrawn CN106104469A (zh) | 2014-03-25 | 2014-03-25 | 软件规格间依存关系验证装置以及软件规格间依存关系验证方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170131973A1 (zh) |
JP (1) | JP6185148B2 (zh) |
CN (1) | CN106104469A (zh) |
WO (1) | WO2015145556A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017187537A1 (ja) * | 2016-04-26 | 2017-11-02 | 三菱電機株式会社 | 依存関係抽出装置および依存関係抽出プログラム |
JP7018356B2 (ja) * | 2018-05-24 | 2022-02-10 | 株式会社日立製作所 | ビジュアルプログラミングツールを用いてプログラムを作成することを支援する装置および方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11102291A (ja) * | 1997-09-29 | 1999-04-13 | Hitachi Ltd | 仕様整合性検証システム |
JP2006091971A (ja) * | 2004-09-21 | 2006-04-06 | Hewlett-Packard Development Co Lp | ネットワークデータ表示方法・装置・プログラム |
US20080162455A1 (en) * | 2006-12-27 | 2008-07-03 | Rakshit Daga | Determination of document similarity |
US20110246968A1 (en) * | 2010-04-01 | 2011-10-06 | Microsoft Corporation | Code-Clone Detection and Analysis |
US20120159434A1 (en) * | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Code clone notification and architectural change visualization |
US20120192169A1 (en) * | 2011-01-20 | 2012-07-26 | Fujitsu Limited | Optimizing Libraries for Validating C++ Programs Using Symbolic Execution |
CN102707938A (zh) * | 2011-03-10 | 2012-10-03 | 株式会社日立制作所 | 表形式软件规格制作支援方法及装置 |
JP2013080355A (ja) * | 2011-10-03 | 2013-05-02 | Mitsubishi Electric Corp | ソフトウェア再利用支援装置、ソフトウェア再利用支援方法、及び、プログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3724847B2 (ja) * | 1995-06-05 | 2005-12-07 | 株式会社日立製作所 | 構造化文書差分抽出方法および装置 |
US6282698B1 (en) * | 1998-02-09 | 2001-08-28 | Lucent Technologies Inc. | Detecting similarities in Java sources from bytecodes |
US7295965B2 (en) * | 2001-06-29 | 2007-11-13 | Honeywell International Inc. | Method and apparatus for determining a measure of similarity between natural language sentences |
CA2435068C (en) * | 2001-11-19 | 2013-12-10 | Mitsubishi Denki Kabushiki Kaisha | Gateway apparatus and gateway setup tool |
US7818657B1 (en) * | 2002-04-01 | 2010-10-19 | Fannie Mae | Electronic document for mortgage transactions |
US7503035B2 (en) * | 2003-11-25 | 2009-03-10 | Software Analysis And Forensic Engineering Corp. | Software tool for detecting plagiarism in computer source code |
GB0410047D0 (en) * | 2004-05-05 | 2004-06-09 | Silverdata Ltd | An analytical software design system |
ES2687433T3 (es) * | 2005-02-03 | 2018-10-25 | Mitsubishi Denki Kabushiki Kaisha | Dispositivo y método de soporte de la generación de código de programa, dispositivo y método de ejecución del programa, dispositivo y método de compresión del código de programa, programa para el mismo |
US8448158B2 (en) * | 2005-02-03 | 2013-05-21 | Mitsubishi Electric Corporation | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
US9892111B2 (en) * | 2006-10-10 | 2018-02-13 | Abbyy Production Llc | Method and device to estimate similarity between documents having multiple segments |
US9189482B2 (en) * | 2012-10-10 | 2015-11-17 | Abbyy Infopoisk Llc | Similar document search |
US9235573B2 (en) * | 2006-10-10 | 2016-01-12 | Abbyy Infopoisk Llc | Universal difference measure |
US8321834B2 (en) * | 2008-09-25 | 2012-11-27 | International Business Machines Corporation | Framework for automatically merging customizations to structured code that has been refactored |
US8286132B2 (en) * | 2008-09-25 | 2012-10-09 | International Business Machines Corporation | Comparing and merging structured documents syntactically and semantically |
US9514103B2 (en) * | 2010-02-05 | 2016-12-06 | Palo Alto Research Center Incorporated | Effective system and method for visual document comparison using localized two-dimensional visual fingerprints |
US8819856B1 (en) * | 2012-08-06 | 2014-08-26 | Google Inc. | Detecting and preventing noncompliant use of source code |
-
2014
- 2014-03-25 CN CN201480077084.7A patent/CN106104469A/zh not_active Withdrawn
- 2014-03-25 US US15/118,156 patent/US20170131973A1/en not_active Abandoned
- 2014-03-25 WO PCT/JP2014/058171 patent/WO2015145556A1/ja active Application Filing
- 2014-03-25 JP JP2016509656A patent/JP6185148B2/ja not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11102291A (ja) * | 1997-09-29 | 1999-04-13 | Hitachi Ltd | 仕様整合性検証システム |
JP2006091971A (ja) * | 2004-09-21 | 2006-04-06 | Hewlett-Packard Development Co Lp | ネットワークデータ表示方法・装置・プログラム |
US20080162455A1 (en) * | 2006-12-27 | 2008-07-03 | Rakshit Daga | Determination of document similarity |
US20110246968A1 (en) * | 2010-04-01 | 2011-10-06 | Microsoft Corporation | Code-Clone Detection and Analysis |
US20120159434A1 (en) * | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Code clone notification and architectural change visualization |
US20120192169A1 (en) * | 2011-01-20 | 2012-07-26 | Fujitsu Limited | Optimizing Libraries for Validating C++ Programs Using Symbolic Execution |
CN102707938A (zh) * | 2011-03-10 | 2012-10-03 | 株式会社日立制作所 | 表形式软件规格制作支援方法及装置 |
JP2013080355A (ja) * | 2011-10-03 | 2013-05-02 | Mitsubishi Electric Corp | ソフトウェア再利用支援装置、ソフトウェア再利用支援方法、及び、プログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2015145556A1 (ja) | 2015-10-01 |
JP6185148B2 (ja) | 2017-08-23 |
JPWO2015145556A1 (ja) | 2017-04-13 |
US20170131973A1 (en) | 2017-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983098B1 (en) | Systems and methods for modeling and generating test requirements for software applications | |
Mannhardt | Multi-perspective process mining | |
CN101454779B (zh) | 基于搜索的应用开发框架 | |
KR100558952B1 (ko) | 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체 | |
JP2001519559A (ja) | 動的に生成される質問と回答の選択肢を用いたコンピューターによる決定管理システム | |
CA2673422C (en) | Software for facet classification and information management | |
CN101661493A (zh) | 一种交互式电子技术手册浏览*** | |
JP2005521135A (ja) | データベースから対象特許の家系経路を早い内に分析して提供する方法 | |
Cummaudo et al. | What should I document? A preliminary systematic mapping study into API documentation knowledge | |
Wang et al. | Integrated modelling of business process models and business rules: a research agenda | |
CN106104469A (zh) | 软件规格间依存关系验证装置以及软件规格间依存关系验证方法 | |
CN201540571U (zh) | 一种交互式电子技术手册浏览*** | |
JP2006107375A (ja) | 文書管理システム、文書管理方法、プログラムおよび記憶媒体 | |
Waterman et al. | How much architecture? Reducing the up-front effort | |
US20230035835A1 (en) | System and method of a modular framework for configuration and reuse of web components | |
Urbas et al. | Speedith: a reasoner for spider diagrams | |
Calvagna et al. | Combinatorial testing for feature models using citlab | |
Ripon et al. | Semantic web based analysis of product line variant model | |
Swearngin et al. | Easing the generation of predictive human performance models from legacy systems | |
D’Andrea et al. | 3D ICONS metadata schema for 3D objects | |
US7890303B2 (en) | Parameter managing method, design parameter managing system, program and computer readable recording medium | |
Cole et al. | Quill: A framework for constructing negotiated texts-with a case study on the us constitutional convention of 1787 | |
JP2018106494A (ja) | コンピュータシステム、管理方法およびプログラム | |
Shankar et al. | Use of Protégé-2000 to Encode Clinical Guidelines. | |
Mathaikutty et al. | SoC design space exploration through automated IP selection from systemC IP library |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20161109 |
|
WW01 | Invention patent application withdrawn after publication |