大家好,跟着软工考研软姐!学习软工无死角!

第四章 形式化说明技术

1按照形式化的程度划分:

1.非形式化:自然语言描述

2.半形式化:数据流图或实体-联系图

3.形式化:基于数学技术描述

2形式化方法,是描述系统性质的基于数学的技术

软件工程考研扣裙::三七九一六4458

3非形式化方法的缺点:

1.矛盾

2.二义性

3..含糊性

4.不完整性

5.抽象层次混乱

4应用形式化方法的准则:

1.选择合适的形式化方法

2.应该形式化,但不要过分形式

3.应该估量成本

4.应该有形式化方法咨询顾问随时提供咨询

5.不应该放弃传统的开发方法

6.应该建立详细的文档

7.不应该放弃质量标准

8.不应该过分依赖形式化方法

9.应该测试、测试再测试

10.应该重用

5有穷状态机:

1.状态集

2.输入集

3.转换函数

4.初始态

5.终态集

6 Petri网:解决定时问题

1.一组位置

2.一组转换

3.输入函数

4.输出函数

7 Z语言:

1.给定的集合、数据类型及常数

2.状态定义

3.初始状态

4.操作

第五章 总体设计

1总体设计的基本目的就是回答“概要地说,系统应该如何实现”,这个问题。

总体设计又称概要设计或初步设计。

2总体设计阶段的任务:

1.通过这个阶段的工作将划分出组成系统的物理元素–程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将再以后仔细设计。

2.另一个重要任务是设计软件的结构,也就是要确定系统每个程序是由哪些模块组成的,以及这些模块之间的关系。

3总体设计的必要性:

答:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统

4总体设计过程通过由两个阶段组成

1.系统设计阶段:确定系统的具体实现方案

2.结构设计阶段:确定软件结构

5总体设计过程的九个步骤

1.设想供选择的方案

2.选取合理的方案

3.推荐最佳方案

4.功能分解

5.设计软件结构

6.设计数据库

7.制定测试方案

8.书写文档

9.审查和复审

6程序的设计分为两个阶段:

1.结构设计:结构设计是总体设计阶段的任务。结构设计确定程序由哪些模块组成,以及这些模块之间的关系。

2.过程设计:过程设计是详细设计阶段的任务。过程设计确定每个模块的处理过程。软件工程考研扣裙::三七九一六4458

7设计原理

1.模块化

2.抽象

3.逐步求精

4.信息隐蔽和局部化

5.模块独立

8模块化:

1.模块是由边界元素限定的相邻程序元素的序列,且有一个总体标识符代表它。

2.模块化就是把程序划分称若干模块,每个模块完成一个子功能,把这些模块集中起来完成组成一个整体,可以完成指定功能,满足问题的要求。

9抽象就是抽出事务的本质特性而暂时不考虑它们的细节

10模块独立

1.模块独立的概念是模块化、抽象、信息屏蔽和局部化概念的直接结果。

2.模块独立性的重要性:有效的模块化的软件容易开发出来;独立的模块比较容易测试和维护。

3.模块的独立程度可以由两个定性标准度量,这两个标准分别称为耦合和内聚,耦合用来衡量不同模块彼此间互相依赖的紧密程度;内聚用来衡量一个模块内部各个元素间彼此结合的紧密程度。

11耦合是对一个软件结构内不同模块之间的互连程度的度量。

1.耦合的七种类型:

非直接耦合(无直接)

数据耦合

标记耦合

控制耦合

外部耦合

公共耦合

内容耦合

2.耦合性不断增强,模块独立性不断减弱。

12内聚标志着一个模块内各个元素彼此结合的紧密程度。

1.七种内聚:

巧合(偶然)内聚

逻辑内聚

时间内聚

过程内聚

通信内聚

(顺序)信息内聚

功能内聚

2.内聚性从低到高,独立性从低到高

低内聚:巧合内聚、逻辑内聚、时间内聚

中内聚:过程内聚、通信内聚

高内聚:信息内聚、功能内聚

13启发规则:(独归扇入接作功)

1.改进软件结构提高模块独立性

2.模块规模应该适中

3.深度(层数)、宽度(跨度)、扇入和扇出都应适当

4.模块的作用域应该在控制域之内

5.力争降低模块接口的复杂程度

6.设计单入口单出口模块

7.模块功能应该可以预测

14深度代表软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。

15宽度是软件结构内同一个层次上的模块总数的最大值。

16对宽度影响最大的因素是模块的扇出,对重用影响最大的是扇入。

17扇出是一个模块直接控制(调用)的模块数量

18扇入表明有多少个模块调用它

19描绘软件结构的工具:

1.层次图:用来描绘软件的层次结构

2.HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写

3.结构图:Yourdon提出的结构图是进行软件结构设计的另一个有力工具

20面向数据流的设计方法

1.结构化设计方法(简称SD方法),也就是基于数据流的设计方法

2.面向数据流的设计方法的目标是给出设计软件结构的一个系统化途径

21信息流

