﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-qileilove-随笔分类-requirement and  analysis</title><link>http://www.blogjava.net/qileilove/category/51386.html</link><description>不想做屌丝的码农，不是好项目经理！屌丝生涯从此开始！</description><language>zh-cn</language><lastBuildDate>Sun, 26 May 2013 13:24:40 GMT</lastBuildDate><pubDate>Sun, 26 May 2013 13:24:40 GMT</pubDate><ttl>60</ttl><item><title>软件测试需求的意义</title><link>http://www.blogjava.net/qileilove/archive/2013/05/24/399697.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 24 May 2013 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/24/399697.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399697.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/24/399697.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399697.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399697.html</trackback:ping><description><![CDATA[<strong>　<a target="_self"><u><strong>测试</strong></u></a>需求的意义</strong><p>　　无论对于开发还是测试，一个全面精准有预见性的设计是保证项目顺利进行的前提。实际项目操作中，常常感受到测试过程有着各种问题：</p><p>　　1、产品质量维度关注的不全面，测试类型不完整；</p><p>　　2、测试规格设计较为随意，测试分解分配比较随意；</p><p>　　导致测试过程中，经常会出现需求遗漏、测试设计遗漏的问题；</p><p>　　因此一份详细精准的测试需求分析有利于这些问题的解决。</p><p><strong>　　测试需求的定义</strong></p><p>　 　软件需求定义的是要产品要实现的功能是什么，而测试需求这个名词业界并没有权威的定义，多数的意见认为测试需求定义测试的范围（即主要解决测什么、及测 到什么程度的问题），这样说还是太过泛泛，换个说法，测试人员依据初期功能需求，评估需要测试的功能点都有什么，每个功能点需要什么类型的测试，每个功能 点测试到什么程度算是通过，这样初步评估出了测试的规模、复杂程度和风险，同时可以初步预估出哪个环节需要研发同事提供测试接口。</p><p>　　测试需求设计的愈加详细精准，代表对待测试的软件了解的愈深，对各种测试手段了解的愈深，但是这往往要求测试需求的设计者拥有一定的测试经验。</p><p><strong>　　测试需求的流程</strong></p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40107" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/346836_201305211241301hamy.jpg" border="0" height="320" width="564"  alt="" /></a></p><p align="left"><strong>　　测试需求的采集</strong></p><p align="left">　　测试需求最直接的来源是：</p><p align="left">　　1、软件需求规格；</p><p align="left">　　2、业界协议规范；</p><p align="left">　　3、测试经验库；</p><p align="left">　　4、对于已有旧版本的<a target="_self"><u><strong>软件测试</strong></u></a>，还需要考虑继承性的测试需求。</p><p align="left">　　对以上内容进行梳理，形成原始测试需求表，列表的内容包括需求标识、原始测试需求描述、信息来源，如下：</p><table style="width: 600px; height: 68px" border="1" cellpadding="0" cellspacing="0" width="600"><tbody><tr><td><p align="center">来源编号&nbsp;</p></td><td><p align="center">测试原始需求编号&nbsp;</p></td><td><p align="center">测试原始需求描述&nbsp;</p></td><td><p align="center">开发特性&nbsp;</p></td><td><p align="center">需求标识&nbsp;</p></td><td><p align="center">需求描述&nbsp;</p></td><td><p align="center">需求优先级&nbsp;</p></td><td><p align="center">测试规格分析的工程方法&nbsp;</p></td></tr><tr><td><p align="center">DR001&nbsp;</p></td><td><p align="center">EMAIL-001&nbsp;</p></td><td><p align="center">能够支持电子邮件的收发&nbsp;</p></td><td><p align="center">Email&nbsp;</p></td><td><p align="center">OR_MKT.00010&nbsp;</p></td><td><p align="center">能够支持电子邮件的收发&nbsp;</p></td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table><p align="left">　 　测试人员需要对开发需求进行整理，首先需要确认软件需求的正确性、其次保证软件需求的可测试性。所谓的可测试指的是&#8220;存在一个可明确预知的结果，可用某 种方法对这个明确的结果进行判断、验证。&#8221;原则上，所有的软件需求都应该是可测试的，因为如果作为测试人员对需求无法产生准确的理解（即无法得出明确的结 果），那么开发人员也同样无法对同一条需求产生准确的理解。每一个测试需求需要保证一条需求只包含一项测试内容，因此一条软件需求通常可能对应多条测试需 求。</p><p align="left">　　这个阶段的测试需求整理，最重要的一点就是要注意广泛性和全面性，要尽可能的收集更多的原始需求，不存在遗漏，并且可以对需求进行适当的扩充，这些需求应该不仅仅局限于上述的五种来源类型，也不仅仅局限于各种文档、资料。</p><p align="left"><br /></p><img src ="http://www.blogjava.net/qileilove/aggbug/399697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-24 10:49 <a href="http://www.blogjava.net/qileilove/archive/2013/05/24/399697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试工程师管理系统--需求分析报告</title><link>http://www.blogjava.net/qileilove/archive/2013/05/24/399698.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 24 May 2013 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/24/399698.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399698.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/24/399698.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399698.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399698.html</trackback:ping><description><![CDATA[<div><strong>1&nbsp;引言</strong><p>　　<strong>1.1&nbsp;编写目的</strong></p><p>　　本软件需求规格说明的目的在于为《<a target="_self"><u><strong>软件测试</strong></u></a>工程师管理系统》项目的开发提供：</p><p>　　a.&nbsp;提出软件总体要求，作为<a target="_self"><u><strong>软件开发</strong></u></a>人员和最终使用者之间相互了解的基础；</p><p>　　b.&nbsp;提出软件功能要求、性能要求、接口要求、数据结构等要求，作为软件设计和程序编制的基础；</p><p>　　c.&nbsp;为软件测试提供依据。</p><p>　　本软件需求规格说明的读者对象主要是项目主管、软件设计人员和最终用户。</p><p>　　<strong>1.2&nbsp;项目背景</strong></p><p>　　该项目的实施主要是为提高北京梅梅公司的人事管理效率而编制的。</p><p>　　<strong>1.3&nbsp;定义</strong></p><p>　　<strong>1.4&nbsp;参考资料</strong></p><p>　　a.&nbsp;《软件测试工程师管理项目条款》-北京梅梅公司。</p><p>　　<strong>2&nbsp;项目概述</strong></p><p>　　<strong>2.1&nbsp;软件总体说明</strong></p><p>　　本项目的目标是完成一个计算机人事管理系统，实现人事管理的自动化。系统的主要功能包括：人事信息的录入、管理、查询、删除、生成报表等。</p><p>　　进入本系统提供用户选择菜单，要求人机界面友好，具有错误处理和故障恢复能力。</p><p>　　<strong>2.2&nbsp;总体数据流图</strong></p><p>　　按照功能设计，系统数据流图如下：</p><p>　　图一：系统数据流图</p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40144" target="_blank"><img style="width: 652px; height: 470px" src="http://www.51testing.com/attachments/2013/05/611095_201305221306051wxyA.jpg" border="0" height="407" width="554"  alt="" /></a></p><p>　　<strong>2.3&nbsp;使用者的特点</strong></p><p>　　本软件的最终用户是北京梅梅公司的人事专员和财务专员。具有计算机操作和使用技能。且熟悉业务。</p><p>　　<strong>2.4&nbsp;条件和限制</strong></p><p>　　为了使本系统尽快投入使用，要求本系统的开发周期较短，要求在年内两个月内完成。因此要求系统设计一人，程序员一人，测试工程师一人。</p><p>　　<strong>3&nbsp;运行环境</strong></p><p>　　本软件的最终运行环境是操作系统DOS5.0以上，或Windows95/98/2000/me/NT/XP等DOS环境上，要求有中文平台或<a target="_self"><u><strong>操作系统</strong></u></a>为中文的计算机上，配有一台打印机。</p><p>　　<strong>3.1&nbsp;运行软件系统所需的设备能力</strong></p><p>　　一台微机：主频&gt;=100，硬盘&gt;=1M，内存&gt;=1M；</p><p>　　一台打印机；</p><p>　　<strong>3.2&nbsp;支持软件环境</strong></p><p>　　操作系统：DOS5.0以上，或Windows95/98/2000/me/NT/XP。</p><p>　　开发环境：Microsoft Visual C++6.0；</p><p>　　<strong>3.3&nbsp;接口</strong></p><p>　　该系统硬件和软件与外界软件没有接口，也不需要网络环境；</p><p>　　在界面上，要求使用DOS菜单选择，用户可以随时选择菜单进行；</p><p>　　在操作上，要求操作简单，通过少数的选择菜单或单击按钮即可完成操作；</p><p>　　在系统运行任何阶段，提示给用户当前系统的状态。</p><p>　　<strong>3.4&nbsp;故障处理</strong></p><p>　　当系统缺少参数等情况时，给出提示，并返回安全状态；</p><p>　　当系统出现故障无法返回时，用户的数据不能丢失，重新其它系统，可实现数据恢复。</p><p>　　<strong>4&nbsp;软件详细要求</strong></p><p><strong>　　4.1&nbsp;性能需求</strong></p><p>　　要求本系统在完成各项功能的同时，要求系统处理迅速，处理事务需要长时间时，提示用户等待且等待时间在用户可接收的范围之内。</p><p>　　<strong>4.2功能需求</strong></p><p>　　根据系统功能的需要，对系统的功能进行划分，表示如下图：</p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40148" target="_blank"><img style="width: 665px; height: 326px" src="http://www.51testing.com/attachments/2013/05/611095_201305221314591H01N.jpg" border="0" height="314" width="643"  alt="" /></a></p><p align="center">图二：软件测试工程师管理系统功能</p><p>　　下面详述每一项功能的要求：</p></div><div><strong>4.2.1输入工程师资料</strong> <p>　　工程师的资料主要包括：编号、姓名、性别、生日、籍贯、学历、地址、电话、工龄、基本薪水。</p> <p>　　要求：编号为数字，编号使用4为位数字，格式为0001、0002&#8230;.，不能重复。</p> <p>　　姓名：为字符，最长不超过20个字符。不能为空。</p> <p>　　性别：用数字表示0表示女，1表示男。不能为其它数值。</p> <p>　　生日：用数字分别表示年、月、日。格式例如：年使用四位数字表示，月使用1-12表示，日使用1-31表示。范围是（1900，2004）</p> <p>　　籍贯：使用字符表示，最长不超过10个字符。不能为空。</p> <p>　　学历：使用数字表示高中0、学士1、硕士2、博士3、其它为4。不能为其它数字。</p> <p>　　地址：使用字符表示，最长不超过30个字符。不能为空。</p> <p>　　电话：使用字符表示，最长不超过15个字符。不能为空。</p> <p>　　工龄：使用数字表示，工龄范围是(0,50]。</p> <p>　　基本薪水：为实型，不能为0。</p> <p>　　对这些输入的信息进行合法性检查。保证系统接收合法的输入。用户输入错误时具有提示功能和重新输入功能。</p> <p>　　<strong>4.2.2删除指定工程师资料</strong></p> <p>　　可根据两种方式删除指定工程师资料，一是工程师的编号，二是工程师的姓名。删除资料后，该工程师的信息则完全在系统中删除了。其它工程师编号不变。</p> <p>　　<strong>4.2.3查询指定工程师资料</strong></p> <p>　　可根据两种方式查询指定工程师资料，一是工程师的编号，二是工程师的姓名。查询后打印该工程师的信息，如果没有该工程师资料则给用户提示。</p> <p>　　<strong>4.2.4修改指定工程师资料</strong></p> <p>　　可根据两种方式找到要修改的工程师，一是工程师的编号，二是工程师的姓名。打印原来该工程师的信息，同时提示用户进行修改。</p> <p>　　<strong>4.2.5计算工程师月薪水</strong></p> <p>　　根据当月的月效益，计算工程师的当月工资。在计算机工资时要扣除当月的保险金。计算薪水的算法如下：</p> <p>　　程师的月应发的薪水如下计算方法：</p> <p>　　薪水＝（基本工资＋10&#9587;月有效工作日天数＋月效益&#9587;工作年限&#247;100）&#9587;0.9－月保险金</p> <p>　　<strong>4.2.6保存工程师资料</strong></p> <p>　　当用户输入工程师资料、修改、排序后需要用户决定是否保存工程师资料。如果用户不保存，则默认输入和修改等不做保存。</p> <p>　　<strong>4.2.7输入工程师资料</strong></p> <p>　　对工程师资料进行排序，排序使用三种方式：编号排序（升序）、姓名排序（升序）和工龄排序（降序）。采用哪种排序方式，由用户选择。</p> <p>　　<strong>4.2.8输出工程师资料</strong></p> <p>　　打印所有的工程师资料（不包括当月薪水）。</p> <p>　　<strong>4.2.9清空所有工程师资料</strong></p> <p>　　把所有的工程师资料删除，可以重新输入工程师资料。</p> <p>　　<strong>4.2.10打印工程师资料信息报表</strong></p> <p>　　这时输出工程师的所有资料和当月薪水，以表格的形式输出。格式如下：</p> <p>　　****************************************************</p> <p>　　*编号：0001*</p> <p>　　****************************************************</p> <p>　　*姓名：张大同*</p> <p>　　****************************************************</p> <p>　　*性别：男*</p> <p>　　****************************************************</p> <p>　　&#8230;&#8230;.</p> <p>　　<strong>4.2.11从文件重新得到工程师资料</strong></p> <p>　　这项功能主要是为了用户进行某些操作后，没有保存到文件前，可以从文件重新得到这些数据信息，使用户的操作不起作用。</p> <p>　　<strong>4.2.12退出系统</strong></p> <p>　　当用户不再使用该系统后，可退出该系统。如果用户进行了影响工程师资料信息的操作，提示用户是否进行保存。</p> <p>　　<strong>5数据需求</strong></p> <p>　　软件测试工程师资料数据类型和说明。</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40146" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_2013052213062018m5y.jpg" border="0"  alt="" /></a></p> <p>　　其它数据需要：</p> <p>　　月效益：实型</p> <p>　　月保险金：实型</p> <p>　　月工资：实型</p> <p>　　保存工程师资料文件：在当前目录下，名称为engineer.txt，为文本格式。</p> <p>　　输出报表：在当前目录下，名称为report.txt，为文本格式。</p></div><img src ="http://www.blogjava.net/qileilove/aggbug/399698.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-24 10:49 <a href="http://www.blogjava.net/qileilove/archive/2013/05/24/399698.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试需求的意义</title><link>http://www.blogjava.net/qileilove/archive/2013/05/24/399696.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 24 May 2013 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/24/399696.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399696.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/24/399696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399696.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399696.html</trackback:ping><description><![CDATA[<div><strong>　<a target="_self"><u><strong>测试</strong></u></a>需求的意义</strong><p>　　无论对于开发还是测试，一个全面精准有预见性的设计是保证项目顺利进行的前提。实际项目操作中，常常感受到测试过程有着各种问题：</p><p>　　1、产品质量维度关注的不全面，测试类型不完整；</p><p>　　2、测试规格设计较为随意，测试分解分配比较随意；</p><p>　　导致测试过程中，经常会出现需求遗漏、测试设计遗漏的问题；</p><p>　　因此一份详细精准的测试需求分析有利于这些问题的解决。</p><p><strong>　　测试需求的定义</strong></p><p>　 　软件需求定义的是要产品要实现的功能是什么，而测试需求这个名词业界并没有权威的定义，多数的意见认为测试需求定义测试的范围（即主要解决测什么、及测 到什么程度的问题），这样说还是太过泛泛，换个说法，测试人员依据初期功能需求，评估需要测试的功能点都有什么，每个功能点需要什么类型的测试，每个功能 点测试到什么程度算是通过，这样初步评估出了测试的规模、复杂程度和风险，同时可以初步预估出哪个环节需要研发同事提供测试接口。</p><p>　　测试需求设计的愈加详细精准，代表对待测试的软件了解的愈深，对各种测试手段了解的愈深，但是这往往要求测试需求的设计者拥有一定的测试经验。</p><p><strong>　　测试需求的流程</strong></p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40107" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/346836_201305211241301hamy.jpg" border="0" height="320" width="564"  alt="" /></a></p><p align="left"><strong>　　测试需求的采集</strong></p><p align="left">　　测试需求最直接的来源是：</p><p align="left">　　1、软件需求规格；</p><p align="left">　　2、业界协议规范；</p><p align="left">　　3、测试经验库；</p><p align="left">　　4、对于已有旧版本的<a target="_self"><u><strong>软件测试</strong></u></a>，还需要考虑继承性的测试需求。</p><p align="left">　　对以上内容进行梳理，形成原始测试需求表，列表的内容包括需求标识、原始测试需求描述、信息来源，如下：</p><table style="width: 600px; height: 68px" border="1" cellpadding="0" cellspacing="0" width="600"><tbody><tr><td><p align="center">来源编号&nbsp;</p></td><td><p align="center">测试原始需求编号&nbsp;</p></td><td><p align="center">测试原始需求描述&nbsp;</p></td><td><p align="center">开发特性&nbsp;</p></td><td><p align="center">需求标识&nbsp;</p></td><td><p align="center">需求描述&nbsp;</p></td><td><p align="center">需求优先级&nbsp;</p></td><td><p align="center">测试规格分析的工程方法&nbsp;</p></td></tr><tr><td><p align="center">DR001&nbsp;</p></td><td><p align="center">EMAIL-001&nbsp;</p></td><td><p align="center">能够支持电子邮件的收发&nbsp;</p></td><td><p align="center">Email&nbsp;</p></td><td><p align="center">OR_MKT.00010&nbsp;</p></td><td><p align="center">能够支持电子邮件的收发&nbsp;</p></td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table><p align="left">　 　测试人员需要对开发需求进行整理，首先需要确认软件需求的正确性、其次保证软件需求的可测试性。所谓的可测试指的是&#8220;存在一个可明确预知的结果，可用某 种方法对这个明确的结果进行判断、验证。&#8221;原则上，所有的软件需求都应该是可测试的，因为如果作为测试人员对需求无法产生准确的理解（即无法得出明确的结 果），那么开发人员也同样无法对同一条需求产生准确的理解。每一个测试需求需要保证一条需求只包含一项测试内容，因此一条软件需求通常可能对应多条测试需 求。</p><p align="left">　　这个阶段的测试需求整理，最重要的一点就是要注意广泛性和全面性，要尽可能的收集更多的原始需求，不存在遗漏，并且可以对需求进行适当的扩充，这些需求应该不仅仅局限于上述的五种来源类型，也不仅仅局限于各种文档、资料。</p></div><div><strong>测试需求的分析</strong> <p>　　测试需求采集之后得到的是一张没有优化的需求表，需要对这份原始需求表进行初步的规划：</p> <p>　　1、删除冗余重复的需求，各个需求间没有过多的交集；</p> <p>　　2、需求需覆盖业务流程、功能、非功能方面的需求；</p> <p>　　业务流程：任何一套软件都会有一定的业务流，也就是用户用该软件来实现自己实际业务的一个流程。简单的来说，在做测试需求分析时需要列出以下类别：</p> <p>　　1）常用的或规定的业务流程</p> <p>　　2）各业务流程分支的遍历</p> <p>　　3）明确规定不可使用的业务流程</p> <p>　　4）没有明确规定但是应该不可以执行的业务流程</p> <p>　　5）其他异常或不符合规定的操作</p> <p>　　1、需求需考虑了各功能模块之间交互关系分析；</p> <p>　　2、确定测试特性（即测试功能点）；</p> <p>　　3、确定需求的测试类型；</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40109" target="_blank"><img style="width: 302px; height: 899px" src="http://www.51testing.com/attachments/2013/05/346836_2013052112501612GWR.jpg" border="0" height="912" width="302"  alt="" /></a></p></div><div>　1、确定需求的质量属性； <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40108" target="_blank"><img style="width: 512px; height: 446px" src="http://www.51testing.com/attachments/2013/05/346836_201305211241341kXAD.jpg" border="0" height="446" width="546"  alt="" /></a></p> <p align="left">　　2、确定本版本测试所属的阶段；</p> <p align="left">　　测试阶段：产品的不同阶段，对于测试阶段的要求也不一样。对于初期版本的产品，更侧重于关注：功能是否实现（这个功 能正常场景下是否顺利）、较为成熟阶段之后，会关注：功能是否实现的够完善（异常场景下，是否正常处理），更加成熟之后会关注，是否通得过各种压力测试场 景。</p> <p align="left"><strong>　　测试需求跟踪矩阵</strong></p> <p align="left">　　建立测试需求跟踪矩阵，对测试需求进行管理。将上述步骤分析、确定的开发需求、测试需求、测试类型填入测试跟踪需求矩阵。</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40110" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/346836_2013052112513018V7t.jpg" border="0"  alt="" /></a></p> <p align="left">　　建立测试需求跟踪矩阵，对测试需求进行管理。将上述步骤分析、确定的开发需求、测试需求、测试类型填入测试跟踪需求矩阵。</p> <p align="left">　　通过测试需求跟踪矩阵的方式对需求变更实施管理。软件需求一旦发生变化，就要对需求跟踪表进行维护，启动配置管理过程，将与软件需求变更相关的内容进行同步变更。</p> <p align="left"><strong>　　测试需求评审</strong></p> <p align="left">　　评审的内容：</p> <p align="left">　　完整性审查：应保证测试需求能充分覆盖软件需求的各种特征，重点关注功能要求、数据定义、接口定义、性能要求、安全性要求、可靠性要求、系统约束等方面，同时还应关注是否覆盖开发人员遗漏的、系统隐含的需求；</p> <p align="left">　　准确性审查：应保证所描述的内容能够得到相关各方的一致理解，各项测试需求之间没有矛盾和冲突，各项测试需求在详尽程度上保持一致，每一项测试需求都可以作为测试用例设计的依据。</p></div><img src ="http://www.blogjava.net/qileilove/aggbug/399696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-24 10:43 <a href="http://www.blogjava.net/qileilove/archive/2013/05/24/399696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Quality Center 11完全安装手册</title><link>http://www.blogjava.net/qileilove/archive/2013/05/15/399293.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 15 May 2013 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/15/399293.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399293.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/15/399293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399293.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 0.5em 0px 1.5em; padding: 0px; line-height: 19px; text-align: center; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">字体:&nbsp;&nbsp;<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">小</a>&nbsp;&nbsp;<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">中</a>&nbsp;&nbsp;<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">大</a>&nbsp; |&nbsp;<a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=up&amp;itemid=229485&amp;catid=96" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">上一篇</a>&nbsp;<a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=down&amp;itemid=229485&amp;catid=96" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">下一篇</a>&nbsp;|&nbsp;<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">打印</a>&nbsp; |&nbsp;<a href="http://bbs.51testing.com/thread-77515-1-1.html" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">我要投稿</a>&nbsp; |&nbsp;<span style="word-break: break-all;">推荐标签：&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-%C8%ED%BC%FE%B2%E2%CA%D4" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">软件测试</a>&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-QC" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">QC</a>&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-%B2%E2%CA%D4%B9%A4%BE%DF" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">测试工具</a></span></p><div id="articlebody" style="word-break: break-all; width: 627.1875px; margin: 0px auto; overflow: hidden; line-height: 1.8em; font-size: 12px; color: #333333; font-family: Arial, Helvetica, sans-serif; background-color: #ffffff;"><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　<strong style="word-break: break-all; line-height: normal !important;">Quality Center前准备：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　安装环境：<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Windows</strong></u></a>&nbsp;2003&nbsp;<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">server</strong></u></a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　Database：MS&nbsp;<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">SQL</strong></u></a>&nbsp;2005</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　QC11 license：http://hi.baidu.com/bianxuehui/blog/item/a2bac41af6cf44118718bf35.html</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　<strong style="word-break: break-all; line-height: normal !important;">　Quality Center安装步骤：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　1、双击安装包里面的stepup.exe文件，如下图所示：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;"><a href="http://www.51testing.com/batch.download.php?aid=39901" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359111SQb8.jpg" width="438" height="317" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　2、点击next按钮，按照提示安装，之后软件会自动调出下图所示界面：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;"><a href="http://www.51testing.com/batch.download.php?aid=39902" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359141zQ07.jpg" width="436" height="321" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 464px; height: 312px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　3、点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;"><a href="http://www.51testing.com/batch.download.php?aid=39903" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359171oacz.jpg" width="472" height="358" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 472px; height: 316px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;">　　4、在上图所示中，导入license，或者选择试用license，并在下拉选项中选择安装产品，点击下一步，如下图所示：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 1.8em !important;"><a href="http://www.51testing.com/batch.download.php?aid=39904" target="_blank" style="word-break: break-all; color: #45a2fc; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359211Xb4S.jpg" width="462" height="349" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 462px; height: 322px;"  alt="" /><br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　5、点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39905" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359241iW8L.jpg" width="448" height="311" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 448px; height: 301px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　6、点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39906" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359271PpMQ.jpg" width="472" height="332" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 448px; height: 291px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　7、根据自己实际情况配置，这里我的设置如上图所示，点击下一步。</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39907" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_2013051313593011Yd8.jpg" width="426" height="334" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 426px; height: 312px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　8、填写必要信息，单击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39908" target="_blank" style="word-break: break-all; color: #45a2fc; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359341GMgz.jpg" width="434" height="342" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 434px; height: 319px;"  alt="" /><br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　9、默认，单击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39909" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_2013051313593918SvU.jpg" width="436" height="314" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 436px; height: 299px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　10、采用默认值，点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39910" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359441voFP.jpg" width="436" height="296" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 436px; height: 286px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　11、根据自己的实际选择，我这里没有mail server，我选择None选项，点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39911" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359481uzdI.jpg" width="424" height="311" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 424px; height: 301px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　12、填写数据库的信息，点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39912" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359521yT16.jpg" width="422" height="301" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 422px; height: 288px;"  alt="" /><br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　13、在上图中，填写必要信息，点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39913" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131359561AA4D.jpg" width="426" height="299" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 426px; height: 293px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　14、设置QC11后台管理员的用户名和密码，设置完毕之后，点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39914" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131400011YnWZ.jpg" width="440" height="312" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 440px; height: 303px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　15、采用默认值，点击下一步</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39915" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131400051TnLj.jpg" width="412" height="294" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 412px; height: 283px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　16、在上图中，勾选Start Jboss选项，点击Finish按钮，由于使用的是Jboss服务器，需要首先启动Jboss服务器才能正常使用QC。至此，QC11安装完毕。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　下图是QC11前台登陆界面：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39916" target="_blank" style="word-break: break-all; color: #45a2fc; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305131400101FNKu.jpg" width="450" height="263" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-size: 12px;">　　如果能登陆，表明QC11安装成功。</p></a></p></a></p></a></p></div><img src ="http://www.blogjava.net/qileilove/aggbug/399293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-15 10:21 <a href="http://www.blogjava.net/qileilove/archive/2013/05/15/399293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国内外需求管理工具比较</title><link>http://www.blogjava.net/qileilove/archive/2013/05/15/399292.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 15 May 2013 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/15/399292.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399292.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/15/399292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399292.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">需求管理</strong></u></a>（REQM，Requirements Management）属于成熟度2 级（受管理级）的过程域，是其他许多过程域实施的前提。对于暂未实施<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">CMMI</strong></u></a>&nbsp;的企业，同样也可以借鉴CMMI 的原则，实施和优化需求管理。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　许多IT 企业都有过需求失控的痛苦经历，我们不难体会，没有好的需求管理会给我们带来什么：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求以失控的状态进入软件过程，从源头上失去了项目的质量保证；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求范围界定不清，使项目缺乏计划性，导致成本、研制周期失控；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求变更失控，使组织处于被动反应式的环境中，项目组成为救火队；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求管理不当，导致项目延期、士气低落，增加了项目的失败风险；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; &#8230;&#8230;</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　为了避免上述情况的出现，CMMI 对需求管理提出了明确的目的：一是管理项目的产品和产品构件的需求；二是标识哪些需求与项目计划及<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>产品之间不</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　一致。通过适当的步骤，确保需求在项目的各个层面上动态地保持一致，一旦出现不一致，则启动相关的处理过程域，使其调整到一致。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　需求管理的工具包括：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、需求及相关文档管理的工具；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、流程审批的流转电子化；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、溯源性矩阵的维护工具。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　其中最大的难点是需求溯源性矩阵的维护工具，对此我们作重点分析。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　需求溯源包括的三个方面，可看作是三个子矩阵，每个子矩阵对某个方面都具有双向溯源性。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求向低层分解的双向溯源矩阵</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求沿生命周期纵向产品溯源矩阵</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 需求的水平溯源矩阵（跨系统功能间）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　综上所述，需求管理要求建立和维护需求双向溯源表，而双向溯源表的关联关系非常复杂，因此：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、必须借助工具进行管理。对小的项目，可以用Excel 等简单工具进行管理，但对大型项目或组织级的需求管理，则应购买或自行开发专门的需求管理工具。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、必须建立一套编码体系，以便进行标识和检索。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、需求管理工具可以与<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">配置管理</strong></u></a>工具同时考虑，即综合设计成一个管理系统。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　一、国外需求管理工具</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;"><a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Rational</strong></u></a>&nbsp;RequisitePro</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">IBM</strong></u></a>&nbsp;Rational RequisitePro 解决方案是一种需求和用例管理工具，能够帮助项目团队改进项目目标的沟通，增强协作开发，降低项目风险，以及在部署前提高应用程序的质量。通过与Microsoft? Word 的高级集成方式，为需求的定义和组织提供熟悉的环境。提供<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">数据库</strong></u></a>与Word 文档的实时同步能力，为需求的组织、集成和分析提供方便。支持需求详细属性的定制和过滤，以最大化各个需求的信息价值。提供了详细的可跟踪性视图，通过这些视图可以显示需求间的父子关系，以及需求之间的相互影响关系。通过导出的XML 格式的项目基线，可以比较项目间的差异。可以与IBM Software Development Platform 中的许多工具进行集成，以改善需求的可访问性和沟通。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　网址：http://www-306.ibm.com/software/rational/</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">Telelogic DOORS</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　Telelogic DOORSreg; Enterprise Requirements Suite (DOORS/ERS) 是基于整个公司的需求管理系统，用来捕捉、链接、跟踪、分析及管理信息，以确保项目与特定的需求及标准保持一致。DOORS/ERS 使用清晰的沟通来降低失败的风险，这使通过通用的需求库来实现更高生产率的建设性的协作成为可能，并且为根据特定的需求定义的可交付物提供可视化的验证方法，从而达到质量标准。Telelogic DOORS 企业需求管理套件（DOORS/ERS）是仅有的面向管理者、开发者与最终用户及整个生命周期的综合需求管理套件。不同于那些只能通过一种方式工作的解决方案，DOORS/ERS 赋予你多种工具与方法对需求进行管理，可以灵活地融合到公司的管理过程中。以世界著名的需求管理工具DOORS 为基础，DOORS/ERS 使得整个企业能够有效地沟通从而减少失败的风险。DOORS/ERS 通过统一的需求知识库，提供对结果是否满足需求的可视化验证，从而达到质量目标，并能够进行结构化的协同作业使生产率得到提高</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　网址：http://www.telelogic.com<br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　<strong style="word-break: break-all; line-height: normal !important;">Borland CaliberRM</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　Borland CaliberRM 是一个基于Web 和用于协作的需求定义和管理工具，可以帮助分布式的开发团队平滑协作，从而加速交付应用系统。CaliberRM 辅助团队成员沟通，减少错误和提升项目质量。CaliberRM 有助于更好地理解和控制项目，是Borland 生命周期管理技术暨Borland Suite 中用于定义和设计工作的关键内容，能够帮助团队领先于竞争对手。CaliberRM 提供集中的存储库，能够帮助团队在早期及时澄清项目的需求，当全体成员都能够保持同步，工作的内容很容易具有明确的重点。此外，CaliberRM 和领先的对象建模工具、软件配置管理工具、项目规划工具、分析设计工具以及测试管理工具良好地集成。这种有效的集成有助于更好地理解需求变更对项目规模、预算和进度的影响。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　网址：http://www.borland.com</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　<strong style="word-break: break-all; line-height: normal !important;">二、国内需求管理工具</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　<strong style="word-break: break-all; line-height: normal !important;">统御需求管理软件（oKit-req）</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　oKit-req 是一款基于Web 的需求管理工具，它是统御项目管理系统（oKit）的一个关键功能，也可以作为独立软件使用。oKit-req 具备以下主要功能：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(一) 支持对多个项目需求的管理；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(二) 版本化、层次化、条目化管理需求；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(三) 方便的建立需求跟踪矩阵；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(四) 进行变更影响分析和覆盖面分析；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(五) 输出成WORD 文档；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(六) 离线交换和合并文档；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　(七) 全程跟踪需求变化历史，支持附件和图文表。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　网址：www.kingrein.com</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　<strong style="word-break: break-all; line-height: normal !important;">四者的比较</strong></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39920" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305141012041YuaT.jpg" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></p><div style="word-break: break-all; line-height: 21.59375px; margin: 10px 0px; font-size: 12px; height: 21px; position: relative; width: 627.1875px;"></div></p><img src ="http://www.blogjava.net/qileilove/aggbug/399292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-15 10:19 <a href="http://www.blogjava.net/qileilove/archive/2013/05/15/399292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈谈如何应对软件开发中的需求变更</title><link>http://www.blogjava.net/qileilove/archive/2013/05/15/399291.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 15 May 2013 02:17:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/15/399291.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399291.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/15/399291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399291.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399291.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　令人烦恼的<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">需求变更</strong></u></a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　在<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">软件开发</strong></u></a>中，大家都会遇到过这样的问题：客户的一个新想法，就推翻了之前与客户经过再三讨论而确认定下来的需求。如果是功能性需求变更还会让人容易接受一些，毕竟功能性需求不实现的话，是会大大影响到软件产品的质量。但是一些非功能性的变更会让人很头疼，许多是看起来无关痛痒的、鸡毛蒜皮的变更，却是极为令人无语和无奈，甚至是烦恼和厌恶的。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　（1）什么是软件需求？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　在IEEE中，软件需求的定义是：用户解决问题或达到目标所需的条件或功能。一般包含业务需求、用户需求、功能需求、行业隐含需求和一些非功能性需求。业务需求反映了客户对系统、产品高层次的目标要求；功能需求定义了开发人员必须实现的软件功能。所谓非功能性需求，是指为满足用户业务需求而必须具有除功能需求以外的特性。包括系统性能、可靠性、可维护性、易用性和对技术和对业务适应性等。其中最常见的是软件界面、操作方便等一系列要求。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　（2）非功能性需求变更的特点</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　让我们从客户角度和开发人员角度去看看非功能性需求的特点。首先，有些非功能性小需求从客户角度看起来<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>量不大，但是实际上开发人员要耗费比较长的时间去完成这些小功能。其次，许多非功能性需求，如界面美观、操作方便等都是客户头脑一热、或领导一拍脑袋就部署下去的需求，往往是原来在需求分析阶段所没有注意的内容。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　其实，非功能性需求是常常被轻视，甚至被忽视的。原因是非功能性需求描述很困难，它很难像功能性需求那样，可以通过结构化和量化的词语来描述清楚。在描述这类需求时候，我们经常采用软件性能要好、操作要方便、软件界面要美观大方等较模糊的描述词语。例如，易用性就同时涉及到美工和UI界面、人机工程、交互式设计、心理学、用户行为模式等内容。这类描述词语都是脱离了软件的执行环境，是对人和相关的场景的描述，因此很难体现到软件架构设计和具体的实现中。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　国内的很多软件公司，对于这种情况趋之若鹜，认为是负担，影响软件公司的工作安排，工作量以及工作进度，直接导致了软件公司的效益，几乎是很多软件公司的最大隐患，因此我们如何认识、对待这个普遍存在的问题就成了软件公司以及员工需要解决的问题；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1）首先，要从心理上彻底根除对需求变更的恐惧，从认识上明确需求变更是软件开发过程中不可缺少的部分，从方针上明确需求变更的存在性和必然性；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　a）从软件公司角度，认清自身存在的不足， 客观面对需求的变更</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　b）从职员角度，提高本身的业务和技术能力</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2）从技术角度上使需求变更的处理简单化，明确化，增加可维护性；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　a）使用更好的技术手段，设计更灵活以用来适应更多变的需求；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　b）使用更完善的软件工程的理念，让软件各个步骤细化，更易维护和修改；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　c）使用完善的<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>流程，最大的降低需求变更带来的软件风险；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3）对需求变更进行有效的管理，让需求变更可以规范化管理，做到有效的处理需求的变更，用有限的资源获得最大的效益；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　a）软件的初期，就要考虑最大限度的减少将来可能存在的需求变更</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　b）需求的控制，减少需求的来源，过滤不合理的需求</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　c）文档化管理，有备可查，有据可依；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　　　d）合适的公司体制和运作，找到一条适合自己公司发展的运作体制和管理模式；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　可能大家觉得上面说的话有些空，那么我就从技术角度上再具体的谈谈。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　就像刚才说过的，需求变更是必然存在的。从技术的角度来降低或避免需求变更给我们带来的影响就显得极为重要。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、设计之初，充分理解需求，更好对需求进行整理和规划，预测可能变更的需求。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　需求难做，业务难做，非功能性的需求变更更是难做。所以当我们在收集了用户需求后，不仅仅是简单的分类，然后按部就班的开发，而是要深入挖掘需求，一些看似固定业务的需求，可能由于业务的变更而使得你的系统不能使用。我们要做的就是拆分需求，把一些可能会发生变化的需求拆开，改成工作流程可配置的。就像面向过程转向面向对象的那样，面向过程是死的，而面向对象重新组合后，就特别简单。<br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　就说说我们刚做的这个收银系统吧，用户要求结账时，要打印小票，并自动打开钱箱。这就是最最原始的需求。但是我们最终把它做成了这样：打印机是外部设备，可以增删和配置；打印次数可配置；打印样式可配置；打印时，要判断打印机状态，非正常状态要给出各种提示（不一一列举）；钱箱可以自动打开，也可以手动打开。另外还设定了许多功能配置：如禁用/启用全部打印机，禁用/启用某个打印机，是否打印订单小票，是否自动打开钱箱，是否显示错误提示信息等等（如图）。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　我们把这个固定的需求，拆分成可配置的，这样就把这个需求可能的变更已经分析的差不多了。不论它怎么变化，我们的应对都会变得从容。就在前2天部署的时候出现问题了，打印机是新买的，不只是什么原因，在打印多个换行之后，就会失败，不能继续打印。这个问题是我们所料不及的，因为我们测的我们这里的所有打印机，都完美打印，而新买的也是同品牌，同型号的打印机。最终分析出这个问题后，我们不用更改系统，只要修改一下小票样式配置，就可以完美打印了。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　小票样式设定（图）：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39783" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_2013050810232114rx4.jpg" width="570" height="294" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 570px; height: 283px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　硬件设置（图）：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39784" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305081023241v6eR.jpg" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　单个打印机设置（图）：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39785" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305081023461LAZU.jpg" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　功能设置（图）：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;"><a href="http://www.51testing.com/batch.download.php?aid=39786" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305081023511WWxZ.jpg" width="520" height="222" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 484px; height: 222px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　2、系统完成之后，客户再提新需求后，要分析这个需求的深层次含义，分析客户要的到底是什么。对于一些需求，如果适合于大部分客户，而且改动很少，就可以完成，那么可以在下个升级版本中集成。而对于某些非功能性的需求，改动太大，或者基本的核心功能都需要更改的话，那么就不要先去急着实现，而是放置起来，等待系统需要进行大的升级或者重构时，再考虑添加。而且要防止客户滥用提需求的权力，对于一些不合理的需求，还要去引导客户，让他们理解这个功能的不合理的地方，从而重新修改需求或者放弃。</p><div style="word-break: break-all; line-height: 21.59375px; margin: 10px 0px; font-size: 12px; height: 21px; position: relative; width: 627.1875px;"></div><br /></p><img src ="http://www.blogjava.net/qileilove/aggbug/399291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-15 10:17 <a href="http://www.blogjava.net/qileilove/archive/2013/05/15/399291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件需求的3个层次</title><link>http://www.blogjava.net/qileilove/archive/2012/07/04/382164.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 04 Jul 2012 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/07/04/382164.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/382164.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/07/04/382164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/382164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/382164.html</trackback:ping><description><![CDATA[<div><p>　　作为技术人员，我们以往更多的关注的是技术，但是在做个多年后，发现做正确的事比正确的做事更重要，而软件中需求的好坏就很大程度决定了你这个 软件是否正确，需求确定后不管你如何实现，功能给客户直接带来的价值远远比技术直接带来的价值要高。但是需求带来的问题一直是各个软件公司项目失败的首要 原因，因此需求是很复杂的，我们希望能在不断地<a target="_self"><u><strong>学习</strong></u></a>和实践中不断地理清需求、提高需求分析能力。</p><p>　　软件需求包括3个不同的层次：</p><p><strong>　　【业务需求】</strong></p><p>　　描述组织或客户的高层次目标，通常问题定义本身就是业务需求。这种目标通常体现在两个方面：</p><p>　　问题：解决企业/组织运作过程中遇到的问题，如物资供应脱节、用户投诉量大、客户流失率高等。</p><p>　　机会：抓住外部环境变化所带来的机会，以便为企业带来新的发展，例如电子商务、网上银行等。</p><p>　　业务需求就是系统目标，它必须是业务导向的、指导<a target="_self"><u><strong>软件开发</strong></u></a>的 高层需求。这类需求通常来自与高层，例如项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求从总体上描述了为什么要开 发系统（why），组织希望达到什么目标。一般使用前景和范围（vision and  scope）文档来记录业务需求，这份文档有时也被称作项目轮廓图或市场需求（project charter 或 market  requirement）文档。组织愿景是一个组织对将使用的软件系统所要达成的目标的预期期望。比如&#8220;希望实施CRM后公司的客户满意度达到80％以 上&#8221;就是一条组织愿景。</p><p><strong>　　【用户需求】</strong></p><p>　　用户需求是指描述用户使用产品必须要完成什 么任务，怎么完成需求，通常是在问题定义的基础上进行用户访谈、调查，对用户使用的场景进行整理，从而建立从用户角度的需求。用户需求必须能够体现软件系 统将给用户带来的业务价值，或用户要求系统必须能完成的任务，也就是说用户需求描述了用户能使用系统来做些什么（what），这个层次的需求是非常重要 的。</p><p>　　作为需求捕获阶段的主要产物，主要具备以下特点：</p><p>　　零散：用户会提出不同角度、不同层面、不同粒度的需求，而且常常是一句话形式提出的，如通过电话、短信等非正式方式提出的需求。</p><p>　　存在矛盾：由于用户处于企业/组织的不同层面，因此难免会出现盲人摸象的现象，而导致需求的片面性。</p><p>　　因此，我们还需要对原始需求进行分析和整理，从而得出更加精确地需求说明。用例、用户故事、特性等都是表达用户需求的有效途径。</p><p><strong>　　【软件需求】</strong></p><p>　　由于用户需求具有零散、矛盾的特点，因此需求分析人员还需要对其进行分析、提炼、整理，从而生成指导开发的、更准确的软件需求，软件需求是需求分析与建模的产物。</p><p>　 　软件需求是需求的主体，它描述的是开发人员如何设计具体的解决方案来实现这些需求（how），其数量往往比用户需求高一个数量级。这些需求记录在软件需 求规格说明（Software Requirments Specification）中。SRS  完整地描述了软件系统的预期特性。SRS我们一般把它当作文档，其实，SRS还可以是包含需求信息的<a target="_self"><u><strong>数据库</strong></u></a>或电子表格；或者是存储在商业<a target="_self"><u><strong>需求管理</strong></u></a>工 具中的信息；而对于小型项目，甚至可能是一叠索引卡片。开发、<a target="_self"><u><strong>测试</strong></u></a>、质量保证、<a target="_self"><u><strong>项目管理</strong></u></a>和其他相关的项目功能都要用到SRS。</p>             </div><img src ="http://www.blogjava.net/qileilove/aggbug/382164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-07-04 09:47 <a href="http://www.blogjava.net/qileilove/archive/2012/07/04/382164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>需求分析的20条法则</title><link>http://www.blogjava.net/qileilove/archive/2012/04/12/373947.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Thu, 12 Apr 2012 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/04/12/373947.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/373947.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/04/12/373947.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/373947.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/373947.html</trackback:ping><description><![CDATA[<div><span href="http://bbs.51testing.com/tag.php?name=%D0%E8%C7%F3">需求</span>分析的20条法则<br /> 对商业<span href="http://bbs.51testing.com/tag.php?name=%D3%C3%BB%A7">用户</span>来说，他们后面是成百上千个供应商，前面是成千上万个消费顾客。怎样利用<span href="http://bbs.51testing.com/tag.php?name=%C8%ED%BC%FE">软件</span><span href="http://bbs.51testing.com/tag.php?name=%B9%DC%C0%ED">管理</span>错综复杂的供应商和消费顾客，<span href="http://bbs.51testing.com/tag.php?name=%C8%E7%BA%CE">如何</span>做好精细到一个小小调料包的进、销、调、存的商品流通<span href="http://bbs.51testing.com/tag.php?name=%B9%A4%D7%F7">工作</span>，这些都是商业企业需要信息管理<span href="http://bbs.51testing.com/tag.php?name=%CF%B5%CD%B3">系统</span>的理由。软件<span href="http://bbs.51testing.com/tag.php?name=%BF%AA%B7%A2">开发</span>的意义也就在于此。而弄清商业用户如此复杂需求的真面目，正是软件开发成功的关键所在。 <br /> <br /> <br /> 　　经理：&#8220;我们要建立一套完整的商业管理软件系统，包括商品的进、销、调、存管理，是总部-门店的连锁经营模式。通过通信手段门店<span href="http://bbs.51testing.com/tag.php?name=%D7%D4%B6%AF">自动</span>订货，供应商自动结算，卖场通过扫条码实现销售，管理人员能够随时查询门店商品销售和库存情况。另外，我们也得为政府部门提供关于商品营运的报告。&#8221; <br /> <br /> 　　分析员：&#8220;我已经明白这个<span href="http://bbs.51testing.com/tag.php?name=%CF%EE%C4%BF">项目</span>的大体结构框架，这非常重要，但在制定计划之前，我们必须收集一些需求。&#8221; <br /> <br /> 　　经理觉得奇怪：&#8220;我不是刚告诉你我的需求了吗？&#8221; <br /> <br /> 　　分析员：&#8220;实际上，您只说明了整个项目的概念和目标。这些高层次的业务需求不足以提供开发的内容和<span href="http://bbs.51testing.com/tag.php?name=%CA%B1%BC%E4">时间</span>。我需要与实际将要使用系统的业务人员进行讨论，然后才能真正明白达到业务目标所需<span href="http://bbs.51testing.com/tag.php?name=%B9%A6%C4%DC">功能</span>和用户要求，了解清楚后，才可以发现哪些是现有组件即可实现的，哪些是需要开发的，这样可节省很多时间。&#8221; <br /> <br /> 　　经理：&#8220;业务人员都在招商。他们非常忙，没有时间与你们详细讨论各种细节。你能不能说明一下你们现有的系统？&#8221; <br /> <br /> 　　分析员尽量解释从用户处收集需求的合理性：&#8220;如果我们只是凭空猜想用户的要求，<span href="http://bbs.51testing.com/tag.php?name=%BD%E1%B9%FB">结果</span>不会令人满意。我们只是软件开发人员，而不是采购专家、营运专家或是财务专家，我们并不真正明白您这个企业内部运营需要做些什么。我曾经尝试过，未真正明白这些问题就开始编码，结果没有人对产品满意。&#8221; <br /> <br /> 　　经理坚持道：&#8220;行了，行了，我们没有那么多的时间。让我来告诉您我们的需求。实际上我也很忙。请马上开始开发，并随时将你们的进展情况告诉我。&#8221; <br /> <br /> 风险躲在需求的迷雾之后 <br /> <br /> 　　以上我们看到的是某客户项目经理与系统开发小组的分析人员讨论业务需求。在项目开发中，所有的项目风险承担者都对需求分析阶段备感兴趣。这里所指的风 险承担者包括客户方面的项目负责人和用户，开发方面的需求分析人员和项目管理者。这部分工作做得到位，能开发出很优秀的软件产品，同时也会令客户满意。若 处理不好，则会导致误解、挫折、障碍以及潜在的质量和业务价值上的威胁。因此可见&#8212;&#8212;需求分析奠定了软件工程和项目管理的基础。 <br /> <br /> 拨开需求分析的迷雾 <br /> <br /> 　　像这样的对话经常出现在软件开发的过程中。客户项目经理的需求对分析人员来讲，像&#8220;雾里看花&#8221;般模糊并令开发者感到困惑。那么，我们就拨开雾影，分析一下需求的具体内容： <br /> <br /> 　　&#183;业务需求&#8212;&#8212;反映了组织机构或客户对系统、产品高层次的目标要求，通常在项目定义与范围<span href="http://bbs.51testing.com/tag.php?name=%CE%C4%B5%B5">文档</span>中予以说明。 <br /> <br /> 　　&#183;用户需求&#8212;&#8212;描述了用户使用产品必须要完成的任务，这在使用实例或方案<span href="http://bbs.51testing.com/tag.php?name=%BD%C5%B1%BE">脚本</span>中予以说明。 <br /> <br /> 　　&#183;功能需求&#8212;&#8212;定义了开发人员必须实现的软件功能，使用户利用系统能够完成他们的任务，从而满足了业务需求。 <br /> <br /> 　　&#183;非功能性的需求&#8212;&#8212;描述了系统展现给用户的行为和执行的操作等，它包括产品必须遵从的标准、规范和约束，操作界面的具体细节和构造上的限制。 <br /> <br /> 　　&#183;需求分析报告&#8212;&#8212;报告所说明的功能需求充分描述了软件系统所应具有的外部行为。&#8220;需求分析报告&#8221;在开发、<span href="http://bbs.51testing.com/tag.php?name=%B2%E2%CA%D4">测试</span>、质量保证、项目管理以及相关项目功能中起着重要作用。 <br /> <br /> 　　前面提到的客户项目经理通常阐明产品的高层次概念和主要业务内容，为后继工作建立了一个指导性的框架。其他任何说明都应遵循&#8220;业务需求&#8221;的规定，然而&#8220;业务需求&#8221;并不能为开发人员提供开发所需的许多细节说明。 <br /> <br /> 　　下一层次需求&#8212;&#8212;用户需求，必须从使用产品的用户处收集。因此，这些用户构成了另一种软件客户，他们清楚要使用该产品完成什么任务和一些非功能性的特性需求。例如：<span href="http://bbs.51testing.com/tag.php?name=%B3%CC%D0%F2">程序</span>的易用性、健壮性和可靠性，而这些特性将会使用户很好地接受具有该特点的软件产品。 <br /> <br /> 　　经理层有时试图代替实际用户说话，但通常他们无法准确说明&#8220;用户需求&#8221;。用户需求来自产品的真正使用者，必须让实际用户参与到收集需求的过程中。如果不这样做，产品很可能会因缺乏足够的信息而遗留不少隐患。 <br /> <br /> 　　在实际需求分析过程中，以上两种客户可能都觉得没有时间与需求分析人员讨论，有时客户还希望分析人员无须讨论和编写需求说明就能说出用户的需求。除非 遇到的需求极为简单；否则不能这样做。如果您的组织希望软件成功，那么必须要花上数天时间来消除需求中模糊不清的地方和一些使开发者感到困惑的方面。 <br /> <br /> 　　优秀的软件产品建立在优秀的需求基础之上，而优秀的需求源于客户与开发人员之间有效的交流和合作。只有双方参与者都明白自己需要什么、成功的合作需要什么时，才能建立起一种良好的合作关系。 <br /> <br /> 　　由于项目的<span href="http://bbs.51testing.com/tag.php?name=%D1%B9%C1%A6">压力</span>与日俱增，所有项目风险承担者有着一个共同目标，那就是大家都想开发出一个既能实现商业价值又能满足用户要求，还能使开发者感到满足的优秀软件产品。 <br /> <br /> 客户的需求观 <br /> <br /> 　　客户与开发人员交流需要好的方法。下面建议20条法则，客户和开发人员可以通过评审以下内容并达成共识。如果遇到分歧，将通过协商达成对各自义务的相互理解，以便减少以后的磨擦（如一方要求而另一方不愿意或不能够满足要求）。 <br /> <br /> 1、 分析人员要使用符合客户语言习惯的表达 <br /> <br /> 　　需求讨论集中于业务需求和任务，因此要使用术语。客户应将有关术语（例如：采价、印花商品等采购术语）教给分析人员，而客户不一定要懂得<span href="http://bbs.51testing.com/tag.php?name=%BC%C6%CB%E3%BB%FA">计算机</span>行业的术语。 <br /> <br /> 2、分析人员要了解客户的业务及目标 <br /> <br /> 　　只有分析人员更好地了解客户的业务，才能使产品更好地满足需要。这将有助于开发人员<span href="http://bbs.51testing.com/tag.php?name=%C9%E8%BC%C6">设计</span>出真正满足客户需要并达到期望的优秀软件。为帮助开发和分析人员，客户可以考虑邀请他们观察自己的工作流程。如果是切换新系统，那么开发和分析人员应使用一下目前的旧系统，有利于他们明白目前系统是怎样工作的，其流程情况以及可供改进之处。s <br /> <br /> 3、 分析人员必须编写软件需求报告 <br /> <br /> 　　分析人员应将从客户那里获得的所有信息进行整理，以区分业务需求及规范、功能需求、质量目标、<span href="http://bbs.51testing.com/tag.php?name=%BD%E2%BE%F6">解决</span>方法和其他信息。通过这些分析，客户就能得到一份&#8220;需求分析报告&#8221;，此份报告使开发人员和客户之间针对要开发的产品内容达成<span href="http://bbs.51testing.com/tag.php?name=%D0%AD%D2%E9">协议</span>。报告应以一种客户认为易于翻阅和理解的方式组织编写。客户要评审此报告，以确保报告内容准确完整地表达其需求。一份高质量的&#8220;需求分析报告&#8221;有助于开发人员开发出真正需要的产品。 <br /> <br /> 4、 要求得到需求工作结果的解释说明 <br /> <br /> 　　分析人员可能采用了多种图表作为文字性&#8220;需求分析报告&#8221;的补充说明，因为工作图表能很清晰地描述出系统行为的某些方面，所以报告中各种图表有着极高的 价值；虽然它们不太难于理解，但是客户可能对此并不熟悉，因此客户可以要求分析人员解释说明每个图表的作用、符号的意义和需求开发工作的结果，以及怎样<span href="http://bbs.51testing.com/tag.php?name=%BC%EC%B2%E9">检查</span>图表有无错误及不一致等。 <br /> <br /> 5、 开发人员要尊重客户的意见 <br /> <br /> 　　如果用户与开发人员之间不能相互理解，那关于需求的讨论将会有障碍。共同合作能使大家&#8220;兼听则明&#8221;。参与需求开发过程的客户有权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间，同样，客户也应对开发人员为项目成功这一共同目标所做出的努力表示尊重。 <br /> <br /> 6、 开发人员要对需求及产品实施提出建议和解决方案 <br /> <br /> 　　通常客户所说的&#8220;需求&#8221;已经是一种实际可行的实施方案，分析人员应尽力从这些解决方法中了解真正的业务需求，同时还应找出已有系统与当前业务不符之处，以确保产品不会无效或低效；在彻底弄清业务领域内的事情后，分析人员就能提出相当好的改进方法，有<span href="http://bbs.51testing.com/tag.php?name=%BE%AD%D1%E9">经验</span>且有创造力的分析人员还能提出增加一些用户没有发现的很有价值的系统特性。 </div><div>7、 描述产品使用特性 <br /> <br /> 　　客户可以要求分析人员在实现功能需求的同时还注意软件的易用性，因为这些易用特性或质量属性能使客户更准确、高效地完成任务。例如：客户有时要求产品 要&#8220;界面友好&#8221;或&#8220;健壮&#8221;或&#8220;高效率&#8221;，但对于开发人员来讲，太主观了并无实用价值。正确的做法是，分析人员通过询问和调查了解客户所要的&#8220;友好、健壮、 高效所包含的具体特性，具体分析哪些特性对哪些特性有负面影响，在性能代价和所提出解决方案的预期利益之间做出权衡，以确保做出合理的取舍。 <br /> <br /> 8、 允许重用已有的软件组件 <br /> <br /> 　　需求通常有一定灵活性，分析人员可能发现已有的某个软件组件与客户描述的需求很相符，在这种情况下，分析人员应提供一些修改需求的选择以便开发人员能 够降低新系统的开发成本和节省时间，而不必严格按原有的需求说明开发。所以说，如果想在产品中使用一些已有的商业常用组件，而它们并不完全适合您所需的特 性，这时一定程度上的需求灵活性就显得极为重要了。 <br /> <br /> 9、 要求对变更的代价提供真实可靠的评估 <br /> <br /> 　　有时，人们面临更好、也更昂贵的方案时，会做出不同的选择。而这时，对需求变更的影响进行评估从而对业务决策提供帮助，是十分必要的。所以，客户有权 利要求开发人员通过分析给出一个真实可信的评估，包括影响、成本和得失等。开发人员不能由于不想实施变更而随意夸大评估成本。 <br /> <br /> 10、 获得满足客户功能和质量要求的系统 <br /> <br /> 　　每个人都希望项目成功，但这不仅要求客户要清晰地告知开发人员关于系统&#8220;做什么&#8221;所需的所有信息，而且还要求开发人员能通过交流了解清楚取舍与限制，一定要明确说明您的假设和潜在的期望，否则，开发人员开发出的产品很可能无法让您满意。 <br /> <br /> 11、 给分析人员讲解您的业务 <br /> <br /> 　　分析人员要依靠客户讲解业务概念及术语，但客户不能指望分析人员会成为该领域的专家，而只能让他们明白您的问题和目标；不要期望分析人员能把握客户业务的细微潜在之处，他们可能不知道那些对于客户来说理所当然的&#8220;常识&#8221;。 <br /> <br /> 12、 抽出时间清楚地说明并完善需求 <br /> <br /> 　　客户很忙，但无论如何客户有必要抽出时间参与&#8220;头脑高峰会议&#8221;的讨论，接受采访或其他获取需求的活动。有些分析人员可能先明白了您的观点，而过后发现 还需要您的讲解，这时请耐心对待一些需求和需求的精化工作过程中的反复，因为它是人们交流中很自然的现象，何况这对软件产品的成功极为重要。 <br /> <br /> 13、 准确而详细地说明需求 <br /> <br /> 　　编写一份清晰、准确的需求文档是很困难的。由于处理细节问题不但烦人而且耗时，因此很容易留下模糊不清的需求。但是在开发过程中，必须解决这种模糊性和不准确性，而客户恰恰是为解决这些问题作出决定的最佳人选，否则，就只好靠开发人员去正确猜测了。 <br /> <br /> 　　在需求分析中暂时加上&#8220;待定&#8221;标志是个方法。用该标志可指明哪些是需要进一步讨论、分析或增加信息的地方，有时也可能因为某个特殊需求难以解决或没有 人愿意处理它而标注上&#8220;待定&#8221;。客户要尽量将每项需求的内容都阐述清楚，以便分析人员能准确地将它们写进&#8220;软件需求报告&#8221;中去。如果客户一时不能准确表 达，通常就要求用原型技术，通过原型开发，客户可以同开发人员一起反复修改，不断完善需求定义。 <br /> <br /> 14、 及时作出决定 <br /> <br /> 　　分析人员会要求客户作出一些选择和决定，这些决定包括来自多个用户提出的处理方法或在质量特性冲突和信息准确度中选择折衷方案等。有权作出决定的客户 必须积极地对待这一切，尽快做处理，做决定，因为开发人员通常只有等客户做出决定才能行动，而这种等待会延误项目的进展。 <br /> <br /> 15、 尊重开发人员的需求可行性及成本评估 <br /> <br /> 　　所有的软件功能都有其成本。客户所希望的某些产品特性可能在技术上行不通，或者实现它要付出极高的代价，而某些需求试图达到在操作环境中不可能达到的性能，或试图得到一些根本得不到的数据。开发人员会对此作出负面的评价，客户应该尊重他们的意见。 <br /> <br /> 16、 划分需求的优先级 <br /> <br /> 　　绝大多数项目没有足够的时间或资源实现功能性的每个细节。决定哪些特性是必要的，哪些是重要的，是需求开发的主要部分，这只能由客户负责设定需求优先级，因为开发者不可能按照客户的观点决定需求优先级；开发人员将为您确定优先级提供有关每个需求的花费和风险的信息。 <br /> <br /> 　　在时间和资源限制下，关于所需特性能否完成或完成多少应尊重开发人员的意见。尽管没有人愿意看到自己所希望的需求在项目中未被实现，但毕竟是要面对现实，业务决策有时不得不依据优先级来缩小项目范围或延长工期，或增加资源，或在质量上寻找折衷。 <br /> <br /> 17、 评审需求文档和原型 <br /> <br /> 　　客户评审需求文档，是给分析人员带来反馈信息的一个机会。如果客户认为编写的&#8220;需求分析报告&#8221;不够准确，就有必要尽早告知分析人员并为改进提供建议。 <br /> <br /> 　　更好的办法是先为产品开发一个原型。这样客户就能提供更有价值的反馈信息给开发人员，使他们更好地理解您的需求；原型并非是一个实际应用产品，但开发人员能将其转化、扩充成功能齐全的系统。 <br /> <br /> 18、 需求变更要立即联系 <br /> <br /> 　　不断的需求变更，会给在预定计划内完成的质量产品带来严重的不利影响。变更是不可避免的，但在开发周期中，变更越在晚期出现，其影响越大；变更不仅会 导致代价极高的返工，而且工期将被延误，特别是在大体结构已完成后又需要增加新特性时。所以，一旦客户发现需要变更需求时，请立即通知分析人员。 <br /> <br /> 19、 遵照开发小组处理需求变更的过程 <br /> <br /> 　　为将变更带来的负面影响减少到最低限度，所有参与者必须遵照项目变更控制过程。这要求不放弃所有提出的变更，对每项要求的变更进行分析、综合考虑，最后做出合适的决策，以确定应将哪些变更引入项目中。 <br /> <br /> 20、 尊重开发人员采用的需求分析过程 <br /> <br /> 　　软件开发中最具挑战性的莫过于收集需求并确定其正确性，分析人员采用的方法有其合理性。也许客户认为收集需求的过程不太划算，但请相信花在需求开发上 的时间是非常有价值的；如果您理解并支持分析人员为收集、编写需求文档和确保其质量所采用的技术，那么整个过程将会更为顺利。 <br /> <br /> &#8220;需求确认&#8221;意味着什么 <br /> <br /> 　　在&#8220;需求分析报告&#8221;上签字确认，通常被认为是客户同意需求分析的标志行为，然而实际操作中，客户往往把&#8220;签字&#8221;看作是毫无意义的事情。&#8220;他们要我在需求文档的最后一行下面签名，于是我就签了，否则这些开发人员不开始编码。&#8221; <br /> <br /> 　　这种态度将带来麻烦，譬如客户想更改需求或对产品不满时就会说：&#8220;不错，我是在需求分析报告上签了字，但我并没有时间去读完所有的内容，我是相信你们的，是你们非让我签字的。&#8221; <br /> <br /> 　　同样问题也会发生在仅把&#8220;签字确认&#8221;看作是完成任务的分析人员身上，一旦有需求变更出现，他便指着&#8220;需求分析报告&#8221;说：&#8220;您已经在需求上签字了，所以这些就是我们所开发的，如果您想要别的什么，您应早些告诉我们。&#8221; <br /> <br /> 　　这两种态度都是不对的。因为不可能在项目的早期就了解所有的需求，而且毫无疑问地需求将会出现变更，在&#8220;需求分析报告&#8221;上签字确认是终止需求分析过程的正确方法，所以我们必须明白签字意味着什么。 <br /> <br /> 　　对&#8220;需求分析报告&#8221;的签名是建立在一个需求协议的基线上，因此我们对签名应该这样理解：&#8220;我同意这份需求文档表述了我们对项目软件需求的了解，进一步 的变更可在此基线上通过项目定义的变更过程来进行。我知道变更可能会使我们重新协商成本、资源和项目阶段任务等事宜。&#8221;对需求分析达成一定的共识会使双方 易于忍受将来的摩擦，这些摩擦来源于项目的改进和需求的误差或市场和业务的新要求等。 <br /> <br /> 　　需求确认将迷雾拨散，显现需求的真面目，给初步的需求开发工作画上了双方都明确的句号，并有助于形成一个持续良好的客户与开发人员的关系，为项目的成功奠定了坚实的基础。</div><img src ="http://www.blogjava.net/qileilove/aggbug/373947.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-04-12 13:39 <a href="http://www.blogjava.net/qileilove/archive/2012/04/12/373947.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>