软件需求分析

在系统的开发阶段,软件需求是一个非常重要的阶段。换句话说,就是一个良好的需求分析活动,可以让我们避免早期开发阶段犯的错误,进而提高软件开发效率和改进软件开发质量。

下面这张大图,是软件需求分析阶段的一个大概图,里面涉及到了需求分析的任务,原则,过程以及需求分析所用到的方法。


一,需求分析任务:

需求分析任务主要是借助于当前系统的逻辑模型导出目标系统的逻辑模型,换句话说就是解决目标系统“做什么”的问题!如下图虚线框中的内容:



二、软件需求分析过程

该过程主要包括:问题识别、分析与综合、编制需求分析阶段的文档和需求分析评审四个部分。



1.问题识别包括功能需求,性能需求,环境需求,可靠性需求、安全保密要求,用户界面需求等,换句话说问题识别阶段,给我们的开发系统提出了一个综合的要求,以及提出了达到这个要求,我们应该具备什么条件。其中问题识别还有另一项工作就是建立通信途径,以保证能顺利的对问题进行分析。

2.分析与综合:从信息流和信息结构出发,逐步细化所有的软件的功能,找出系统各元素之间的联系,接口特性和设计上的约束,然后分析他们是否满足功能需求,最后再综合成系统的解决方案。其实,在分析与综合阶段,主要就是我们根据分析得到具体的问题,然后根据这些问题找出具体的解决方案。

3.编制需求分析文档:需求分析阶段最后是形成需求规格说明书。

4.评审:不仅对文档资料和接口等进行评估,对开发风险也要进行评估(例如技术、进度等风险)。


三、需求分析方法

1.结构化分析方法,是一种面向数据流自顶向下,逐步求精的需求方法。换句话说,结构化分析方法利用图形的方式来表达用户的需求,常用到的工具有:数据流图、数据字典、结构化英语、判定树以及判定表等。


下面我们来重点介绍数据流图

数据流图,是一种图形工具。用来描述数据输入输出的一个过程。所以要了解它的画法,先来了解一下它相关的画法:



分层数据流图:




注意的是:父图和子图之间的平衡,即父图中的某个加工的输入输出数据流应该同相应的子图的输入输出相同。


数据流图当中涉及到了一些原则是我们应该要注意的:1.数据流图上所有的图形符号只限于数据加工、数据源和终点、数据流和数据存储文件四个基本元素,缺一不可。2.数据流图的主图也必须包括这四个基本元素。3.每个加工至少有一个输入数据流和一个输出数据流。3.在数据流图中,需按层给加工编号。4.任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。5.每个元素都必须有名字。6.数据流图中不可夹带控制流。6.初画时可以忽略琐碎的细节,以集中精力于主要数据流。


2.原型化分析方法:在开发的初期,我们很难得到一个完整和准确的规格说明书,用户对系统也只是一个很模糊的想法。所以我们在开发的初期可以构造一个原型,然后在这个原型的基础上,不断的进行改进,使之与我们的目标系统越来越接近。

原型化方法在前面的软件生存周期模型那篇文章中,就曾涉及到,它最大的优点就是避免了瀑布模型的缺点,原型化方法中用户人员和设计人员始终在一起,这样就可以使开发人员能及时的了解到用户需求的变更,从而减少了由于软件需求不明确而带来的开发风险。





3.动态分析方法:包括状态迁移图、时序图和Petri网。

状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图形表示。

例如,下面的例子:


根据上面的图,我们可以看的出来状态迁移图可以直观的表达各状态之间的关系,而且它可以分析出多种情况,所以我们就能很容易的建立分析工具。


Petri网:简称(PNG),它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。


最后一个阶段是形成需求规格说明书。


