软件工程--需求分析

软件工程–需求分析

  • 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。
  • 需求分析的任务还不是确定系统怎么样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
  • 需求分析阶段结束之前系统分析员要写出软件需求规格说明书,以书面形式准确地描述软件需求

需求分析的任务

  1. 确定对系统的综合要求。
    • 功能需求
    • 性能需求
    • 可靠性和可用性需求
    • 出错处理需求
    • 接口需求
    • 约束
    • 逆向需求
    • 将来可能提出的需求。
  2. 分析系统的数据要求。(建立数据模型)
  3. 导出系统的逻辑模型
    • (即数据模型[E-R图]+功能模型[数据流图]+行为模型[状态转换图])
    • (数据流图+数据字典+E-R图+状态转换图)
  4. 修正系统开发计划。

获取用户需求的方法

系统分析员和用户沟通进行需求分析的典型方法有:

  1. 访谈。
    • 正式的访谈。(分析员事先准备好具体问题)
    • 非正式的访谈。(自由提问)
  2. 面向数据流自顶向下求精。
    • 通过可行性研究已经得出了目标系统的高层数据流图,需求分析的一个主要目标就是把数据流和数据存储定义到元素级。
  3. 简易的应用规格说明技术。
    • 简易的应用规格说明技术是一种面向团队的需求收集技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同的方案并指定基本需求。
  4. 快速建立软件原型。
    • 快速建立软件原型是最准确、最有效、最强大的需求分析技术。所谓软件原型,就是快速建立起来的旨在演示目标系统主要功能的可行性的程序。

分析建模和规格说明

  1. 分析建模。
    • 为了更好地理解复杂事物,人们通常采用建立事物模型的方法。
  2. 软件需求规格说明
    • 通过需求分析,除了创建分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出的最主要文档。
    • 通常用自然语言完整、准确、具体地描述对目标系统的需求,这样的规格说明书具有容易书写、容易理解的优点

实体联系图(E-R图)

  • 为了把用户的数据要求清楚,准确地描述出来,系统分析员通常建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,它描述了从用户角度看到的数据。
  • 通常,使用实体-联系图来建立数据模型。可以把实体-联系图简称为ER图,相应地可以把用ER图描绘的数据模型称为ER模型。
  • ER图中包含了实体(即数据对象)、关系和属性三种基本成分。通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体或关系的属性,并用直线把实体(或关系)与其属性连接起来。

建立E-R图的步骤:

  1. 确定实体类型
  2. 确定联系类型
  3. 确定实体属性和联系类型的属性。

数据规范化

软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为了减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化

通常用"范式"定义消除数据冗余的程度。1NF数据冗余程度最大,5NF数据冗余程度最小。从实用角度来看,在大多数场合选用3NF比较恰当。

  • 1NF: 要求属性值是原子值,不可再分。
  • 2NF:消除非主属性对码的部分函数依赖。
  • 3NF:消除非主属性对码的传递函数依赖。
  • BCNF:消除主属性对码的部分函数依赖和传递函数依赖。

状态转换图

状态转换图(简称为 状态图) 通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为,此外,状态图还指明了作为特定事件的结果系统将做哪些动作(如:处理数据)。因此状态图属于软件系统的行为模型。
软件工程--需求分析_第1张图片

软件的行为模型

  • 状态: 被观察到的系统行为模式,一个状态代表系统的一种行为模型,状态规定了系统对事件的响应方式。响应可以是一个自身状态的变化,也可以是做动作,也可以是既改变状态又做动作。

状态图中定义的状态有三种, 初态只能有1个,终态则可以有0个到多个。

如下图所示:
软件工程--需求分析_第2张图片

  • 事件: 是在某个特定时刻发生的事情,是对引起状态转换的外界事件抽象
    事件就是引起系统做动作或转换状态的控制信息。
    在这里插入图片描述
  • 行为: 进入某状态所作动作。
    - [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEYeHIRr-1631975651493)(C:\Users\张盛滨\AppData\Roaming\Typora\typora-user-images\image-20210918222659148.png)]

状态图中使用的主要符号

软件工程--需求分析_第3张图片
例题:

办公室复印机的工作过程大致如下:

​ 未接收到复印命令时处于闲置状态,一旦接收到复印命令,则进入复印状态,完成一个复印命令规定的工作后,又回到闲置状态,等待下一个复印命令;如果执行复印命令时,发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令,如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后,回到闲置状态。


状态转换图描绘复印机的行为
软件工程--需求分析_第4张图片

其它图形工具

描述复杂的事物,图形远比文字叙述优越得多。

层次方框图

层次方框图是树形结构的一系列多层次的矩形框,描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,他代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成,这个数据的实际数据元素(不能再分割的元素)。
软件工程--需求分析_第5张图片
随着结构的精细化,层次方框图对数据结构也描绘的越来越详细,这种模式非常适合于需求分析阶段的需要,系统分析员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定数据结构的全部细节时为止。

Warnier图

软件工程--需求分析_第6张图片
软件工程--需求分析_第7张图片
图中在一个大括号中的所有名字都属于同一类信息;图中异或符号的上,下方的两个名字所代表的数据只能出现一个;在一个名字右边的圆括号中的数字内容代表这个名字代表的信息类重复出现的次数.

IPO图

  • IPO图是输入,处理,输出图的简称,能够方便地描绘输入数据,对数据的处理和输出数据之间的关系。
  • 任何一个计算机系统的基本功能都是把输入数据转变成输出信息,算法定义了转变的规则。而IPO图是描述算法的有效工具。软件工程--需求分析_第8张图片改进的IPO图:软件工程--需求分析_第9张图片

验证软件需求

为了提高软件质量,确保软件开发成功,降低软件的开发成本,一旦对目标系统提出一组要求之后,必须严格验证需求的正确性。

从哪些方面验证软件需求的正确性?

  • 需求的一致性。(需求之间不能产生矛盾)
  • 需求的完整性。(需求必须是完整阐述的)
  • 需求的现实性。(需求是可以实现的)
  • 需求的有效性。(需求是正确有效能解决问题的)

The End!!创作不易,欢迎点赞/评论!!欢迎关注个人公众号

你可能感兴趣的:(软件工程,经验分享,需求分析,软件工程,状态转换图)