您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第7讲 系统需求工程
1系统需求工程饶元西安交通大学软件学院2008年4月课程体系结构企业信息化目标企业模型架构IT的作用软件系统的核心要素软件系统体系架构软件系统变革动力软件系统模板体系项目管理核心要素项目过程管理与控制可行性分析解决方案分析需求工程需求工程模型分析设计方法系统构造与实现实施与上线系统维护与优化系统测试目录•1.需求工程基本概念–什么是需求工程与需求分析–客户分类•2.需求开发的核心方法–如何开展需求调查–如何进行需求分析–什么是好的需求规格说明书–如何定义产品需求–需求开发的主要困难与对策•3.需求管理方法–需求确认、跟踪、变更控制1、需求工程基本概念•1.1什么是需求工程–把所有与需求直接相关的活动通称为需求工程。–需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。1.1.1需求开发过程域–需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。–需求调查的目的是通过各种途径获取用户的需求信息(原始材料),产生《用户需求说明书》。–需求分析的目的是对各种需求信息进行分析,消除错误,刻画细节等。常见的需求分析方法有“问答分析法”和“建模分析法”两类。–需求定义的目的是根据需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生《产品需求规格说明书》。系统设计人员将依据《产品需求规格说明书》开展系统设计工作。需求开发涉及的活动PDF文件使用pdfFactoryPro试用版本创建ÿ–需求管理的目的是在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。–需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。–需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保产品依据需求文档进行开发。–需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,防止需求变更失去控制而导致项目发生混乱。1.1.2需求管理过程域需求管理所涉及的活动需求开发与需求管理之间的界限与关系–宽泛地讲,需求来源于用户的一些“需要”与一些“期望”,这些“需要”与“期望”被分析、确认后形成完整的文档,该文档详细地说明了软件产品“必须或应当”做什么。–所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那是自欺欺人。1.2需求及需求分析的基本概念软件需求的概念软件需求的层次PDF文件使用pdfFactoryPro试用版本创建ÿ需求的重要性•FrederickBrooks在他1987年经典文章“NoSilverBullet”中阐述了需求的重要性:–开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。•需求是产品的根源,需求工作的优劣对产品影响最大。•国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。1.4.客户角色•1.4.1基本概念–“用户”(user):它可细分为“客户”(customer)、“最终用户”(theenduser)和“间接用户”(或称为关系人)。–掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户。客户与最终用户可能是同一个人也可能不是同一个人。–间接用户:既不掏钱买该软件产品,也不使用该软件,但是它可能对软件产品有很大的影响。–利益攸关人:如果项目规模比较大,那么项目所涉及到的软件开发方与最终用户方一些人员的工作与利益.这些人统称为利益相关人.•为什么提出该项目、问题是什么、受益人是谁、他们需要什么•1.4.2与客户打交道的主要目的:•一是获取需求•二是签合同•三是顺利验收•四为未来的项目留下余地1.4.3客户的权利与义务PDF文件使用pdfFactoryPro试用版本创建ÿ合作关系–如果需求分析员不能与用户建立良好的合作关系,那么他们在需求开发过程中会很疲惫。–倘若用户不能很好地配合需求分析员,那并不表示他存在问题。–出色的需求分析员不仅要有过硬的专业知识,还要具备较强的交流、沟通能力。–开发方与用户的合作关系对需求开发而言是至关重要的。但关系需要约束.–开发方和用户方在开展需求开发之前,双方协商并撰写“用户在需求工程中的权利与义务”。–如果条件允许的话,开发方最好为用户举办关于需求工程的培训.目录•1.需求工程基本概念–什么是需求工程与需求分析–客户分类•2.需求开发的核心方法–如何开展需求调查–如何进行需求分析–什么是好的需求规格说明书–如何定义产品需求–需求开发的主要困难与对策•3.需求管理方法–需求确认、跟踪、变更控制需求获取的七种方法•Samplingofexistingdocumentation,forms,anddatabases.•Researchandsitevisits.•Observationoftheworkenvironment.•Questionnaires.•Interviews.•Prototyping.•Jointrequirementsplanning(JRP).2.1如何开展需求调查•2.1.1准备调查–首先,需求分析员应当起草需求调查问题表,将调查重点锁定在该问题表内,否则调查工作将变得漫无边际。•问题表可以有多份,随着调查的深入,问题表将不断地被细化。•根据经验,用户通常没有耐心回答复杂的论述题,所以问题表应当以“选择题”和“是非题”为主。•制定问题表最简便的方法就是从《用户需求说明书》的模板中提取需求问题。•2.1.1准备调查–其次,需求分析员应当确定需求调查的方式,例如:•与用户交谈,向用户提问题。向用户群体发调查问卷。•参观用户的工作流程,观察用户的操作。•与同行、专家交谈,听取他们的意见。•分析已经存在的同类软件产品,提取需求。•从行业标准、规则中提取需求。•从Internet上搜查相关资料。–最后,需求分析员与被调查者建立联系,确定调查的时间、地点、人员等,撰写需求调查计划。–特别留意:不要漏掉典型的用户。–需求分析员与用户面谈时应当注意以下事项:•如果与用户约好了时间,切勿迟到或早退。•需求分析员应事先了解用户的身份、背景,以便随机应变。•需求调查应该先了解宏观问题,再了解细节问题。•如果双方气氛融洽,可以采用灵活的访谈形式,轻易不要打断用户的谈话。•尽可能避免为用户添麻烦,但也不能怕给用户添麻烦而降低需求调查的力度。•避免片面地听取某些用户的需求而忽视其它用户的需求。–根据调查记录来完成《用户需求说明书》。2.1.2执行调查PDF文件使用pdfFactoryPro试用版本创建ÿ附:用户需求说明书的参考模板2.2如何进行需求分析•需求分析是指在需求开发过程中,对所获取的需求信息进行分析,及时排除错误和弥补不足,确保需求文档正确地反映用户的真实意图。•需求分析方法有两类:–“问答分析法”–“建模分析法”•撰写《产品需求规格说明书》2.2.1问答分析方法•问答分析最重要的问题是:“是什么”和“为什么”。–每个需求都应当用陈述句说明“是什么”,如果“是什么”的内涵不够清晰,则应补充说明“不是什么”。–如果“是什么”和“不是什么”并不是“理所当然”的,那么应当解释“为什么”,以便加深读者的理解。–追究“是什么”和“为什么”的目的是获得正确、清楚的需求。•其它常见的问题有:–需求存在二义性吗?–需求文档的上下文有矛盾吗?–需求完备吗?–需求是必要的吗?–需求可实现吗?–需求可验证吗?–需求的优先级确定了吗?2.2.2建模分析法–需求建模就是指用图形符号来表示、刻画需求。–建模分析方法主要有两大类:•“结构化分析法”•“面向对象分析法”。其它:IE和RDP–恰当地使用图形符号:•现代建模工具(如Rose)有非常丰富的图形符号和文字标注,能很好地表达模型的细节。•世上不存在一个包罗万象的图——它能完整地描述需求。需求建模不可能取代文字描述。•在需求文档中,文字描述是第一重要的,建模主要是起分析、解释作用。建议将模型存放在需求文档的附录中,便于正文引用。2.2.3撰写《产品需求规格说明书》需求规范说明书内容模板(参考)•第一章:概述(背景、问题、目标)•第二章:系统整体的业务场景(BUC/UC/ROLE)•第三章:系统的功能块的划分(PD)•第四章:子系统1LOGIN•….uc定义与描述ADSD•第N章:子系统N•第N+1章:系统的业务部署与拓朴•第N+2章:其它补充要求PDF文件使用pdfFactoryPro试用版本创建ÿ描述方法(cont)continuedUse-Case描述方法(cont)concluded需求规格说明书的基本要求•1正确–为确保需求是正确的,开发方和用户必须对《需求规格说明书》进行确认。•2清楚–清楚的需求让人易读易懂。•3无二义性–“无二义性”是指每个需求只有唯一的含义,切勿模棱两可。•4一致–是指《产品需求规格说明书》上下文中各个需求之间不会发生矛盾。•5必要–《产品需求规格说明书》中的各项需求对用户应当都是必要的,设置优先级,不要“画蛇添足”。•6完备–“完备”(Complete)是指《产品需求规格说明书》中没有遗漏一些必要的需求。需求规格说明书的基本要求PDF文件使用pdfFactoryPro试用版本创建ÿ•7可实现–《产品需求规格说明书》中的各项需求对开发方而言应当都是可实现的(Attainable)。•8可验证–《产品需求规格说明书》中的各项需求对用户方而言应当都是可验证的(Verifiable)。如果需求是不可验证的,那么用户就无法验收软件,可能会发生商业纠纷。需求规格说明书的基本要求•9确定优先级–先做优先级高的需求,后做(甚至放弃)优先级低的需求,将风险降到最低。•10阐述“做什么”而不是“怎么做”–《产品需求规格说明书》的重点是阐述“做什么”,而不是阐述“怎么做”。需求规格说明书的基本要求•说明:《用户需求说明书》与《产品需求规格说明书》的主要区别与联系–前者主要采用自然语言(和应用域术语)来表达用户需求,其内容相对于后者而言比较粗略,不够详细。–后者是前者的细化,更多地采用计算机语言和图形符号来刻画需求,产品需求是软件系统设计的直接依据。–两者之间可能并不存在一一影射关系,因为软件开发商会根据产品发展战略、企业当前状况适当地调整产品需求,例如用户需求可能被分配到软件的数个版本中。软件开发人员应当依据《产品需求规格说明书》来开发当前产品。2.3.4需求冲突解决•对于那些难以达成共识的需求而言,经常会发生“公说公有理,婆说婆有理”的现象。该如何做?–先大后小原则:–价高优先原则:–客户优先原则:–原型确认原则:最后:对需求工程的一些感悟•开发者对待需求工程的态度可分为以下三种:–“被动型”是指开发者被动地对待需求工程中的各项活动,能少干则少干,能偷懒则偷懒。他们认为需求是用户的事情而不是自己的事情。开发过程中经常发生需求变更,导致产品迷失方向,不是半途而废就是陷入半死不活的状态。–“主动型”是指开发者积极地开展需求工程中的各项活动。他们把获取准确的需求当作自己的职责,会想尽一切办法克服需求开发和需求管理过程中的困难,而不是找借口推卸责任。俗话说“良好的开端是成功的一半”,“主动型”需求工程是开发成功产品的必备条件。–“领先型”是需求工程的最高境界。开发者发掘了连用户自己都没有意识到的需求,导致用户跟着新产品跑而不是新产品围着用户转,这叫引导消费。需求工程做到这个份上,才能使产品立于不败之地,长盛
本文标题:第7讲 系统需求工程
链接地址:https://www.777doc.com/doc-203419 .html