1.变换流:信息沿输入通路进入系统,同时由外部形式转换为内部形式,进入系统的信息通过变换中心,经加工处理之后沿输出通路转换为外部形式离开软件系统,当数据流图的数据流具有这些特性时,这种信息流就叫做变换流。(线性顺序)

2.事务流:当数据流图的数据流是“以事务为中心的”,也就是说,数据沿输入通路到达一个处理T,这个处理根据数据的类型在若干动作序列中选出一个来执行,这类数据流就被称为事务流。(活动通路)

软件工程考研笔记整理(三小时速成)(3)相关推荐

  1. 万字马原知识点整理(三小时速成版,过过过90+)

    一.前言: 此博文配套教材:<马克思主义基本原理>2021年版. 由任课教师所梳理课本.强调重点,以及博主亲身备考后(已考完)的总结.{博主参加的期末,其考核大题所涉及的知识点此文中皆涵盖 ...

  2. 计算机语言学考研科目,语言学考研笔记整理(共16页)

    语言学考研笔记整理 一.语言和语言学 1.语言的本质 (1)自然属性:语言从本质上来说是一套符号系统. (2)社会属性:是人类最重要的交际工具. (3)心理属性:是人类进行思维的工具. 语言的自然属性 ...

  3. 线性代数考研笔记(三)

    线性方程组: 线性代数考研笔记(三):线性方程组 非齐次线性方程组解的个数判定: 齐次线性方程组解的个数判定: 求解矩阵方程的方法: 线性方程Ax=b的解的结构: 线性代数考研笔记(三):线性方程组 ...

  4. 概率论考研笔记(三)

    随机向量: 概率论考研笔记(三):随机向量 随机向量相关概念和性质: 常见二维离散型随机向量的分布: 常见二维连续型随机向量的分布: 二维离散型随机向量函数的分布: 二维连续型随机向量函数的分布: 二 ...

  5. 软件工程学习笔记《三》代码优化和性能测试

    文章目录 软件工程学习笔记目录 如何在开源社区提问? 代码审查 代码优化 运行结果 参数解释 代码优化原则 对常见的数据结构排序算法进行测试 关于冒泡排序优化的探讨 结果 软件工程学习笔记目录 [ht ...

  6. Python学习笔记整理(三)Python中的动态类型简介

    Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之 ...

  7. latex教程——读书笔记整理(三)——数学公式

    综述 目录 综述 数学模式的群组 数学公式的基本元素 数学空格 垂直取齐 虚位 数学字体尺寸 定理.定律 粗体符号 数学符号表 LATEX 使用一种特有的模式来排版数学(mathematics) 公式 ...

  8. 软件工程学习笔记(三)软件需求工程

    软件需求 以清晰.简洁.一致且无二义性的方式,描述用户对目标软件系统在功能.行为.性能.设计约束等方面的期望,是在开发过程中对软件系统的约束 软件需求分类 业务需求:是客户对于软件系统的高层次目标要求 ...

  9. 软件工程学习笔记《目录》

    软件工程学习笔记<目录> 软件工程学习笔记<一>什么是软件工程 软件工程学习笔记<二>代码规范 软件工程学习笔记<三>代码优化和性能测试 软件工程学习笔 ...

最新文章

  1. php如何实现用户报警,php封装实现钉钉机器人报警接口的示例代码
  2. mysql 统计条目_mysql 统计表中条目数量的几种方法
  3. 5G NR PUCCH资源配置
  4. jmeter之关联操作
  5. selenium架构_Selenium测试的干净架构
  6. repr方法字符串输出实例对象的值
  7. php4和php5的区别,什么是PHP 4和PHP 5之间的区别是什么-php是什么文件
  8. Backtrader多周期回测
  9. 最长配对(51Nod-2494)
  10. 安卓应用安全指南 4.7 使用可浏览的意图
  11. ZH奶酪:自然语言处理工具LTP语言云调用方法
  12. 【Unity】3.1 利用内置的3D对象创建三维模型
  13. 校招行测笔试-言语理解与表达
  14. 创业19年的湖南竞网如何拥抱数字化转型,按下成长加速键?
  15. 名人带货成潮流,直播电商是否走上了岔路?
  16. STM32F103标准库开发---目录
  17. 跟相亲对象微信聊什么?聊天绝学四步走一试便知有没有
  18. Leetcode 517. Super Washing Machines
  19. DDD与TDD比较之——TDD
  20. dSYM-如何获取dSYM UUID并快速定位到已发布程序的crash位置(二)

热门文章

  1. dotnet 配置 Gitlab 的 Runner 做 CI 自动构建
  2. 旅游评论情感分析(2)---前期调查总结
  3. DNS 服务器 清除缓存
  4. docker部署es和kibana遇到的坑
  5. 一些非常有趣的python爬虫例子
  6. MySQL 为日期增加一个时间间隔
  7. 计算机师范专业行业分析,前景最好的4个师范专业,有行业“香馍馍”之称,别不信...
  8. 设平衡二叉排序树(AVL树) 的节点个数为n,则其平均检索长度为log2n
  9. c语言初步实验报告,c语言实验报告(大一c语言实验报告答案)
  10. 【Go语言学习】安装与配置