32
社区成员
发帖
与我相关
我的任务
分享软件需求工程包括需求开发和需求管理两个过程域。需求开发时收集、分析、整理、编写、验证需求的全过程,重点在于开发出高质量的需求规格说明。需求管理是对需求的实现、变化进行追踪的全过程,重点在于确保开发的软件满足这些需求。需求工程的唯一目的是找出要做什么。

1.访谈
分析人员直接与用户沟通,通过问答形式获知用户的需求,是一种最基本的需求获取手段。
2.问卷调查
通过精心设计要问的问题,将问卷发给相关人员,让他们填写,再从所填写的内容中获取系统的需求信息。缺点是缺乏灵活性,而且可能存在受调查人员不能很好表述自己想法的限制。
3.现场调查
许多复杂的流程和系统无法通过几个问题或者三言两语说清楚。为了能够对系统的需求获得全面的了解,实际观察用户的操作过程是一种非常有效的方法。现场调查就是直接到客户的工作场所,通过客户的讲解并且观察客户的实际工作流程,这样可以使分析人员对客户的需求有更加直观的理解。
4.文档分析
检查现有文档,从中发现潜在的软件需求。最有用的文档包括需求规范说明、业务过程、课程学习总结以及现有或者类似程序的用户手册。
5.辅助分析
由于知识层面的不重合性,用户和需求分析员可能存在难以沟通的情况,用户提供的需求信息,在系统分析员看来可能是零散和片面甚至无法理解的。因此,为了能够减少交流上的问题,引入领域专家来帮助进行沟通,进行辅助分析。
6.原型法
尽可能快地建造一个能够运行起来的系统,这系统实现了目标系统的全部或大部分功能,但是这个系统可能在可靠性、界面的友好性或其他方面上存在缺陷。在需求模糊的不确定性较大的情况下,使用原型方法来进行需求信息的获取尤其有效。
7.模型驱动
模型驱动方法是一类以定义明确的模型为理论基础,依据模型指导和组织活动开展的需求获取方法。这些方法的模型定义确定了所要收集的信息类型,模型的建立和完善的过程就是进行需求获取的过程。常见的模型驱动方法有面向目标的方法(Goal—Oriented Methods)、基于场景的方法(Scenario—Based Methods)和基于用例模型的方法(Use Case—Based Methods)。
1.功能分解方法
将系统作为多功能模块的组合,各功能又可分解为若干子功能及接口,子功能再继续分解。
常用树形结构图对系统功能进行划分。
2.结构化分析方法
常用流程图,用例图,数据流图,数据字典
3.信息建模方法
从数据角度对现实世界建立模型
常用E-R图
4.面向对象的分析方法
常用类图
1.严格定义法
按照瀑布模型定义。
①所有需求都能够被预先定义。
②开发人员与用户之间能够准确而清晰地交流。
③采用图形/文字可以充分体现最终系统
缺陷:文档量大且灵活性差
2.原型法
以一种与严格定义法完全不同的观点看点问题。原型法的需求定义过程是一个与客户反复确认,通力合作的过程。从一个能满足用户基本需求的原型系统开始,允许用户在开发过程中提出更好的要求,根据用户的要求不断地对系统进行完善,它实质上是一种迭代的循环型的开发方式。
1.需求审查
通过由作者之外的人组成检查小组,检查需求文档中的错误、对相关标准的违反和其他问题。
2.原型与模拟
3.开发测试用例
4.用户手册编制
5.利用跟踪方法
6.自动化分析
常用工具:PingCode,TARD,Gitee,禅道等