需求管理与案例分析.ppt
软件需求管理,5.1 软件项目需求管理概述,影响软件项目成败的因素,软件开发的目标按时按预算开发出满足用户真实需要的软件。需求 一个软件项目的开始阶段。在软件工程中,需求分析阶段是 包括客户、用户、业务或需求分析员、开发人员、测试人员、用户文档编写者、项目管理者和客户管理者在内的所有的风险承担者都需要参与的阶段。,软件项目需求管理概述,需求定义 IEEE软件工程标准词汇表(1997年)中将需求定义为:用户解决问题或达到目标所需的条件或权能(Capability);系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能;一种反映上面(1)或(2)所描述的条件或权能的文档说明。软件需求包括以下几个层次:业务需求(business requirement)用户需求(user requirement)功能需求(functional requirement)同时也包括非功能需求、软件需求规格说明(software requirements specification,SRS)等。,软件项目需求管理概述,软件项目需求管理概述,软件需求各组成部分关系,需求类型 在UP(统一过程)中,软件需求是根据FURPS+模型来分类的,其中FURPS的含义如下:Functional(功能性)Usability(可用性)Reliability(可靠性)Performance(性能)Supportability(可支持性)“+”是指一些辅助性的和次要的因素:Implementation(实现)Interface(接口)Operations(操作)Packaging(包装)Legal(授权),软件项目需求管理概述,本章内容提要,需求过程所涉及的工作,5.2 需求开发和管理过程,需求工程也叫做需求过程或需求阶段,包括需求开发和需 求管理。需求开发包括需求获取、需求分析、编写需求规格说明、验证需求四个阶段,在这四个阶段执行以下活动:确定产品所期望的用户类;获取每个用户类的需求;了解实际用户任务和目标以及这些任务所支持的业务需求;分析源于用户的信息以区别业务需求、功能需求、质量属性、业务规则,建议解决的方法和附加的信息;分解需求,并将需求中的一部分分配给软件组件;了解相关属性的重要性;划分实施优先级;编写需求规格说明和模型;评审需求规格,验证对用户需求的正确理解和认识。,需求开发和管理过程,需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法,可用于获取、组织和记录系统需求并使客户和项目团队在系统需求变更上保持一致。有效的需求管理在于维护清晰明确的需求阐述、每种需求类型所适用的属性,以及与其它需求和其它项目工件之间的可追踪性。需求管理活动包括定义需求基线评审需求变更并评估每项需求变更对软件产品的影响从而决定是否实施它。以一种可控制的方式将需求变更融入当前的软件项目。让当前的项目计划和需求保持一致。估计变更所产生的影响并在此基础上协商新的约定实现通过需求可跟踪对应的设计、源代码和测试用例。在整个项目过程中跟踪需求状态及其变更情况。,需求开发和管理过程,需求获取 需求获取的主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、系统环境等,对任务进行分析、从而开发、捕获和修订用户的需求,以建立良好的沟通渠道和方式。需求获取需要执行以下活动:确定需求开发过程 编写项目视图和范围文档 获取涉众请求 选择每类用户的产品代表 建立典型的以用户为核心的队伍 让用户代表确定用例 召开应用程序开发联系会议 分析用户工作流程 确定质量属性和其它非功能需求,需求开发和管理过程,需求分析 需求分析包括提炼、分析和仔细审查已收集到的需求,为最终用户所看到的系统建立一个概念模型以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其它不足的地方。分析用户需求应该执行以下活动:绘制系统关联图创建用户接口原型分析需求可行性确定需求的优先级别为需求建立模型建立数据字典使用质量功能调配,需求开发和管理过程,需求规格说明软件需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。需求分析完成的标志是提交一份完整的软件需求规格说明书(SRS)。软件需求规格说明作为产品需求的最终成果必须包括所有的需求。在开发人员的组织中要为编写软件需求文档定义一种标准模板。,需求开发和管理过程,需求规格说明模板,需求开发和管理过程,需求验证验证是为了确保需求说明准确、无二义性并完整地表达系 统功能以及必要的质量特性。需求验证要求客户代表和开发人员共同参与,对提交后的需求规格说明进行验证,分析需求的正确性,完整性以及可行性等等。需求验证中的活动一般包括:审查需求文档以需求为依据编写测试用例编写用户手册确定合格的标准最后的签字,需求开发和管理过程,需求变更管理 需求变更管理是项目管理中非常重要的一项工作。有效的需求变更管理能对变更带来的潜在影响及可能的成本费用进行评估。需求变更管理中活动一般包括:确定需求变更控制过程建立需求变更控制委员会进行需求变更影响分析建立需求基准版本和需求控制版本文档维护需求变更的历史记录跟踪每项需求的状态跟踪所有受需求变更影响的工作产品衡量需求稳定性,需求开发和管理过程,本章内容提要,访谈和调研和用户进行访谈和调研通常是适用于任何环境下的最重要最直接的方法之一。访谈的一个主要目标是确保访谈者的偏见或主观意识不会干扰自由的交流。“环境无关问题”就是不涉及任何背景的问题。通过几次这样的访谈,开发人员和系统分析员能获得一些问题域中的知识,对要解决的问题有进一步的理解。,5.3 需求获取方法,专题讨论会专题讨论会是一种可用于任何情况下的软件需求调研方法。专题讨论会的目的是鼓励软件需求调研并且在很短的时间内 对讨论的问题达成一致。专题讨论会一般由开发团队的成员主持,主要讨论系统应具备的特征或者评审系统特性。专题讨论会前的准备工作是能否成功的举行会议的关键。,需求获取方法,脑力风暴 脑力风暴是一种对于获取新观点或创造性的解决方案而言非常有用的方法。通常,专题讨论会的一部分时间是用于进行脑力风暴,找出关于软件系统的新想法和新特征。脑力风暴包括两个阶段:想法产生阶段和想法精化阶段。,脑力风暴中为确定的问题定义系统特征,需求获取方法,场景串联 场景串联的目的是为了尽早的从用户那里得到用户对建议的系统功能的意见。场景串联提供了用户界面以说明系统操作流程,它容易创建和修改,能让用户知道系统的操作方式和流程。根据与用户交互的方式,场景串联被分成三种模式:静态的场景串联、动态的场景串联以及交互的场景串联。选择提供哪种场景串联是根据系统的复杂性和需求缺陷的风险来确定的。,需求获取方法,本章内容提要,用例分析方法 简介软件需求分析者利用场景或经历来描述用户和软件系统的交互方式,并以此来获取软件需求。使用用例的分析方法来源于面向对象的思想。用例分析方法最大的特点在于面向用例,在对用例的描述中引入了外部角色的概念。相关技术用例需求分析常常采用UML(Unified Modeling Language,统一建模语言)技术,UML是一种面向对象的建模语言。,5.4 需求分析建模方法,原型分析方法原型法是为了快速开发系统而推出的一种开发模式,旨在改进传统的结构化生命周期法的不足,缩短开发周期,减少开发风险。原型法的理念对原型的基本要求原型法进行软件需求分析的过程原型法的适用范围,需求分析建模方法,结构化分析方法结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构化的分析方法的基本步骤为:需求分析业务流程分析数据流程分析编制数据字典结构化分析方法的优点与局限性。,需求分析建模方法,本章内容提要,Rational RequisiteProBorland CaliberRational RoseRational XDERational ClearCase,5.5 需求管理工具,本章内容提要,本节以HRMS(Human Resource Manage System)的系统为例,介绍需求的开发和管理过程。需求开发需求获取,5.6 案例分析,HRMS系统中的需求分类,案例分析,需求分析本项目采用原型分析方法和用例分析方法相结合来进行需求分析,以用例分析方法为主,对于每个Use Case,创建用户接口说明文档和Use case报告,同时建立这个用例的原型。此系统的角色定义如图所示。,HMS中的角色,案例分析,其中各个角色描述如下:角色1:员工(Employee)角色2:雇用经理(Hiring Manager)角色3:部门经理(Department Manager)角色4:上级(Superior)角色5:分区经理(Division Manager)角色6:运行官(Operation Head)角色7:申请人(Applicant)角色8:人力资源经理(HR Manager)角色9:培训经理(Training Administrator)角色10:培训中心经理(Training Center Administrator),案例分析,用例分析,HRMS中的用例图,案例分析,用例1:招聘员工(Recruit Employee)用例2:候选人分类(Categorize Candidate)用例3:更新面试信息(Update Interview)用例4:确认候选人(Confirm Candidate)用例5:管理申请(Manage Requisition)用例6:记录申请者信息(Register Applicant Data)用例7:修改申请者信息(Modify Applicant Data)用例8:确认申请信息(Validate Application),案例分析,编写Use Case报告为系统中的每个用例编写Use Case报告,则系统分析与设计人员可以更加清晰的掌握系统架构。格式如下:Use Case Report:创建员工记录【简短描述】【事件流】【特殊需求】【执行前条件】【执行后结果】【Use case图】【场景】,案例分析,下表描述了该用例和主角与其他use case的关系。,HRMS中的用例图,案例分析,需求变更管理 建立需求基准版本和需求控制版本文档。所有的需求文档都要进行版本控制,文档要包含文档类型、名称、创建者、创建时间、修改者、修改时间、版本号、评审人员等信息。在开发HRMS中,提交的需求文档包括用户界面说明文档、Use Case报告、Glossary文档、软件开发计划、Use Case模型调研以及补充说明。所有的文档采用统一的编号规则和命名规则。文档编号规则 系统名缩写“_”文档类型缩写_模块名缩写“_”编号版本号(后文没有+版本号)。文档命名规则 文档类型“_”文档名“_”版本号。,案例分析,需求变更管理流程,案例分析,本章内容提要,5.7 本章小结,本章讲述了软件项目需求管理的基本概念、特点、过程,通过本章的学习,大家应该了解软件需求管理在软件项目管理中的作用与重要性,并熟悉其基本的方法。软件需求包括以下几个层次:业务需求、用户需求和功能需求,也包括非功能需求、软件需求规格说明等。需求过程包括需求开发和需求管理。而需求开发又包括需求获取、需求分析、编写需求规格说明、验证需求四个阶段。需求获取是为了与客户建立良好的沟通渠道和方式。方法主要包括:访谈和调研、专题讨论会、脑力风暴、场景串联等。,需求分析包括提炼、分析和仔细审查已收集到的需求。需求验证是为了确保需求说明准确、无二义性并完整地表达系统功能以及必要的质量特性。常用的需求分析建模方法有用例分析方法、原型分析方法、结构化分析方法、功能列表方法等等。需求管理工具中具有代表性的包括CaliberRM,DOORS,RTM,Rational RequisitePro等。,本章内容提要,5.8 复习思考题,什么是软件需求?什么是软件需求管理?软件需求包括哪些层次?软件需求根据FURPS+模型是如何来分类的?软件需求开发包括哪四个阶段,在这四个阶段执行哪些活动?什么是软件需求规格说明?应如何编写?。什么是在软件需求变更管理,需求变更管理中有哪些活动?试分析需求分析建模方法的几种方法,并比较它们的优缺点。什么是需求管理工具?试述几种需求管理工具的用法。说说在以后的项目管理中,你将如何进行需求管理。,