基于形式分析驱动的需求规格书的演化方法

文档序号:6607785阅读:127来源:国知局
专利名称:基于形式分析驱动的需求规格书的演化方法
基于形式分析驱动的需求规格书的演化方法
背景技术
尽管依赖于特定的设计模型,但是软件开发过程(即,软件生命周期)通常包括一 些任务,例如开发需求、设计和测试模型、以及开发代码。总体上,需求是一种将特定产品或 服务应当如何实施文件化的需要。更具体地,需求是确定系统的必要属性、能力、特性或质 量的说明。需求被用作产品开发过程的设计阶段的输入,并且表明了对于特定应用而言什 么样的元素和功能才是必需的。在需求开发期之前可以是可行性研究或者需求收集阶段,其中,从顾客、用户或其 他利益相关者那里获取需求。需求期也可被分解为分析、规格化和验证阶段,其中,使需求 文件化并且检查一致性、完整性、正确性以及潜在的歧义性。对需求进行开发,也称为需求工程,是软件密集型系统的开发过程中的关键步骤。 在软件设计领域的技术人员中间已经完全认可了的是系统中的缺陷的很大百分比均可回 溯到需求规格书中的缺陷。在系统工程的设计、实施和测试阶段,修正需求错误的成本花费 以指数方式增长。需求工程处于系统设计和用户期望之间的边界处,并且为确保需求规格书的质量 负责。为此,需求工程应当以这样的方式实施,即确保需求规格书精确、非歧义、一致并且完 整,而且满足利益相关者的期望。为在开发质量需求规格书方面支持需求工程师,已经开发了许多工具和方法。这 些工具的功能不同,其范围从提供用于储存规格书的储存库到提供基于形式方法的分析引 擎来分析规格书。许多工具还提供对规格书进行结构管理和版本管理的能力,并且也提供 在系统工程生命周期的不同阶段上支持需求可溯性的能力。然而,所需要的是构造成提供 迭代开发过程的自动系统,该迭代开发过程将形式分析结果直接并入需求规格书的开发阶 段中。

发明内容
用于开发规格书的方法,该方法包括接收限定了规格书功能的多个需求,其中,多 个需求利用形式模型来表达。该方法还包括利用形式分析来仿真多个需求,并确定该多个 需求是否满足一组预定的准则。该方法还包括生成形式分析的总结,并且如果一组预定准 则中的至少一个不被满足,则修改多个需求中的至少一个。本发明还提供了以下方案方案1. 一种用于开发规格书的方法,所述方法包括如下步骤接收限定了所述规格书功能的多个需求,其中,使用形式模型来表达所述多个需 求;使用形式分析来对所述多个需求进行仿真;确定所述多个需求是否满足一组预定准则;产生所述形式分析的总结;以及如果所述一组预定准则中的至少一个准则未被满足,则修改所述多个需求中的至少一个需求。方案2.如方案1所述的方法,其特征在于,进一步包括修改所述产生的总结,并且 使用所述被修改的总结作为规格书条目,由此改进所述规格书。方案3.如方案2所述的方法,其特征在于,进一步包括使用由所述形式分析提供 的反馈来迭代地改进所述规格书。方案4.如方案3所述的方法,其特征在于,利用所述被修改的总结来重复下述步 骤对所述多个需求进行仿真、确定所述需求是否满足所述一组准则、以及产生总结。方案5.如方案1所述的方法,其特征在于,所述形式分析的总结指示了所述多个 需求是否满足所述一组预定准则。方案6.如方案1所述的方法,其特征在于,使用形式分析来对所述多个需求进行 仿真包括使用至少一个算法来分析所述需求。方案7.如方案1所述的方法,其特征在于,确定所述多个需求是否满足一组预定 准则包括确定所述需求是否具备下列中的至少一个完整、正确、一致、以及无歧义。方案8.如方案1所述的方法,其特征在于,进一步包括修改所述需求中不满足所 述一组预定准则的部分。方案9.如方案8所述的方法,其特征在于,进一步包括将所述需求的被修改的部 分并入所述规格书中。方案10.如方案1所述的方法,其特征在于,所述形式模型是以状态机、方案、或结 构化英语的形式。方案11.如方案1所述的方法,其特征在于,所述被修改的总结被并入所述规格书 中以改进所述规格书。方案12. —种方法,包括如下步骤接收限定了规格书的功能的多个需求,其中,使用形式模型来表达所述多个需 求;使用形式分析来检测所述多个需求的缺陷;产生包括了所述形式分析的结果的总结;以及通过将所述形式分析的结果作为规格书条目并入所述规格书中来改进所述多个需求。方案13.如方案12所述的方法,其特征在于,使用形式分析来检测所述多个需求 的缺陷包括确定所述规格书的行为。方案14.如方案13所述的方法,其特征在于,基于所述形式分析的结果来改进所 述多个需求包括通过指定预期的无缺陷的总结来改正缺陷。方案15.如方案14所述的方法,其特征在于,进一步包括将所述预期的无缺陷的 总结并入所述规格书中。方案16.如方案12所述的方法,其特征在于,使用形式分析检测所述多个需求的 缺陷包括使用至少一个算法来分析所述需求。方案17.如方案12所述的方法,其特征在于,检测所述多个需求的缺陷包括确定 所述多个需求是否具备下列中的一个或多个不完整、不正确、不一致、或有歧义。方案18. —种用于开发规格书的系统,所述系统包括
构造成接收多个需求的数据库;以及构造成使用形式分析来对所述多个需求进行仿真的分析引擎,其中,所述形式分 析识别出所述需求中的缺陷;其中,所述需求被改进以改正所述缺陷,并且所述被改进的需求被并入所述规格 书中。方案19.如方案18所述的系统,其特征在于,所述分析引擎产生所述形式分析的总结。方案20.如方案18所述的系统,其特征在于,所述形式分析向所述需求应用多个 算法以确定所述需求是否具备下列中的至少一个不完整、不正确、不一致、或有歧义。其它特征将从以下结合附图的描述及所附权利要求变得明显。


