软考之软件工程

article/2025/10/31 0:32:33

软件过程

软件成熟度模型(CMM)

软件过程改进的框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。

每一次软件改进要精力4个步骤:评估、计划、改进和监控。

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

 

能力等级0指未执行过程,表明过程域的一个或多个特定目标没有被满足;

能力等级1指过程通过转化可识别的输入工作产品,产生可识别的输出工作产品,关注于过程域的特定目标的完成;

能力等级2指过程作为已管理的过程制度化,针对单个过程实例的能力;

能力等级3指过程作为已定义的过程制度化,关注过程的组织级标准化和部署;

 能力等级4指过程作为定量管理的过程制度化;

能力等级5指过程作为优化的过程制度化,表明过程得到很好地执行且持续得到改进。

 软件过程模型

基于构件的软件开发主要强调在构建软件系统时复用已有软件的“构件”,在检索到可以使用的构件后,需要针对新系统的需求对构件进行合格性检验、适应性修改,然后集成到新系统中。

瀑布模型

每个阶段结束之后都要写一分文档,以文档为驱动。

V模型将测试和分析与设计关联进行。

 一般有V模型有瀑布模型就选瀑布模型。

需求明确,变更比较少就选择瀑布模型。

增量模型

 优先级高的增量先交付,测试最多次数。

增量模型的需求一开始是明确的。

 演化模型

适用于不断更新功能的软件或者需求不明确,在原型基础上继续开发。

 原型模型

原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。

原型模型不适宜大规模软件的开发。

 螺旋模型

 螺旋模型把开发活动和风险管理结合起来以将风险减小到最小并控制风险。适合大型软件开发,有风险识别。

喷泉模型 

 统一过程模型

 敏捷方法

 

 集体所有权表示任何开发人员可以对系统任何部分进行改变;

结对编程存在一个非正式代码审查过程,可以获得更高的代码质量,但编码速度与单人编程想当。

 软件需求

 

 系统设计

(需求分析

确定软件要完成的功能及非功能性要求。)

概要设计

概要设计的任务是设计软件系统总体结构。

详细设计 

(编码

根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。)

开发方法

结构化方法:数据处理领域不太复杂;

原型化方法:需求不清晰且规模不太大;

设计方法

结构化设计:模块为函数、过程以及子程序; 

面向对象设计:模块为类、对象和构件;

 系统测试

 测试设计文档在各阶段都要撰写。

传统软件的测试策略

软件测试的基本目标是发现软件中的错误。

单元测试

 

 

单元测试主要是发现代码中的问题,针对详细设计和软件实现阶段的工作进行的。

 集成测试

集成测试验证系统模块能否根据系统和程序设计规格说明的描述进行工作,即测试模块以及模块之间的接口

 自顶向下从抽象到具体。

 

 回归测试在软件发生变更之后进行。

系统测试验证系统是否执行了需求规格说明中的功能和非功能要求,测试目标在需求分析阶段就已经定义。

 测试方法

静态测试分为人工检查和程序编译两种方法。

 黑盒测试:只需要输入并观察输出结果就好,不考虑内部实现细节。

 

值在定义域内的都是有效等价类,在定义域外都是无效等价类。

 测试用例既要有效等价类又要无效等价类。即一个合理数据一个不合理数据,或者都是合理数据,不合理数据唯一能测试出。

 McCabe度量法

V(G)为环路复杂度,m为点的个数,n为边的条数 。点包括【开始】这一语句,边也包括【开始】与【语句1】之间的连线。即图中所有框与所有线。

代码行数是度量软件复杂性的一个重要参数。

简单路径:没有重复结点。

汇合结点相当于两条边。

伪代码转换成流程图:

 

 

 白盒测试  

 若一个测试用例无法让每条语句都至少执行一次,那么就设计足够多的测试用例,达到所有的语句都至少被执行一次的目的。

每个真值与假值都满足一次。AND和OR中的每一个逻辑表达式都能分别取到真值与假值。

 

 运行和维护

 

 软件的可维护性是在开发阶段就需要维护,在软件开发的各个阶段都需要考虑提高软件产品的可维护性。

软件文档

用于系统开发人员与项目管理人员在项目期内进行沟通的文档主要有系统开发计划,包括工作任务分解表、PERT图、甘特图和预算分配表等。

总体规划和开发合同用于与系统分析人员在系统规划和系统分析阶段的沟通。

测试计划用于系统测试人员与系统开发人员之间的沟通。
 

系统维护 

 

 

正确性维护:诊断和改正错误的过程。

适应性维护:外部环境(新的软、硬件配置)、数据环境(数据库、数据格式、数据输入/输出发方式、数据存储介质)发生变化而修改软件的过程。 

完善性维护:扩充功能、改进效率、增强性提高可维护性。-

为软件运行增加监控设施属于完善性维护(扩充功能)。

