软件工程知识梳理2-需求分析

需求分析时软件定义的最后一个阶段,它的基本任务时准确回答系统必须做什么的问题。

输出:本阶段必须的输出时软件需求规格说明书。

角色:需求分析员

参与者:用户、需求分析员

需求分析遵循的准则:

  1. 必须理解并描述问题的信息域,根据这条准则应该简历数据模型
  2. 必须定义软件应完成的功能,这条准则要求建立功能模型
  3. 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型
  4. 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节

需求分析的任务:

  1. 确定对系统的综合要求(功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束需求、逆向需求、将来可能提出的要求)
  2. 分析系统的数据要求
  3. 导出系统的逻辑模型
  4. 修正系统开发计划

沟通需求的方法:

访谈

面向数据流自顶向下求精

简易的应用规格说明技术

快速简历软件原型

分析建模:数据模型(ER图)、功能模型(数据流图)、行为模型(状态变换图)。

ER图(实体联系图): 数据对象、属性、联系(1:1、1:N、M:N),需要掌握图形的绘制!

状态转换图: 通过描绘系统的状态及引起系统状态变换的事件来表示系统的行为,用于行为建模。需要掌握图形的绘制!

在描述复杂事务时,图形远比文字表达方式优越得多,它更形象直观和容易理解。还有3种图形工具可能会在需求分析阶段使用到!

  1. 层次方框图:树形结构的多层次矩形框
  2. Warnier图:树形结构、和层次方框图类似但能提供更丰富的描绘手段
  3. IPO图:输入、处理、输出图的简称

需求验证:

****WHY:****需求分析的结果是软件开发的重要基础,15%的错误起源于错误的需求。为了提高软件质量、保证软件开发成功、降低软件开发成本,有必要对需求结果进行正确性的验证!

HOW:

  1. 一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾
  2. 完整性:需求必须是完整的﹐规格说明书应该包括用户需要的每一个功能或性能。
  3. 现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
  4. 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。

****描述需求:****非形式化(自然语言)、半形式化(E-R图、数据流图)、形式化(数学化)

有穷状态机:可以准确描述一个系统

Petri网:确定系统中隐含的定时问题

Z语言:比较难学,使用了集合论、数理逻辑符和一些特殊符号

小结:

传统软件工程方法学使用结构化分析技术,完成分析用户需求的工作。需求分析是发现,求精﹑建模、规格说明和复审的过程。需求分析的第一步是进一步了解用户当前所处的情况,发现用户所面临的问题和对目标系统的基本需求;接下来应该与用户深入交流﹐对用户的基本需求反复细化逐步求精,以得出对目标系统的完整、准确和具体的需求。具体地说,应该确定系统必须具有的功能、性能、可靠性和可用性,必须实现的出错处理需求.接口需求和逆向需求,必须满足的约束条件以及数据需求,并且预测系统的发展前景。

为了详细地了解并正确地理解用户的需求,必须使用适当方法与用户沟通。访谈是与用户通信的历史悠久的技术,至今仍被许多系统分析员采用。从可行性研究阶段得到的数据流图出发,在用户的协助下面向数据流自顶向下逐步求精,也是与用户沟通获取需求的一个有效的方法。为了促使用户与分析员齐心协力共同分析需求,人们研究出一种面向团队的需求收集法,称为简易的应用规格说明技术,现在这种技术已经成为信息系统领域使用的主流技术。实践表明,快速建立软件原型是最准确、最有效和最强大的需求分析技术。快速原型应该具备的基本特性是"快速"和"容易修改",因此,必须用适当的软件工具支持快速原型技术。通常使用第四代技术、可重用的软件构件及形式化规格说明与原型环境,快速地构建和修改原型。

为了更好地理解问题,人们常常采用建立模型的方法﹐结构化分析实质上就是一种建模活动,在需求分析阶段通常建立数据模型、功能模型和行为模型。

除了创建分析模型之外,在需求分析阶段还应该写出软件需求规格说明书,经过严格评审并得到用户确认之后,作为这个阶段的最终成果。通常主要从一致性、完整性、现实性和有效性4个方面复审软件需求规格说明书。

多数人习惯于使用实体-联系图建立数据模型,使用数据流图建立功能模型,使用状态图建立行为模型。读者应该掌握这些图形的基本符号,并能正确地使用这些符号建立软件系统的模型。

数据字典描述在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义。因此,数据字典成为把3种分析模型粘合在一起的"粘合剂",是分析模型的"核心"。为了提高可理解性,还可以用层次方框图或Warnier图等图形工具辅助描绘系统中的数据结构。为了减少冗余,简化修改步骤,往往需要规范数据的存储结构。

算法也是重要的,分析的基本目的是确定系统必须做什么。概括地说,任何一个计算机系统的基本功能都是把输人数据转变成输出信息,算法定义了转变的规则。因此,没有对算法的了解就不能确切知道系统的功能。IPO图是描述算法的有效工具。

相关推荐
m0_547486665 小时前
软件工程复习知识点
软件工程
m0_547486665 小时前
最新《软件工程》选择题及答案
软件工程
J老熊10 小时前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
The_Ticker13 小时前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
代码欢乐豆3 天前
第12章小测
软件工程
田梓燊3 天前
湘潭大学软件工程算法设计与分析考试复习笔记(四)
笔记·算法·软件工程
shinelord明3 天前
【再谈设计模式】适配器模式 ~接口兼容的桥梁
数据结构·设计模式·软件工程
张彦峰ZYF3 天前
互联网数字化商品管理浪潮思考:从信息化到精准运营
大数据·软件工程·软件需求
代码欢乐豆3 天前
软件工程9、10章小测
软件工程
夏子曦3 天前
说说软件工程中的“协程”
软件工程