软件需求分析(Software Reguirement Analysis)是研究用户需求获得的工具, 完全理解用户对软件需求的完整功能, 确认用户软件功能需求, 建立可确认的、可验证的一个基本依据.之欧侯瑞魂创作
创作时间:二零二一年六月三十日
软件需求分析是一个项目的开端, 也是项目实施最重要的关键点.据有关地机构分析结果标明, 我们设计的软件产物存在不完整性、不正确性等问题80%以上是需求分析毛病所招致的, 而且由于需求分析毛病造成根赋性的功能问题尤为突出.因此, 一个项目的胜利软件需求分析是关键的一步. 一、 软件需求分析理论
如果我们用数学方法来描述软件需求分析, 可以将一个应用软件界说为S, 可能应用软件涉及功能性问题非常广, 我们用笼统化理论分析, 可以划分为各个功能域, 可以用D1、D2、… Dn暗示, 那么, 我们可以用一个表达式描述为
S={D1, D2, D3, …Dn}
可是, 功能域Di依然存在着有若干个问题P1、P2、P3、… Pm组成, 而且每个功能对应于子系统中的一个软构件, 我们可以暗示为
Di={P1, P2, P3, …Pm}
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
同样, 功能Pj有若干个行为F1、F2、F3、… Fk, 每个行为对应于软构件中的实现方法
Pj={F1, F2, F3, …Fk}
一个软件包括了所有功能的集合, 同时包括了实现所有功能的所有方法和算法描述.需求分析是依据于用户需求, 经过需求问题识别, 进行分析、消化与综合, 制订规格说明, 评审, 分为四个阶段, 形成用户需求与设计同步, 设计满足用户需求目标.
需求分析方法始终贯穿戴吸收、同化、贯彻方法和手段, 用商业化行为解决需求与实现中存在的矛盾, 解决用户需求与商业化产物融通, 解决规范与个性化追求. 二、 软件需求分析目标
软件需求分析的主要实现目标:
1)对实现软件的功能做全面的描述, 帮手用户判断实现功能的正确性、一致性和完整 性, 促使用户在软件设计启动之前周密地、全面地思考软件需求;
2)了解和描述软件实现所需的全部信息, 为软件设计、确认和验证提供一个基准;
3)为软件管理人员进行软件本钱计价和编制软件开发计划书提供依据;
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
需求分析的具体内容可以归纳为六个方面:软件的功能需求, 软件与硬件或其他外部系统接口, 软件的非功能性需求, 软件的反向需求, 软件设计和实现上的限制, 阅读支持信息.
软件需求分析应尽量提供软件实现功能需求的全部信息, 使得软件设计人员和软件测试人员不再需要需求方的接触.这就要求软件需求分析内容应正确、完整、一致和可验证.另外, 为保证软件设计质量, 便于软件功能的休整和验证, 软件需求表达无岔意性, 具有可追踪性和可修改性. 、 软件功能需求
软件的功能需求是整个需求分析最主要、最关键和最复杂的部份, 它描述软件的各种可能的条件下, 对所有可能输入的数据信息, 应完成那些具体功能, 发生什么样的输出.描述软件功能需求是应注意下面几点:
1)功能需求的完整性和一致性
对功能的描述应包括与功能相关的信息, 并应具有内在的一致性(即各种描述之间不矛盾、不抵触).应注意以下几点:
(1) 给出触发功能的各种条件(如:控制流、运
行状态、运行模式等);
(2) 界说各种可能性条件下的所有可能的输入
(包括合法的输入空间和非法的输入空间);
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
(3) 给出各种功能间可能的相互关系(如各个功
能间的控制流、数据流、信息流, 功能运行关系:顺序、重复、选择、并发、同步);
(4) 给出功能性的主要级别(如:基本功能、可
由设计者选择逐步实现的功能、可由设计者改变实现的功能等);
(5) 尽可能不使用“待定”这样的词.所有含有
待定内容的需求都不是完整的文件, 如果呈现待定的部份, 必需进行待定部份内容说明, 落实负责人员、落实实施日期.
2)功能描述的无岔意性和可追踪性
需求功能描述的无岔意性、可追踪性和规范化:
(1) 功能描述必需清晰地描述出怎样输入到怎样
输出, 而且输入、输出描述应对应有数据流描述、控制流描述图, 这些描述必需与其它处所描述一致;
(2) 可以用语言、方程式、决策表、矩阵或图等
对功能的描述.如果选用语言描述必需使用结构化的语言, 描述前必需说明该步伐(或子功能)的执行是顺序, 选择, 重复, 还是并发, 然后说明步伐逻辑.整个描述必需单入单出.
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
(3) 描述时, 每一个功能名称和参照编号必需唯
一, 且不要将多个功能混在一起进行描述, 这样便于功能的追踪和修改.
(4) 功能描述应注意需求说明和法式设计的区别.
需求设计仅仅是软件的功能设计, 它给出软件运行的的外部功能描述, 以及为了实现这一外部功能必需做哪些事情(采纳和种数据结构, 界说多个模块, 接口间的接口等)是设计阶段的事情, 功能描述不应涉及到那些细节问题, 以防止给软件设计带来不需要的约束.
、 软件与硬件或其他外部系统接口
软件与硬件或其它外部系统接口包括下述内容:
(1) 人机接口:说明输入、输出的内容、屏幕安插、
格式等要求;
(2) 硬件接口:说明端口号, 指令集, 输入输出信号
的内容与数据类型, 初始化信号源, 传输通道号和信号处置方式.
(3) 软件接口:说明软件的名称、助记符、规格说
明、版本号和来源;
(4) 通讯接口:指定通讯接口和通讯协议等描述.
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
、 软件的非功能性需求
软件非功能性需求是指软件性能指标, 容限等功能以外的需求.一般指下述内容:
(1) 时间需求:输入、输出频率, 输入、输出响应时
间, 各种功能恢复时间等;
(2) 处置容限、精度、采样参数的分辨率, 误差处置
等;
(3) 可靠性的MTBF要求, 可维护性、平安性要求等.
(对可能的不正常的输入给以正常响应是可靠性的重要内容, 这属于功能性需求.)
、 软件反向需求
软件的反向需求描述软件在那些情况下不能做什么.这一条是随软件实际要求而定.有两类情形需要采纳反向需求的形式.第一种情况:某些用户需求适宜采纳反向形式说明, 如数据平安性要求属于这类形式.第二种情况:对一些可靠性和平安性要求较高的软件, 有些必需描述软件不能做些什么.如控制焚烧时序, 我们必需交代清楚在那些情况下不能焚烧, 否则会造成故障. 、 软件设计和实现上的限制
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
软件设计和实现上的限制主要指对软件设计者的限制.如软件运行环境的限制(选择计算机类型, 使用配置, 把持系统的限制等)、设计工具的限制(使用语言、执行的标准)和保密要求等. 、 阅读支持信息
这部份内容是为了更好的帮手我们理解用户需求, 也是为了使需求便于修改和追踪.其自己其实不是对需求的描述, 但它影响到需求分析的可读性, 也属于需求分析的一个重要部份.一般目录、需求布景信息、内容索引、交叉引用表、注释等均属于这个部份的内容.
三、 软件需求分析人员组织
软件需求分析其根赋性问题是理解用户功能需求, 由此软件需求分析实际上是与客户间交流过程完成的目标.要求我们组织适当的介入人员进行交流活动.
需求分析是一个综合团队的工作, 是在需求分析理论的指导下, 对用户需要进行渐进方式逐步深化;通过不竭变动方式形成具体约束;努力实现需求功能目标形成特色效果的商业化产物.需求分析是一个商业行为, 完全是一个商业化把持, 要求有商业、技术等结合的团队共同合作, 解决需求和设计的同步, 设计符合需求.
项目涉及内容, 项目年夜小都需要我们考虑介入软件需求分析工作团退的人数, 配置合理的介入人员.一般我们必需有商务活动
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
听员, 项目管理人员, 设计技术人员等介入, 而且要求组织人员必需明确负责范围, 以及明确工作目标, 保证实施的有效性. 四、 软件需求分析方法
为了保证项目的正常实施, 而且能够顺利的完成, 我们必需加强项目管理和重视项目分析工作.我们只有从实际动身, 切切实实地掌控用户需求, 掌控用户需求目标, 掌控用户将来功能界定, 保证我们开发工作正确性方向. 4.1、重点监控软件需求分析法子
由于软件项目的特殊性和行业覆盖的广阔性, 以及需求分析的高风险性, 软件需求分析的重要性是不言而喻的, 同时需求分析又的简直确难做.其原因基本是由于以下情况造成的. 4.1.1、客户说不清楚需求
有些客户对需求只有朦胧的感觉, 固然说不清楚具体的需求.例如全国各地的很多部份、机构、单元在进行应用系统以及网络建设时, 客户方的办公人员年夜多不清楚计算机网络有什么用, 更缺乏IT系统建设方面的专家和知识.此时, 用户就会要求软件系统分析人员替他们设想需求.工程的需求存在一定的主观性, 为项目未来建设埋下了潜在的风险. 4.1.2、需求自身经常变动
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
根据以往的历史经验, 随着客户方对信息化建设的认识和自己业务水平的提高, 他们会在分歧的阶段和时期对项目的需求提出新的要求和需求变动.事实上, 历史上没有一个软件的需求改动少于三次的!所以必需接受“需求会变动”这个事实, 在进行需求分析时要理解防患于未然, 尽可能地分析清楚哪些是稳定的需求, 哪些是易变的需求, 以便在进行系统设计时, 将软件的核心建筑在稳定的需求上, 同时留出变动空间.咨询监理方在需求分析的功能界定上担负一个中间、公平、公正的角色, 所以也必需积极介入到需求分析的准备中来, 以便协助客户方和承建方来界定“做什么”、“不做什么”的系统功能界限. 4.1.3、分析人员或客户理解有误
软件系统分析人员不成能都是全才, 更不成能是行业方面的专家.客户表达的需求, 分歧的分析人员可能有分歧的理解.如果分析人员理解错了, 可能会招致以后的开发工作劳而无功.记得一则笑话, 有个外星人间谍潜伏到地球打探情报, 它给上司写了一份陈说:“主宰地球的是汽车.它们喝汽油, 靠四个轮子滚动前进, 嗓门极年夜, 双眼在夜里能射出强光……有趣的是, 车里住着一种叫作‘人’的寄生虫, 这些寄生虫完全控制了车.”所以分析人员知识的专一性也会造成需求分析的误解和失败.这时, 咨询监理公司就必需根据实际的项目需求调研计划, 提醒承建方加强业务了解水平和注重沟通技巧.
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
4.2、有效性软件需求分析三步法
根据以往的工程经验, 需求分析工作方法, 应该定位在“三个阶段”(也称“三步法”).
4.2.1、“访谈式Visitation”阶段
这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通, 主要目的是从宏观上掌控用户的具体需求方向和趋势, 了解现有的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体情况、客观的信息.建立起良好的沟通渠道和方式.针对具体的职能部份以及各委办局, 最好能指定本次项目的接口人.
实现手段:访谈、调查表格
输出功效:调查陈说、业务流程陈说 4.2.2、“诱导式Inducement”阶段
这一阶段是在承建方已经了解了具体用户方的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体实际、客观的信息基础上, 结合现有的硬件、软件实现方案, 做出简单的用户流程页面, 同时结合以往的项目经验对用户采纳诱导式、启发式的调研方法和手段, 和用户一起探讨业务流程设计的合理性、准确性、便易性、习惯性.用户可以把持简单演示的DEMO, 来感受一下整个业务流程的设计合理性、准确性等等问题, 及时地提出改进意见和方法.
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
实现手段:访问(诱导)、原型演示
输出功效:调研分析陈说、原型反馈陈说、业务流程陈说 4.2.3、“确认式Afirm”阶段
这一阶段是在上述两个阶段功效的基础上, 进行具体的流程细化、数据项简直认阶段, 这个阶段承建方必需提供原型系统和明确的业务流程陈说、数据项表, 并能清晰地向用户描述系统的业务流设计目标.用户方可以通过审查业务流程陈说、数据项表以及把持承建方提供的DEMO系统, 来提出反馈意见, 并对已经可接受的陈说、文档签字确认.
实现手段:访问(回顾、确认), 提交业务流程陈说、数据项表;原型演示系统
输出功效:需求分析陈说、数据项、业务流程陈说、原型系统反馈意见(后三者可以统一归入需求分析陈说中, 提交用户方、监理方进行确认和存档)
整体来讲, 需求分析的三个阶段是需求调研中不成忽视一个重要的部份, 三个阶段或者说三步法的实施和采纳, 对用户和承建方都同样提供了项目胜利的保证.固然在系统建设的过程中, 特别在采纳迭代法的开发模式时, 需求分析的工作需一直进行下去, 而在后期的需求改进中, 工作则基本集中在后两个阶段中. 五、 软件需求分析工具
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
我们根据用户需求, 通过反复讨论、分析, 最终明确一个唯一性的用户需求, 这个结果其实就是我们的软件需求分析陈说.一般我们采纳Word、PowerPoint、Visio、ProntPage、Excel等Office工具, 同时可能采纳一些开发工具, 如VC或BC等, 同样也会使用一些图形工具, 如Potoshop、调色板等画图工具.
使用各种工具表达软件需求分析, 其具体表达手段可以分为:
效果图描述.主要是用户UI界面的描述反映用户需求功能;
逻辑图描述.根据用户需求功能, 使用笼统化理论, 以及需求分析理论, 对用户需求功能进行全面的分析, 建立功能性逻辑关系图, 流程逻辑关系图等; 关系图表描述.主要是对信息关系、数据库表格、接口函数等描述;
工程数学描述.分析用户需求, 分析用户需求信息, 运用工程数学进行算法推导, 进行合理化需求分析推导;
甘舆图描述.主要是软件项目工作安插, 开发周期预估;
其它方法描述.保证完整性合理性的有效描述.
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
六、 软件需求分析评估
软件需求分析评估是为了检查我们进行软件需求分析工作, 保证软件需求分析工作正确性、完整性、有效性、合理性、可确认性、可实施性, 完全保证用户所需求的功能. 6.1、组织结构与责任管理
我们对组织结构与责任管理的评估主要有:介入人员任务和责任界面的明确;安插计划按时完成状况;相互间的协调能力状况. 6.2、满足用户需求的功能
我们进行需求分析的目的是完整、准确地描述用户的需求, 跟踪用户需求的变动, 将用户的需求准确地反映到系统的分析和设计中, 并使系统的分析、设计和用户的需求坚持一致.
需求分析的特点是需求的完整性、一致性和可追溯性.完整性:是准确、全面的描述用户的需求.一致性:是通过分析整理, 剔除用户需求矛盾的方面, 规范用户需求.可追溯性:有两个方面的含义, 整理和规范的需求, 其一, 需要不竭的和用户进一步交流, 坚持和用户最新的需求一致.其二, 和系统分析(设计)坚持一致.
因此在需求分析之前我们必需建立需求分析技术层面的基本框架, 从技术上保证需求分析的要求, 在此基础上我们进行的需求分析才华满足项目对需求分析的要求.
创作时间:二零二一年六月三十日
创作时间:二零二一年六月三十日
6.3、保证可实施性
我们必需以用户软件需求为依据, 以求实的态度详细的、准确的、完整的编写软件需求分析, 防止空想世界, 空中楼阁的想法;防止无逻辑性、无核心的描述;防止无量化思维, 无实际空间概念.
6.4、需求分析评价指标
主要有这么几个指标:功能性、完整性、正确性、逻辑性、暗示性、合理性, 可实施性等. 6.5、工作周期
评价人员投入, 以及费用支出的合理性问题.正确制定工作周期, 保证软件项目的顺利完成. 6.6、需求不确定更改与可确认保证
可确认需求功能是实现用户需求的基本保证, 如果不成确认的、不确定更改存在, 将会阻碍软件实现, 或者软件设计存在着不完整性缺陷, 或者存在着不成实施性问题, 我们必需区分是功能性障碍问题, 还是未来性问题.如果不能够明确是未来性问题, 则必需调整功能需求, 化解不确定更改的问题.因此, 判断不确定性更改是一个非常重要的问题
创作时间:二零二一年六月三十日 创作时间:二零二一年六月三十日
因篇幅问题不能全部显示,请点此查看更多更全内容