当前位置: 首页 > news >正文

软件工程知识点

软件开发模型1

在这里插入图片描述

软件开发模型2

软件过程模型习惯上也称为软件开发模型,它是软件开发全部过程、活动和任务的结构框典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型基于构件的开发模型和形式化方法模型等。
在这里插入图片描述

在这里插入图片描述

极限编程

在这里插入图片描述

开发方法

在这里插入图片描述

RUP阶段

RUP在每个阶段都有主要目标,在构建阶段结束时产生“在适当的平台上集成的软件产品”
初启阶段结束时产生一个构想文档、一个有关用例模型的调查、一个初始的业务用例、一个早期的风险评估和一个可以显示阶段和迭代的项目计划等制品;
精化阶段结束时产生一个补充需求分析、一个软件架构描述和一个可执行的架构原型等制品;
构建阶段结束时的成果是一个准备交到最终用户手中的产品,包括具有最初运作能力的在适当的平台上集成的软件产品、用户手册和对当前版本的描述;
移交阶段结束时产生移交给用户产品发布版本。

敏捷开发

在这里插入图片描述
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,适用于小团队和小项目,具有小步快跑的思想。常见的敏捷开发方法有极限编程法、水晶法、并列争球法和自适应软件开发方法
(1)极限编程是一种轻量级的开发方法,它提出了四大价值观:沟通、简单、反馈、勇气。五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。十二个最佳实践:计划游戏、隐喻、小型发布、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准。
(2)水晶法强调经常交付,认为每一种不同的项目都需要一套不同的策略、约定和方法论。
(3)并列争球法的核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件。
(4)自适应软件开发的核心是三个非线性的,重叠的开发阶段:猜测、合作、学习。
在这里插入图片描述
在这里插入图片描述

管道过滤器

在这里插入图片描述
在这里插入图片描述

模块设计原则

在这里插入图片描述

模块之间的耦合有七种类型

在这里插入图片描述
在这里插入图片描述

软件测试

单元测试:其实就是开发中的测试
自顶向下集成测试:从具体到抽象,不需要编写驱动模块,需要编写桩模块
自底向上集成测试:从抽象到具体,需要编写驱动模块,不需要编写桩模块
回归测试:就是重新测试
冒烟测试:没考过。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试技术

技术:等价类划分、边界值分析、错误推测、因果图

测试策略

自底向上驱动程序、自顶向下桩程序

测试顺序

在这里插入图片描述

测试方法

在这里插入图片描述

白盒测试覆盖测试法

覆盖率从低到高:

  • 语句覆盖法:语句覆盖法要求设计足够多的测试用例,使得程序中每条语句至少被执行一次,是最基本的覆盖要求
  • 分支覆盖法:又称判定覆盖法,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即程序中的每个分支至少执行一次,每个判断的取真、取假至少执行一次。
  • 条件覆盖法:要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
  • 分支条件覆盖法:又称判定条件覆盖法,要设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
  • 条件组合覆盖法:要求设计足够多的测试用例,使得判定中的每个条件结果的所有可能结果至少出现一次,这样也会使得每个判定本身的所有可能结果至少出现一次。
  • 路径覆盖法:要求设计足够多的测试用例,覆盖程序中所有可能的执行路径。

白盒测试原则

在这里插入图片描述

McCabe复杂度(重要)

V(G)=m-n+2,
其中V(G)是有向图G中的环路个数,m是G中的有向弧数,n是G中的节点数.
也可用闭环的个数+1,计算复杂性。
在这里插入图片描述

软件能力成熟度模型

将软件能力成熟度自低到高依次划分为5级.
第一级:初始级(Initial);无序,随意
初始级的软件过程是无序的,项目的执行是随意甚至是混乱的。工作方式处于救火状态,不断的应对突如其来的危机;
第二级:可重复级(Repeatable);基本的项目管理管理
建立了基本的项目管理过程来跟踪费用,进度和功能特性,制定了必要的过程纪律,能重复早先类似的应用项目取得的成功。
第三级:已定义级(Defined);标准化,文档化
已经将软件管理核工程两方面的过程文档化,标准化,并综合成组织的标准软件过程,所有项目均使用该标准开发维护软件。
第四级:已管理级(Managed);可预测
收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。
第五级:优化级(Optimizing)。优化
过程的量化反馈和先进的新思想,新技术促使过程不断改进。

