产品案例

QFD在网络报销系统需求分析中的应用

来源:http://www.52zyzs.com 责任编辑:凯时娱乐网址 2018-08-23 09:59

  IEEE软件工程标准词汇表(1997年)中对软件需求定义为:(1)用户解决问题或达到目标所需要的条件或职能(Capability);(2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能;(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。

  软件需求是软件开发中一个至关重要的问题。Frederick Brooks在他1987年的经典文章“No Silver Bullet:Essence and Accidents of Software Engineering”中指出:开发软件系统最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其他软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。据统计,软件项目中百分之四十至六十的问题都是在需求分析阶段埋下的“祸根”(Leffingwell 1997)。

  软件的需求可以分为功能性需求和非功能性需求两个层次。功能性需求(function requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。每一个用况(use case)就是用户使用系统的一个方法,所有的use case组成了系统的功能,所以功能性的需求自然就应该属于use case。作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。软件非功能需求包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性等内容。有些非功能性的需求可能是很一般的,不会纳入任何一个use case,这些内容应该独立的作为辅助需求列出来。

  质量功能展开(Quality Function Deployment, 缩写为QFD)是把顾客或市场的要求转化为设计要求、零部件特性、工艺要求、生产要求的多层次演绎分析方法,它体现了以市场为导向,以顾客要求为产品开发唯一依据的指导思想。广义的质量功能展开,可以理解为一种采用矩阵形式、量化评估目的和手段之间相互关系的分析工具。

  QFD采用质量屋(House of quality,缩写为HOQ)建立顾客需求和技术设计需求之间的相互联系,质量屋的基本结构如图1所示。图1左侧列示了通过各种方法获取顾客需求,需求权重是需求重要程度的等级排列。顾客需求是QFD的最基本的输入,要通过各种市场调查方法和各种渠道搜集顾客需求,然后进行汇集、分类和整理。图1右侧的是顾客对不同产品在满足需求方面的打分情况,即产品的市场竞争能力评价。关系矩阵是记录用户需求与技术措施之间的判断矩阵,相关矩阵说明设计技术特征之间相互支持或阻碍的关系。质量屋的下方反映产品的技术竞争能力。

  在质量功能展开过程中,上一步的输出就是下一步的输入,构成瀑布式分解过程,如图2所示。QFD从顾客需求开始,经过四个阶段,用四个矩阵,得出产品的工艺和质量控制参数。这四个阶段分别是产品规划阶段、零件配置阶段、工艺规划阶段、生产计划阶段。

  软件需求分析(requirement analysis)包括提炼、分析和仔细审查已收集到的需求。2013年安佑集团充电会满意举行凯以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其他不足的地方。具体而言,软件需求分析过程包括以下5个循环的、反复的过程:(1)发掘软件使用者对软件的需求;(2)把发现的需求记录在软件需求规格说明书中;(3)确认有效的备选的需求;(4)选择出采用的需求子集;(5)展开整个过程。

  QFD是一种高级系统技术,它将产品特性、属性与对客户的重要性联系起来。在软件需求分析方面,QFD是一个得力工具。通过对顾客需求的广泛深入调查,找出顾客对软件的要求,以便确定软件功能需求、接口需求、数据需求、软/硬件环境需求、人机界面需求等,作为软件设计的依据,如图3所示。QFD支持下的软件需求分析可以实现分析过程可视化,需求分析充分化,需求项目层次化。

  另一方面,广义的QFD作为一种量化评估目的和手段之间相互关系的分析工具,在系统需求分析过程中系统用户与角色、角色与用况(use case)、用况与对象等关系的分析大有用武之地。

  下面将以安财网络报销系统为例,简要地说明QFD矩阵在软件需求分析中的运用,顾客需求的收集、整理、分类就不再赘述了。

  安财网络报销系统是基于Internet的财务应用软件。在这一系统的支持下,员工可以任何时间、从任何地点提交财务报销申请,领导则可用数字签名的方式在任何时间、任何地点进行业务审批,财务部门对原始凭证审核无误后,自动生成记帐凭证,并可通过网上银行进行付款。

  网络报销系统是一个面向对象的应用软件,下面的叙述更多地使用了UML中的术语,其中角色(actor roles)对应QFD中的顾客,用况(use case)对应于QFD中的功能。实际开发过程中,该系统需求分析质量屋涉及23项需求,58项use case,考虑到篇幅及安财软件公司的要求,仅从中抽取一部分需求和用况加以说明。

  这个矩阵总结了用户在系统中的不同角色。这个矩阵是通过与个人的交谈和对日常行为的记录总结出来的。因为用户的日常活动经常会发生变动,这张表的内容很可能会扩充,而且日后也可能会有新的行为。表中的优先顺序的排列是由分析小组人员对角色进行两两比较,然后运用AHP法得出来的。用户*角色矩阵表示了个人和角色的相关性,这个相关矩阵中,◎表示强相关,数值化为9;○表示相关,取值3;△表示弱相关,取值1;空白表示不相关,取值0。

  表2矩阵表明了每个角色的功能和操作。每一个用况(use case)代表了系统中每个不同角色的相关功能。在用况的重要度计算中,考虑了用户也就是角色的重要性,而且用况的重要度完全来自于用户,一为用户本身的重要度,二为用户和用况的相关度。这正体现了产品为用户服务的宗旨。这同样是个相关矩阵,◎表示强相关,取值9;○表示相关,取值3;△表示弱相关,d88,取值1;空白表示不相关,取值0。其中功能权重

  表3表示了系统中各个用况的非功能性需求的满足程度。网络报销系统在使用单位用户覆盖面广、使用频率高,这个表的分析非常重要。表3中的功能权重源于表2。

  左墙的用户需求项:需求分析质量屋的设计是跟顾客需求调查密切相关的。可以认为Use case是功能化了的用户需求,而左墙基本上是层次化了的用户原始语言。

  用户需求权重:指各项原始需求的相对重要性,假设所有的需求的重要性总和为100%,单个需求的重要性就是它的重要度占所有重要性总和的百分数。

  相关矩阵:指各个use case之间的相关性,这个三角阵可以在类和对象设计时,考虑类的内聚性和耦合性时做指导性参考。

  Use case:指的是根据所有需求分析得来的用于该软件分析设计的所有的use case。

  关系矩阵:指use case 和用户原始需求之间的相关性程度的矩阵。该矩阵在分析设计,判断各use case的重要度时就要得出。

  Use case实现满意度:是根据关系矩阵和用户需求权重得来的,它说明了use case 真正实现的满意度的高低。

  由于安财网络报销系统开发设计初期,国内没有相类似的应用软件可以用于借鉴,故下面的质量屋中没有关于竞争对手的市场竞争能力及技术竞争能力的信息。

  QFD的矩阵思想在软件工程中具有相当广泛的用途,除了上面提到的以外,还可以用于分析用况(use case)之间,用况和类之间,类和类之间,类和对象之间关系的分析。总之,QFD为软件开发设计提供了一个有效的工具,将有助于真正实现软件的面向对象化。