第3章 需求分析(软件工程导论 第6版)

1、需求分析的基本任务及准则

(1)基本任务:准确回答“系统必须做什么”

(2)需求分析必须遵循的准则

     <1>必须理解并描述问题的信息域,根据这条准则应该建立数据模型

     <2>必须定义软件应完成的功能,这条准则要求建立功能模型

     <3>必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型

     <4>必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节

2、需求分析的任务

(1)确定对系统的综合要求

①功能需求       

②性能需求       

③可靠性和可用性需求

④出错处理需求       

⑤接口需求       

⑥约束

⑦逆向需求       

⑧将来可能提出的要求

(2)分析系统的数据要求

(3)导出系统的逻辑模型

(4)修正系统开发计划

3、与用户沟通获取需求的方法

(1)访谈

<1>两种基本形式

    A.正式访谈:系统分析员提出一些事先准备好的具体问题

    B.非正式访谈:分析员提出一些用户可以自由回答的开放性问题,鼓励被访问人员说出自己的想法

<2>技术方法

①调查表:需要调查大量人员意见时,调查表是一个十分有效的做法

②情景分析技术:对用户将来使用目标系统解决某个具体问题的方法和结果进行分析

(2)面向数据流自顶向下求精

①定义:结构化分析方法是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究得出目标系统的高层数据流图,需求分析的目标之一是把数据流和数据存储定义到元素级。

②通过功能分解可以完成数据流图的细化

(3)简易的应用规格说明技术

<1>定义:一种面向团队的需求收集法。提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。

<2>过程

①进行初步访谈,确定问题和解决方案

②开发者和用户分别写出“产品需求”

③开会前,将“产品需求”分发给每位与会者

④每位与会者审查“产品需求”,列出系统对象

⑤开会,消去冗余,得到意见一致的列表

⑥分小组讨论,制定小型规格说明

⑦综合讨论,起草软件需求规格说明书

<3>优点:开发者与用户不分彼此,齐心协力,密切合作

                 即时讨论并求精;有能导出规格说明的具体步骤

(4)快速建立软件原型

<1>快速原型的特性:“快速”&“容易修改”

<2>快速原型的目的:尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用者和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识

<3>快速构建和修改原型的方法和工具

①第四代技术

②可重用的软件构件

③形式化规格说明和原型环境       

4、分析建模与规格说明

(1)分析建模

<1>模型是为了理解事物而对事物作出的一种抽象,是一种无歧义的书面描述。模型由一组图形符号和组织这些符号的规则组成

<2>需求分析阶段应该建立的3种模型

①数据模型:实体-联系图

②功能模型:数据流图

③行为模型:状态转换图

(2)软件需求规格说明

软件需求规格说明书是需求分析阶段得出的最主要的文档。用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。自然语言的规格说明具有容易书写、容易理解的优点

5、实体-联系图(ER图)

(1)概念性数据模型:是一种面向问题的数据模型,是按照用户的观点对数据建立的模型,它描述了从用户角度看到的数据,反映了用户的现实环境,而且与在软件系统中的实现方法无关

(2)数据模型的构成元素

<1>数据对象:对软件必须理解的复合信息的抽象

<2>属性:定义数据对象的性质

<3>联系:数据对象彼此之间相互连接的方式

   ①一对一联系(1:1)

   ②一对多联系(1:N)

   ③多对多联系(M:N)

(2)实体-联系图的符号

①实体:矩形框

②关系:菱形框

③属性:椭圆形或圆角矩形

④直线连接实体与属性

(3)优点

①比较接近人的习惯思维方式

②使用简单的图形符号表达,便于用户理解,可以作为用户与分析员之间有效的交流工具

6、状态转换图(状态图)

(1)状态转换图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为

(2)状态

<1>定义:任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。

<2>分类:初态(初始状态)、终态(最终状态)、中间状态。 在一张状态图中只能有一个初态、而终态可以有0至多个

3、事件:引起系统做动作或(和)转换状态的控制信息

4、符号

(1)初态:实心圆

(2)终态:一对同心圆(内圆为实心圆)

(3)中间状态:圆角矩形。可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,下面部分是活动表

7、其他图形工具

(1)层次方框图:描绘数据的层次结构

(2)Warnier图:描绘数据的层次结构

(3)IPO图:描绘输入数据、对数据的处理和输出数据之间的关系

8、验证软件需求的方法

(1)进行验证的四个方面

       一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾

       完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能

       现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,只能从现有技术水平出发判断需求的现实性

       有效性:必须证明需求是正确有效的,确实能解决用户面对的问题

(2)验证软件需求的方法

<1>验证需求的一致性

①自然语言书写需求分析的结果→人工技术审查

②形式化的需求陈述语言书写需求规格说明书→软件工具

(2)验证需求的现实性

①以往开发类似系统的经验

②采用仿真或性能模拟技术

(3)验证需求的完整性和有效性

①使用原型系统的方法

猜你喜欢

转载自blog.csdn.net/weixin_65213208/article/details/127078953