实验一软件工程需求分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教学辅导——需求分析
一、需求分析的任务
需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
通常软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它是软件实现的基础。
需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。在这个阶段结束时交出的文档中应该包括详细的数据流图(DFD),数据字典(DD)和一组简明的算法描述。
需求分析阶段的任务包括下述几方面。
1.确定对系统的综合需求
2.分析系统的数据需求
分析系统的数据需求是由系统的信息流归纳抽象出数据元素组成、数据的逻辑关系、数据字典格式和数据模型。并以输入/处理/输出(IPO)的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务。
3.导出系统的逻辑模型
就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质。
4.修正系统开发计划
5.开发原型系统
二、需求分析的步骤
结构化分析方法(简称SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法。需求分析的步骤如下。
1.调查研究
2.分析与综合
应注意下述两条原则:第一,在分层细化时必须保持信息连续性,也就是说细化前后对应功能的输入/输出数据必须相同;第二,当进一步细化将涉及如何具体地实现一个功能时,也就是当把一个功能进一步分解成子功能后,并将考虑为了完成这些子功能而写出其程序代码时,就不应该再分解了。
3.书写文档
在这个阶段应该完成下述四种文档资料:
(1)系统规格说明。
(2)数据要求。
(3)用户系统描述。
(4)修正的开发计划。
4.需求分析评审
三、需求分析的原则
1.必须能够表达和理解问题的数据域和功能域
2.按自顶向下、逐层分解问题
3.要给出系统的逻辑视图和物理视图
四、需求分析方法
大多数的需求分析方法是由数据驱动的,数据域具有三种属性:数据流、数据内容和数据结构。通常,一种需求分析方法总要利用一种或几种属性。
需求分析方法具有以下的共性。
1.支持数据域分析的机制
2.功能表示的方法
3.接口的定义
4.问题分解的机制以及对抽象的支持
5.逻辑视图和物理视图
6.系统抽象模型
五、面向数据流的需求分析方法
结构化分析方法是面向数据流进行需求分析的方法。
结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。
六、数据流图
数据流图是描述数据处理过程的工具。
1.数据流图的含义
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能。
2.数据流图的特性
(1)抽象性
(2)概括性
(3)层次性
3. 数据流图基本符号
(1)数据流图中的主要图形元素
数据流图的基本图形元素有4种,如图所示。
数据流图基本图形符号
(2)数据流与加工之间的关系
其中星号“*”表示相邻的一对数据流同时出现,? 则表示相邻的两数据流只取其一。
(3)分层的数据流图
数据流图加工关系
4.数据流图的用途
数据流图的作用主要有以下几条:
(1) 系统分析员用这种工具可以自顶向下分析系统信息流程。
(2) 可在图上画出需要计算机处理的部分。
(3) 根据数据存贮,进一步作数据分析,向数据库设计过渡。
(4) 根据数据流向,定出存取方式。
(5) 对应一个处理过程,用相应的语言、判定表等工具表达处理方法。
5.数据流图的优缺点
(1) 总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”。
(2) 可以反映出数据的流向和处理过程。
(3) 由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。
(4) 容易与计算机处理相对照。
(5) 不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。
(6) 如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。
6.数据流图画法
(1) 画数据流图的一般原则
画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。具体步骤如下。
(2) 数据流图的分层方法
(3) 分层法绘制流程图的几个问题
7.数据流图的绘制与其它流程图的差别
(1) 数据流图与系统流程图的区别
(2) 数据流与程序流程图的区别
(3) 数据流与程序结构图的区别
(4) 数据流与控制流的区别
要求会画第一层数据流图。
七、数据字典
1.数据字典的定义
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型。
2.数据字典的内容
数据字典由下列六类元素的定义组成。
(l)数据流
数据流名称及其称号;
数据流的来源:可能是一个外部实体、处理逻辑、数据存储;
数据流的去处;
数据流的组成:一个数据流可能包括若干个数据结构,若只有一个数据结构,就不需要专门定义;