1、1THE SCHOOL OF SOFTWARE ENGINEERING OF HUST华中科技大学软件学院华中科技大学软件学院 THE SCHOOL OF SOFTWARE ENGINEERING OF HUST第第 5 章章 软件项目需求管理软件项目需求管理 2THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结
2、本章小结 5.7复习思考题复习思考题 5.83THE SCHOOL OF SOFTWARE ENGINEERING OF HUST5.1 软件项目需求管理概述软件项目需求管理概述影响软件项目成败的因素影响软件项目成败的因素4THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn软件开发的目标软件开发的目标按时按预算开发出满足用户真实需要的软件。按时按预算开发出满足用户真实需要的软件。n需求需求 一个软件项目的开始阶段。在软件工程中,需求分析阶一个软件项目的开始阶段。在软件工程中,需求分析阶段是段是 包括客户、用户、业务或需求分析员、开发人员、测试人员、用包括客户
3、、用户、业务或需求分析员、开发人员、测试人员、用户文档编写者、项目管理者和客户管理者在内的所有的风险承担者都户文档编写者、项目管理者和客户管理者在内的所有的风险承担者都需要参与的阶段。需要参与的阶段。软件项目需求管理概述软件项目需求管理概述5THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求定义需求定义l IEEE软件工程标准词汇表软件工程标准词汇表(2019年年)中将需求定义为:中将需求定义为:用户解决问题或达到目标所需的条件或权能用户解决问题或达到目标所需的条件或权能(Capability);系统或系统部件要满足合同、标准、规范或其它正式规定文系统
4、或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能;档所需具有的条件或权能;一种反映上面一种反映上面(1)或或(2)所描述的条件或权能的文档说明。所描述的条件或权能的文档说明。l 软件需求包括以下几个层次:软件需求包括以下几个层次:-业务需求(业务需求(business requirement)-用户需求(用户需求(user requirement)-功能需求(功能需求(functional requirement)-同时也包括非功能需求、软件需求规格说明(同时也包括非功能需求、软件需求规格说明(software requirements specification,SRS
5、)等。)等。软件项目需求管理概述软件项目需求管理概述6THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目需求管理概述软件项目需求管理概述软件需求各组成部分关系软件需求各组成部分关系7THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求类型需求类型 在在UP(统一过程)中,软件需求是根据(统一过程)中,软件需求是根据FURPS+模型来分模型来分类的,其中类的,其中FURPS的含义如下:的含义如下:-Functional(功能性)(功能性)-Usability(可用性)(可用性)-Reliability(可靠性)(可
6、靠性)-Performance(性能)(性能)-Supportability(可支持性)(可支持性)-“+”是指一些辅助性的和次要的因素:是指一些辅助性的和次要的因素:-Implementation(实现)(实现)-Interface(接口)(接口)-Operations(操作)(操作)-Packaging(包装包装)-Legal(授权)(授权)软件项目需求管理概述软件项目需求管理概述8THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方
7、法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.89THE SCHOOL OF SOFTWARE ENGINEERING OF HUST需求过程所涉及的工作需求过程所涉及的工作5.2 需求开发和管理过程需求开发和管理过程10THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn需求工程需求工程也叫做需求过程或需求阶段,包括需求开发和需也叫做需求过程或需求阶段,包括需求开发和需 求管理。求管理。n需求开发需求开发包括需求获取、需求分析、编写需求规
8、格说明、验包括需求获取、需求分析、编写需求规格说明、验证需求四个阶段,在这四个阶段执行以下活动:证需求四个阶段,在这四个阶段执行以下活动:-确定产品所期望的用户类;确定产品所期望的用户类;-获取每个用户类的需求;获取每个用户类的需求;-了解实际用户任务和目标以及这些任务所支持的业务需求;了解实际用户任务和目标以及这些任务所支持的业务需求;-分析源于用户的信息以区别业务需求、功能需求、质量属性、业分析源于用户的信息以区别业务需求、功能需求、质量属性、业务规则,建议解决的方法和附加的信息;务规则,建议解决的方法和附加的信息;-分解需求,并将需求中的一部分分配给软件组件;分解需求,并将需求中的一部分
9、分配给软件组件;-了解相关属性的重要性;了解相关属性的重要性;-划分实施优先级;划分实施优先级;-编写需求规格说明和模型;编写需求规格说明和模型;-评审需求规格,验证对用户需求的正确理解和认识。评审需求规格,验证对用户需求的正确理解和认识。需求开发和管理过程需求开发和管理过程11THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn需求管理需求管理是一种用于查找、记录、组织和跟踪系统需求变更是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法,可用于获取、组织和记录系统需求并使客户和项目团的系统化方法,可用于获取、组织和记录系统需求并使客户和项目团队在系统需
10、求变更上保持一致。队在系统需求变更上保持一致。n有效的需求管理在于维护清晰明确的需求阐述、每种需求类型所有效的需求管理在于维护清晰明确的需求阐述、每种需求类型所适用的属性,以及与其它需求和其它项目工件之间的可追踪性。适用的属性,以及与其它需求和其它项目工件之间的可追踪性。n需求管理活动包括需求管理活动包括-定义需求基线定义需求基线-评审需求变更并评估每项需求变更对软件产品的影响从而决定是评审需求变更并评估每项需求变更对软件产品的影响从而决定是否实施它。否实施它。-以一种可控制的方式将需求变更融入当前的软件项目。以一种可控制的方式将需求变更融入当前的软件项目。-让当前的项目计划和需求保持一致。让
11、当前的项目计划和需求保持一致。-估计变更所产生的影响并在此基础上协商新的约定估计变更所产生的影响并在此基础上协商新的约定-实现通过需求可跟踪对应的设计、源代码和测试用例。实现通过需求可跟踪对应的设计、源代码和测试用例。-在整个项目过程中跟踪需求状态及其变更情况。在整个项目过程中跟踪需求状态及其变更情况。需求开发和管理过程需求开发和管理过程12THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求获取需求获取 需求获取的主要目的是从宏观上把握用户的具体需求方需求获取的主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、系统环境等,对
12、任向和趋势,了解现有的组织架构、业务流程、系统环境等,对任务进行分析、从而开发、捕获和修订用户的需求,以建立良好的务进行分析、从而开发、捕获和修订用户的需求,以建立良好的沟通渠道和方式。沟通渠道和方式。需求获取需要执行以下活动:需求获取需要执行以下活动:-确定需求开发过程确定需求开发过程-编写项目视图和范围文档编写项目视图和范围文档-获取涉众请求获取涉众请求-选择每类用户的产品代表选择每类用户的产品代表-建立典型的以用户为核心的队伍建立典型的以用户为核心的队伍-让用户代表确定用例让用户代表确定用例-召开应用程序开发联系会议召开应用程序开发联系会议-分析用户工作流程分析用户工作流程-确定质量属性
13、和其它非功能需求确定质量属性和其它非功能需求需求开发和管理过程需求开发和管理过程13THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求分析需求分析 需求分析包括提炼、分析和仔细审查已收集到的需求,需求分析包括提炼、分析和仔细审查已收集到的需求,为最终用户所看到的系统建立一个概念模型以确保所有的风险承为最终用户所看到的系统建立一个概念模型以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其它不足的地方。担者都明白其含义并找出其中的错误、遗漏或其它不足的地方。分析用户需求应该执行以下活动:分析用户需求应该执行以下活动:绘制系统关联图绘制系统关联图创
14、建用户接口原型创建用户接口原型分析需求可行性分析需求可行性确定需求的优先级别确定需求的优先级别为需求建立模型为需求建立模型建立数据字典建立数据字典使用质量功能调配使用质量功能调配需求开发和管理过程需求开发和管理过程14THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求规格说明需求规格说明l软件需求规格说明阐述一个软件系统必须提供的功能和性能以软件需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。是
15、所有子系列项目规划、设计和编码的基础。l需求分析完成的标志是提交一份完整的软件需求规格说明书(需求分析完成的标志是提交一份完整的软件需求规格说明书(SRS)。)。l软件需求规格说明作为产品需求的最终成果必须包括所有的需软件需求规格说明作为产品需求的最终成果必须包括所有的需求。求。l在开发人员的组织中要为编写软件需求文档定义一种标准模板在开发人员的组织中要为编写软件需求文档定义一种标准模板。需求开发和管理过程需求开发和管理过程15THE SCHOOL OF SOFTWARE ENGINEERING OF HUST需求规格说明模板需求规格说明模板1 12 23 34 45 56 6a.a.引言引言
16、目的目的文档约定文档约定预期的读者和阅读预期的读者和阅读建议建议产品产品的范围的范围参考文献参考文献b.b.综合描述综合描述产品产品的前景的前景产品产品的功能的功能用户类和特征用户类和特征运行运行环境环境设计和实现上的设计和实现上的限制限制假设和依赖假设和依赖附录附录c.c.外部接口需求外部接口需求 附录附录用户用户界面附录界面附录硬件接口硬件接口软件接口软件接口通信通信接口接口d.d.系统特性系统特性说明和优说明和优先级先级激励激励/响应响应序列序列功能需求功能需求e.e.其它非其它非功能需求功能需求性能需求性能需求安全设施需安全设施需求求安全性需求安全性需求软件软件质量属质量属性性业务规则
17、业务规则用户文档用户文档f.f.其它需求其它需求g.g.附件附件词汇表词汇表分析模型分析模型待确定待确定问题的列表问题的列表需求开发和管理过程需求开发和管理过程16THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求验证需求验证l验证是为了确保需求说明准确、无二义性并完整地表达系验证是为了确保需求说明准确、无二义性并完整地表达系 统统功能以及必要的质量特性。功能以及必要的质量特性。l需求验证要求客户代表和开发人员共同参与,对提交后的需需求验证要求客户代表和开发人员共同参与,对提交后的需求规格说明进行验证,分析需求的正确性,完整性以及可行性等求规格说明进行
18、验证,分析需求的正确性,完整性以及可行性等等。等。l需求验证中的活动一般包括:需求验证中的活动一般包括:审查需求文档审查需求文档以需求为依据编写测试用例以需求为依据编写测试用例编写用户手册编写用户手册确定合格的标准确定合格的标准最后的签字最后的签字需求开发和管理过程需求开发和管理过程17THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求变更管理需求变更管理 需求变更管理是项目管理中非常重要的一项工作。有效的需求变更管理是项目管理中非常重要的一项工作。有效的需求变更管理能对变更带来的潜在影响及可能的成本费用进行评需求变更管理能对变更带来的潜在影响及可能的
19、成本费用进行评估。估。需求变更管理中活动一般包括:需求变更管理中活动一般包括:确定需求变更控制过程确定需求变更控制过程建立需求变更控制委员会建立需求变更控制委员会进行需求变更影响分析进行需求变更影响分析建立需求基准版本和需求控制版本文档建立需求基准版本和需求控制版本文档维护需求变更的历史记录维护需求变更的历史记录跟踪每项需求的状态跟踪每项需求的状态跟踪所有受需求变更影响的工作产品跟踪所有受需求变更影响的工作产品衡量需求稳定性衡量需求稳定性需求开发和管理过程需求开发和管理过程18THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需
20、求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.819THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 访谈和调研访谈和调研l和用户进行访谈和调研通常是适用于任何环境下的最重要最和用户进行访谈和调研通常是适用于任何环境下的最重要最直接的方法之一。直接的方法之一。l访谈的一个主要目标是确保访谈者的偏见或主观意识不会干访谈的一个主要目标是确保访谈者的偏
21、见或主观意识不会干扰自由的交流。扰自由的交流。l“环境无关问题环境无关问题”就是不涉及任何背景的问题。就是不涉及任何背景的问题。l通过几次这样的访谈,开发人员和系统分析员能获得一些问通过几次这样的访谈,开发人员和系统分析员能获得一些问题域中的知识,对要解决的问题有进一步的理解。题域中的知识,对要解决的问题有进一步的理解。5.3 需求获取方法需求获取方法20THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 专题讨论会专题讨论会l专题讨论会是一种可用于任何情况下的软件需求调研方法。专题讨论会是一种可用于任何情况下的软件需求调研方法。l专题讨论会的目的是鼓励软件
22、需求调研并且在很短的时间内专题讨论会的目的是鼓励软件需求调研并且在很短的时间内 对讨论的问题达成一致。对讨论的问题达成一致。l专题讨论会一般由开发团队的成员主持,主要讨论系统应具专题讨论会一般由开发团队的成员主持,主要讨论系统应具备的特征或者评审系统特性。备的特征或者评审系统特性。l专题讨论会前的准备工作是能否成功的举行会议的关键。专题讨论会前的准备工作是能否成功的举行会议的关键。需求获取方法需求获取方法21THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 脑力风暴脑力风暴l 脑力风暴是一种对于获取新观点或创造性的解决方案而言非脑力风暴是一种对于获取新观点
23、或创造性的解决方案而言非常有用的方法。常有用的方法。l 通常,专题讨论会的一部分时间是用于进行脑力风暴,找出通常,专题讨论会的一部分时间是用于进行脑力风暴,找出关于软件系统的新想法和新特征。关于软件系统的新想法和新特征。l 脑力风暴包括两个阶段:想法产生阶段和想法精化阶段。脑力风暴包括两个阶段:想法产生阶段和想法精化阶段。应用程序应用程序脑力风暴中确定的特征脑力风暴中确定的特征系统特征定义系统特征定义家用自动照明系统家用自动照明系统自动照明设置自动照明设置用户可以制定每天自动照明的时间计划,系统将用户可以制定每天自动照明的时间计划,系统将按时间计划触发照明事件按时间计划触发照明事件任务管理系统
24、任务管理系统代理任务通知代理任务通知当用户将自己的任务代理给其他人时,系统自动当用户将自己的任务代理给其他人时,系统自动发送发送EmailEmail通知将接手该任务的人通知将接手该任务的人脑力风暴中为确定的问题定义系统特征脑力风暴中为确定的问题定义系统特征需求获取方法需求获取方法22THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 场景串联场景串联l 场景串联的目的是为了尽早的从用户那里得到用户对建议的场景串联的目的是为了尽早的从用户那里得到用户对建议的系统功能的意见。系统功能的意见。l 场景串联提供了用户界面以说明系统操作流程,它容易创建场景串联提供了用
25、户界面以说明系统操作流程,它容易创建和修改,能让用户知道系统的操作方式和流程。和修改,能让用户知道系统的操作方式和流程。l 根据与用户交互的方式,场景串联被分成三种模式:静态的根据与用户交互的方式,场景串联被分成三种模式:静态的场景串联、动态的场景串联以及交互的场景串联。场景串联、动态的场景串联以及交互的场景串联。l 选择提供哪种场景串联是根据系统的复杂性和需求缺陷的风选择提供哪种场景串联是根据系统的复杂性和需求缺陷的风险来确定的。险来确定的。需求获取方法需求获取方法23THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需求管理
26、概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.824THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 用例分析方法用例分析方法l 简介简介软件需求分析者利用场景或经历来描述用户和软件系统的交软件需求分析者利用场景或经历来描述用户和软件系统的交互方式,并以此来获取软件需求。互方式,并以此来获取软件需求。使用用例的分析方法来源于面向对象的思想。使用用例的分
27、析方法来源于面向对象的思想。用例分析方法最大的特点在于面向用例,在对用例的描述中用例分析方法最大的特点在于面向用例,在对用例的描述中引入了外部角色的概念。引入了外部角色的概念。l 相关技术相关技术用例需求分析常常采用用例需求分析常常采用UMLUML(Unified Modeling LanguageUnified Modeling Language,统一建模语言)技术,统一建模语言)技术,UMLUML是一种面向对象的建模语言。是一种面向对象的建模语言。5.4 需求分析建模方法需求分析建模方法25THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 原型分析方法
28、原型分析方法l原型法是为了快速开发系统而推出的一种开发模式,旨在改原型法是为了快速开发系统而推出的一种开发模式,旨在改进传统的结构化生命周期法的不足,缩短开发周期,减少开发风进传统的结构化生命周期法的不足,缩短开发周期,减少开发风险。险。l原型法的理念原型法的理念l对原型的基本要求对原型的基本要求l原型法进行软件需求分析的过程原型法进行软件需求分析的过程l原型法的适用范围原型法的适用范围需求分析建模方法需求分析建模方法26THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 结构化分析方法结构化分析方法l结构化分析方法结构化分析方法(Structured Me
29、thod,结构化方法结构化方法)是强调开是强调开发方法的结构合理性以及所开发发方法的结构合理性以及所开发软件软件的结构合理性的的结构合理性的软件开发软件开发方方法。法。l结构化的分析方法的基本步骤为:结构化的分析方法的基本步骤为:需求分析需求分析业务流程分析业务流程分析数据流程分析数据流程分析编制数据字典编制数据字典l结构化分析方法的优点与局限性。结构化分析方法的优点与局限性。需求分析建模方法需求分析建模方法27THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过
30、程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.828THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTlRational RequisiteProlBorland CaliberlRational RoselRational XDElRational ClearCase 5.5 需求管理工具需求管理工具29THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软
31、件项目需求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.830THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本节以本节以HRMS(Human Resource Manage System)的系统为)的系统为例,介绍需求的开发和管理过程。例,介绍需求的开发和管理过程。n需求开发需求开发l需求获取需求获取5.6 案例分析案例分析31THE SCHOOL
32、 OF SOFTWARE ENGINEERING OF HUST需求分类需求分类编编号号系统典型需求系统典型需求功能需求功能需求(FunctionalFunctional)1 1招聘人员:用户可以通过招聘人员招聘人员:用户可以通过招聘人员2 2申请职位:申请职位:WebWeb用户可以填写信息申请职位用户可以填写信息申请职位3 3查看职位申请信息:查看职位申请信息:WebWeb用户可以查看职位申请信用户可以查看职位申请信息息4 4处理职位申请:管理员可以处理职位申请处理职位申请:管理员可以处理职位申请5 5修改申请人信息:管理员可以修改申请人的信息修改申请人信息:管理员可以修改申请人的信息可用性
33、可用性(UsabilityUsability)1 1对于熟悉公司原系统的用户新系统应易于操作对于熟悉公司原系统的用户新系统应易于操作2 2系统应支持系统应支持InternetInternet环境环境3 3系统应给用户提供在线指南系统应给用户提供在线指南可靠性可靠性(ReliabilitReliability y)1 1系统应该在任何时间都能工作,若是出现故障,必系统应该在任何时间都能工作,若是出现故障,必须要在一个小时之内修复须要在一个小时之内修复2 2系统应能支持用户在指定的时间备份资料系统应能支持用户在指定的时间备份资料性能需求性能需求(PerformancPerformance e)1
34、1管理系统必须支持公司内部员工和管理系统必须支持公司内部员工和webweb用户同时访问,用户同时访问,并且支持同时在线人数不低于并且支持同时在线人数不低于100100人人2 2系统的响应时间不超过系统的响应时间不超过4 4秒秒安全性需安全性需求求(SecuritySecurity)1 1支持多用户访问系统支持多用户访问系统2 2一般用户只能查看和修改自己的信息不能看到其他一般用户只能查看和修改自己的信息不能看到其他人的信息人的信息3 3公司的下级员工不能查看上级员工的信息公司的下级员工不能查看上级员工的信息4 4公司的上级员工可以查看下级员工的信息而不能修公司的上级员工可以查看下级员工的信息而
35、不能修改改可支持性可支持性(SupportabiSupportabilitylity)1 1系统采用系统采用B/SB/S结构,用户可以通过结构,用户可以通过InternetInternet访问系统访问系统2 2培训系统可以在所有流行的浏览器(如培训系统可以在所有流行的浏览器(如Navigation,IENavigation,IE)上正常显示)上正常显示 HRMS系统中的需求分类案例分析案例分析32THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTl需求分析需求分析本项目采用原型分析方法和用例分析方法相结合来进行需求本项目采用原型分析方法和用例分析方法相结合来进
36、行需求分析,以用例分析方法为主,对于每个分析,以用例分析方法为主,对于每个Use Case,创建用户接口,创建用户接口说明文档和说明文档和Use case报告,同时建立这个用例的原型。报告,同时建立这个用例的原型。此系统的角色定义如图所示。此系统的角色定义如图所示。ManagerSuperiorDivision Manager Operation HeadEmployeeApplicantHR ManagerTraining AdministratorTraning Center AdministratorBusiness AlertHiring ManagerResource Manager
37、Deputy Managing DirectorManaging DirectorHMS中的角色中的角色案例分析案例分析33THE SCHOOL OF SOFTWARE ENGINEERING OF HUST其中各个角色描述如下:其中各个角色描述如下:角色角色1:1:员工(员工(EmployeeEmployee)角色角色2:2:雇用经理(雇用经理(Hiring ManagerHiring Manager)角色角色3:3:部门经理(部门经理(Department ManagerDepartment Manager)角色角色4:4:上级(上级(SuperiorSuperior)角色角色5:5:分区
38、经理(分区经理(Division ManagerDivision Manager)角色角色6:6:运行官(运行官(Operation HeadOperation Head)角色角色7:7:申请人(申请人(ApplicantApplicant)角色角色8:8:人力资源经理(人力资源经理(HR ManagerHR Manager)角色角色9:9:培训经理(培训经理(Training AdministratorTraining Administrator)角色角色10:10:培训中心经理(培训中心经理(Training Center AdministratorTraining Center Admi
39、nistrator)案例分析案例分析34THE SCHOOL OF SOFTWARE ENGINEERING OF HUST用例分析 HRMS中的用例图中的用例图案例分析案例分析35THE SCHOOL OF SOFTWARE ENGINEERING OF HUST用例用例1 1:招聘员工(:招聘员工(Recruit EmployeeRecruit Employee)用例用例2 2:候选人分类(:候选人分类(Categorize CandidateCategorize Candidate)用例用例3 3:更新面试信息(:更新面试信息(Update InterviewUpdate Intervi
40、ew)用例用例4 4:确认候选人(:确认候选人(Confirm CandidateConfirm Candidate)用例用例5 5:管理申请(:管理申请(Manage RequisitionManage Requisition)用例用例6 6:记录申请者信息(:记录申请者信息(Register Applicant DataRegister Applicant Data)用例用例7 7:修改申请者信息(:修改申请者信息(Modify Applicant DataModify Applicant Data)用例用例8 8:确认申请信息(:确认申请信息(Validate ApplicationVa
41、lidate Application)案例分析案例分析36THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTl编写编写Use CaseUse Case报告报告为系统中的每个用例编写为系统中的每个用例编写Use Case报告,则系统分析与设报告,则系统分析与设计人员可以更加清晰的掌握系统架构。计人员可以更加清晰的掌握系统架构。格式如下:格式如下:Use Case Report:创建员工记录创建员工记录【简短描述简短描述】【事件流事件流】【特殊需求特殊需求】【执行前条件执行前条件】【执行后结果执行后结果】【Use case图图】【场景场景】案例分析案例分析37TH
42、E SCHOOL OF SOFTWARE ENGINEERING OF HUST下表描述了该用例和主角与其他下表描述了该用例和主角与其他use caseuse case的关系。的关系。HRMS中的用例图中的用例图案例分析案例分析38THE SCHOOL OF SOFTWARE ENGINEERING OF HUSTn 需求变更管理需求变更管理 建立需求基准版本和需求控制版本文档。所有的需求文建立需求基准版本和需求控制版本文档。所有的需求文档都要进行版本控制,文档要包含文档类型、名称、创建者、创档都要进行版本控制,文档要包含文档类型、名称、创建者、创建时间、修改者、修改时间、版本号、评审人员等信
43、息。建时间、修改者、修改时间、版本号、评审人员等信息。在开发在开发HRMS中,提交的需求文档包括用户界面说明文中,提交的需求文档包括用户界面说明文档、档、Use Case报告、报告、Glossary文档、软件开发计划、文档、软件开发计划、Use Case模模型调研以及补充说明。所有的文档采用统一的编号规则和命名规型调研以及补充说明。所有的文档采用统一的编号规则和命名规则。则。l 文档编号规则文档编号规则 系统名缩写系统名缩写“_”文档类型缩写文档类型缩写_模块名缩写模块名缩写“_”编号版本号(后文没有编号版本号(后文没有+版本号)。版本号)。l 文档命名规则文档命名规则 文档类型文档类型“_”
44、文档名文档名“_”版本号。版本号。案例分析案例分析39THE SCHOOL OF SOFTWARE ENGINEERING OF HUST需求变更管理流程案例分析案例分析40THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.841THE SCHOOL OF SOFTWAR
45、E ENGINEERING OF HUST5.7 本章小结本章小结本章讲述了软件项目需求管理的基本概念本章讲述了软件项目需求管理的基本概念、特点、过程,通过本章的学习,大家应、特点、过程,通过本章的学习,大家应该了解软件需求管理在软件项目管理中的该了解软件需求管理在软件项目管理中的作用与重要性,并熟悉其基本的方法。作用与重要性,并熟悉其基本的方法。软件需求包括以下几个层次:业务需求、软件需求包括以下几个层次:业务需求、用户需求和功能需求,也包括非功能需求用户需求和功能需求,也包括非功能需求、软件需求规格说明等。、软件需求规格说明等。需求过程包括需求开发和需求管理。而需需求过程包括需求开发和需求
46、管理。而需求开发又包括需求获取、需求分析、编写求开发又包括需求获取、需求分析、编写需求规格说明、验证需求四个阶段。需求规格说明、验证需求四个阶段。需求获取是为了与客户建立良好的沟通渠需求获取是为了与客户建立良好的沟通渠道和方式。方法主要包括:访谈和调研、道和方式。方法主要包括:访谈和调研、专题讨论会、脑力风暴、场景串联等。专题讨论会、脑力风暴、场景串联等。需求分析包括提炼、分析和仔细审查已收需求分析包括提炼、分析和仔细审查已收集到的需求。集到的需求。需求验证是为了确保需求说明准确、无二需求验证是为了确保需求说明准确、无二义性并完整地表达系统功能以及必要的质义性并完整地表达系统功能以及必要的质量
47、特性。量特性。常用的需求分析建模方法有用例分析方法常用的需求分析建模方法有用例分析方法、原型分析方法、结构化分析方法、功能、原型分析方法、结构化分析方法、功能列表方法等等。列表方法等等。需求管理工具中具有代表性的包括需求管理工具中具有代表性的包括CaliberRM,DOORS,RTM,Rational RequisitePro等等。42THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要软件项目需求管理概述软件项目需求管理概述 需求开发和管理过程需求开发和管理过程 需求获取方法需求获取方法 5.15.25.3需求分析建模方法需求分析建模方
48、法 5.4需求管理工具需求管理工具 5.5案例分析案例分析 5.6本章小结本章小结 5.7复习思考题复习思考题 5.843THE SCHOOL OF SOFTWARE ENGINEERING OF HUST5.8 复习思考题复习思考题什么是软件需求?什么是软件需求管理?什么是软件需求?什么是软件需求管理?软件需求包括哪些层次?软件需求根据软件需求包括哪些层次?软件需求根据FURPS+模型是如何来分类模型是如何来分类的?的?软件需求开发包括哪四个阶段,在这四个阶段执行哪些活动?软件需求开发包括哪四个阶段,在这四个阶段执行哪些活动?什么是软件需求规格说明?应如何编写?。什么是软件需求规格说明?应如何编写?。什么是在软件需求变更管理,需求变更管理中有哪些活动?什么是在软件需求变更管理,需求变更管理中有哪些活动?试分析需求分析建模方法的几种方法,并比较它们的优缺点。试分析需求分析建模方法的几种方法,并比较它们的优缺点。什么是需求管理工具?试述几种需求管理工具的用法。什么是需求管理工具?试述几种需求管理工具的用法。说说在以后的项目管理中,你将如何进行需求管理。说说在以后的项目管理中,你将如何进行需求管理。