软考中级-软件工程

1 软件过程

1.1 能力成熟度模型(CMM)

初始(混乱)->可重复(建立基本、重复以往)->已定义(文档化、标准化)->已管理(制定产品质量标准)->优化(新技术改进)

1.2 能力成熟度模型集成(CMMI)

两种表示方法:阶段式模型、连续式模型。

  • 阶段式模型

  • 连续式模型

L0(未执行、未得到)->L1(可标识输入转为可标识输出)->L2(已管理的制度化)->L3(已定义的制度化)->L4(可定量管理的制度化)->L5(优化)

2 软件过程模型

适合需求明确的情况。

2.1 瀑布模型

2.2 V模型

2.3 增量模型

一开始就需求明确,将需求分解为多个增量进行开发,可以快速提供一个版本。

3 演化模型

应对对于需求认识不明晰,需求经常变化的情况而产生的模型,能够快速发布初始版本。

3.1 原型模型

适合系统规模不是很大,需求不明晰的情况。

3.2 螺旋模型

融合瀑布模型和演化模型,加入了风险分析,弥补了这两种模型的不足,适合大型项目。

4 喷泉模型

克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。具有迭代行和无间隙性(无边界,可各部门同步开发)。

5 统一过程(up)模型

6 敏捷方法

目标:尽可能早的、持续的对有价值的软件进行交付。

6.1 极限编程法(XP)

由价值观、原则、实践、行为组成。

6.2 水晶法

每个项目都需要一套不同的策略、约定和方法论。

6.3 并列争求法

30天一次的迭代称为一个冲刺。

6.4 自适应软件开发

6.5 敏捷统一过程

在大型上连续,在小型上迭代,敏捷统一编程包含以下活动(建模、实现、测试、部署、配置及项目管理、环境管理)。

7 需求分析

功能需求:考虑系统要做什么?在何时做?如何修改提升?

性能需求:考虑软件开发的技术性指标。如容量限制、执行时间、相应时间、吞吐量。

数据需求:考虑输入输出的数据格式。

了解即可:

8 系统设计

8.1 概要设计

  • 设计软件系统总体结构

关键一步,将系统划分为若干模块,确定每个模块功能、模块间调用关系、模块接口、评估模块质量。

  • 数据结构及数据库设计

数据库设计(概念设计、逻辑设计、物理设计)

  • 编写概要设计文档

概要设计说明书、数据库设计说明书、用户手册、修订测试计划。

  • 评审

是否完成相应功能、性能,方法是否可行。

8.2 详细设计

重要基础。

  • 对每个模块进行详细的算法设计。

  • 对模块内数据结构进行设计。

  • 对数据库进行物理设计,确定物理结构。

  • 其他设计(代码格式、输入输出格式、UI设计)

  • 编写详细设计说明书。

  • 对算法和数据库物理结构进行评审。

9 系统测试

9.1 系统测试意义、目的和原则

意义:为了发现错误,是保证系统质量的关键。

目的:最少的人力和时间发现错误。

原则:遍布所有阶段、不让开发人员测试自己、设定输入和预期输出、测试不合理的输入、检验系统是否做了不该做的事、严格按照测试计划、妥善保存测试用例、精心设计测试用例增加复用性、测试目标源自需求。

9.2 单元测试

又称模块测试,对模块中内部逻辑和数据结构进行测试,一般采用白盒测试,高内聚低耦合可以简化单元测试。

(1)测试内容

  • 模块接口

  • 局部数据结构

  • 重要的执行路径

  • 出错处理

  • 边界条件

(2)单元测试过程

9.3 集成测试

(1)自顶向下集成测试

增量测试,采用深度优先或广度优先由主控开始搜,不用写驱动模块。

(2)自底向上集成测试

不用写桩模块。

(3)回归测试

从头测,防止回退。

(4)冒烟测试

9.4 测试方法

静态测试

  • 人工检测

  • 计算机静态辅助分析

动态测试

在程序运行阶段对程序进行测试。

  • 黑盒测试

不关心内部结构,其测试技术有等价类划分、边界值分析、错误推断、因果图。

(1)等价类划分

如有效值是0<x<100,那么1~99都叫做有效等价类,其他数都叫做无效等价类。

(2)边界值分析

基于上例,0和100就是边界值。

(3)错误推断

根据经验和直觉推断错误,设计测试用例。

(4)因果图

通过输入(因)和输出或状态改变(果)来构建因果图,转化为判定表。

  • 白盒测试

根据程序的结构和内部逻辑来设计测试用例。

(1)逻辑覆盖

考察用测试数据运行被测程序时对程序逻辑的覆盖程度,下属几种覆盖性依次增强。

a)语句覆盖:选择足够的测试数据,使程序中每条语句至少被执行一次(没有语句的路可以不覆盖)。

b)判定覆盖(分支覆盖):每个判定表达式“真”和“假”至少各通过一次。

c)条件覆盖:每个条件的每个可能值都要满足一次,如条件为A>0 && B>0,那么要A>0、A<=0、B>0、B<=0都测一遍,如两条测试用例分别为A=1,B=1和A=0,B=0。

