软件设计师考试-软件工程

article/2025/10/31 0:46:53

1. 软件开发模型

在这里插入图片描述

瀑布模型

瀑布模型把软件开发分为三大阶段:定义阶段、开发阶段、维护阶段。
在这里插入图片描述
瀑布模型的最大缺点在于不能灵活应对变化的需求,瀑布模型适用于需求明确的情况。

软件测试完成后的工作产品,例如系统测试数据、系统测试结果、操作手册、安装手册等。

原型模型

在这里插入图片描述
先做出一个简易的原型

原型法适用于用户需求不清,需求经常变化的情况,可以帮助导出系统需求并验证需求的有效性。探索型原型的目的是弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性,可以用来探索特殊的软件解决方案。

原型法能够迅速地开发出一个让用户看得出的系统框架,可以用来支持用户界面设计。

演化模型

演化模型主要针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。软件开发人员根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。软件开发人员根据用户的反馈,实施开发的迭代过程。第一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。

在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。于是,设计就不断地演化出新的系统。 实际上,这个模型可看作是重复执行的多个“瀑布模型”。

“演化模型”要求开发人员有能力把项目的产品需求分解为不同组,以便分批循环开发。这种分组并不是绝对随意性的,而是要根据功能的重要性及对总体设计的基础结构的影响而作出判断。有经验指出,每个开发循环以六周到八周为适当的长度。

增量模型

增量模型,它采用的是一种“递增式”模型,它将软件产品划分称为一系列的增量构件(构件表示物理模块而不是逻辑模块),分别进行设计、编码、集成和测试。在利用增量模型进行开发时,如何进行模块的划分往往是难点所在。

在这里插入图片描述

V模型

在这里插入图片描述

喷泉模型

喷泉模型是面向对象的开发模型,每个阶段没有明确界限,各阶段同时运行。
在这里插入图片描述

RAD

CBSD

在这里插入图片描述

敏捷开发

敏捷开发模型,即3-3-5-5模型,(3个工件,3个角色,5个价值观,5个事件)
3个工件:Product Backlog、Sprint Backlog、Product Increment
3个角色:Product Owner、Scrum Master、Development Team
5个价值观:勇气 专注 承诺 尊重 开放
5个事件:Sprint、Sprint Planning、Daily Scrum、Sprint Review、Spring Retrospective

敏捷开发方法

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

极限编程

敏捷开发是一个大的概念。Scrum是一种敏捷方法,极限编程是敏捷开发的一种实践方法。我们可以把Scrum当作是道,则极限编程就是术,两者其实不冲突,可以结合使用,相辅相成。Scrum更强调核心价值观,在价值观的指导下推导出的行为准则,产生一系列的Scrum活动,如每日站会、冲刺、评审、回顾会等。极限编程和Scrum是两个不同的敏捷开发方法,它们关注的是软件开发过程中的不同层次的内容。

在这里插入图片描述

2. 信息系统(软件)开发方法

在这里插入图片描述

3. 需求分析

在这里插入图片描述

在这里插入图片描述

4. 软件设计

基本原则

在这里插入图片描述

在这里插入图片描述
“模块的大小适中”原则:过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分;过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁

结构化方法的分析结果由以下几部分组成:一套分层的数据流图,一本数据词典,一组小说明(也称加工逻辑说明)、补充资料。

编写文档有助于提高软件开发的效率而不是降低。

软件文档按照其产生和使用的范围可分为开发文档,管理文档和用户文档。其中开发文档包括:软件需求说明、可行性研究报告、项目开发计划。

内聚与耦合

内聚的紧密程度从高到低排列:

功能内聚是最理想的内聚模式。
在这里插入图片描述
数据耦合:借助参数表传递简单数据
标记耦合:通过参数表传递记录信息(数据结构)

耦合是模块之间的相对独立性的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型。不取决于模块提供的功能数

系统结构

在这里插入图片描述

概要设计

一般来说,概要设计的内容包含系统架构、模块划分、系统接口、数据设计4个方面的主要内容,不包括模块内算法设计。

5. 软件测试

测试原则与类型

在这里插入图片描述

测试用例设计

测试设计和测试用例在需求分析阶段撰写。

黑盒测试:黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。

白盒测试:白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。

