软件工程——第4章形式化说明技术(非重点)

news2024/9/20 15:05:38

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!

文章目录

1.软件工程方法划分成哪三类?并各自举例

2.形式化方法的定义?

3.非形式化的方法的缺点?

4.形式化方法的优点?

5.应用形式化方法的准则?

6.在什么情况下应该使用形式化说明技术?

章末小结


1.软件工程方法划分成哪三类?并各自举例

  1. 非形式化:用自然语言描述需求规格说明
  2. 半形式化:用数据流图或ER图建立模型
  3. 形式化:利用有穷状态机表达规格说明

2.形式化方法的定义?

        所谓形式化方法,是描述系统性质的基于数学的技术,即:一种方法如果有坚实的数学基础,那么它就是形式化的。

3.非形式化的方法的缺点?

  1. 用自然语言书写的系统规格说明书,可能存在相互冲突的陈述
  2. 用非形式化的方法可能会出现二义性和含糊性
  3. 非形式化的方法可能使系统规格说明存在不完整性
  4. 用自然语言书写的说明书会出现抽象层次混乱,使读者很难理解系统的整体功能结构

4.形式化方法的优点?

  1.  它能简洁准确地描述物理现象、对象或动作的结果,是理想的建模工具
  2. 可以在不同的软件工程活动之间平滑地过渡
  3. 形式化方法提供了高层确认的手段,可用数学方法证明

5.应用形式化方法的准则?

  1.  应该选用适当的表示方法
  2. 应该形式化,但不要过分形式化
  3. 不应该放弃传统的开发方法
  4. 应该建立详尽的文档
  5. 不应该放弃质量标准

6.在什么情况下应该使用形式化说明技术?

        当在使用非形式化的方法描述时,存在矛盾、二义性、含糊性、不完整性和抽象层次混乱等问题时,需采用形式化的说明技术。

章末小结

        基于数学的形式化现格说明技术,目前还没有在软件产业界广泛应用,但是,与欠形式化的方法比较起来,它确实有实质性的优点;形式化的规格说明可以用数学方法研究、验证(例如一个正确的程序可以被证明满足其规格说明,两个规格说明可以被证明是等价的,规格说明中存在的某些形式的不完整性和不一致性可以被 自动地检测出来)。此外,形式化的规格说明消除了二义性,而且它鼓励软件开发者在软件工程过程的早期阶段使用更严格的方法,从而可以减少差错。
        当然,形式化方法也有缺点:大多数形式化的规格说明主要关注于系统的功能和数据,而问题的时序、控制和行为等方面的需求却更难于表示。此外,形式化方法比欠形式化方法更难学习,不仅在培训阶段要花大量的投资,而且对某些软件工程师来说,它代表了一种“文化冲击”。

        有穷状态机、Petri网和Z语言是3种典型的形式化方法。把形式化方法和欠形式化方法有机地结合起来,使它们取长补短,应该能获得更理想的效果。

 反反复复,扎扎实实;念念不忘,必有回响!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elasticsearch snapshot快照指定多个索引并行备份——筑梦之路

Curl 命令方式对elasticsearch备份和恢复—— 筑梦之路_筑梦之路的博客-CSDN博客 之前也写过使用API请求的方式对ES数据进行快照方式备份,这里主要对之前的内容进行完善和补充。 版本兼容性 快照包含构成索引的磁盘上数据结构的副本。这意味着快照只能还原为可以读…

Kubernetes API Server源码学习(二):OpenAPI、API Resource的装载、HTTP Server具体是怎么跑起来的?

本文基于Kubernetes v1.22.4版本进行源码学习 6、OpenAPI 1)、OpenAPI的作用 OpenAPI是由Swagger发展而来的一个规范,一种形式化描述Restful Service的语言,便于使用者理解和使用一个Service。通过OpenAPI规范可以描述一个服务:…

28离散Hopfield神经网络的联想记忆数字识别(附matlab)

1.简述 学习目标:利用离散Hopfield神经网络进行联想记忆数字识别 1982年,美国加州理工学院的J.Hopfield教授提出了一种单层反馈神经网络,称为Hopfield网络[1]。Hopfield网络是一种循环的神经网络,从输出到输入有反馈连接。Hopfiel…

Leetcode---350周赛

题目列表 6901. 总行驶距离 6890. 找出分区值 6893. 特别的排列 6447. 给墙壁刷油漆 一、总行驶距离 很显然,这题单纯就是一道数学应用题,我们要明白最关键的一点 :只有当mainTank>5并且additionalTank>0时,才能发生副油…

操作系统 - 操作系统结构

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

