软件工程知识梳理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图是描述算法的有效工具。

相关推荐
Dola_Zou5 小时前
工商业储能系统核心策略
算法·自动化·软件工程
yx11666 小时前
需求分析岗(一)
需求分析
科威网络18 小时前
企业网站技术方案:响应式、SEO 结构与性能优化实践
性能优化·需求分析·软件需求
Regentsoft丽晶软件1 天前
服装B2B分销返利规则引擎:多返利池与历史订单区分的技术设计
云原生·产品运营·需求分析
llilian_161 天前
脉冲时间间隔及计数如何精准测试?
功能测试·嵌入式硬件·51单片机·软件工程
gscsded1 天前
MFC 入门:从空窗口到一个能交互的小程序
mfc·软件工程
上海秉坤2 天前
零售系统选型:业务规则、合作方式与长期维护怎么评估?
需求分析·零售
嘟哩DuliDuli2 天前
剧本节点输入归一化:文本来源、版本与下游引用
android·人工智能·安全·ai·软件工程
qiyongwork2 天前
泛金融IT 研发管理平台设计
金融·项目管理·软件工程·研发管理
我命由我123453 天前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法