软考-系统开发基础

软件开发模型

瀑布模型

软考-系统开发基础_第1张图片
瀑布模型的优点是:容易理解,管理成本低;签掉开发阶段早期计划及需求调查和产品测试

V模型

软考-系统开发基础_第2张图片
V模型是瀑布模型的一个变体
注重测试,但测试放在编码之后

喷泉模型

软考-系统开发基础_第3张图片

原型模型

软考-系统开发基础_第4张图片

螺旋模型

软考-系统开发基础_第5张图片
综合了瀑布模型和原型模型的优点,加入了风险分析,成本比较大

增量模型

软考-系统开发基础_第6张图片
软考-系统开发基础_第7张图片

统一过程(up)(用例驱动)

  1. 起始阶段
    1. 确定项目范围和边界
    2. 识别系统的关键用例
    3. 展示系统的候选架构
    4. 估计项目费用和时间
    5. 评估项目风险
  2. 精细化阶段
    1. 分析系统问题领域
    2. 建立软件架构基础
    3. 淘汰最高风险元素
  3. 构造阶段
    1. 开发剩余的构件
    2. 构件组装和测试
  4. 移交阶段
    1. 进行β测试
    2. 制作发布版本
    3. 用户文档定稿
    4. 确认新系统
    5. 培训,调整产品

敏捷方法

软考-系统开发基础_第8张图片
极限编程(XP) -> 费用控制严格的公司使用,解决代码质量低的问题,编码速度不能改变
水晶方法(Crystal) -> 用最少纪律约束而仍能成功的方法
开放式源码 -> 程序开发人员在地域上分布很广
并列征求法(Scram) -> 明确定义了的可重复的方法过程

软件开发方法

软考-系统开发基础_第9张图片

  • 原型法:需求不清晰且多变
  • 结构化:系统规模不太大且不太复杂,需求变化不大
  • Jackson:一种面向数据结构的发放,以数据结构为驱动,适合小规模项目

需求分析

软考-系统开发基础_第10张图片

数据流图(重)

软考-系统开发基础_第11张图片

数据字典

软考-系统开发基础_第12张图片

软件设计

软考-系统开发基础_第13张图片

高内聚,低耦合

高内聚(越往上,内聚越高,越好)

  1. 功能内聚
    1. 完成一个单一功能,各个部分协同工作,缺一不可
  2. 顺序内聚
    1. 处理元素相关,而且必须顺序执行
  3. 通信内聚
    1. 所有处理元素集中在一个数据结构区域上
  4. 过程内聚
    1. 处理元素相关,而且必须按特定的次序执行
  5. 瞬时内聚(时间内聚)
    1. 所包含的任务必须在同一时间间隔内执行
  6. 逻辑内聚
    1. 完成逻辑上相关的一组任务
  7. 偶然内聚
    1. 完成一组没有关系或松散关系的任务

低耦合(越往上,耦合越低,越好)

  1. 非直接耦合
    1. 两个模块直接没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
  2. 数据偶尔
    1. 一组模块借助参数表传递简单数据
  3. 标记耦合
    1. 一组模块通过参数表传递记录信息(数据结构)
  4. 控制耦合
    1. 模块之间传递的信息中包含用于控制模块内部逻辑的信息
  5. 外部耦合
    1. 一组模块都访问统一全局简单变量,而且不是通过参数表传递该全局变量的信息
  6. 公共耦合
    1. 多个模块都访问同一个公共数据环境
  7. 内容耦合
    1. 一个模块直接访问另一个模块的内部数据;
    2. 一个模块不通过正常入口转到另一个模块的内部
    3. 两个模块有一部分程序代码重叠
    4. 一个模块有多个入口

耦合取决

耦合取决于:

  1. 各个模块之间接口的复杂程度
  2. 调用模块的方式
  3. 通过接口的信息类型

软件测试

软考-系统开发基础_第14张图片

  1. 语句覆盖:每个语句执行一次
  2. 判断覆盖:每个判定真假至少一次
  3. 条件覆盖:每个判定中的每个条件至少一次
  4. 判断条件:2+3
  5. 路径覆盖
  6. 组合覆盖:条件组件覆盖,每个判定中的各个条件的各种可能的组合至少一次

测试阶段

  1. 单元测试
  2. 集成测试
  3. 系统测试
    1. 安全性测试
    2. 可靠性测试
  4. 确认测试
  5. 验收测试

测试配置管理

  1. 配置项标识
  2. 配置项控制
  3. 配置状态报告
  4. 配置审计

MnCabe复杂度(环路)

计算有向图的环路复杂度公式为:V(G) = m - n + 2 其中:

  • V(G)是有向图G中环路个数
  • m是G的有向弧数
  • n是G中的节点数

注:V(G) = 封闭区域 + 1
软考-系统开发基础_第15张图片

软件维护

软考-系统开发基础_第16张图片

软件维护工具

  1. 版本控制工具
  2. 文档分析工具
  3. 开发信息库工具
  4. 逆向工程工具
  5. 再工程工具

文档

软考-系统开发基础_第17张图片

软件质量保证

软考-系统开发基础_第18张图片

软件过程改进 - CMMI

软考-系统开发基础_第19张图片

项目管理

十大知识领域
软考-系统开发基础_第20张图片
image.png

时间管理

关键路径

  • ES 最早开始时间
  • EF 最早完成时间
  • LS最晚开始时间
  • LF 最晚结束时间

总时差 = LS - ES = LF - EF

image.png

其他

软件工程基本要素:方法、工具和过程
软件配置管理包括:版本控制、变更控制、过程支持
顶层测试不需要写驱动模块,底层测试不需要写桩模块
需求分析阶段输出:数据字典,数据流图,ER图

系统生命周期

  1. 系统规划阶段产出:系统设计任务书(系统建设方案、实施计划)
  2. 系统分析阶段产出:系统需求规格说明书、软件需求规格说明书、确认测试计划、系统测试计划、初步的用户手册
  3. 系统设计阶段产出:架构设计文档、概要设计说明书、详细设计说明书、程序规格说明说、概要测试加护、详细测试计划、各类设计图
  4. 系统实施阶段产出:源码、单元测试、集成测试报告、操作手册
  5. 系统验收阶段产出:确认测试报告、项目验收报告

ISO/IEC

由三个层次组成:

  1. 质量特性
  2. 质量子特性
  3. 度量指标

软件质量,是软件满足规定或骑在用户需求的能力

  1. 内部质量
  2. 外部质量
  3. 使用质量

功能性包括了:

  1. 适应性
  2. 准确性
  3. 互操作性
  4. 功能依从性
  5. 安全性

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