在这里插入图片描述
白盒测试的重点考点

  • 语句覆盖:语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。语句覆盖是一种很弱的覆盖标准。

  • 判断覆盖:判断覆盖是设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即是程序流程图中的每一个真假分支至少被执行一次。

  • 路径覆盖:选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。

在这里插入图片描述

测试阶段

在这里插入图片描述

在这里插入图片描述
单元测试:单元测试侧重于模块中的内部处理逻辑和数据结构,所有模块都通过了测试之后,把模块集成起来仍可能会出现穿越模块的数据丢失、模块之间的相互影响等问题。因此,需要模块按系统设计说明书的要求组合起来进行测试,即集成测试,以发现模块之间协作的问题。

确认测试包括:内部确认测试、Alph测试、Beta测试、验收测试、安装测试。确认测试首先要进行有效性测试以及软件配置审查,然后进行验收测试和安装测试。其中有效性测试,就是在模拟环境下,通过黑盒测试检验所开发的软件是否与需求规格说明书一致。

系统测试包括:恢复测试、安全性测试、压力测试、性能测试、可靠性测试、可用性测试、可维护性测试、安装测试。

回归测试:回归测试是在软件发生变更之后进行的测试,以发现在变更时可能引起的其他错误。

接受测试:接受测试基于客户或最终用户的规格书中的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。

McCabe复杂度

在这里插入图片描述
另一种计算McCabe复杂度的方法:统计有向图中的闭环数目+1,就等于环路复杂度。

软件调试-归纳法

归纳法是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。

6. 系统运行与维护

在这里插入图片描述

软件维护工具辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。不包括配置管理工具。

软件文档管理指南-按阅读对象分类
在这里插入图片描述

LOC是Line Of Codes的缩写,指构成软件的源代码行数。LOC主要用于估算软件成本和规模。软件估算的另外一个传统参数是功能数目。

7. 软件能力成熟度模型

CMM软件能力成熟度模型是一种评价软件承接方软件能力的方法,同时它可帮助软件组织改进其软件过程。CMM分为五个级别:初始级、可重复级、已定义级、已管理级、优化级。

ISO/IEC软件质量模型

ISO/IEC软件质量模型中,质量特性及其子特性如下表所示。

功能性可靠性易用性效率维护性可移植性
适合性,准确性,互用性,依从性,安全性容错性,易恢复性,成熟性易学性,易理解性,易操作性时间特性,资源特性可测试性,可修改性,稳定性,易分析性适应性,易安装性,一致性,可替换性

在这里插入图片描述

8. 软件能力成熟度模型集成-CMMI

软件能力成熟度模型CMM,是一种评价软件承接方软件能力的方法,同时它可帮助软件组织改进其软件过程。CMM分为五个等级:初始级(已执行的),可重复级,已定义级,已管理级,优化级。1级(初始化)为最低级,5级(优化级)为最高级。

在这里插入图片描述

在这里插入图片描述

(已执行的)的共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。

9. COCOMO II

COCOMO II是一种成本估算模型,估算选择有:对象点、功能点和源代码行。

10. 项目管理

在这里插入图片描述

风险管理

风险管理又称风险曝光度,测量的是资产的整个安全性风险,它将表示实际损失的可能性与表示大量可能损失的咨询结合到单一数字评估中。在形式最简单的定量性风险分析中,风险曝光度可通过将风险可能性及影响相乘算出。

风险曝光度=错误出现率(风险出现率)×错误造成损失(风险损失)。

时间管理-关键路径法
在这里插入图片描述
时间管理-前导图法(单代号网络图,PDM)
在这里插入图片描述
关键路径即工期最长的路径。
在这里插入图片描述
答案:D,C

项目的关键路径为从开始到结束持续时间最长的路径,也是项目的工期。
在这里插入图片描述

11. 配置管理

配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。

配置管理的活动包括:制定配置管理计划、配置库管理、配置控制、配置状态报告、配置审计、发布管理和交付。

笔记总结来自:软件设计师考试教程


http://chatgpt.dhexx.cn/article/2GROFAJA.shtml

相关文章

软考之软件工程

软件过程 软件成熟度模型(CMM) 软件过程改进的框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。 每一次软件改进要精力4个步骤:评估、计划、改进和监控。 能力成熟度模型集成(CMMI&a…

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

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…