TA的每日心情 | 怒 2015-9-10 15:08 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
答题目
软件需求包括三个不同的层次—业务需求、用户需求和功能需求.
业务需求
反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
用户需求
描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。
功能需求
定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。
由此,可以看出用户需求是业务需求的具体体现,又是作为功能需求的补充.所以,用户需求的准确性是非常重要的.
我个人觉得对用户需求的把握要从这几方面入手.
1 了解客户的需求观
有的客户(如专门是负责管事的,但是和别的公司谈需求却是出面人)提出对软件的需求,其实是业务需求层面的,但是客户却坚信他提出来的就是想要的结果,但是这对软件制作方只是说明了整个项目的概念与目标,而对业务目标所需的各种功能和用户的要求等细致的功能面上是没有实际的指导意义的.所以在讨论需求的时候,要先了解客户的需求观,最好是从最终使用软件的客户处提取需求,因为只有最终使用者才明白自己想要的是什么样子的.
2 客户与开发人员之间的合作关系
优秀的软件产品是建立在优秀的需求基础之上的。而高质量的需求来源于客户与开发人员之间有效的交流与合作。通常,开发人员与客户或客户代理人,如市场人员间的关系反而会成为一种对立关系。双方的管理者都只想自己的利益而搁置用户提供的需求从而产生摩擦,在这种情况下,不会给双方带来一点益处。
只有当双方参与者都明白要成功自己需要什么,同时也应知道要成功合作方需要什么时,才能建立起一种合作关系。由于项目压力与日渐增,所有风险承担者有着一个共同的目标这一点容易被遗忘。其实大家都想开发出一个既能实现商业价值,又能满足用户需要,还能使开发者感到满足的优秀软件产品。
3 客户的义务和权利
客户有如下权利:
1. 要求分析人员使用符合客户语言习惯的表达。
2. 要求分析人员了解客户系统的业务及目标。
3. 要求分析人员组织需求获取期间所介绍的信息,并编写软件需求规格说明。
4. 要求开发人员对需求过程中所产生的工作结果进行解释说明。
5. 要求开发人员在整个交流过程中保持和维护一种合作的职业态度。
6. 要求开发人员对产品的实现及需求都要提供建议,拿出主意。
7. 描述产品使其具有易用、好用的特性。
8. 可以调整需求,允许重用已有的软件组件。
9. 当需要对需求进行变更时,对成本、影响、得失有个真实可信的评估。
10. 获得满足客户功能和质量要求的系统,并且这些要求是开发人员同意的。
客户有下列义务:
1. 给分析人员讲解业务及说明业务方面的术语等专业问题。
2. 抽出时间清楚地说明需求并不断完善。
3. 当说明系统需求时,力求准确详细。
4. 需要时要及时对需求做出决策。
5. 要尊重开发人员的成本估算和对需求的可行性分析。
6. 对单项需求、系统特性或使用实例划分优先级。
7. 评审需求文档和原型。
8. 一旦知道要对项目需求进行变更,要马上与开发人员联系。
9. 在要求需求变更时,应遵照开发组织确定的工作过程来处理。
10. 尊重需求工程中开发人员采用的流程(过程)。
作为项目计划的一部分,客户和开发人员应评审上述两张列表并达成共识。一些很忙的客户可能不愿意积极参与需求过程(也即,他们不太接受软件客户需求义务书),而缺少客户参与将很可能导致不理想的产品。故一定要确保需求开发中的主要参与者都了解并接受他们的义务。如果遇到分歧,通过协商以达成对各自义务的相互理解,这样能减少今后的摩擦(如一方要求而另一方不愿意或不能满足要求)。
4 寻找客户的需求
1. 访问并与有潜力的用户探讨,与产品不同用户类的代表进行沟通
2. 把对目前的或竞争产品的描述写成文档
3. 系统需求规格说明,明确使用该产品的不同类型的用户
一个包含软、硬件的产品需要一个高档次的系统需求规格说明以介绍整个产品。
4. 对当前系统的问题报告和增强要求
指导用户和提供技术支持的工作人员是最有价值的需求来源。他们收集了用户在使用现系统过程中所遇到问题的信息,还接受了用户关于系统改进的想法。
5. 市场调查和用户问卷调查
6. 观察正在工作的用户
7. 遵从项目的最终决策者的意见。
5 聆听客户的需求,加以补充和扩展,发散思维
1. 定义项目的视图和范围
2. 确定用户类
3. 在每个用户类中确定适当的代表
4. 确定需求决策者和他们的决策过程
5. 选择你所用的需求获取技术
6. 运用需求获取技术对作为系统一部分的使用实例进行开发并设置优先级
7. 从用户那里收集质量属性的信息和其它非功能需求
8. 详细拟订使用实例使其融合到必要的功能需求中
9. 评审使用实例的描述和功能需求
10. 如果有必要,就要开发分析模型用以澄清需求获取的参与者对需求的理解
11. 开发并评估用户界面原型以助想像还未理解的需求
12. 从使用实例中开发出概念测试用例
13. 用测试用例来论证使用实例、功能需求、分析模型和原型
14. 在继续进行设计和构造系统每一部分之前,重复 6 ~ 1 3步
6 使用实例的方法(类似于界面原型的功能)
使用实例方法给需求获取带来的好处来自于该方法是以任务为中心和以用户为中心的观点。比起使用以功能为中心的方法,使用实例方法可以使用户更清楚地认识到新系统允许他们做什么。在许多We b开发工程中,用户代表发现,使用实例的方法真正有助于他们弄清 We b站点的访问者可以做什么。使用实例有助于分析者和开发者理解用户的业务和应用领域。认真思考执行者—系统对话的顺序,使其可以在开发过程早期发现模糊性,也有助于从使用实例中生成测试用例。
7 阿七签名专用...嘿嘿
其实大家都可以这样想啊,客户花钱叫你们做东西,你们给他们做出来,双方都是想吧这个东西做好的,他那边可以用,你们这边可以拿钱, 如果需求没做好,做出来的东西不好使,他那边用不上,你这边返工还拿不到钱,互亏的事谁都不想做撒,所以原则上大家都是想做好的,那么就要沟通了,他那边提要求,你这边配合加引导,错误的可以交流和纠正,我看见有的朋友说,客户啥都不知道,说空话,那么你就可以给他定性嘛,他要是不知道,你给弄好了,他是很认同你的,认为你很专业,反过来说这也是你又一次学习的机会了.平常心,平常心哈.
虽然我现在没怎末做产品,弄需求,不过我也一直在学习这方面,我以后的打算也是往需求这方面靠,希望大家有什么好经验,好的经历都可以拿出来分享,呵呵!
[ 本帖最后由 阿七 于 2009-1-19 16:51 编辑 ] |
评分
-
查看全部评分
|