软件过程改进

在这里插入图片描述

甘特图

在这里插入图片描述

PERT图

  • 最早开始时间
  • 最迟开始时间
  • 松弛时间
    如果2个节点同时指向一个节点时,2条路径计算最早开始时间后,取最大值。
    如果是计算最迟时间,则取多条路径计算后的最小值。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

项目活动图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目管理工具特征

在这里插入图片描述
在这里插入图片描述

软件配置管理

在这里插入图片描述

软件文档

在这里插入图片描述

软件可靠性、可用性、可维护性

在这里插入图片描述
在这里插入图片描述

冗余附加技术

在这里插入图片描述

软件维护工具

软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具
在这里插入图片描述

风险分析

在这里插入图片描述

软件维护

(1)改正性维护:识别和纠正软件错误,改正性能上的缺陷;
(2)适应性维护:外部环境数据库发生变化而去改正;
(3)完善性维护:增加新的功能与需求;
(4)预防性维护:预先提高软件的可维护性;
在这里插入图片描述

软件评审

在这里插入图片描述在这里插入图片描述

质量属性及其子特性

在这里插入图片描述
在这里插入图片描述

沟通管理

1、有主程序员:n个成员小组,1个主程序员,普通程序员只需要与主程序员沟通。
沟通路径:n-1。
2、无主程序员:n个成员的项目小组,相互之间都可以沟通。
沟通路径:n(n-1)/2。

COCOMO模型

在这里插入图片描述

其他知识点

1.COCOMO II模型的估算选择包括:对象点、功能点、源代码行数
2.软件工程的基本要素包括方法、工具和过程
3.软件文档分为:开发文档、管理文档、产品文档;
4、需求分析确定软件要完成的功能以及非功能性要求
5、概要设计将需求转换为软件的模块划分,确定模块之前的调用关系
6、详细设计将模块进行细化,得到详细的数据结构和算法
7、编码根据详细设计进行代码的编写,得到可运行的软件,并进行单元测试
8、需求不清晰且规模不太大时,用原型化方法合适
数据处理领域的不太复杂的软件,用结构化开发比较合适
9、软件工程每一个阶段结束前,应该着重对可维护性进行复审。在系统设计阶段的复审期间,应该从容易修改、模块化和功能独立的目的出发,评价软件的结构和过程。
10、软件风险一般包含不确定性和损失两个特性
11、一个软件开发过程描述了 “谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用角色来表述“谁做”


http://www.mrgr.cn/news/79481.html

相关文章:

  • 网卡驱动及dpdk的使用
  • 智能设备安全-固件逆向分析
  • scala的泛型
  • ElasticSearch - 理解doc Values与Inverted Index倒排索引
  • Linux——进程控制模拟shell
  • AI 学习框架:开启智能未来的钥匙
  • maven多模块开发
  • 电子商务人工智能指南 3/6 - 聊天机器人和客户服务
  • 快充诱骗协议芯片XSP08Q应用案例
  • pika:适用于大数据量持久化的类redis组件|简介及安装(一)
  • Qt之第三方库‌QXlsx使用(三)
  • shell脚本实战案例
  • UE_C++ —— 数据类型
  • 【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包
  • 使用IntelliJ IDEA开发Gradle插件并发布到本地
  • openharmony5.0版本源码一二级目录概览
  • 【C++游戏程序】easyX图形库还原游戏《贪吃蛇大作战》(三)
  • Scala-隐式转换
  • “切片赋值”创建列表批量操作“新”方法(Python)
  • JDK17 CompletableFuture
  • shell自动显示当前git的branch
  • [机器学习] 监督学习之线性回归与逻辑回归
  • C++ 完美转发和左值右值
  • 利用高德地图API,如何在PHP与vue3中实现地图缩放功能
  • UE5.5 Geometry库平面切割原理分析
  • Vue3+Vite+ElementPlus 构建 笔记