软件工程

邵丽丽

目录

  • 1 第1讲 软件工程学概述
    • 1.1 软件危机
    • 1.2 软件工程
    • 1.3 软件生命周期
    • 1.4 软件过程
  • 2 第2讲 可行性研究
    • 2.1 可行性研究的任务及过程
    • 2.2 可行性研究的工具
      • 2.2.1 系统流程图
      • 2.2.2 数据流图
      • 2.2.3 数据字典
    • 2.3 成本效益分析
  • 3 第3讲 需求分析
    • 3.1 需求分析的任务
    • 3.2 获取需求的方法
    • 3.3 需求建模
      • 3.3.1 分析建模
      • 3.3.2 状态转换图
      • 3.3.3 其他图形工具
    • 3.4 验证软件需求
  • 4 第4讲 总体设计
    • 4.1 设计过程
    • 4.2 设计原理
    • 4.3 启发式规则
    • 4.4 描述软件结构的图形工具
    • 4.5 面向数据流的设计方法
  • 5 第5讲 详细设计
    • 5.1 结构化程序设计
    • 5.2 过程设计的工具
    • 5.3 面向数据结构的设计方法
    • 5.4 程序复杂程度的定量度量
  • 6 实现
    • 6.1 软件测试基础
    • 6.2 软件测试步骤
      • 6.2.1 单元测试
      • 6.2.2 集成测试
      • 6.2.3 确认测试
    • 6.3 软件测试技术
      • 6.3.1 白盒测试技术
      • 6.3.2 黑盒测试技术
    • 6.4 调试
    • 6.5 软件可靠性
  • 7 第7讲 软件维护
    • 7.1 软件维护的定义、过程、可维护性
    • 7.2 预防性维护
    • 7.3 软件再工程过程
  • 8 第8讲 面向对象方法学概述
    • 8.1 OOM概述
    • 8.2 面向对象的概念
    • 8.3 面向对象建模
      • 8.3.1 对象模型
      • 8.3.2 功能模型
  • 9 第9讲 面向对象分析
    • 9.1 OOA的基本过程
    • 9.2 需求概述及建模
      • 9.2.1 建立对象模型
      • 9.2.2 建立动态模型
      • 9.2.3 建立功能模型
  • 10 第10讲 面向对象设计
    • 10.1 面向对象设计的准则
    • 10.2 软件重用
    • 10.3 系统分解
  • 11 第11讲 面向对象实现
    • 11.1 面向对象的测试策略
    • 11.2 设计测试用例
  • 12 实验教学
    • 12.1 实验1 可行性研究报告
    • 12.2 实验2 需求分析报告
    • 12.3 实验3 总体设计报告
    • 12.4 实验4 详细设计报告
    • 12.5 实验5 编程实现
    • 12.6 实验6 测试
    • 12.7 实验7 面向对象分析报告
    • 12.8 实验8 面向对象设计报告
    • 12.9 实验选题集
获取需求的方法

一、访谈

1. 正式访谈, 

2. 非正式访谈

3. 分发调查表

4. 情景分析技术

对用户使用目标系统解决某个具体问题的方法和结果进行分析。

如:制定减肥计划软件。

二、面向数据流自顶向下求精

1. 软件系统本质上是信息处理系统,它的基本功能是把输入数据转变为需要的输出数据。因此,数据是需求分析的出发点,数据决定了所需要的处理和算法。

2. 结构化分析方法就是面向数据流自顶向下逐步求精的方法。

由于可行性研究阶段得出的高层数据流图比较抽象,需求分析阶段的目标之一就是把数据流和数据存储定义到元素级。为了达到这个目标,通常从数据流图的输出端开始?

问题1:为什么从DFD的输出端开始分析?

问题2. 输出数据是由哪些数据元素组成的呢?

问题3. 每个输出数据又是从哪里来的呢?

3. 沿着DFD回溯时常常遇到下面的问题,

(1)为了得到某个数据元素需要目前DFD中还没有定义的数据元素,如,为限制读者的借阅数量(要先定义:读者的可借书数量),

(2)为了得到某个数据元素,所需要的算法尚不完全清楚

4. 用户对分析员的工作认可吗?

用户对上述分析过程得出的结果进行复查,DFD是进行复查的好工具,从输入端开始,分析员借助于数据流图、数据字典、IPO图向用户解释输入数据是怎样一步步转变成输出数据的。

正确吗,有遗漏吗,这时就是查缺补漏的时候了。

反复进行上述分析过程,分析员越来越深入地定义了系统中的数据和系统应该完成的功能,为了追踪更详细的数据流,分析员应该把数据流图扩展到更低的层次,通过“功能分解”实现。

三、简易的应用规格说明技术

四、快速建立软件原型