逆向工程产品设计是根据已经存在的产品,反向推出产品设计数据(各类设计图或数据模型)的过程。一般先采用逆向工程先从代码分析出设计,再从设计分析出需求,此时加入新的需求,然后走正向工程的路线,形成新的系统逆向工程是在需求分析阶段进行的

沟通路径:相当于完全无向图;

主程序员组(相当于中介者模式):一共有n个程序员中包含一个主程序员,则有n-1个沟通路径;

无主程序员组适合项目规模较小,开发人员少,采用新技术和确定性较小的项目。

 

进度管理

 

 

 一般可以有多个开始结点但是只能有一个结束结点;

没有事件指入的事件是开始结点,没有指出事件是结束结点。

 求最早时刻取最大值,求最迟时刻取最小值;

松弛时间: 相当于摸鱼时间。对于只有一个指出事件的结点对应事件松弛时间=最迟时间-最早时间;对于多指出事件的结点(如结点2、4)看该事件原本最迟时间为多少由此算摸鱼时间,对于4到7,原本最迟时刻是16,因此松弛时间=结束结点最迟时刻17-任务持续时间1-开始结点最早时刻5=11

关键路径:往松弛时间为0的路径走。从结束结点开始往前看,看结点最早时间与上一个结点的最早时间是否只差一个任务持续时间,是的话此结点在关键路径上。

完成项目的最短时间因改动而推迟(提前)了多长时间要看所有的事件的最早开始时刻最多改变了多少。

项目活动图

 完成项目的最短时间即关键路径的长度。

 只能通过缩短关键路径上的活动工期才能缩短整个项目的完成时间,缩短非关键路径活动的工期只会延长松弛时间对活动结束时间没有有影响。

软件配置管理

风险管理

风险分析包括:风险识别、风险预测、风险评估、风险控制。

 风险识别

 风险只能尽可能的避免,但是不能完全避免。

若某一事件的发生存在着两种或两种以上的可能性,即可认为该事件存在风险。如项目的客户不确定需求是确定事件,所以不存在风险。

风险预测

根据风险暴露度评估风险等级。

风险评估

根据风险预测的结果预测是否影响参考水平值。

风险控制

 软件质量

软件质量特性 

 

 

 

 

软件的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

 软件评审

 

 

 软件容错技术

容错技术是对某些无法避开的差错,使其影响减至最小的技术。

冗余技术分为四类,结构冗余、信息冗余、时间冗余和冗余附加技术。

冗余附加技术是指为实现其他类型冗余技术所需要的资源和技术,包括程序指令、数据、存放和调动它们的空间和通道等。

在屏蔽硬件错误的容错技术中,冗余附加技术包括:关键程序和数据的冗余存储及调用:检测、表决、切换、重构、纠错和复算的实现。

在屏蔽软件错误的容错技术中,冗余附加技术包括:冗余备份程序的存储及调用;实现错误检测和错误恢复的程序;实现容错软件所需的固化程序。
 

软件工具

软件维护阶段: 转自b站up主zst-2001


http://chatgpt.dhexx.cn/article/0KvY2UyQ.shtml

相关文章

广东二级造价工程师《造价管理》真题解析

2022年广东二级造价工程师考试结束之后,有些网友吐槽:说今年的二造考试出题有点偏,有点难。不过也有网友表示so easy~ 由于二造是机考,当场出分。现在只能期待今年及格线和以往一样。成绩不太理想的考生也不要紧,抓紧看…

软件 工程

目录 第十章、软件工程1、瀑布模型(SDLC)2、快速原型模型3、增量模型4、螺旋模型5、Ⅴ模型6、喷泉模型7、构建组装模型(CBSD)8、统一过程(RUP)9、敏捷开发方法10、信息系统开发方法11、需求开发12、结构化设…

造价师工程师零基础自学

二级造价工程师零基础自学可以考过,但是前提是自己要有很强的学习能力和自律性。帮过网表示,二级造价工程师考试难度不小,想要考过还是要付出很多的努力的。 1、零基础怎么备考二级造价师 一:理解基础知识——看教材。 作为小白…

2、软件造价总结(主要基准数据)

