chapter__40软件开发项目管理北京邮电大学软件学院韩万江chapter__41承上启下项目合同管理生存期模型chapter__42RoadMap合同管理生存期需求管理任务分解项目进度规模估算质量计划配置计划风险计划团队管理项目度量集成项目跟踪控制项目结束chapter__43软件开发项目管理第四章软件项目需求管理chapter__44需求管理中的问题举例需求的隐含错误需求不明确、含糊用户不断增加需求、变更需求用户刁难开发人员的镀金chapter__45本章要点一、软件需求定义二、软件需求管理过程三、需求建模的基本方法四、案例分析软件需求定义chapter__47软件需求需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。chapter__48软件需求的层次业务需求用户需求功能需求软件需求规格非功能性需求质量特性约束和假设系统需求chapter__49需求管理的重要性chapter__410项目失败的原因分析No.Top10Factors平均值1Inadequaterequirementsspecification4.52Changesinrequirements4.33Shortageofsystemsengineers4.24Shortageofsoftwaremanagers4.15Shortageofqualifiedprojectmanagers4.16Shortageofsoftwareengineers3.97Fixed-pricecontract3.88Inadequatecommunicationsforsystemintegration,3.89Insufficientexperienceasteam3.610Shortageofapplicationdomainexperts3.6Scale:5=VerySerious3=Serious1=NoSeriousSource:Carnegie-MellonUniversity,SoftwareEngineeringInstitutechapter__411本章要点一、软件需求定义二、软件需求管理过程三、需求建模的基本方法四、案例分析软件需求管理过程chapter__413软件需求管理的过程需求分析编写需求规格需求验证需求获取需求变更需求确认需求变更chapter__414需求开发(确认)和管理基本任务需求工程需求管理需求开发需求获取需求分析需求规格说明需求验证变更管理版本控制风险分析chapter__415本章要点一、软件需求定义二、软件需求管理过程需求的获取需求分析编写需求规格需求验证需求变更三、需求建模的基本方法四、案例分析chapter__416需求获取图示chapter__417需求获取用户要求扩展需求基线需求软件需求chapter__418本章要点一、软件需求定义二、软件需求管理过程需求的获取需求分析编写需求规格需求验证需求变更三、需求建模的基本方法四、案例分析chapter__419需求分析定义需求分析是为最终用户所看到的系统建立一个概念模型,是对需求的抽象描述。chapter__420需求分析模型chapter__421本章要点一、软件需求定义二、软件需求管理过程需求的获取需求分析编写需求规格需求验证需求变更三、需求建模的基本方法四、案例分析chapter__422需求规格需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。chapter__423软件需求规格说明的原则从现实中分离功能,即描述要“做什么”而不是“怎样实现”要求使用面向处理的规格说明语言(或称系统定义语言)如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中chapter__424规格说明应该包括系统运行环境规格说明应该是一个认识模型规格说明应该容许不完备性并允许扩充chapter__4253、规格文档参考1.引言2.系统定义3.应用环境4.功能规格5.性能需求6.产品提交7.实现约束8.质量描述9.其它10.签字认证chapter__426本章要点一、软件需求定义二、软件需求管理过程需求的获取需求分析编写需求规格需求验证需求变更三、需求建模的基本方法四、案例分析chapter__427需求验证需求是正确的吗?需求是一致的吗?需求是完全的吗?需求是实际可行的吗?需求是必要的吗?需求是可检验的吗?需求是可跟踪的吗?最后的签字chapter__428本章要点一、软件需求定义二、软件需求管理过程需求的获取需求分析编写需求规格需求验证需求变更三、需求建模的基本方法四、案例分析chapter__429需求总在变化chapter__430chapter__431需求变更管理1.确定需求变更控制过程2.建立变更控制委员会(SCCB)3.进行需求变更影响分析4.跟踪所有受需求变更影响的工作产品5.建立需求基准版本和需求控制版本文档6.维护需求变更的历史记录7.跟踪每项需求的状态8.衡量需求稳定性chapter__432需求变更管理管理和控制需求基线的过程需求变更控制系统一个正式的文档,说明如何控制需求变更建立变更审批系统chapter__433变更申请需求方开发方忽略选择变更方式SCCB评估项目经理自行决定根据评估结果拒绝接受本次修改下个版本再修改修改合同相关信息修改相关需求修改相应的项目计划chapter__434表需求变更提交单软件基线产品修改提交单申请人韩万江申请日期。.项目名称项目管理系统阶段名称系统设计文件名称RCR-PM-01.doc,RCR-PM-02.doc,变更简述如下修改内容1)修改测试流程控制:将2个角色,3个渠道流,改为3个角色,4个渠道流,详见RCR-PM-01.doc2)增加开发人员技能信息库管理,详见RCR-PM-02.doc验证意见同意RCR-PM-01.doc变更。RCR-PM-02.doc的变更可以推迟到下一个版本实施验证人杨炎泰验证日期..韩万江,姜岳尊,孙泉填表人韩万江chapter__435本章要点一、软件需求定义二、软件需求管理过程三、需求建模的基本方法四、案例分析chapter__436需求建模的基本方法1.原型方法2.结构化分析法3.面向对象的用例分析法4.功能列表法5.其他chapter__437本章要点一、软件需求定义二、软件需求管理过程三、需求建模的基本方法原型方法结构化分析法面向对象的用例分析法功能列表法其他四、案例分析chapter__438原型方法按照用户的需要,快速形成一个操作流程界面可能只是一个框架,具体的功能没有实现,只是结果静态的操作流程,以便与用户快速就需求达成一致主要考虑系统的功能需求,很少考虑非功能需求chapter__439原型方法需求分析原型开发原型评价chapter__440原型方法的类型进化型开发出来用于了解问题,并形成被交付软件的部分或全部的基础抛弃型开发出来获以便更多地了解问题或探究可能的方案的灵活性或者合理性,是尝试性软件,不用于被交付软件的实际部分chapter__441原型实例原型系统chapter__442本章要点一、软件需求定义二、软件需求管理过程三、需求建模的基本方法原型方法结构化分析法面向对象的用例分析法功能列表法其他四、案例分析chapter__443结构化分析方法(SA,StructuredAnalysis)20世纪70年发展起来的面向数据流的方法是一种自顶向下逐步求精的分析方法根据软件内部数据传递、变换的关系进行分析的chapter__444结构化分析方法-技术数据流图(DFD)数据字典(DD)系统流程图chapter__445描述银行取款过程的数据流图chapter__446数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统chapter__447chapter__448数据字典描述系统中涉及的每个数据,是数据描述的集合,通常配合数据流图使用,用来描述数据流图中出现的各种数据和加工.chapter__449数据字典-组成数据项:数据元素数据流:由数据项组成的数据流数据文件:表示对数据文件的存储chapter__450数据流图需求分析实例建立学生管理系统学管科体检科学籍科学生处chapter__451数据流图-顶层学管科体检科学籍科学生管理信息系统学生处领导学生基本信息学生健康信息学生成绩学生健康情况表学生成绩单查询要求不及格人数人数统计表chapter__452数据流图-0层chapter__453数据流图-1层chapter__454数据流图-1层chapter__455数据字典-数据流学生基本信息:学号十姓名学生健康信息:学号十健康情况学生成绩:学号十{课程名+成绩}查询要求:[健康查询单|平均成绩查询单l不及格人数查询]学生健康情况表:优%十良%十一般%十差%学生成绩单:学号十姓名十{课程名+成绩}+总成绩不及格人数统计表:学号十成绩十不及格总人数chapter__456数据字典-数据文件文件名:基本信息组成:{学号十姓名十入学成绩十生源}组织:按学号递增顺序排列文件名:健康文件组成:{学号+姓名+健康情况}组织:按照健康情况为优、良、一般、差顺序排列文件名:成绩文件组成:{学号+姓名+平均成绩}组织:按照评剧成绩递增顺序排列chapter__457系统流程图系统包含的部分以及各个部分之间的关系是描述物理系统的工具用图形符号表示系统中的元素表达了系统中各个元素之间的信息流动情况chapter__458系统流程图符号chapter__459制定出访计划开始出访组团登记出访计划表出访团组基本情况登记表是否需要办理护照护照管理护照登记表护照卡申请护照签证管理结束是否临时出访计划表申请出国护照事项表申请出国签证事项表高检院外事局出访业务流程图计划是否落实是否是否本单位人员是否结束chapter__460本章要点一、软件需求定义二、软件需求管理过程三、需求建模的基本方法原型方法结构化分析法面向对象的用例分析法功能列表法其他四、案例分析chapter__461面向对象的需求分析OOSEOOAOODOOPOOT…….chapter__462OOA是OO软件工程的第一项技术活动将现实世界的“视图”转化为用对象来描述的模型描述对象之间的各种关系,以满足软件系统的要求。chapter__463用例需求(Usecase)分析用例需求分析方法采用一种面向对象的情景分析方法用例是系统向用户提供一个有价值的结果的某项功能从用户角度出发考虑的功能需求所有的用例结合起来就构成了用例模型chapter__464UML需求视图用例视图(UsecaseDiagram)顺序图(SequenceDiagram)状态图(StateDiagram)活动图(ActivityDiagram)chapter__465用例视图用例视图主要是展示了外部行为者所观察到的系统将提交的功能.即:各类外部行为者与系统所提供的用例的连接chapter__466用例视图用例(Usecase):系统所提供的功能描述角色(Actor):可能使用用例的人或者外部系统chapter__467UML图符chapter__468用例实例chapter__469用例实例chapter__470顺序图示顺序图展示了几个对象之间的动态协作关系,主要用来显示对象之间发送消息的顺序