天天看点

软件设计师考试(五)——软件工程

title: 软件工程

date: 2021-02-07 19:26:51

tags: exam

description: 软考(五)

1.开发过程模型

瀑布、增量、原型、螺旋、喷泉、基于构件的开发模型、形式化方法模型、统一过程UP、敏捷方法
软件设计师考试(五)——软件工程
  • 瀑布模型(需求明确,二次开发)
    软件设计师考试(五)——软件工程
  • 演化模型(典型的有原型模型和螺旋模型)、增量模型(每一个增量均发布一个可操作的产品,可以快速构造核心产品,容易边做边改)

    原型模型(适用于用户需求不清、需求经常变化的情况,系统规模不是很大,动态定义需求,有效地捕获系统需求)

    螺旋模型(强调风险分析,适用于庞大、复杂且具有高风险的系统)

    软件设计师考试(五)——软件工程
  • 螺旋模型(多个原型-需求可以不明确)
    软件设计师考试(五)——软件工程
  • V模型(尽早进行测试,并贯穿始终)
    软件设计师考试(五)——软件工程
  • 喷泉模型(适用于面向对象开发方法、迭代、无间隙)

    迭代性:开发活动需要重复多次

    无间隙:在开发活动(分析、设计、编码)之间不存在明显的边界,开发人员可以同步进行,提升软件项目的开发效率

  • 快速开发模型(RAD)
  • 构建组装模型(CBSD),本质上是演化模型
    软件设计师考试(五)——软件工程
  • 敏捷开发方法(尽可能早地、持续地对有价值的软件的交付)
    • 极限编程(XP)
    • 水晶法(Crystal):每一个不同的项目都需要一套不同的策略、约定和方法论
    • 并列争求法(Scrum):使用迭代的方法
    • 自适应软件开发(ASD)
    • 敏捷统一过程(AUP)
      软件设计师考试(五)——软件工程
  • 统一过程(UP)模型 ——用例和风险驱动,以架构为中心,迭代并且增量,由UML方法和工具支持
    • 起始阶段:生命周期目标
    • 精化阶段:生命周期架构
    • 构建阶段:初始运作功能
    • 移交阶段:产品发布
    • 产生阶段

2.信息系统的开发方法

结构化法、原型法、面向对象法、面向服务法
软件设计师考试(五)——软件工程

3.需求的分类与需求获取

软件设计师考试(五)——软件工程

4.需求分析

5.结构化设计

软件设计师考试(五)——软件工程
软件设计师考试(五)——软件工程
软件设计师考试(五)——软件工程

6.数据流图

  • 组成部分(加工、数据流、数据存储、外部实体):
    软件设计师考试(五)——软件工程
    虽然涉及的元素少,但数据流图本身却并不简单。图 “0层数据流图示例” 便是一张数据流图,该图中包括:数据流(例如:非法用户信息、用户信息等)、外部实体(例如:前端应用、数据管理员等)、数据存储(例如:用户表、操作表、权限表)、加工(例如:用户验证、用户管理等)。
    软件设计师考试(五)——软件工程
    ​ 0层数据流图示例
  • 分层数据流图(DFD)——*自顶至下,逐步精化***

    具体过程:

    1. 画系统的输入输出

      把整个软件系统看做一个大加工,确定与外部实体之间的输入和输出数据流,这个结果也称为顶层图。如图 “顶层数据流图示例” 所示,数据管理中间件是我们要开发的系统,但顶层图将该系统看成了一个大加工,这种图能很好的体现出系统与外部实体之间的交互关系。

      软件设计师考试(五)——软件工程
      ​ 顶层数据流图示例
    2. 画系统的内部

      将顶层图中的加工分解成若干个加工,并用数据流连接这些加工。这张图称为0层图。而从一个加工画出一张数据流图的过程就是对该加工的分解过程。在该图中,展示出数据管理中间件拥有一系列的加工:用户验证、用户管理、操作管理、权限管理、格式检查、权限验证、连接管理,以及这些加工之间的关系。

    3. 画加工的内部

      把每个加工看做一个小系统,以画0层图的方式画出每个加工的DFD子图

    • 数据平衡原则
    分层数据流图之间需要平衡 每张数据流图的数据需要平衡

    (1)分层数据流图的数据平衡原则

    父图 = 顶层数据流图 子图 = 0层数据流图

    保持父图与子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同。如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。

    (2)每张数据流图的数据平衡原则

    加工的输入数据流和输出数据流要平衡,即保证加工的输出数据流都有其对应的输入数据流与 输出数据流。以下属于打破了数据平衡原则,会产生错误的情况。

    若一个加工只有输入数据流而无输出数据流,则称为黑洞。如图(a)所示。

    若一个加工只有输出数据流而无输入数据流,则称为奇迹。如图11-3(b)所示。 若一个加工的输入数据流无法通过加工产生输出流,则称为灰洞。

软件设计师考试(五)——软件工程
软件设计师考试(五)——软件工程

​ (a)黑洞 (b)奇迹

此外需要注意的是:一个数据流图中,不允许数据流同名。

软件设计师考试(五)——软件工程

7.测试原型与类型

软件设计师考试(五)——软件工程

8.测试用例设计

软件设计师考试(五)——软件工程

白盒测试:

(1)基本路径测试

(2)循环覆盖测试

(3)逻辑覆盖测试

1语句覆盖

2判定覆盖

3条件覆盖

4条件判定覆盖

5修正的条件判断覆盖

6条件组合覆盖

7点覆盖

8边覆盖

9路径覆盖

软件设计师考试(五)——软件工程

个别测试法:

软件设计师考试(五)——软件工程

黑盒测试:

等价类划分测试

软件设计师考试(五)——软件工程

9.测试阶段

软件设计师考试(五)——软件工程
  • 单元测试
软件设计师考试(五)——软件工程
  • 集成测试
软件设计师考试(五)——软件工程
  • 系统测试阶段的测试目标来自于需求分析阶段

10.McCabe度量法的环路复杂性(V=m-n+2) 以节点开头和结尾

软件设计师考试(五)——软件工程

11.软件运行与维护

软件设计师考试(五)——软件工程

在判断维护类型的时候,经常把适应性维护与完善性维护搞混淆,一般题目明确指出了

环境的改变,否则基本上都是完善性维护

软件维护工具主要有:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具、配置管理支持工具

12.软件成熟度模型CMM

  • 1.初始级
  • 2.可重复级-有经验但未形成文档:要求建立基本的管理制度和规程,管理工作有章可循,初步实现开发过程标准化
  • 3.定义级-文档化:要求整个软件生命周期的管理和Z技术工作均已实现标准化、文档化
  • 4.管理级-量化:软件过程和产品已经建立定量的质量标准,并通过一致的度量标准来指导软件过程
  • 5.优化级-优化:企业可集中精力改进软件过程,并拥有防止出现缺陷并进行改进的手段
软件设计师考试(五)——软件工程
软件设计师考试(五)——软件工程

13.软件调试

归纳法、试探法、回溯法、对分查找法、演绎法
软件设计师考试(五)——软件工程

14.风险分析

14.1风险识别

14.2风险预测

14.3风险评估

14.4风险控制