其实,在开发系统时最困难的部分就是准确说明开发什么。需求分析阶段,就是研究我们开发系统要开发的是什么和开发系统需要些什么条件,也就是解决我们在开发系统阶段“做什么”的问题。一个好的需求分析,在系统开发过程当中是必不可少的!

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
本书讲述了软件开发中一个至关重要的问题—软件需求问题。软件开发人员及用户往往容易忽略信息沟通,导致软件开发出来后,不能很好地满足用户的需要。而返工则不仅在技术上给开发人员带来巨大的麻烦,而且软件性能深受影响且造成人力、物力的浪费。所以在开发周期早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩展及需求变更来达到按计划完成预定目标是当前我国软件业急需解决的问题—这也是本书讨论的主要内容。 目 录 译者序 前言 第一部分 软件需求:是什么和为什么 第1章 基本的软件需求 1 1.1 软件需求的定义 2 1.1.1 一些关于“需求”的解释 2 1.1.2 需求的层次 3 1.2 每个项目都有需求 4 1.3 什么情况将会导致好的群体发生不合格 的需求说明 5 1.4 高质量的需求过程带来的好处 7 1.5 优秀需求具有的特性 7 1.5.1 需求说明的特征 7 1.5.2 需求规格说明的特点 8 1.6 需求的开发和管理 9 第2章 客户的需求观 11 2.1 谁是客户 12 2.2 客户与开发人员之间的合作关系 12 2.2.1 软件客户需求权利书 13 2.2.2 软件客户需求义务书 15 2..3 “签约”意味着什么 17 第3章 需求工程的推荐方法 18 3.1 知识技能 19 3.2 需求获取 20 3.3 需求分析 21 3.4 需求规格说明 22 3.5 需求验证 23 3.6 需求管理 23 3.7 项目管理 24 第4章 改进需求过程 26 4.1 需求与其他项目过程的联系 26 4.2 软件需求对其他项目风险承担者的影响 27 4.3 软件过程改进的基础 28 4.4 过程改进周期 29 4.4.1 评估当前采用的方法 29 4.4.2 制定改进活动计划 30 4.4.3 建立、实验和实施新的过程 31 4.4.4 评估结果 32 4.5 需求过程的积累材料 33 4.5.1 需求开发过程的积累材料 34 4.5.2 需求管理过程的积累材料 34 4.6 需求过程改进路标 35 第5章 软件需求与风险管理 37 5.1 软件风险管理基础 38 5.1.1 风险管理的要素 38 5.1.2 编写项目风险文档 39 5.1.3 制定风险管理计划 40 5.2 与需求有关的风险 41 5.2.1 需求获取 41 5.2.2 需求分析 42 5.2.3 需求规格说明 42 5.2.4 需求验证 43 5.2.5 需求管理 43 5.3 风险管理是你的好助手 43 第二部分 软件需求工程 第6章 建立项目视图与范围 45 6.1 通过业务需求确定项目视图 45 6.2 项目视图和范围的文档 46 6.3 关联图 50 6.4 把注意力始终集中在项目的范围上 51 第7章 寻找客户的需求 52 7.1 需求的来源 52 7.2 用户类 53 7.3 寻找用户代表 54 7.4 产品的代表者 55 7.4.1 寻求产品代表者 56 7.4.2 产品代表者的期望 56 7.4.3 多个产品代表者 57 7.5 谁作出决策 58 第8章 聆听客户的需求 60 8.1 需求获取的指导方针 60 8.2 基于使用实例的方法 62 8.2.1 使用实例和用法说明 62 8.2.2 确定使用实例并编写使用实例文档 64 8.2.3 使用实例和功能需求 67 8.2.4 使用实例的益处 67 8.2.5 避免使用实例陷阱 68 8.3 对客户输入进行分类 69 8.4 需求获取中的注意事项 70 8.5 如何知道你何时完成需求的获取 71 第9章 编写需求文档 72 9.1 软件需求规格说明 72 9.1.1 标识需求 73 9.1.2 处理不完整性 74 9.1.3 用户界面和软件需求规格说明 74 9.2 软件需求规格说明模板 75 9.3 编写需求文档的原则 79 9.4 需求示例的改进前后 81 9.5 数据字典 83 第10章 需求的图形化分析 85 10.1 需求建模 85 10.2 从客户需求到分析模型 86 10.3 数据流图 87 10.4 实体联系图 88 10.5 状态转换图 90 10.6 对话图 92 10.7 类图 94 10.8 最后的提醒 96 第11章 软件的质量属性 97 11.1 非功能需求 97 11.2 质量属性 97 11.3 定义质量属性 98 11.3.1 对用户重要的属性 99 11.3.2 对开发者重要的属性 100 11.4 属性的取舍 101 第12章 通过原型法减少项目风险 103 12.1 原型是“什么”和“为什么”要原型 103 12.2 水平和垂直的原型 103 12.3 抛弃型原型或进化型原型 104 12.4 书面原型和电子原型 106 12.5 原型评价 107 12.6 原型法的最大风险 108 12.7 原型法成功的因素 108 第13章 设定需求优先级 110 13.1 为什么要设定需求的优先级 110 13.2 不同角色的人处理优先级 111 13.3 设定优先级的规模 111 13.4 基于价值、费用和风险的优先级设定 112 第14章 需求质量验证 116 14.1 需求评审 117 14.1.1 审查过程 118 14.1.2 需求评审的困难 122 14.2 测试需求 124 第15章 需求开发向设计规划的转化 128 15.1 从需求到项目规划 128 15.1.1 需求和进度安排 128 15.1.2 需求和预估 129 15.2 从需求到设计和编码 130 15.3 从需求到测试 131 15.4 从需求到成功 131 第三部分 软件需求管理 第16章 需求管理的原则与实现 133 16.1 需求管理和过程能力成熟度模型 133 16.2 需求管理步骤 135 16.3 需求规格说明的版本控制 135 16.4 需求属性 136 16.5 度量需求管理的效果 138 第17章 管理变更请求 139 17.1 控制项目范围的扩展 139 17.2 变更控制过程 140 17.2.1 变更控制策略 140 17.2.2 变更控制步骤 141 17.2.3 变更控制工具 144 17.3 变更控制委员会 145 17.3.1 变更控制委员会的组成 145 17.3.2 变更控制委员会总则 145 17.4 测量变更活动 146 第18章 需求链中的联系链 149 18.1 需求跟踪 149 18.1.1 需求跟踪动机 151 18.1.2 需求跟踪能力矩阵 151 18.1.3 需求跟踪能力工具 153 18.1.4 需求跟踪能力过程 153 18.1.5 需求跟踪能力可行吗,必要吗? 154 18.2 变更需求代价:影响分析 154 18.2.1 影响分析过程 155 18.2.2 影响分析报告模板 157 第19章 需求管理工具 158 19.1 使用需求管理工具的益处 159 19.2 商业需求管理工具 160 19.3 实现需求管理自动化 161 附录 当前需求实践的自我评估 163 参考文献 167 后记 171
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值