2、形式化方法的优点 (1)可严谨地描述软件需求中的问题 可简洁准确描述物理现象、对象或动作的结果问题;适用 于描述详细的需求规格;可用数学方法验证需求。 (2)可在软件工程不同阶段平滑过渡 从需求、设计到实现都基于同一系统模型,平滑过渡 (3)可提供高层确认手段 可用数学方法证明软件工程各阶段的正确性(可回溯性) ,如“设计”符合“规格说明”、“编码实现”符合“设 计 第11页
第 11 页 2、形式化方法的优点 (1)可严谨地描述软件需求中的问题 • 可简洁准确描述物理现象、对象或动作的结果问题;适用 于描述详细的需求规格;可用数学方法验证需求。 (2)可在软件工程不同阶段平滑过渡 • 从需求、设计到实现都基于同一系统模型,平滑过渡。 (3)可提供高层确认手段 • 可用数学方法证明软件工程各阶段的正确性(可回溯性) ,如“设计”符合“规格说明”、“编码实现”符合“设 计
■形式化方法的适用性问题 形式化方法能较好地解决需求的“二义性”、“含糊性” 问题。但不能解决需求的矛盾性、完整性等问题,这些问 题涉及工程管理。 第12页
第 12 页 ◼ 形式化方法的适用性问题 • 形式化方法能较好地解决需求的“二义性”、“含糊性” 问题。但不能解决需求的矛盾性、完整性等问题,这些问 题涉及工程管理
3、应用形式化方法的准则(拥护者/反对者/编者) (1)应该选用适当的表示方法 通常,一种规格说明技术只能用自然的方式说明某一类概 念。 (2)应该形式化,但不要过分形式化 目前的形式化技术还不适于描述系统的每个方面。 (3)应该估算成本 为了使用形式化方法,通常需要事先进行大量的培训。最 好预先估算所需的成本并编入预算。 第13页
第 13 页 3、应用形式化方法的准则(拥护者/反对者/编者) (1)应该选用适当的表示方法 • 通常,一种规格说明技术只能用自然的方式说明某一类概 念。 (2)应该形式化,但不要过分形式化 • 目前的形式化技术还不适于描述系统的每个方面。 (3)应该估算成本 • 为了使用形式化方法,通常需要事先进行大量的培训。最 好预先估算所需的成本并编入预算
(4)应该有形式化方法顾问随时提供咨询 绝大多数软件工程师对形式化方法中使用的数学和逻辑并 不很熟悉,没受过使用形式化方法的专业训练,因此需要 专家指导和培训。 (5)不应该放弃传统的开发方法 把形式化方法和结构化方法或面向对象方法集成起来取长 补短往往能获得很好的效果。 (6)应该建立详尽的文档 建议使用自然语言注释形式化的规格说明书,以帮助用户 和维护人员理解系统。 第14页
第 14 页 (4)应该有形式化方法顾问随时提供咨询 • 绝大多数软件工程师对形式化方法中使用的数学和逻辑并 不很熟悉,没受过使用形式化方法的专业训练,因此需要 专家指导和培训。 (5)不应该放弃传统的开发方法 • 把形式化方法和结构化方法或面向对象方法集成起来取长 补短往往能获得很好的效果。 (6)应该建立详尽的文档 • 建议使用自然语言注释形式化的规格说明书,以帮助用户 和维护人员理解系统
(7)不应该放弃质量标准 形式化方法不能保证软件的正确性,只不过是有助于开发 出高质量软件的一种手段。 (8)不应该盲目依赖形式化方法 形式化方法并不能保证开发出的软件绝对正确,需用其他 方法来验证软件正确性。 (9)应该测试、测试再测试(测试重要性没有降低) (10)应该重用 软件重用仍然是降低软件成本和提高软件质量的唯一合理 的方法。 第15页
第 15 页 (7)不应该放弃质量标准 • 形式化方法不能保证软件的正确性,只不过是有助于开发 出高质量软件的一种手段。 (8)不应该盲目依赖形式化方法 • 形式化方法并不能保证开发出的软件绝对正确,需用其他 方法来验证软件正确性。 (9)应该测试、测试再测试(测试重要性没有降低) (10)应该重用 • 软件重用仍然是降低软件成本和提高软件质量的唯一合理 的方法