第四章 软件工程

1.软件生命周期

  • 需求分析–软件需求说明书
    综合需求:系统界面、系统功能、性能、安全性、保密性、可靠性,系统运行要求
    数据要求:基本数据元素、数据元素之间逻辑关系、数据量。

  • 软件设计

  • 编码及单元测试
    单元测试:程序自己测试,是否实现详细设计说明书中的功能。

  • 集成及系统测试
    集成测试: 也叫组装测试,各模块组装而成的程序进行测试,主要目标是实现模块间的接口和通信问题。
    系统测试:对象是完整的系统,环境测试。

  • 安装

  • 实施与维护

2.数据流图

结构化开发方法中需求分析工具;

  • 外部实体:系统之外的
  • 数据流:具有名字和方向的数据
  • 加工:对数据流的转换
  • 数据存储:存储信息

3.内聚和耦合

七种内聚

  • 功能内聚
  • 顺序内聚
  • 通信内聚
  • 过程内聚
  • 瞬时内聚
  • 逻辑内聚
  • 偶然内聚

七种耦合

  • 非直接耦合
  • 数据耦合
  • 标记耦合
  • 控制耦合
  • 外部耦合
  • 公共耦合
  • 内容耦合

4.软件质量模型

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

5.软件开发模型

  • 瀑布模型
    严格规定各阶段必须提交的文档;二次开发(需求明确)。
  • 喷泉模型
    开发过程迭代(多次重复)和无间隙(不存在明显边界)特征
  • 快速原型模型
    需求不明确,快速建立反映用户需求的软件模型。
  • 演化模型
    从初始模型逐步演化到最终软件产品的渐进过程。
  • 螺旋模型
    加入风险分析。使用大中型项目。

6.统一过程UP

  • 初始阶段
    原始项目需求和业务用例
  • 精化阶段
    提交系统架构及其相关文档、领域模型、开发计划
  • 构建阶段
    开发剩余的构件,以及其组装
  • 提交阶段
    进行测试,发布版本

7.系统转换

  • 直接转换
    确定新系统运行无误
  • 并行转换
    新老系统并行运行一段时间
  • 分段转换
    一部分一部分代替老系统

8.CMM模型成熟度

  • 初始级:
    依赖个别人努力和机遇而成功;
  • 可重复级:
    对成本 进度和功能追踪;
  • 定义级:
    过程文档化、标准化
  • 管理级:
    软件过程和产品质量有详细度量标准
  • 优化级:
    信息定量分析

9.软件测试

目的:软件投入生产性运行之前,尽可能多地发现软件错误。测试只能证明软件中有错误,不能证明软件没有错误。
根据pareto原理,80%错误可能出现在20%的错误模块,测试关键是如何找到20的模块,故对发生错误较多的程序段,应该进行深入测试。

10.软件测试

四个步骤:单元-集成-确定-系统
白盒测试(结构测试)

  • 单元测试,完全知道程序结构和算法。
  • 语句覆盖:语句都走一次
  • 判断覆盖:判断结果都走一次
  • 条件覆盖:判断条件都取各种可能值
  • 判断/条件覆盖:判定表达式所有可能至少出现一次
  • 条件组合覆盖:
  • 路径覆盖:程序的每条可能执行到路径都至少经过一次

黑盒测试(功能测试)

  • 集成测试和确认测试(检查符合需求说明书)
  • 等价类划分
    无效等价类
    有效等价类
  • 边界值分析
  • 错误推断
  • 因果图

α测试:在开发者场所,由开发者指导用户完成
β测试:用户现场由用户报告给开发者

11.XP极限编程

敏捷开发方法:自适应方法、水晶方法、特性驱动开发。
四大价值观:沟通、简单、反馈、勇气。
五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。

12.软件文档

  • 开发文档
  • 管理文档
  • 用户文档

13.软件维护

  • 改正性维护
  • 适应性维护
  • 完善性维护
  • 预防性维护

1***险管理

  • 风险识别:建立风险条目检查表
  • 风险预测:风险估算
  • 风险评估:定义风险参考
  • 风险控制:风险避免
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务