1、1Software Requirements Engineering软件需求工程 School of SoftwareZhengzhou University Semester:Fall of 2010Students:Junior Instructor:Xu T2Software Requirements Engineering确定产品前景和范围35 确定产品前景和范围业务需求位于需求链中的最顶层,这种需求定义了软件系统的前景与范围。用户需求和软件功能需求都必须符合业务需求设定的前景和目标。如果项目没有一个明确定义的方向,或者不能让每个人充分理解这个方向,就必然会走向失败。45.1 前景和范
2、围文档 项目视图和范围的文档(vision and scope document)把业务需求、高层次解决方案和系统特性都集中在一个简单、紧凑的文档里。这个文档为以后的开发工作奠定了基础。项目视图和范围文档包括了业务机遇的描述、项目的视图和目标、产品适用范围和局限性的陈述、客户的特点、项目优先级别和项目成功因素的描述。55.1 前景和范围文档项目视图(vision)可以把项目参与者定位到一个共同和明确的方向上。项目视图描述了产品所涉及的各个方面和在一个完美环境中最终所具有的功能。相反的,范围(scope)则描述了产品应包括的部分和不应包括的部分。范围的说明在包括与不包括之间划清了界线,当然,它还
3、确定了项目的局限性。项目的业务需求在视图上和范围上形成文档,这些必须在创建项目之前起草。视图和范围的文档为项目的主办者或具有同等地位的人所拥有。5.2 通过业务需求定义前景 产品前景(product vision)将所有涉众统一到一个方向上。前景描述了产品用来干什么,它最终会是什么样子。前景关系到整个产品。当产品的战略定位或信息系统的业务目标随时间发生改变时,前景也会随之变化,但这种变化相对缓慢。675.2 通过业务需求定义前景 业务需求是从各个不同的人那里收集来的,这些人对于为什么要从事该项目和该项目最终能为业务和客户提供哪些价值有较清楚的了解。它们包括主办者(sponsor)、客户、开发公
4、司的高级管理人员及项目的幻想者(visionary),例如产品的代表和市场部门人员。但是,来自各个渠道的业务需求可能会发生冲突。Eg:具有嵌入软件的售货亭管理系统8eg:售货亭管理系统的需求冲突 具有嵌入软件的售货亭管理系统,它将卖给零售店并由零售客户使用。售货亭管理系统的开发者有如下的业务目标:向零售商发行并销售售货亭产品。通过售货亭软件向客户销售消费品。吸引客户对商品的兴趣。改变原有的开发者客户的关系。零售亭业务对如下方面感兴趣:通过客户使用售货亭软件而获利。吸引更多的客户来商店购买。如果售货亭软件替代了人工操作,就可节省钱。9eg:售货亭管理系统的需求冲突开发者:为客户建立高科技系统,并
5、且引导客户紧跟新的发展方向。零售商:需要一个简易、方便使用的系统。客户:需要便利和良好的性能。三者在目标、限制和费用因素上的不同将导致业务需求的冲突,这必须在售货亭管理系统的软件需求说明制订之前予以解决。10确定项目前景与范围活动流程图115.3 定义系统边界对问题分析后进行综合与处理,需要确定整个解系统的功能,建立系统边界。为了描述系统的功能和边界,通常会使用山下文图(关联图)和系统用例图。12eg:自助餐厅订餐系统关联图13eg:信用卡系统用例图145.4 项目视图和范围文档的模板a.业务需求a.1 背景a.2 业务机遇a.3 业务目标a.4 客户或市场需求a.5 提供给客户的价值a.6
6、业务风险b.项目视图的解决方案b.1 项目视图陈述b.2 主要特性b.3 假设和依赖环境c.范围和局限性c.1 首次发行的范围c.2 随后发行的范围c.3 局限性和专用性d.业务环境d.1 客户概貌d.2 项目优先级e.产品成功的因素15What are the key components of a vision document?a.业务需求业务需求描述了为什么要从事此项目的开发,以及它将给开发者和购买者带来的利益。a.1背景总结新产品的理论基础,并提供关于产品开发的历史背景或形势的一般性描述。a.2 业务机遇描述现存的市场机遇或正在解决的业务问题。包括对现存产品简要的相对评价和解决方案,
7、指出建议产品为什么具有吸引力和它所能带来的竞争优势。16What are the key components of a vision document?a.3 业务目标用一个定量和可测量的合理方法总结产品所带来的重要商业利润。重点放在给业务的价值上。a.4 客户或市场需求描述一些典型客户的需求,提出客户目前所遇到的问题在新产品中将可能(或不可能)出现的阐述,提供客户怎样使用产品的例子。确定产品所能运行的软、硬件平台或性能要求。17What are the key components of a vision document?a.5 提供给客户的价值确定产品给客户带来的价值,并指明产品怎样满
8、足客户的需要。可以用下列言辞表达产品带给客户的价值:提高生产效率,减少返工。节省开支。业务过程的流水线化。先前人工劳动的自动化。符合相关标准和规则。与目前应用产品相比,提高了可用性或减少了失效程度。18What are the key components of a vision document?a.6 业务风险总结开发(或不开发)该产品有关的主要业务风险,例如市场竞争、时间问题、用户的接受能力、实现的问题或对业务可能带来的消极影响。预测风险的严重性,指明所能采取的减轻风险的措施。19What are the key components of a vision document?b.项目视
9、图的解决方案为系统建立一个长远的项目视图,指明业务目标。不应包括详细的功能需求和项目计划信息。b.1 项目视图陈述编写一个总结长远目标和有关开发新产品目的的简要项目视图陈述。项目视图陈述将考虑权衡有不同需求客户的看法。eg:“化学制品跟踪系统”的简单项目视图陈述实例。20What are the key components of a vision document?eg:“化学制品跟踪系统”的简单项目视图陈述实例。“化学制品跟踪系统”可使科学家查询到化学制品仓库或供应商将提供的化学制品容器。系统可随时了解公司中每一个化学制品容器所处的位置,容器中所剩余的药品剂量,任何时候每个容器所处的位置和
10、用法的历史记录。通过充分利用公司内部的可用化学制品,废弃极少量已使用或过期失效的化学制品,使用标准的化学制品的购买过程等将在化学制品上节省25%开支。“化学制品跟踪系统”还能产生符合政府部门规定所要求的全部报表,包括化学制品的使用、存储和废弃等报表。21What are the key components of a vision document?b.2 主要特性包括新产品将提供的主要特性和用户性能的列表。强调区别于以往产品和竞争产品的特性。b.3 假设和依赖环境记录不同涉众所作出的任何假设,并加以评论,对项目内部隐含的基本假设达成共识。这样可以防止将来可能的混淆和冲突。比如,“化学制品跟踪
11、系统”的开发者假设:该系统可以替代现有的仓库存货系统,并能与有关采购部门的应用相连接。22What are the key components of a vision document?c.范围和局限性项目范围定义了所提出的解决方案的概念和适用领域,而局限性则指出产品所不包括的某些性能。澄清范围和局限性这两个概念有助于建立各风险承担者所企盼的目标。当客户所要求的性能太奢华,超出项目的范围时就应当拒绝它,除非这些需求是很有益的。如果拒绝则记录这些需求以及拒绝它们的原因,若确实需要,可适当扩大项目范围来适应这些需求(在预算、计划、人员方面也要相应进行变化)。23What are the key
12、components of a vision document?c.1 首次发行的范围总结首次发行的产品所具有的性能。开发者应把重点放在能提供最大价值、花费最合理的开发费用及普及率最高的产品上。应当避免把一些潜在的客户所能想到的每一特性都包括到1.0版本的产品中。这很容易产生软件规划的动荡性和错误性。c.2 随后发行的范围如果你想象一个周期性的产品演变过程,就要指明哪一个主要特性的开发将被延期,并期待随后版本发行的日期。24What are the key components of a vision document?c.3 局限性和专用性明确定义包括和不包括的特性和功能的界线。列出风险承担
13、者们期望的而你却不打算把它包括到产品中的特性和功能。25What are the key components of a vision document?d.业务环境 总结了一些项目的业务问题,包括主要的客户分类概述和项目的管理优先级。d.1 客户概貌明确产品不同类型客户的一些本质的特点。对于每一种客户类型,概述要包括以下信息:各种客户类型将从产品中获得的主要益处。它们对产品所持的态度。感兴趣的关键产品的特性。哪一类型客户能成功使用。必须适应任何客户的限制。26What are the key components of a vision document?d.2 项目的优先级明确建立项目的优
14、先级,使风险承担者和项目的参与者把精力集中在一系列共同的目标上。主要考虑软件项目的五个方面:性能、质量、计划、成本和人员(Wiegers 1996a)。e.产品成功的因素明确产品的成功是如何定义和测量的,并指明对产品的成功有巨大影响的几个因素(包括范围内事务和外部因素)。如果可能,可建立测量的标准用于评价是否达到业务目标,这些标准的实例有:市场股票、销售量或收入、客户满意程度的测量、交易处理量和准确度。275.5 保持范围的适度在项目视图和范围文档中记录业务需求为防止开发过程范围的扩展(creep/extend)提供了有利的手段。项目视图和范围文档可以判断所提出的特性和需求放进项目是否合适。2
15、8In/out?1.所提出的一些建议有时完全在项目范围之外。它们可能是一个好的方案,但这个方案适用于其它项目或将来要发行的产品。2.另外一些建议很明显是在项目范围定义之内。如果这种建议与已经为某一确定产品所制定的需求相比,具有更高的优先级,则这些新的并符合要求的需求就可以加入到项目中。不过此时你必须作出权衡(trade off),决定是延迟还是取消其它已经确定的需求或特性。3.第三种可能性是“所提出的新需求在项目范围之外,但这是一个很有价值的方案”,此时可以改变项目的范围来适应这一需求。但要求你要修改项目视图和范围文档。29Scope change&extend范围变更和扩展当改变项目的范围时
16、,你必须重新商议计划预算、资源及进度安排,也许还有开发人员(特别是在需要新的技术和技巧时)。理想的情况是原先的安排和资源能合理地适应需求变更。然而,你必须在需求变更得到赞同后才重新进行计划安排,除非你原先对需求的预算留有余地。范围扩展存在固有的两个主要问题:1)全部的工作必须重新进行以适应变化。2)当项目的范围增大时,如果没有调整原先所分配的资源和时间,则属性会遭到破坏。一组确定的业务需求可以使项目依照计划正常进行,在市场或业务需要变更时可以合理地调整项目范围的大小;当一些有影响的人企图往有许多约束的项目中添加更多的特性时,可以合理地拒绝这些要求。30eg:“化学制品跟踪系统”关联图公司总是发
17、购买化学制品公司总是发购买化学制品的订单给化学制品供应商,的订单给化学制品供应商,并从供应商那里得到装有并从供应商那里得到装有化学制品的容器和发票,化学制品的容器和发票,而供应商则得到支票。然而供应商则得到支票。然而,这些过程发生在而,这些过程发生在“化化学制品跟踪系统学制品跟踪系统”范围之范围之外,并作为购买和进货部外,并作为购买和进货部门日常事务的一部分。系门日常事务的一部分。系统并不直接与供应商订货、统并不直接与供应商订货、进货、或付账。进货、或付账。化学制品供应商没化学制品供应商没有作为端点放入关有作为端点放入关联图中?联图中?31Wish you a very successfulcareer with requirements!Any Question?Thanks For Coming!备选题目外卖网(C2C)(校内)网上商城(B2C)赛艇比赛成绩管理(运动会)要求:分组完成(7-12人)按照每次课程要求完成需求活动。小组有一个负责人负责组织记录。32主要工作定义前景文档(2-3页)写清项目视图陈述定义项目范围(使用关联图或者用例图)33