【Kubernetes资源篇】StatefulSet无状态服务管理入门实战详解

文章目录 一、StatefulSet理论知识1、StatefulSet Pod控制器特性2、什么是有状态服务和无状态服务?3、Deployment和StatefulSet区别 二、案例:StatefulSet资源实战演示1、创建WEB站点并验证StatefulSet特点2、StatefulSet滚动更新 三、总结 一、Stateful…

JavaFX第四篇 Button按钮和事件处理

JavaFX第四篇 Button按钮和事件处理 1. 代码2. 讲解3. 代码仓库 上一篇我们讲解了Hello World演示,主要用到Label标签的功能, 这里我们要介绍的是最常用的控件之一:按钮 在现在的软件开发过程中还没发现没有用到按钮的应用, 基本上…

【数据库原理与实践】第八章至第十章作业汇总(更新中)

填空题部分: Chp 8 安全性与完整性 part 1: 数据库的安全性是指保护数据库以防止不合法的使用所造成的( 数据泄露、更改或破坏 )。计算机系统有三类安全性问题,即( 技术安全 )、管理安全和…

ROS:计算图

目录 一、ROS计算图简介二、节点(Node)三、节点管理器(Master)四、消息(Message)五、话题(Topic)六、服务(Service)七、动作(Action)八…

LabVIEW开发燃油阀自动性能测试系统

LabVIEW开发燃油阀自动性能测试系统 燃油阀是航空燃油控制系统的核心部件。燃油阀的流量滞后直接影响控制精度、稳定性和可靠性,而燃油阀生产的性能测试是至关重要的步骤。但是,由于流动滞后是非线性的,因此很难控制和进行实时测试。随着厂家…

CSS3-浮动

(了解)标准流:又称文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素 常见标准流排版规则: 1. 块级元素:从上往下,垂直布局&am…

Matplotlib---柱形图

1. 绘制简单的柱状图 bar函数用于绘制柱状图。下面是bar函数的语法格式: bar(x, height, width0.8, bottomNone, aligncenter, dataNone, **kwargs)参数解释: x:指定每个柱子的x轴坐标。height:指定每个柱子的高度。width&…

TypeScript ~ 掌握基本类型 ②

作者 : SYFStrive 博客首页 : HomePage 📜: TypeScript ~ TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &…

vue的学习

title: VUE 一、Vue简介 1.1 简介 ::: tip Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式的js框架,发布于 2014 年 2 月。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0…

F. Gardening Friends(树的直径)

Problem - 1822F - Codeforces 两位朋友Alisa和Yuki在他们的花园里种了一棵有n个顶点的树。树是一个无向图,没有循环、回路或多重边。这棵树中的每条边都有一个长度为k。最初,顶点1是树的根。 Alisa和Yuki种植这棵树不仅仅是为了好玩,而是想…

基于SpringBoot的流浪动物救助平台

1.引言 系统管理也都将通过计算机进行整体智能化操作,对于流浪动物救助平台所牵扯的管理及数据保存都是非常多的,例如首页、个人中心、会员管理、志愿者管理、流浪动物信息管理、领养信息管理、取消领养信息管理、志愿团队活动管理、志愿者申请表管理、…

【性能设计篇】数据库拓展

前两篇文章介绍了分布式存储的机制,为保证数据的高性能以及可拓展,采用分片/分区机制。为保证数据的高可用性,采用复制/镜像机制存储数据。一份数据存储多份。而这两种方式在数据中,就是分片/分区机制。分库分表/读写分离。 读写…

掌握这个关键技术,让你的APP开发事半功倍!——Flutter与其他方案的区别

Flutter动机是什么,解决啥痛点?优势在哪里? 介绍Flutter的历史背景和运行机制,并以界面渲染过程为例与你讲述其实现原理。 1 Flutter的历史背景 为不同的操作系统开发拥有相同功能的应用程序,开发人员只有两个选择&…

gitTortoise图形化工具下载步骤

一,简介 本文主要介绍如何下载安装gitTortoise图形化工具来管理和提交代码。 二,步骤介绍 2.1 安装包下载 下载地址:https://download.tortoisegit.org/tgit/ 打开后,界面如下: 点击选择最新的稳定release版本&am…

二分查找算法及实现

概念 二分查找算法也成为折半查找,是一种非常高效的工作于有序数组的查找算法. 实现 需求 现有一个有序数组 arr [1,2,3,4,5,6,7,8,9], 目标值target 2 ,要求返回目标值target在数组arr中的索引,没有则返回-1; 代码实现 private int binarySearch(int[] arr, int target)…