软考:软件设计师(中级)--学习笔记10软件工程

目录

十、软件工程

10.1软件开发模型

10.1.1瀑布模型(SDLC)

10.1.2原型模型、演化模型、增量模型

10.1.3螺旋模型

10.1.4 V模型、喷泉模型与RAD

10.1.5构件组装模型(CBSD)

10.1.6统一模型(UP)

10.1.7敏捷开发方法

10.2信息系统开发方法

10.3需求工程

10.3.1需求分类与需求获取

10.4软件测试

10.4.1测试原则与类型

10.4.2测试用例设计

10.4.3测试阶段

10.4.4 MaCabe复杂度

10.5软件过程改进— 软件能力成熟度模型集成(CMMI)

10.6项目管理基础知识


十、软件工程

10.1软件开发模型

10.1.1瀑布模型(SDLC)

软考:软件设计师(中级)--学习笔记10软件工程_第1张图片

瀑布模型:是结构化方法中的模型,一般应用于结构化的开发。适用于需求明确或二次开发(大部分需求明确)的情况

∵需求阶段难以把控,浪费大量时间,难以完成很多项目的开发

10.1.2原型模型、演化模型、增量模型

软考:软件设计师(中级)--学习笔记10软件工程_第2张图片

原型法:通过在开发前做一个简易系统的方式,以比较低的成本获取比较全面的、准确的客户需求。适用于需求分析阶段。

增量模型:一块一块做,先做核心模块,风险小。

10.1.3螺旋模型

软考:软件设计师(中级)--学习笔记10软件工程_第3张图片

 最显著特征—加入了风险分析

10.1.4 V模型、喷泉模型与RAD

软考:软件设计师(中级)--学习笔记10软件工程_第4张图片

1)V模型特点

  • 细化测试,强调测试应该贯穿于开发的始终
  • 需求和测试有着对应关系,在需求分析阶段就写验收测试和系统测试的测试计划,提早发现问题,从测试的眼光看待问题,就能提早发现需求中就产生的问题
  • 在概要阶段就写集成测试的测试计划,因为概要设计主要是进行模型的划分,而集成测试测的就是模型之间的衔接,就能更好地发现模块划分的问题

2)喷泉模型:是面向对象的模型

3)RAD(快速开发模型):由瀑布模型(SDLC)和构件组装模型(CBSD)组合形成

10.1.5构件组装模型(CBSD)

CBSD基本思路:把软件开发中的各个模块做成标准构件,然后将构件进行组装得到需要的软件。极大提高了软件开发的复用性,使软件开发的总时长极大地减少。

优点:缩短时间、节省成本、增加软件可靠性【可靠性是因为在CBSD这种开发模型中会构建一个构件库,构件库的构件可以直接提取出来用在新的系统中,这就意味着很多构件是以前应用在其他的系统中的,这些构件的可靠性已经经过很长时间的验证,如果有问题,在以前的系统中就已经发现并修正了,所以再应用到新的系统中,出错的概率会远远小于新开发的构件】。

软考:软件设计师(中级)--学习笔记10软件工程_第5张图片

 

10.1.6统一模型(UP)

软考:软件设计师(中级)--学习笔记10软件工程_第6张图片

 

统一过程的特点:

用例驱动:体现在最开始通过需求分析设计出相应用例,然后实现用例,同时用例又作为指导测试用例开发的依据,所以在整个开发阶段,通过用例将各个阶段穿起来,并推动各个阶段
以架构为中心:先将架构设计好,再向当中填充构件,完成整个系统开发。
迭代和增量:在循环过程会有增量

10.1.7敏捷开发方法

软考:软件设计师(中级)--学习笔记10软件工程_第7张图片

 

10.2信息系统开发方法

软考:软件设计师(中级)--学习笔记10软件工程_第8张图片

 

结构化法缺点:一旦开发完成,流程是固化的、不灵活的

10.3需求工程

10.3.1需求分类与需求获取

软考:软件设计师(中级)--学习笔记10软件工程_第9张图片

 

业务需求:针对业务宏观的需求

用户需求:各个用户从自身角度描述的比较微观的需求

系统需求:计算机化能够指导开发的需求

10.4软件测试

10.4.1测试原则与类型

尽早、不断的进行测试

程序员避免测试自己设计的程序

既要选择有效、合理的数据,也要选择无效、不合理的数据

修改后应进行回归测试

尚未发现的错误数量与该程序已发现错误数成正比

动态测试:黑盒测试法;白盒测试法;灰盒测试法

静态测试:桌前检查(程序员写完代码后自己检查);代码走查(代码人工走一遍);代码审查(交叉检查)

10.4.2测试用例设计

①黑盒测试—在测试时将软件模块看作一个黑盒子,看不见内部结构,只知道输入输出。

②白盒测试:,看得到内部结构,通过内部结构设置测试用例

软考:软件设计师(中级)--学习笔记10软件工程_第10张图片

 

10.4.3测试阶段

软考:软件设计师(中级)--学习笔记10软件工程_第11张图片

 

单元测试:关注模块级,测局部的功能,测局部的数据结构以及模块的相关接口

集成测试:测试模块之间的衔接、接口,看之间相互配合工作是否有问题

确认测试:确认需求

系统测试:偏重于压力(极限值)、性能、可靠性方面的测试

10.4.4 MaCabe复杂度

软考:软件设计师(中级)--学习笔记10软件工程_第12张图片

 

10.5软件过程改进— 软件能力成熟度模型集成(CMMI)

软考:软件设计师(中级)--学习笔记10软件工程_第13张图片

10.6项目管理基础知识

范围管理

*时间管理

成本管理

质量管理

人力资源管理

沟通管理

*风险管理:风险是指“损失或伤害的可能性”;项目风险、技术风险、商业风险

采购管理

整体管理

风险曝光度(Risk Exposure):计算方法是风险出现的概率乘以风险可能造成的损失

假设正在开发的软件项目可能存在一个未被发现的错误,而这个错误出现的概率是0.5%,给公司造成的损失将是1000000元,那么这个错误的风险曝光度就应为1000000x0.5%=5000元。

你可能感兴趣的:(软件工程)