软件工程导论 03章需求分析
1、需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。功能需求是系统的基本需求,但是并不是唯一需求,在需求分析时还需要分析其他的需求。
需求分析主要有以下几个任务:
①确定对系统的综合要求(各类需求)
②分析系统的数据要求(确定数据结构)
③导出系统的逻辑模型
④修正系统开发计划
2、获取需求的方法:
①访谈:访谈有两种基本形式,分别是正式的和非正式的访谈,正式访谈提出的是事先准备好的具体问题,非正式则是随意提问开放性问题。在访问用户的过程中使用情景分析技术往往非常有效。 所谓情景分析就是对用户将来使用目标系统解决某个具体 问题的方法和结果进行分析。
②面向数据流自顶向下求精:利用数据流图来操作,从数据流图的输出端着手分析,通过不断细化输出数据,从而得到需求。再从输入端开始,向用户解释输入数据是怎样变成的输出数据的,一次进行复查。
③简易的应用规格说明技术:开发者和客户共同参与需求的分析,从而传统需求分析方法中用户处于被动地位的情况。
④快速建立软件原型
3、软件需求规格说明是需求分析阶段得出的最主要的文档。
4、数据模型中包含3种相互关联的信息:数据对象(对软件必须理解的复合信息的抽象,可以由一组属性来定义的实体都可以被认为是数据对象)、数据对象的属性(属性定义了数据对象的性质)及数据对象彼此间相互连接的关系(数据对象彼此之间相互连接的方式称为联系,包括一对一、一对多和多对多,ER图中可以采用右侧图中的表示方法)。
5、ER图(实体联系图)的绘制,实体和联系的画法。与数据库系统概论中所讲的画法一致,注意好属性与实体、实体与实体对应关系。要通过范式消除数据的冗余程度。
6、状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。
状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。
事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。事件就是引起系统做动作或(和)转换状态的控制信息。
在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。 中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。活动表的语法格式为: 事件名(参数表)/动作表达式。其中“事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry, exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。
状态图中两个状态之间带箭头的连线称为状态转换, 箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的 事件表达式;如果在箭头线上未标明事件,则表示在源状 态的内部活动执行完之后自动触发转换。
事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外部事件的抽象。事件表达式的语法为:事件说明[守卫条件]/动作表达式。其中守卫条件是一个布尔表达式。如果同时使用守卫条件和事 件说明,则当且仅当事件发生且布尔表达式成立时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真,状态转换就发生。动作表达式是一个过程表达式,当状态转换开始时执行该表达式。
7、其他图形工具:
①层次方框图:层次方框图用树形结构的一系列多层次的矩形框描绘数据 的层次结构。即从上而下的结构图。
②Warnier图:和层次方框图类似,Warnier图也用树形结构描绘信息, 但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织,也就是说,它 可以指出一类信息或一个信息元素是重复出现的,也可以 表示特定信息在某一类信息中是有条件地出现的。
③IPO图:IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
8、验证软件需求:
至少必须从一致性、完整性、现实性和有效性这4个不同角度验证软件需求的正确性。