图1根据实施例示出了示例性的需求规格书开发系统;图2根据实施例示出了用于开发需求规格书的示例性过程;图3示出了示例性聚焦操作是状态机;以及图4示出了示例性状态机子句(clause)。
具体实施例方式本文描述的实施例大致涉及用于开发需求规格书规格书的系统和过程,更具体地 说,涉及将形式分析结果直接并入需求规格书的开发阶段中的方法。该系统包括构造成实 施迭代开发过程的软件开发工具,该迭代开发过程将形式分析算法紧密整合到反馈环中, 使得分析结果能够被并入规格书中。利用该方式,分析算法和规格书形式体系彼此互补,其原因在于代表分析结果的 数据结构与规格书子句的数据结构是相同的。这允许分析结果被直接用作规格书机制或条 目。换句话说,用户可指定意向结果,以便在规格书上执行特定分析。该系统提供了规格书 和分析的活动之间的非常紧密的相互作用。这种紧密相互作用使得能够进行用于规格书和 分析的闭环迭代过程。该方法将文本需求转换为需求的形式模型,其被证明是一致且完整的。该方法跨 越了非形式的需求和形式设计模型(例如通常用在基于模型的软件设计中的状态图)之间 的间隙。由于该方法在内部使用了形式模型,所以这使得通过在对规格书进行操作的分析 算法的支持下能够进行需求规格书的快速迭代开发。总的方法包括以少量的增加来开发规 格书。在规格书的各次增加之后,应用各种分析算法,这些分析算法设计成通过在开发过程 的任何给定点处对规格书进行总结或者通过识别规格书中的逻辑缺陷而向用户提供反馈。 分析算法产生的总结信息可作为需求被并入规格书中,由此补充并改进规格书。图1示出了示例性需求开发系统10,其具有构造成从用户16接收输入需求14的 软件开发工具12。在一个实施例中,用户16例如可以是软件工程师、需求工程师或主题专 家。可使用需求规格书所支持的多种不同设计语言来表达需求14。通常被称为形式体 系的设计语言可以本质上是图形化的或者文本的,并且可包括但不限于,转换系统(例如,状态机)、事件顺序图表(例如,方案(scenario)或顺序框图)、以及结构化的英语编程。 以此方式,用户16能够利用不同的形式体系来开发需求14。这又允许规格书涉及由不同 形式体系所指定的系统部件之间的相互作用,并且允许规格书作为一个统一的模型而被储 存,从而允许向其他系统工具的简化导入和导出。需求可被数据库18储存和/或处理。形式模型被分析引擎20评估,分析引擎20包括多个算法,这些算法构造成对如形 式模型(即形式体系)所表示那样的规格书需求14进行仿真。分析引擎20构造成探究在 规格书开发过程中的任何给定点处需求已经指定了什么样的结论。特别地,分析引擎20用 一组预定准则来评估所指定的需求。分析的结果被总结并返回给用户16,然后用户16便可 选择检查这些结果并且将它们添加到规格书中,或者在最前面声明所有的分析结果均将被 添加到需求规格书中作为新的规格书条目。添加分析结果给规格书指定了附加约束,从而 使得任何进一步分析的结果均必须符合所添加的分析结果(以及附加约束),由此改进规 格书。审查并修改分析结果,以及基于该分析结果来改进规格书的能力形成了反馈环,该反 馈环提供用于开发需求规格书的闭环过程。因此,如下面进一步讨论的,规格书中的错误或 缺陷在该过程的开发阶段被识别出来并且可通过修订需求而被改正。在一种方式中,该组准则包括检查需求中涉及正确性、完整性、一致性和歧义性的 缺陷。正确的规格书指的是文档化的需求是否精确地反映了利益相关者(即与系统有关的 任何人,例如用户、测试者、开发小组、管理人员等)的需求。完整的规格书能够清楚地确定 出其范围并且完整地指定该范围内的所有需求,不会有遗漏信息。当规格书中没有哪个部分与其他部分相抵触并且规格书与所有授权的外部文件 完全一致时,规格书是一致的。换句话说,规格书中的逻辑不一致性可能关于一个条件限定 两个动作,其中这两个动作自身是不一致的。例如,在汽车系统中,一个需求可指定条件A 导致动作X,其中动作X是制动功能,而另一个需求可指定条件A导致动作Y,而动作Y是加 速功能。由于汽车不可能在制动的时候加速,因此这两个需求在逻辑上是不一致的。关于规格书没有歧义,是指其应当是精确的并且不会给不同的人留下多种解释的 空间。需求应当被简明地陈述而不依靠技术行话、未定义的缩略语或者其他内行专用的措 辞。规格书应当表达客观事实并且只应有一种解释。应避免模糊的主语、形容词、介词、动 词、主语短语、否定陈述以及复合陈述。总之,形式限定的语言和数学是确定的并且无歧义 的。在提供了分析结果后,软件开发工具12使得用户16能够“聚焦”在规格书中已被 识别出缺陷的特定部分上。通过聚焦在规格书中的缺陷部分上,用户16能够隔离该缺陷, 并且分析该缺陷的根源原因。然后,用户16可生成改正了该缺陷的替代性模型。该模型本 质上修改了与需求关联的条件,并且可被并回到规格书中,以及被重新分析以检查任何其 它缺陷。图2示出了用于开发需求的示例性方法。在步骤200,用户16将需求输入到软件 开发工具12中。需求可以是任意合适的设计语言的形式,包括但不限于,转换系统、事件顺 序图表、以及结构化的英语编程。在步骤202,分析引擎20利用形式分析来对利用形式模 型所表达的需求进行仿真。在步骤204,形式分析应用多个算法以确定需求14是否满足一 组预定准则,在至少一个实施例中,该组预定准则包括检查需求14以确定它们是否正确、 一致、完整并且无歧义。在步骤206,产生形式分析的总结并且将其提供给用户16。在步骤208,可根据通过审查分析结果所识别出的任何缺陷来改正分析结果。然后在步骤210,将这 些改正的分析结果并入规格书中。可注意到,改正分析结果并且将其并入规格书与直接改 正规格书是截然不同的。在测试软件的同时进行适当的类推将会发现错误。假设程序P给 出了不正确的输出02而不是正确的输出01。一旦发现了该缺陷,则可以改变P的代码来修 正该缺陷(这类似于改正规格书),或者可以仅仅“声明,,P应当产生输出01 (这类似于改 正分析结果)。正如可以看出的,通过“声明”分析结果为“预期”分析结果从而来改正分析 结果并且将其并入规格书中是比改正规格书要强大得多的操作。下面是利用状态机开发需求规格书的过程的特定示例。利用结构化转换系统 (STS)形式体系来开发规格书,下面通过示例介绍该结构化转换系统(STS)形式体系。所提 出的方法处理用于上述需求的每个准则。由于具有用于规格书的形式限定的语言,所以精 确和非歧义的特性已经得到满足。该方法使用分析算法以便自动检测规格书中的不一致性 和不完整性。下面说明了使用嵌入式控制器的需求片段的方法。该片段聚焦在控制器的失效和 恢复行为上。高层次的需求被总结如下。该特征具有两种操作模式a)手动模式和b)自 动模式。该特征具有下述操作状态a)停用;b)关闭;c)接合;以及d)失效。该特征初始 处于关闭的操作状态,并且通知用户该特征中的故障。一旦发生故障,则该特征必须被重置 以恢复并回到正常操作。重置事件将使该特征重新初始化到其初始状态。上面的模式和操作状态代表了在一些汽车应用中所遇到的一类需求规格书。该方 法开始时首先确定规格书中的事件并且将它们分类为输入事件或输出事件。在上述情况 下,可确定出下面的事件1)失效,其为输入事件;2)重置,其为输出事件;以及3)通知,其 为输出事件。作为该示例的一部分,添加了输出事件e以指示该特征无需采取任何动作。方法中的下一个步骤是识别规格书中所有的有效状态。在该示例中,仅对该特征 的操作模式和操作状态感兴趣。在该规格书中,模式和状态值的每种组合均是允许的。因 此,对于该规格书存在4X2 = 8种有效状态,如下所示
权利要求
1.一种用于开发规格书的方法,所述方法包括如下步骤接收限定了所述规格书功能的多个需求,其中,使用形式模型来表达所述多个需求; 使用形式分析来对所述多个需求进行仿真; 确定所述多个需求是否满足一组预定准则; 产生所述形式分析的总结;以及如果所述一组预定准则中的至少一个准则未被满足,则修改所述多个需求中的至少一 个需求。
2.如权利要求1所述的方法,其特征在于,进一步包括修改所述产生的总结,并且使用 所述被修改的总结作为规格书条目,由此改进所述规格书。
3.如权利要求2所述的方法,其特征在于,进一步包括使用由所述形式分析提供的反 馈来迭代地改进所述规格书。
4.如权利要求3所述的方法,其特征在于,利用所述被修改的总结来重复下述步骤对 所述多个需求进行仿真、确定所述需求是否满足所述一组准则、以及产生总结。
5.如权利要求1所述的方法,其特征在于,所述形式分析的总结指示了所述多个需求 是否满足所述一组预定准则。
6 如权利要求1所述的方法,其特征在于,使用形式分析来对所述多个需求进行仿真 包括使用至少一个算法来分析所述需求。
7.如权利要求1所述的方法,其特征在于,确定所述多个需求是否满足一组预定准则 包括确定所述需求是否具备下列中的至少一个完整、正确、一致、以及无歧义。
8.如权利要求1所述的方法,其特征在于,进一步包括修改所述需求中不满足所述一 组预定准则的部分。
9.一种方法,包括如下步骤接收限定了规格书的功能的多个需求,其中,使用形式模型来表达所述多个需求; 使用形式分析来检测所述多个需求的缺陷; 产生包括了所述形式分析的结果的总结;以及通过将所述形式分析的结果作为规格书条目并入所述规格书中来改进所述多个需求。
10.一种用于开发规格书的系统,所述系统包括 构造成接收多个需求的数据库;以及构造成使用形式分析来对所述多个需求进行仿真的分析引擎,其中,所述形式分析识 别出所述需求中的缺陷;其中,所述需求被改进以改正所述缺陷,并且所述被改进的需求被并入所述规格书中。
全文摘要
本发明涉及基于形式分析驱动的需求规格书的演化方法。具体地,提供了一种用于开发规格书的方法,其包括接收限定了规格书的功能的多个需求,其中,使用形式模型表达多个需求。该方法还包括使用算法分析多个需求并且确定多个需求是否满足一组预定准则。该方法还包括产生形式分析的总结并且通过并入被改正的分析结果来改进需求。
文档编号G06F17/22GK101996163SQ20101025493
公开日2011年3月30日 申请日期2010年8月13日 优先权日2009年8月14日
发明者A·A·贾卡里, P·V·V·贾内桑, P·萨姆帕思, R·塞图 申请人:通用汽车环球科技运作公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1