1、软件开发生产率 2、人月费率 3、功能点单价 功能点单价基准为 1245.19 元/功能点(以北京地区 功能点(以北京地区 统计数据 中位数 为基准, 费用包含 软件 开发 的直接 人力成本、间直接 人力成本、间人力 成本 、间接非人力成本 、间接非…

软考软件设计师----软件工程(自用)

本篇博文目录: 1.CMM与CMMI(1) CMM(2) CMMI 2.软件开发模型(1) 瀑布模型(2) V模型(3) 增量模型(4) 演化模型(5) 喷泉模型(6) 统一过程模型 3.敏捷方法(1) 软件需求(2) 系统设计(3) 系统测试 4.测试(1)单元测试(2)集成测试(3) 测试方法 5.运行和维护知识(1) 系统可维护的评价指标…

软件工程(Software Engineering)

软件工程(Software Engineering) GTI-分布式版本控制系统查看已有的git配置信息DVOS运维一体化单分支模型exitgit --versiongit clone urlnotepadgit config --listgit initgit remote add originjava JDK版本Builder Design Mode质量属性 FURPS功能性&a…

软考-软件工程

目录 🍓软件工程概述 🧀1.软件生存周期 🧅2.软件生存周期模型 🍚瀑布模型 🍈快速原型 🍘增量模型 🍯螺旋模型 🧀喷泉模型 🍪敏捷过程 🍣3.软件开发…

Springboot+建筑造价师资格考试应试网站设计与实现 毕业设计-附源码260839

Springboot建筑造价师资格考试应试网站 摘 要 如何合理确定和有效控制工程投资,是工程项目建设的一大难题,如何使建筑工程造价管理与社会生产水平相适应,是建筑工程造价管理中需要解决的问题,只有加强建筑工程造价管理工作力度&a…

linux强行退出线程,Linux 多线程编程--线程退出

今天分析项目中进程中虚存一直增长问题,运行10个小时虚存涨到121G ,RSS占用为16G 非常恐怖。 顺便查了下Linux单进程能创建线程的上限,以及相关内容。内存32G 64bit系统信息如下: Linux线程使用方式是主进程依据请求的多少动态创建…

Linux线程优先级设置

Linux内核的三种调度策略: 1.SCHED_OTHER 分时调度策略 2.SCHED_FIFO 实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃 3.SCHED_RR实 时调度策略,时间片轮转。当进程的时间片用完&#xff0…

linux多线程编程 实验,linux操作系统-实验五-linux 多线程编程.docx

linux操作系统-实验五-linux 多线程编程.docx 操作系统 实验报告 实验序号 5 实验项目名称 Linux 多线程编程 学 号 姓 名 专业、班 实验地点 指导教师 实验时间 2015.10.13 一、实验目的及要求 通过本实验的学习,使学生掌握 Linux 多线程编程的基本方法。 以学生自…

Linux下多线程的操作

线程定义 **定义:**线程是轻量级的进程(LWP:light weight pocess),在Linux环境下线程的本质仍然是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位…

Linux多线程——概念

目录 前言 一.线程的概念 1.1 什么是线程 1.2 线程的优点 1.3 线程缺点 1.4 线程异常 1.5 线程用途 1.6 Linux进程和线程对比 1.7 关于进程和线程的问题 1.7.1 POSIX线程库 1.7.2 进程ID和线程ID 1.7.3 线程ID和进程地址空间 1.7.4 线程库与内核线程的关系 二.线程管理 …

Linux多线程 | 线程同步

文章目录 前言主要介绍四种常用的线程同步方式以及相关的函数接口。 一、线程同步二、同步方法1.互斥锁2.信号量3.条件变量4.读写锁 总结 前言 主要介绍四种常用的线程同步方式以及相关的函数接口。 提示:以下是本篇文章正文内容,下面案例可供参考 一…

linux多线程实验实验报告,Linux多线程实验.ppt

Linux多线程实验.ppt (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 Linux多线程实验实验目的掌握Linux多线程程序编写。 Date1实验设备硬件PC机(带网卡) 1台MagicARM270教学实验开…

linux线程全解

目录 一、再论进程1、进程的挂起、阻塞和睡眠的区别:2、多进程实现同时读取键盘和鼠标 二、线程的引入1、线程进程的区别体现在几个方面2、进程与线程的选择取决以下几点3、使用线程技术同时读取键盘和鼠标 三、线程常见函数1、线程创建与回收2、线程取消3、线程函数…

Linux线程详解(概念、原理、实现方法、优缺点)

文章目录 一、Linux线程基本概念二、Linux内核线程实现原理三、创建线程四、线程的优缺点 一、Linux线程基本概念 linux中,线程又叫做轻量级进程(light-weight process LWP),也有PCB,创建线程使用的底层函数和进程底层…

Linux 线程———详解

1、线程的概念 和 基础知识 1.1 什么是线程 线程可看作轻量级进程(light weight process),Linux的线程本质仍然是进程。Linux先有进程后有线程,当创建了一个进程时,系统给他分配一段4G的虚拟内存,并在其内…

【Linux】线程

前言 目录 1.Linux下的线程概念 2.Linux线程控制:pthread线程库 在单执行流的进程中,此执行流独占了进程的所有资源 在一个进程内部,有时不一定只有一个执行流,在多执行流下,多个执行流共享了进程的地址空间&#xf…

C语言string库strcpy、strcmp、strcat函数详解

strcpy 即string copy 语法格式为strcpy(str1, str2), 作用是将str2赋值给str1 使用方法类似于 char str1[10], str2[] "abc"; strcpy(str1, "bcd"); strcpy(str1, str2); printf("%s", str1); // abcstr2可以是字符串, 也可以是字…