软件工程(导论)

成秀秀、杨玲、戚爱斌、苗世迪、温东新

目录

  • 1 软件与软件工程
    • 1.1 软件
    • 1.2 软件危机
    • 1.3 软件工程
    • 1.4 软件生命周期
    • 1.5 软件过程模型
    • 1.6 学生成果分享
  • 2 可行性研究与项目开发计划
    • 2.1 可行性研究的任务
    • 2.2 可行性研究过程
    • 2.3 进度计划
    • 2.4 学生成果分享
  • 3 需求分析
    • 3.1 需求分析的任务
    • 3.2 与用户沟通获取需求的方法
    • 3.3 分析建模与规格说明
    • 3.4 实体-联系图
    • 3.5 数据规范化
    • 3.6 状态转换图
    • 3.7 其它图形工具
    • 3.8 验证软件需求
  • 4 总体设计
    • 4.1 系统流程图
    • 4.2 数据流图
    • 4.3 数据字典
    • 4.4 设计过程
    • 4.5 设计原理
    • 4.6 启发规则
    • 4.7 描绘软件结构的图形工具
    • 4.8 面向数据流的设计方法
  • 5 详细设计
    • 5.1 结构程序设计
    • 5.2 人机界面设计
    • 5.3 过程设计的工具
    • 5.4 面向数据结构的设计方法
    • 5.5 程序复杂程度的定量度量
  • 6 软件编码
    • 6.1 程序设计语言
    • 6.2 编码风格
  • 7 软件测试
    • 7.1 软件测试基础
    • 7.2 单元测试
    • 7.3 集成测试
    • 7.4 确认测试
    • 7.5 白盒测试技术
    • 7.6 黑盒测试技术
    • 7.7 调试
    • 7.8 软件可靠性
  • 8 软件项目管理
    • 8.1 估算软件规模
    • 8.2 工作量估算
    • 8.3 人员组织
    • 8.4 质量保证
    • 8.5 软件配置管理
    • 8.6 能力成熟度模型
数据流图

一、数据流图概念

数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。


二、符号

基本符号

数据源点/终点:通常是人或部门,可重复表示;

处理:一个处理框可以代表一系列程序、单个程序或程序的一个模块; 

数据存储:可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等,数据存储是处于静止状态的数据; 

数据流:描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件 ,数据流是处于运动中的数据。


附加符号

1、星号(*):表示“与”关系

2、加号(+):表示“或”关系

3、异或(⊕):表示互斥关系


三、画数据流图的步骤

例子:假设采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件,应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于库存量的临界值时,就应该再次定货。

1. 从问题描述中提取数据流图的4种成分

(1)数据的源点/终点

■“通过放在仓库中的CRT终端把事务报告给定货系统”——仓库管理员是数据源点;

■“采购部每天需要一张定货报表”——采购员是数据终点。

(2)处理

■“采购部需要报表”,——产生报表;

■事务的后果是改变零件库存量,因此对事务进行的加工是另一个处理——处理事务。

(3)数据流:

■“系统把定货报表送给采购部”——定货报表;

■“事务需要从仓库送到系统中”——事务。

(4)数据存储:

■处理事务和产生报表这两个处理在时间上明显不匹配,用来产生定货报表的定货信息必须存放一段时间——定货信息;

■零件库存量和库存量临界值需要存储——库存清单。


2. 画基本系统模型

由若干个数据源点/终点和一个处理组成。


3. 细化,描绘系统的主要功能(功能级数据流图)


4. 对系统主要功能进一步细化

细化时注意:

(1)当进一步分解涉及如何具体的实现一个功能时就不应该再分解了。

(2)当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。

(3)注意对处理进行编号的方法。 


四、命名

1. 为数据流(或数据存储)命名

(1)完整性;

(2)具体性;

(3)起名字遇到了困难时,试试重新分解。 


2. 为处理命名

(1)通常先为数据流命名,然后再为与之相关联的处理命名;

(2)完整性;

(3)及物动词+宾语,具体性;

(4)通常名字中仅包括一个动词,否则进行分解;

(5)命名时遇到困难,应考虑重新分解。


3. 为数据源点/终点命名

采用它们在问题域中习惯的名字。 


五、用途

1、作为交流信息的工具

(1)供有关人员审查确认

(2)供用户理解和评价

(3)数据流图应该分层,超过9个时应该画分图 

2、作为分析和设计的工具

(1)描绘系统所完成的功能 

(2)辅助物理系统的设计时,以定时要求为指南,画出许多组自动化边界,对应不同的物理系统。 

(3)导出更详细的设计步骤——面向数据流的设计方法