形式化说明技术
软件工程 第4章 形式化说明技术

行为建模
1)
2)
3)
系统的需求规格说明通常是用自然语言来叙 述的,但是用自然语言描述往往会出现二义 性。 为了直观地分析系统的动作,从特定的视点 出发描述系统的行为,需要采用动态分析的 方法。 最常用的动态分析方法
有穷状态机
时序图 Petri网
状态迁移图
状态迁移图是通过描述系统的
状态及引起系统状态转换的事 件来表示系统的行为。
形式化方法
形式化方法是建立在严格数学基础上、具有精确数学语义 的开发方法,即就是用数学语言来描述软件的设计规约。 形式化方法可以分为形式化描述和建立在形式化描述基础之 上的形式化开发 形式化的描述:用形式化的语言(具有严格的语法语义定 义的语言)描述描述软件系统及其行为模式,以更好地刻 画软件系统的性质。 形式化的开发:用形式化的语言来描述软件需求和特征, 并且通过推理验证来保证最终的软件产品是否满足这些需 求和具备这些特征,符合给定的行为模式。
应用形式化方法的准则
应该选用适当的形式化方法:主要包括有限状态机、时 序图、Petri网、Z、VDM等。 应该形式化,但不要过分形式化 应该估算成本 应该有形式化方法顾问随时提供咨询 不应该放弃传统的开发方法 应该建立详尽的文档 不应该放弃质量标准 不应该盲目依赖形式化方法 应该测试、测试再测试 应该重用
半形式化方法
软件工程使用方法可分成:非形式化、半形式化和形式化 半形式化: 结构化分析(SA)方法 利用图形等半形式化的描述方式表达需求:用数据流图、 状态转换图或实体-联系图建立数据、行为和功能模型, 形成需求说明书中的主要部分。 利用结构化语言描述加工逻辑:结构化语言是介于自然 语言和形式语言之间的一种半形式语言。加工逻辑结构 可分成外层和内层两层:外层用来描述控制结构,采用 顺序、选择、重复三种基本结构;内层对于顺序执行和 循环执行的动作,用结构化语言描述。 缺点:可能存在矛盾、二义性、含糊性、不完整性及抽 象层次混乱等问题。
4 形式化说明技术