d)判定/条件覆盖:“真”“假”各至少出现一次,条件中个值的“真”和“假”也各至少出现一次(前两种的结合)。

e)条件组合覆盖:每个条件中的可能值的组合都要出现一次,如条件为A>0 && B>0,那就要A真+(B假/B真)、A假+(B真/假)四种组合都出现。

f)所有路径都覆盖。

(2)循环覆盖

执行足够的测试用例使得每个条件都得到验证。

(3)基本路径测试

通过分析控制流图环路复杂性设计用例。

白盒测试原则:

测试用例:由测试输入数据+预期输出数据组成,应同时包含合理的和不合理的输入,不合理的输入越多越不合理。

9.5 McCabe度量法

环路个数也等于闭合区域数+1。

10 运行和维护知识

(1)系统维护

可维护性评价指标:可理解性、可测试性、可修改性。

(2)系统文档和用户文档

用系统文档测试、用用户文档维护。软件运维不属于开发阶段,但开发阶段要保证可维护性。文档是运维的关键因素。

(3)软件维护内容

分为硬件维护、软件维护、数据维护,软件维护重要。

软件维护有以下几方面:

  • 正确性维护:测试阶段未发现问题、运行阶段发现了,需修正。

  • 适应性维护:根据需求和运行环境需要软件来适应。

  • 完善性维护:增加一些系统分析和设计阶段未规定的功能和特性。

  • 预防性维护:增加一些预防性新功能,避免被淘汰。

(4)软件可靠性、可用性、可维护性

11 COCOMO模型

基本COCOMO模型:静态单变量模型。

中级COCOMO模型:静态多变量模型。

详细COCOMO模型:分为系统、子系统和模块三层。

COCOMOII模型:分为应用组装模型、早期设计阶段模型、体系结构阶段模型。有三种规模估算选择为对象点、功能点和代码行。

12 甘特图

13 PERT图

箭头表示任务,每个节点的流入表示流入箭头所指任务结束,流出表示流出箭头所指任务开始,只有当流入任务都结束时,节点所表示的事件才出现,事件仅表示一个时间点。最早时刻表示从该事件出发的任务不可能在本节点的最早时刻之前开始,最迟时刻表示从该事件出发的任务必须在此时刻之前开始,否则整个工程无法如期完成。

开始节点的最早开始时刻为0,结束节点的最迟时刻等于结束节点的最早时刻,每个节点最早和最迟时刻差就是松弛时间。

最早和最迟时刻相等的节点组成的路径就是关键路径。

最早时刻计算:

最迟时刻计算:

PERT图不能表现任务的并行关系。

13 项目活动图

14 软件配置管理

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML5 SSE

HTML5 服务器发送事件(Server-Sent Events) 服务器发送事件&#xff08;Server-sent Events&#xff09;是基于 WebSocket 协议的一种服务器向客户端发送事件和数据的单向通讯。 HTML5 服务器发送事件&#xff08;server-sent event&#xff09;允许网页获得来自服务器的更新。…

快速将PDF转换为图片:免费的在线PDF转换器

在现代数字时代&#xff0c;PDF是一种非常常见的文件格式。它们在学术界&#xff0c;商业领域和许多其他领域中被广泛使用。有时&#xff0c;您可能需要将PDF文件转换为图像格式&#xff0c;以便能够方便地与他人共享和使用。在这种情况下&#xff0c;您可以使用免费的在线PDF转…

PyCharm 配置sqlite3驱动

在PyCharm中可以查看sqlite3数据库&#xff0c;具体要如何做呢&#xff1f; 数据库入口 打开PyCharm&#xff0c; 在最右侧&#xff0c;有一个Database的表示&#xff0c;点击如下图所示。 如果没有找到这个选项&#xff0c; 点击View -> Tool Windows -> Database同…

chatgpt实际是怎样工作的?

文章翻译自&#xff1a; https://www.assemblyai.com/blog/how-chatgpt-actually-works/ ChatGPT 是 OpenAI 的最新语言模型&#xff0c;比其前身 GPT-3 有了重大改进。与许多大型语言模型类似&#xff0c;ChatGPT 能够为不同目的生成多种样式的文本&#xff0c;但具有更高的精…

MBD-有感(Hall)开环BLDC控制模型(下)

目录 前面 保护策略 DC_Bus_Measurements Protection_Check 外设配置 最后 前面 上一篇已经把霍尔有感BLDC开环控制模型的主要部分分析完成了 MBD-有感(Hall)开环BLDC控制模型&#xff08;上&#xff09; 语雀 这一篇分析一些边边角角&#xff0c;但不成体系的部分。…

全网最详细,Jmeter接口测试场景-万条测试数据校验结果,循环断言(案例)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 在工作中&#xff0…

这个ChatGPT插件可以远程运行代码,还生成图表