10
图4.1 保险箱的状态转换图 状态集J:{保险箱锁定, , ,保险箱解锁,报警}。 状态集 :{保险箱锁定,A,B,保险箱解锁,报警}。 :{保险箱锁定 输入集K:{ :{1L, , , , , }。 输入集 :{ ,1R,2L,2R,3L,3R}。 转换函数T: 所示。 转换函数 :如Page78 表4.1所示。 所示 初始态S:保险箱锁定。 初始态 :保险箱锁定。 终态集F:{保险箱解锁,报警}。 :{保险箱解锁 终态集 :{保险箱解锁,报警}。
8
应用形式化方法的准则
(1) 应该选用适当的表示方法。 (2) 应该形式化,但避免过分形式化。 (3) 应该估算成本。 (4) 应该有形式化方法顾问随时提供咨询。 (5) 不应该放弃传统的开发方法。 (6) 应该建立详尽的文档。 (7) 不应该放弃质量标准。 (8) 不应该盲目依赖形式化方法。
9
4.2 有穷状态机
4
非形式化方法的缺点
自然语言描述需求规格说明: 矛盾:指一组相互冲突的陈述。 二义性:读者可以用不同方式理解的陈述。 不完整性:缺乏对细节的描述 含糊性。笼统的陈述,没有给出有用的信息。 抽象层次混乱:在非常抽象的陈述中混进了一些关于细节 的低层次陈述。 使得读者很难了解系统的整体功能结构。
5
6
14
4.4 Z语言
含有下述4个部分: 给定的集合、数据类型及常数。 状态定义。 初始状态。 操作。
15
4.5 小结
基于数学的形式化规格说明技术,目前还没有 在软件产业界广泛应用。 与欠形式化的方法比较起来,它有实质性的优 点:
形式化的规格说明可以用数学方法研究、验证(例如, 一个正确的程序可以被证明满足其规格说明,两个规格说明 可以被证明是等价的,规格说明中存在的某些形式的不完整 性和不一致性可以被自动地检测出来)。 此外,形式化的规格说明消除了二义性,而且它鼓励软 件开发者,在软件工程过程的早期阶段使用更严格的方法, 从而可以减少差错。
形式化说明技术是软件工程常用的说明方法

形式化说明技术是软件工程常用的说明方法
形式化说明技术是软件工程中常用的说明方法,它基于数理逻辑、集合论和形式语言等数学基础,通过形式化的符号和规则描述软件系统的行为和性质,从而对软件进行精确、严谨和可检验的描述。
形式化说明技术包括以下几个方面:
1.数学符号:形式化说明技术使用代数符号、逻辑符号和其他数学符号对软件进行建模和描述。
这些符号具有严格的定义和规则,可以消除不同认知和语言带来的歧义和难以理解的问题。
2.形式规范:形式化说明技术还提供了一系列形式规范用于描述软件系统的行为和性质,如状态机、Petri网、Z规范等。
这些规范提供了一种形式化的表达方式,可以清晰地描述系统的结构和行为。
3.模型检验:形式化说明技术可以使用模型检验工具来对建模和规范进行验证。
这些工具可以从数学上证明软件是否满足其规范,从而帮助开发者发现软件中潜在的错误和缺陷,并提供相应的改进方案。
4.可重复性:形式化说明技术提供了一种可重复的方法,可以对软件进行精确且可检验的描述。
这些描述可以被其他人复用和修改,使软件的开发和维护变得更加高效和便捷。
总之,形式化说明技术是一种高度精细、严密和可靠的软件描述方法,广泛应用于软件工程领域,有助于提高软件质量和可靠性。
软件工程导论(第六版)张海藩 牟永敏课后习题答案.

第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
7形式化说明技术

有穷状态机的形式定义
有穷状态机是一个5元组(J,K,T,S,F),其 中:
J是一个有穷的非空状态集,在任一确定的 时 刻,只能处于一个确定的状态;
K是一个有穷的非空输入集,在任一确定的
时
刻,只能接收一个确定的输入;
T是一个从()×K到J的转换函数;
S∈J,是初始状态,由此状态开始接收输 入 ;
P79 第三题
该有穷状态机的初态是“等待字符串输 入”。在初态若接收到字符+、或者字符 -、或者二进制位,则进入“输入尾数” 状态;在初态若接收到其他字符,则进 入终态“非浮点二进制 数”。。。。。。。
有穷状态机如下图:
二进制位
二进制位
等待字 初态 符串输入
+或-或 二进制位
输入 尾数
E
等待输 +或-或 输入 入指数 二进制位 指数
它们是:
I(t1)={P2,P4}
I(t2)={P2}
两个用于转换的输出函数,用由转换指向位置的箭头表示,
它们是:
O(t1)={P1}
O(t2)={P3,P3}
网的组成 图4.5
网结构的定义
形式化的网结构,是一个四元组()。 其中, {P1,…,}是一个有穷位置集,n≥0。 {t1,…,}是一个有穷转换集,m≥0,且T和P
状态转移矩阵:用行表示状态机所处的当前状态,列 表示将要到达的下一个状态,行列交叉处表示输入字 符。
有穷状态机的例子
一个保险箱上装了一个复合锁,锁有三 个位置,分别标记为1、2、3,转盘可向 左(L)或向右(R)转动。这样,在任意时刻 转盘都有6种可能的运动,即1L、1R、2L、 2R、3L和3R。保险箱的组合密码是1L、 3R、2L,转盘的任何其他运动都将引起 报警。图4.1描绘了保险箱的状态转换情 况。
有穷状态机

上海海洋大学爱恩学院
图4.1 保险箱的状态转换图
第4章 形式化说明技术
上海海洋大学爱恩学院
图4.1是一个有穷状态机的状态转换图。 从上面这个简单例子可以看出,一个有穷状 态机包括下述 5 个部分:状态集 J 、输入集 K 、 由当前状态和当前输入确定下一个状态(次态) 的转换函数 T 、初始态 S 和终态集 F 。对于保 险箱的例子,相应的有穷状态机的各部分如 下。 状态集 J :{保险箱锁定, A , B ,保险箱解 锁,报警}。 输入集 K :{ 1L , 1R , 2L , 2R , 3L , 3R }。
第4章 形式化说明技术
上海海洋大学爱恩学院
4.2.3 评价
有穷状态机方法采用了一种简单的格式来描 述规格说明: 下个状态 当前状态+事件+(谓词) 这种形式的规格说明易于书写、易于验证, 而且可以比较容易地把它转变成设计或程序 代码。事实上,可以开发一个 CASE 工具把 一个有穷状态机规格说明直接转变为源代码。
第4章 形式化说明技术
上海海洋大学爱恩学院
思考题
一个保险箱上装了一个复合锁,锁有三个位 置,分别标记为 1 、 2 、 3 ,转盘可向左 (L) 或 向右 (R) 转动。这样,在任意时刻转盘都有 6 种可能的运动,即 1L 、 1R 、 2L 、 2R 、 3L 和 3R 。保险箱的组合密码是 1L 、 3R 、 2L ,转 盘的任何其他运动都将引起报警,请画出相 应状态转换图。
第4章 形式化说明技术
上海海洋大学爱恩学院
a
s2
a
s1
a
s3
c
s4
图 NFA的状态转换示意
第4章 形式化说明技术
第一课有穷状态机

a
U
a
a,b
b S
a Q
b
V
b
第4章 形式化说明技术
上海海洋大学爱恩学院
DFA 的矩阵表示
f(S,a)=U f(S,b)=V f(U,a)=Q f(U,b)=V
f(V,a)=U f(v,b)=Q f(Q,a)=Q f(Q,b)=Q
状态
字符
a
b
S
U
V
U
Q
V
V
U
Q
Q
Q
Q
第4章 形式化说明技术
上海海洋大学爱恩学院
第4章 形式化说明技术
上海海洋大学爱恩学院
图4.1 保险箱的状态转换图
第4章 形式化说明技术
上海海洋大学爱恩学院
图4.1是一个有穷状态机的状态转换图。
从上面这个简单例子可以看出,一个有穷状 态机包括下述5个部分:状态集J、输入集K、 由当前状态和当前输入确定下一个状态(次态) 的转换函数T、初始态S和终态集F。对于保 险箱的例子,相应的有穷状态机的各部分如 下。
K是一个有穷的非空输入集;
T是一个从(J-F)×K到J的转换函数;?
S∈J,是一个初始状态;
F J,是终态集。
第4章 形式化说明技术
思考题
上海海洋大学爱恩学院
一个保险箱上装了一个复合锁,锁有三个位 置,分别标记为1、2、3,转盘可向左(L)或 向右(R)转动。这样,在任意时刻转盘都有6 种可能的运动,即1L、1R、2L、2R、3L和 3R。保险箱的组合密码是1L、3R、2L,转
盘的任何其他运动都将引起报警,请画出相 应状态转换图。
第4章 形式化说明技术
上海海洋大学爱恩学院
4.2.3 评价
形式化说明技术

? EBOFF(e,f)+EBP(e,f)+not V(e,f) => EBON(e,f)
? 反之,如果电梯到达 f 层,而且电梯按钮是打开的,
于是它就会熄灭。这条转换规则可以形式化地表示为
:
? EBON(e,f)+EAF(e,f) => EBOFF(e,f)
第十八页,编辑于星期一:十四点 十八分。
第十一页,编辑于星期一:十四点 十八分。
有穷状态机 ——形式化表示
?一个有穷状态机可以表示为一个 5 元组 (J ,K,T,S,F) ,其中:
? J 是一个有穷的非空状态集; ? K 是一个有穷的非空输入集; ? T 是一个从 (J-F) × K 到 J 的转换函数; ? S ∈ J ,是一个初始状态; ? F ∪ J ,是终态集。
? 电梯的 3 个可触发状态发生改变的事件:
? DC(e,f) :电梯 e 在楼层 f 关上门
? ST(e,f) :电梯 e 靠近 f 层时触发传感器,电梯控制器决定在当前楼层电梯是否停 下
? RL:电梯按钮或楼层按钮被按下进入打开状态
? 电梯的状态转换规则 (这里给出的规则仅发生在关门之时 ):
? S(U,e,f)+DC(e,f)=>M(U,e,f+1) :
第十七页,编辑于星期一:十四点 十八分。
电梯按钮状态转换的相关 谓词
? 为了定义与这些事件和状态相联系的状态转换规则,
需要一个谓词 V(e,f) ,它的含义如下:
? V(e,f) :电梯 e 停在 f 层
? 如果电梯按钮 (e,f) 处于关闭状态〔当前状态〕,而且 电梯按钮 (e,f) 被按下〔事件〕,而且电梯 e 不在 f 层 〔谓 词〕,则该电梯按钮打开发光〔下个状态〕。状
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺点:不能处理定时需求。
3. PETRI网
(1)概念
Petri网是一种网状信息流模型,在条件和事件为 节点的有向二分图基础上添加表示状态信息的令 牌分布,并按引发规则使得事件驱动状态演变, 从而反映系统动态运行过程。
Petri网可用于软件开发过程建模。控制系统的并 发性。
4、需求分析的任务包括(
)、(
(
)和修正系统开发计划等。
)、
5、需求分析的任务包括系统综合要求、数据要求、
导出逻辑模型和修正系统开发计划等。其中设计
约束或实现约束常见的有:(
)、工具和
语言约束、(
)、应该使用的标准和应该
使用的(
)等。
判断题:
1、形式化方法有许多优点,因此在实际软件工作中 应该依赖形式化方法来保证开发出的软件绝对正 确和降低由于设计缺陷产生的维护代价。( )
形式化表达: 标记 M:P{0,1,2,…} Petri网成为一个5元组(P,T,I,O,M)
对Petri网的一个重要扩充是加入禁止线:
说明:当每个输入线上至少有一个权标,而禁止线上没有权 标的时候,相应的转换才是允许的
(3)例2
电梯按钮
EBf 电梯中楼层 f 的按钮;Fg 楼层g;Ff 楼层 f。
O(t2)={P3,P3}
形式化的Petri网结构是一个4元组(P,T,I,O)
权标向量(1,2,0,1)
说明:当每个输入位置所拥有的权标数大于等于从该位置到 转换的线数时,就允许转换。当t1被激发时,P2和P4上各有 一个权标被移出,而P1上只能增加一个权标
权标向量(2,1,0,0)
权标向量(2,0,2,0)
图4.14操作Push_Button的Z规格说明
操作的谓词部分,包含了一组调用操作的前置条件, 以及操作完全结束后的后置条件。如果前置条件成立, 则操作执行完成后可得到后置条件。但是,如果在前 置条件不成立的情况下调用该操作,则不能得到指定 的结果(因此结果无法预测)。
假设电梯到达了某楼层,如果相应的楼层按钮已经打 开,则此时它会关闭;同样,如果相应的电梯按钮已 经打开,则此时它也会关闭。也就是说,如果 “button?”属于pushed集,则将它移出该集合, 如图4.15所示(符号“\”表示集合差运算)。
红绿灯的状态演变
有限状态机的几个基本术语
– 状态(State) 对象在其生命周期中的一种状况, 处于某个特定状态中的对象必然会满足某些条件、执 行某些动作或者是等待某些事件 的到来。
– 事件(Event) 会引起状态变迁,促使从一种状态 切换到另一种状态。
– 转换(Transition) 对象在某个事件发生,同时某 个特定条件满足时进入下一个状态 的过程。
Z语言描述的最简单形式化规格说明含有下述4个部分: 给定的集合、数据类型及常数。 状态定义。 初始状态。 操作。
给定的集合
一个Z规格说明从一系列给定的初始化集合开始。 所谓初始化集合就是不需要详细定义的集合,这种 集合用带方括号的形式表示。对于电梯问题,给定 的初始化集合称为Button,即所有按钮的集合, 因此,Z规格说明开始于:
在当前楼层是否停下。 (6)RL:电梯按钮或楼层按钮被按下进入打开状态
电梯状态转换规则:①S(U,e,f)+DC(e,f)=>M(U,e,f+1);
②S(D,e,f)+DC(e,f)=>M(D,e,f-1); ③S(N,e,f)+DC(e,f)=>WSM)描述规格说明: 当前状态+事件+谓词=>下个状态 易于书写、验证、转变成设计或程序代码。
(2) 用Z写规格说明时,要求作者十分精确地使用Z 说明符。由于对精确性的要求很高,从而和非形式 化规格说明相比,减少了模糊性、不一致性和遗漏。
(3) Z是一种形式化语言,在需要时开发者可以严 格地验证规格说明的正确性。
(4) 虽然完全学会Z语言相当困难,但是,经验表 明,只学过中学数学的软件开发人员仍然可以只用 比较短的时间就学会编写Z规格说明,当然,这些 人还没有能力证明规格说明的结果是否正确。
使用形式化规格说明是全球的总趋势,过去,主要 是欧洲习惯于使用形式化规格说明技术,现在越来 越多的美国公司也开始使用形式化规格说明技术。
小结
基于数学的形式化说明技术,目前还没有在 软件产业界广泛应用;
把形式化方法与传统方法有机结合,可能是 未来发展趋势。
第3,4章练习题
填空题:
1、需求分析过程应该建立3种模型,它们分别是
第4章 形式化说明技术
北京科技大学经管学院 崔建双
2020/2/28
1 北京科技大学东凌经济管理学院
软件开发的形式化方法起源
针对 软件危机人们提出种种解决方法,其一是以工程 方法来组织、管理软件的开发过程,导致“软件工程” 的出现和发展。其二是深入探讨程序开发过程的规律, 建立严密的理论,用以指导软件开发实践,导致基于模 型、基于逻辑、状态机、基于网络图形化、进程代数、 代数等众多形式化方法的发展并逐渐融入从需求分析、 功能描述(规约)、(体 系结构/算法)设计、编程、测试 直至维护的各个阶段。软件开发中的形式化方法如状态 图形的有穷状态机(UML)等。
非形式化方法:通过自然语言来描述事务的发生和发展。 如用户需求陈述。
半形式化方法:诸如软件开发中的数据流图或实体-联 系图等。
1. 概述
(1)非形式化方法的缺点 自然语言书写的系统规格说明书有如下不足:
因不同程序员撰写,出现“矛盾”描述; 同理,“二义”;
如:“操作员标识由操作员姓名和密码组成,密码由6位数字构成,当 操作员登陆系统时它被存储在注册文件中。”“它”的含义二义。
(
)、(
)和(
)。
2、按照形式化的程度,可以把软件工程使用的方法划
分成(
)、(
)和(
)等3类。
3、验证软件需求应该从以下4个方面进行验证,即
(
)、(
)、(
)和(
)。
4、需求分析的任务包括系统综合要求、数据要求、导
出逻辑模型和修正系统开发计划等。其中常见的接口
需求有:用户接口需求、(
)、(
)和
通信接口需求等等。
2、可以用形式化方法证明软件的需求和设计的正确
性和合理性,因此,如果为了降低软件的测试成
本和改正错误代价等,可以不用对软件进行测试,
也可以保证软件的质量和降低开发成本等软件工
程的目标。(
)
名词解释: 1、实体-联系图(ER图) 2、状态转换图 3、IPO图 4、Petri网 简答题: 1、简述需求分析的原则。 2、简述形式化方法的准则。 3、课后题P73,第1、2题;P89,第1、2题
初始状态
抽象的初始状态是指系统第一次开启时的状态。对 于电梯问题来说,抽象的初始状态为:
ˆ Button_Init 〔Button_State|pushed=Φ〕
上式表示,当系统首次开启时pushed集为空,即所有按 钮都处于关闭状态。
操作
如果一个原来处于关闭状态的按钮被按下,则该按 钮开启,这个按钮就被添加到pushed集中。图4.14定义 了操作Push_Button(按按钮)。
(2)例1
Petri网包含4种元素:一组位置P、一组转换T、输入函数 I以及输出函数O。
Petri网包含4种元素:
1)一组位置P,上例 P={P1,P2,P3,P4} 2)一组转换T,上例 T={t1,t2} 3)输入函数I,上例 I(t1)={P2,P4}
I(t2)={P2} 4)输出函数O,上例O(t1)={P1}
〔Button〕
状态定义
一个Z规格说明由若干个“格(schema)”组成, 每个格含有一组变量说明和一系列限定变量取值范 围的谓词。例如,格S的格式如图4.12所示。
图4.12 Z格S的格式
在电梯问题中,Button有4个子集,即 floor_buttons(楼层按钮的集合)、 elevator_buttons(电梯按钮的集合)、 buttons(电梯问题中所有按钮的集合)以及 pushed(所有被按的按钮的集合,即所有处于 打开状态的按钮的集合)。
– 动作(Action) 状态机可以执行的原子操作(运 行中不可中断)。
2020/2/28
通信软件设计
第9页
(2)举例
锁有三个位置:1、2、3; 转盘可向左(L)或右(R); 锁密码:1L、3R、2L,仅此行为才能解锁。
总结:一个有穷状态机包括5部分:
1)状态集J:{保险箱锁定,A,B,保险箱解锁,报警} 2)输入集K:{1L,1R,2L,2R,3L,3R} 3)转换函数T,如表4.1 4)初始态S:保险箱锁定 5)终态集F:{保险箱解锁,报警}
楼层按钮
FBfu 第 f 楼层向上按钮; FBfd 第 f 楼层向下按钮;
4. Z语言
(1)概念简介
Z语言是一种以一阶谓词演算为主要理论基础的一种规约 语言,是功能性语言。
Z语言将事物的状态和行为用数学符号形式化表达,为编 写计算机程序和验证计算机程序的正确性提供依据,是 软件工程中编码之前的规格说明语言。
(5) 使用Z语言可以降低软件开发费用。虽然用Z写 规格说明所需用的时间比使用非形式化技术要多, 但开发过程所需要的总时间却减少了。
(6) 虽然用户无法理解用Z写的规格说明,但是, 可以依据Z规格说明用自然语言重写规格说明。经 验证明,这样得到的自然语言规格说明,比直接用 自然语言写出的非形式化规格说明更清楚、更正确。
含糊;如“系统界面对用户应该是有好的” 不完整; 抽象层次混乱。
(2)形式化方法的优点 数学是理想的建模工具,适合于表示系统状态
和描述系统需求; 用数学表达的需求可在不同开发阶段平滑过渡。 数学提供了高层确认的手段,可验证设计结果