ChatGPT的插件使数据科学成为一种简单、愉快的体验 我们做数据分析时一般都是使用这样的流程来进行&#xff1a;运行jupyter notebook、安装库、解决依赖关系和版本控制&#xff0c;数据分析&#xff0c;生成图表。ChatGPT的“Code Interpreter”插件可以帮助我们进行数据分析…

【Redis】五大数据结构及其常用指令

文章目录说明String类型List类型Set类型Hash类型Sorted Set 排序集合总结说明 Redis里面的数据类型有String、List、Set、Hash、Zset。这篇文章会介绍这5种数据类型并介绍操作它们的指令. String类型 字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的&#xff0…

5.1.1 Ext JS之Grid actioncolumn动作列的动态显示

在Ext JS 的 Grid中添加动作列的方式是配置一个 actioncolumn类型的动作列,这个动作列可以包含多个图表的按钮。 添加的方式如下: {xtype: actioncolumn,items:[{iconCls: x-fa fa-trash,}]}在有的时候场景中, 会根据不同行的数据来决定是否显示动作按钮, 也就是最后的效果…

关于OpenAI的DALL的一点使用心得

文章目录注册DALL使用根据描述来generate上传图片来generate也可以根据描述信息或者相似的图片来进行设计注册DALL https://openai.com/product/dall-e-2 使用 根据描述来generate surprise me 自动生成描述&#xff08;因为每个月只有15个免费credits&#xff0c;节省起见…

java面试题(持续更新)

java面试题&#xff08;持续更新&#xff09; java 基础 java面向对象有哪些特征 面向对象的三大特征&#xff1a;封装、继承、多态 封装&#xff1a;隐藏了类的内部实现机制&#xff0c;可以在不影响使用的情况下改变类的内部结构&#xff0c;同时也保护了数据&#xff0c;…

Microsoft Dynamics 365 Business Central Planning Worksheet中Action Message状态变化

学习目标&#xff1a; 掌握Planning Worksheet中Action Message状态变化 学习内容&#xff1a; 掌握 创建物料&#xff0c;工作中心&#xff0c;工艺路线&#xff0c;BOM&#xff0c;物料和工艺路线&#xff0c;BOM的关联掌握 按订单的生产的物料卡片设置掌握 创建销售订单并…

二叉树的5个性质【要点:完全二叉树的性质】

只讲不会的 普通二叉树就要讲排列顺序了&#xff01;&#xff01;&#xff01; 预备&#xff1a;满二叉树&#xff1a;1.前提是它必须是二叉树 2.每个结点&#xff08;除了终端结点外&#xff09;都是2个子女。 要点1&#xff1a;关于普通的树的结点的计算&#xff0…

【CocosCreator入门】CocosCreator组件 | Label(文本)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中Label组件是最常用的之一。Label 组件是一个用于显示文本的 UI 组件。在本文中&#xff0c;我们将探讨 Label 组件的一些技术方面&#xff0c;包括如何创建、配置和使用它。 目录 一、…

java的集合体系结构(以及集合的遍历方式)

文章目录java集合的体系结构遍历方式通用(三种):迭代器,增强for,lambda表达式遍历迭代器(不依赖索引,适合set集合遍历)java集合的体系结构 注意点&#xff1a; Col1 ection是一个接口&#xff0c;我们不能直接创建他的对象。 所以&#xff0c;现在我们学习他的方法时&#xff0…

【数据库管理】①实例与数据库

1.Oracle RDBMS 架构图 2. Oracle 体系结构 由此区分database和instance的区别 No.1.oracle serverdatabase instance2.databasedata file、control file、redo log file3.instancean instance accesses a database4.oracle memorySGA PGA(oracle的内存结构)5.instanceSGA …

用C语言写一个函数,把字符串转换成整数

这是一个很有意思的问题。请不要把这个问题想的太简单了&#xff0c;考虑问题时应该尽可能的全面一些。请先思考并且实现这个函数&#xff0c;再来看讲解。 分析一下&#xff1a;函数名是StrToInt&#xff0c;那么可以这么调用&#xff1a; int ret StrToInt("1234&quo…

前端后端交互系列之Jquery下的Ajax

目录前言Jquery发送Ajax请求1. 引入jquery文件2. 页面结构3. 发送get请求4. 发送post请求5. 通用方法总结前言 本篇文章讲解的是Jquery下的Ajax。Jquery到现今用的不是很多&#xff0c;但是会有老的项目依旧使用Jquery&#xff0c;所以了解用Jquery实现利用ajax进行交互是有必…

SpringCloud微服务技术栈.黑马跟学(十二)

SpringCloud微服务技术栈.黑马跟学 十二今日目标服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.1.1.修改配置1.1.2.定义Return回调1.1.3.定义ConfirmCallback1.2.消息持久化1.2.1.交换机持久化1.2.2.队列持久化1.2.3.消息持久化1.3.消费者消息确认1.3.1.演示none模式1.3…

蓝桥杯刷题冲刺 | 倒计时6天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.凑数2.砝码称重1.凑数 题目 链接&#xff1a; 4941. 凑数 - AcWing题库 初始时&#xff0c;n0…