


软件工程软件工程软件需求软件需求1主要讲解内容主要讲解内容1 1、需求分析的重要性、需求分析的重要性2 2、需求分析的任务、需求分析的任务3 3、需求分析的目的、需求分析的目的4 4、需求分析的方法、需求分析的方法5 5、需求分析的艺术、需求分析的艺术6 6、需求管理过程、需求管理过程7 7、需求分析文档、需求分析文档8 8、用户需求报告、用户需求报告9 9、需求规格说明书、需求规格说明书2 软件需求软件需求导读导读:软件需求,又称软件需求分析或软件需求获软件需求,又称软件需求分析或软件需求获取,它既是软件开发中的老课题讲了几十年了取,它既是软件开发中的老课题讲了几十年了和老问题几十年都没有很好地彻底解决,又包和老问题几十年都没有很好地彻底解决,又包含着许多新思路和新内容需求获取是否彻底与成含着许多新思路和新内容需求获取是否彻底与成功,直接关系到软件开发的成败问题本章先论述功,直接关系到软件开发的成败问题本章先论述需求分析的需求分析的9 9项任务和目的,然后介绍需求分析和需项任务和目的,然后介绍需求分析和需求管理的方法,以及求管理的方法,以及ITIT企业的用户需求报告和需求企业的用户需求报告和需求规格说明书编写的参考指南。
下面列出了读者在本规格说明书编写的参考指南下面列出了读者在本章学习中要了解、理解和掌握的主要内容章学习中要了解、理解和掌握的主要内容3 软件需求软件需求要求要求具体内容具体内容了解了解1.1.需求分析的输入输出需求分析的输入输出2.2.需求分析为什么重要需求分析为什么重要3.3.需求获取为什么难需求获取为什么难4.4.需求报告和需求规格的说明书的差异需求报告和需求规格的说明书的差异5.5.评审与审计的概念,同行评审的概念评审与审计的概念,同行评审的概念6.6.基线、里程碑、评审点、软件产品、软件工作产品的概念基线、里程碑、评审点、软件产品、软件工作产品的概念理解理解1 1、需求分析的目的、需求分析的目的 2 2、需求管理方法与管理文档、需求管理方法与管理文档掌握掌握1.1.需求分析任务:画组织结构图,画业务操作流程图,画数据流需求分析任务:画组织结构图,画业务操作流程图,画数据流程图,功能性能接口列表、确定运行环境和界面约定程图,功能性能接口列表、确定运行环境和界面约定2.2.需求分析方法:面向流程分析,找出元数据,找出中间数据,需求分析方法:面向流程分析,找出元数据,找出中间数据,找出元数据与中间数据的关系,学会需求分析艺术找出元数据与中间数据的关系,学会需求分析艺术3.3.用户需求报告用户需求报告的内容与编写方法的内容与编写方法4.4.需求规格说明书需求规格说明书的内容与编写方法的内容与编写方法4面向对象分析面向对象分析 面面向向对对象象分分析析(通通常常缩缩写写为为OOA)OOA)的的关关键键,是是识识别别出出问问题题域域内内的的对对象象,并并分分析析它它们们相相互互间间的的关关系系,最最终终建建立立起起问问题题域域的的简简洁洁、精精确确、可可理解的正确理解的正确模型模型。
5分析过程分析过程1 1、概述概述 面向对象分析,就是抽取和整理用户面向对象分析,就是抽取和整理用户需求需求并建立问题域精确模型的过程并建立问题域精确模型的过程6 2 2、三个子模型与五个层次三个子模型与五个层次 即静态结构即静态结构(对象模型对象模型),交互次序,交互次序(动态动态模型模型)和数据变换和数据变换(功能模型功能模型)解决的问题不解决的问题不同,这三个子模型的重要程度也不同:同,这三个子模型的重要程度也不同:当问题涉及交互作用和时序时当问题涉及交互作用和时序时(例如,用例如,用户界面及过程控制等户界面及过程控制等)动态模型是重要的;动态模型是重要的;解决运算量很大的问题解决运算量很大的问题(例如,高级语言例如,高级语言编译、科学与工程计算等编译、科学与工程计算等),那么涉及重要的,那么涉及重要的功能模型功能模型动态模型和功能模型中都包含了对象模型动态模型和功能模型中都包含了对象模型中的操作中的操作(即效劳或方法即效劳或方法)607五个层次五个层次8 一般说来,面向对象分析大体上按照以下顺序进行:一般说来,面向对象分析大体上按照以下顺序进行:寻找类寻找类&对象,识别结构,识别主题,定义属性,建对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义效劳。
立动态模型,建立功能模型,定义效劳但是,分析不可能严格地按照预定顺序进行,大型、复但是,分析不可能严格地按照预定顺序进行,大型、复杂系统的模型需要反复构造多遍才能建成通常,先构造出杂系统的模型需要反复构造多遍才能建成通常,先构造出模型的子集,然后再逐渐扩充,直到完全、充分地理解了整模型的子集,然后再逐渐扩充,直到完全、充分地理解了整个问题,才能最终把模型建立起来个问题,才能最终把模型建立起来609 分析也不是一个机械的过程大多数需求陈述分析也不是一个机械的过程大多数需求陈述都缺乏必要的信息,所缺少的信息主要从用户和领域都缺乏必要的信息,所缺少的信息主要从用户和领域专家那里获取,同时也需要从分析员对问题域的背景专家那里获取,同时也需要从分析员对问题域的背景知识中提取在分析过程中,系统分析员必须与领域知识中提取在分析过程中,系统分析员必须与领域专家及用户反复交流,以便澄清二义性,改正错误的专家及用户反复交流,以便澄清二义性,改正错误的概念,补足缺少的信息面向对象建立的系统模型,概念,补足缺少的信息面向对象建立的系统模型,尽管在最终完成之前还是不准确、不完整的,但对做尽管在最终完成之前还是不准确、不完整的,但对做到准确、无歧义的交流仍然是大有益处的。
到准确、无歧义的交流仍然是大有益处的10 需求陈述需求陈述书写要点书写要点 内容包括:问题范围,功能需求,性能需求,应用环境及内容包括:问题范围,功能需求,性能需求,应用环境及假设条件等总之,需求陈述应该说明假设条件等总之,需求陈述应该说明“做什么,而不是做什么,而不是“怎样做它应该描述用户的需求,而不是提出解决问题怎样做它应该描述用户的需求,而不是提出解决问题的方法应该指出哪些是系统必要的性质,哪些是任选的性的方法应该指出哪些是系统必要的性质,哪些是任选的性质应该防止对设计策略施加过多的约束,也不要描述系统质应该防止对设计策略施加过多的约束,也不要描述系统的内部结构,因为这样做将限制实现的灵活性对系统性能的内部结构,因为这样做将限制实现的灵活性对系统性能及系统与外界环境交互协议的描述,是适宜的需求此外,及系统与外界环境交互协议的描述,是适宜的需求此外,对采用的软件工程标准、模块构造准那么、将来可能做的扩对采用的软件工程标准、模块构造准那么、将来可能做的扩充以及可维护性要求等方面的描述,也都是适当的需求充以及可维护性要求等方面的描述,也都是适当的需求6011 需求分析的重要性需求分析的重要性 需求分析的输入是软件需求分析的输入是软件?合同合同?或软件或软件?立项建议书立项建议书?,以及对用户现场的调研、分析和确认,输出是,以及对用户现场的调研、分析和确认,输出是?用户需用户需求报告求报告?/?/?需求规格说明书需求规格说明书?,根据,根据“五个面向理论,五个面向理论,需求分析的方法主要是需求分析的方法主要是“面向流程分析。
面向流程分析60121.1.需求分析为什么重要需求分析为什么重要1 1许多大型应用系统的失败,最后均归结到需许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复屡次地进行需求分析,到位或不彻底,导致开发者反复屡次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行同样致使设计、编码、测试无法顺利进行132 2需求分析的输出文档是需求分析的输出文档是?用户需求报告用户需求报告?,它既,它既是软件生存周期中的第一个里程碑,又是客户、软件是软件生存周期中的第一个里程碑,又是客户、软件开发人员和工程管理人员三者必须遵守的一根基线,开发人员和工程管理人员三者必须遵守的一根基线,是三者共同工作的根底是三者共同工作的根底3 3需求分析要占用整个软件开发时间或工作量的需求分析要占用整个软件开发时间或工作量的30%30%。
4 4需求获取中的错误,属于软件开发中的早期错需求获取中的错误,属于软件开发中的早期错误,它会在后续的设计和实现中进行发散式的传播误,它会在后续的设计和实现中进行发散式的传播根据以上根据以上4 4项原因,项原因,ITIT企业的高层经理,对需求分企业的高层经理,对需求分析特别重视,常常派经验最丰富的人员去做工程需求析特别重视,常常派经验最丰富的人员去做工程需求正因为如此,正因为如此,“系统分析员才是软件行业中的最高系统分析员才是软件行业中的最高技术职称技术职称60142.2.需求获取为什么难需求获取为什么难 需求获取看似容易,做起来很难,主要原因有三需求获取看似容易,做起来很难,主要原因有三条1 1用户需求具有动态性,即需求的不稳定性:在整用户需求具有动态性,即需求的不稳定性:在整个软件生存周期内,应用软件的需求会随着时间的进展个软件生存周期内,应用软件的需求会随着时间的进展而有所变化个别用户,甚至是朝三暮四地变化而有所变化个别用户,甚至是朝三暮四地变化2 2用户需求具有模糊性,即需求的不准确性:由于用户需求具有模糊性,即需求的不准确性:由于用户的素质不是很高,业务流程不是很标准,所以需求用户的素质不是很高,业务流程不是很标准,所以需求表达不很清楚和也不够明确。
表达不很清楚和也不够明确3 3开发者和用户要对需求达成完全一致的认识,用开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任户要在需求报告上签字,要承担责任15名词解释名词解释序序 号号名名 词词 名词解释名词解释1 1基线基线 基线是软件工作产品,它是要经内部和外部评审过的,并且基线是软件工作产品,它是要经内部和外部评审过的,并且是下一阶段工作的基础一根基线是一个里程碑或一个检查点是下一阶段工作的基础一根基线是一个里程碑或一个检查点2 2检查检查点点 检查点只是由时间、计划、事件驱动的检查工作进度和质量检查点只是由时间、计划、事件驱动的检查工作进度和质量的一个记号一个检查点不一定是一根基线或一个里程碑的一个记号一个检查点不一定是一根基线或一个里程碑3 3里程里程碑碑 里程砷是一个标记,只需要经过内部评审一个里程碑是一里程砷是一个标记,只需要经过内部评审一个里程碑是一个检查点,但不一定是基线个检查点,但不一定是基线4 4评审评审 评审是对软件工作产品质量的一次开会或汇签活动评审是对软件工作产品质量的一次开会或汇签活动5 5审计审计 审计是复查评审活动程序的合法性,是否按程序与规范进行审计是复查评审活动程序的合法性,是否按程序与规范进行6 6客户客户 客户是软件企业合同的签约方,是软件产品的销售对象。
客客户是软件企业合同的签约方,是软件产品的销售对象客户是顾客的一部分户是顾客的一部分16名词解释名词解释序序 号号名名 词词 名词解释名词解释7 7顾客顾客 “顾客顾客”比比“客户客户”的范围更广泛一些,它包括潜在的客户的范围更广泛一些,它包括潜在的客户8 8用户用户 用户是软件产品的最终使用者,用户是客户的一部分用户是软件产品的最终使用者,用户是客户的一部分9 9软件软件工作工作产品产品 “软件工作产品软件工作产品”是软件开发活动中的人工制品,如用户需求报是软件开发活动中的人工制品,如用户需求报告、需求规格说明书、概要设计说明书、详细设计说明书、源程序、告、需求规格说明书、概要设计说明书、详细设计说明书、源程序、测试报告、用户手册也包括软件管理文档,如软件开发计划、软测试报告、用户手册也包括软件管理文档,如软件开发计划、软件质量保证计划、各种评审报告、不符合项跟踪报告、变更申请表、件质量保证计划、各种评审报告、不符合项跟踪报告、变更申请表、里程碑报告等里程碑报告等1010软件软件产品产品“软件产品软件产品”是最终用户使用的软件,如操作系统是最终用户使用的软件,如操作系统Windows98Windows98、财务系统、管理信息系统财务系统、管理信息系统MISMIS。
软件产品软件产品”是是“软件工作产品软件工作产品”的一部分的一部分llll现有现有系统系统 现有系统是指用户当前正在使用的系统,它可能是网络管理系统,现有系统是指用户当前正在使用的系统,它可能是网络管理系统,也可能是手工管理系统也可能是手工管理系统 1212目标目标系统系统 目标系统是指将要实现的系统目标系统是指将要实现的系统17 需求分析的任务需求分析的任务 需求分析就是对顾客的需求进行定义或确定,需求分析就是对顾客的需求进行定义或确定,这一过程中有许多工作要做但是,最主要的是完这一过程中有许多工作要做但是,最主要的是完成如下成如下9 9项任务第第1 1项任务:项任务:画出目标系统的组织结构图,列出各部门的画出目标系统的组织结构图,列出各部门的岗位角色表,即组织机构模型岗位角色表,即组织机构模型18序号 部门名称 岗位职责 1 厂长室全厂业务的组织领导,信息的查询 2 采购部材料的采购、供应商的管理 3 仓储部材料入库、保存、出库 4 生产车间产品生产、质量检测 5 销售部产品销售、销售商的管理 6售后服务部客户信息管理、售后服务及培训组织机构模型组织机构模型19岗位角色岗位角色岗位号岗位号岗位名称岗位名称 所在部门所在部门 岗位职责岗位职责相关的业务相关的业务 10111011 采购员采购员 采购部采购部采购、合同的采购、合同的签订、供应商签订、供应商的选择的选择进货、合同进货、合同管理管理 10121012 库管员库管员仓储部仓储部材料入库、材料入库、保存、出库保存、出库入库、保入库、保管、出库管、出库20 需求分析的目的需求分析的目的第第2 2项任务:项任务:画出目标系统的业务操作流程图,它包括物流、画出目标系统的业务操作流程图,它包括物流、资金流、信息流、即业务操作模型,重点是业务操作资金流、信息流、即业务操作模型,重点是业务操作的流水步骤。
业务模型表示了与系统有关的人、设备的流水步骤业务模型表示了与系统有关的人、设备、其他子系统之间的业务关系和费用关系,它是经过、其他子系统之间的业务关系和费用关系,它是经过业务流程重组、再造和优化之后,并且得到企业领导业务流程重组、再造和优化之后,并且得到企业领导确认的业务流程图确认的业务流程图业务流程图的画法多种多样,各自可根据自身的业务流程图的画法多种多样,各自可根据自身的习惯和特点,制定一套图形规那么,在本组织内统一习惯和特点,制定一套图形规那么,在本组织内统一遵守业务流程图的制作工具,所谓直式业务流程图遵守业务流程图的制作工具,所谓直式业务流程图,就是用图的横向坐标表示企业的部门岗位,用图的,就是用图的横向坐标表示企业的部门岗位,用图的纵向坐标表示企业的作业流程纵向坐标表示企业的作业流程6021第第3 3项任务:项任务:画出目标系统的数据流程图,即单据和报表的画出目标系统的数据流程图,即单据和报表的流程图,掌握业务规那么,获得初步数据模型流程图,掌握业务规那么,获得初步数据模型(真正真正的数据模型是的数据模型是ERER图加上相应的数据字典图加上相应的数据字典)数据流程图中要突出单据流,分清不同单据之数据流程图中要突出单据流,分清不同单据之间的先后流动次序,以及同一单据中的不同数据项的间的先后流动次序,以及同一单据中的不同数据项的先后流动次序。
数据流程图的画法多种多样,各软件先后流动次序数据流程图的画法多种多样,各软件组织可根据自身的习惯和特点,制定一套图形规那么,组织可根据自身的习惯和特点,制定一套图形规那么,在本组织内统一遵守在本组织内统一遵守6022 对于所有的单据或报表,均要收集并整理同时,将单对于所有的单据或报表,均要收集并整理同时,将单据或报表的名称、用途、使用单位、制作单位、频率、顶峰据或报表的名称、用途、使用单位、制作单位、频率、顶峰时数据流量,及每个数据项的名称、类型、长度、精度、算时数据流量,及每个数据项的名称、类型、长度、精度、算法等,都要全部列出,形成原始单据和输出报表的表格法等,都要全部列出,形成原始单据和输出报表的表格单据或报表整理后的参考格式单据或报表整理后的参考格式 单据名称单据名称 用用 途途 使用单位使用单位 制作单位制作单位 频频 率率 高峰时数据流量高峰时数据流量23各数据项的详细说明各数据项的详细说明 序序号号数据项数据项中文名中文名数据项数据项英文名英文名数据项类型、长数据项类型、长度、精度度、精度数据项数据项算法算法 1 1 2 2 3 324第第4 4项任务:项任务:列出目标系统的功能点列表,即功能模型。
列出目标系统的功能点列表,即功能模型注:注:有时将性能模型、界面模型和接口模型的内容都合并有时将性能模型、界面模型和接口模型的内容都合并到功能模型之中到功能模型之中)系统的功能点列表系统的功能点列表编编 号号功能功能名称名称使用使用部门部门使用使用岗位岗位功能功能描述描述输输入入系统系统响应响应输输出出 1 1 2 2 3 325第第5 5项任务:项任务:列出系统的性能点列表,即性能模型列出系统的性能点列表,即性能模型系统的性能点列表系统的性能点列表 编编 号号性能性能 名称名称使用使用部门部门使用使用岗位岗位性能性能描述描述输输入入系统系统响应响应输输 出出 l l 2 226第第6 6项任务:项任务:列出目标系统的接口列表,即接口模型列出目标系统的接口列表,即接口模型接口列表的参考格式,如表接口列表的参考格式,如表5-85-8所示编 号接口名称接口规范接口标准入口参数出口参数传输速率12327第第7 7项任务:项任务:确定目标系统的运行环境,即环境模型确定目标系统的运行环境,即环境模型运行环境包括:核心计算机及网络资源系统软运行环境包括:核心计算机及网络资源系统软件、硬件和初始化数据的配置方案、采购方案、安件、硬件和初始化数据的配置方案、采购方案、安装调试进度、人员培训方案等内容。
装调试进度、人员培训方案等内容第第8 8项任务:项任务:目标系统的界面约定,即界面模型目标系统的界面约定,即界面模型界面设计的原那么是:方便、简洁、美观、一致界面设计的原那么是:方便、简洁、美观、一致等整个目标系统的界面风格定义要统一,某些功能等整个目标系统的界面风格定义要统一,某些功能模块的特殊界面要说明模块的特殊界面要说明28第第9 9项任务:项任务:对目标系统的开发工期、费用、开发进度、系统风险等对目标系统的开发工期、费用、开发进度、系统风险等问题进行分析与评估问题进行分析与评估对于一般企业事业单位的信息系统需求分析,完成好上对于一般企业事业单位的信息系统需求分析,完成好上述述9 9项任务,并与用户达成全面共识,通过评审,得到用签字项任务,并与用户达成全面共识,通过评审,得到用签字确认,就算成功了确认,就算成功了但是,上述但是,上述9 9项任务不是教条,不能完全生搬硬套,而项任务不是教条,不能完全生搬硬套,而要根据具体问题具体分析要根据具体问题具体分析对于特殊的系统,除了上述对于特殊的系统,除了上述9 9项任务之外,可能还要增项任务之外,可能还要增加其他任务,工程经理和系统分析师要严把关口。
加其他任务,工程经理和系统分析师要严把关口如果通过需求分析之后,对将来要实现的目标系统,仍如果通过需求分析之后,对将来要实现的目标系统,仍然感到心中无数、心里发慌,那么绝对不要签字确认,而要然感到心中无数、心里发慌,那么绝对不要签字确认,而要从头开始,重新进行需求获取从头开始,重新进行需求获取6029 需求分析的目的需求分析的目的 需求分析的重点是:需求分析的重点是:通过弄清业务流程和数据流程的手段,到达与客户共同确通过弄清业务流程和数据流程的手段,到达与客户共同确定业务模型、功能模型、性能模型、接口模型的目标通过定业务模型、功能模型、性能模型、接口模型的目标通过评审,与客户达成完全一致的理解,让客户确认,在需求报评审,与客户达成完全一致的理解,让客户确认,在需求报告上签字,这是需求分析的根本目的只有实现了这个目的,告上签字,这是需求分析的根本目的只有实现了这个目的,才能冻结需求,实现一个重要的里程碑,形成稳定可靠的需才能冻结需求,实现一个重要的里程碑,形成稳定可靠的需求文档基线,为后致的设计、编码、测试、验收打下坚实的求文档基线,为后致的设计、编码、测试、验收打下坚实的根底如果在需求分析中隐含一个错误或一个不确定的问题,就如果在需求分析中隐含一个错误或一个不确定的问题,就会导致在后续开发工作中出现十个甚至百个错误或问题,这会导致在后续开发工作中出现十个甚至百个错误或问题,这就是错误或问题传播的发散性。
就是错误或问题传播的发散性6030需求分析的难点是:需求分析的难点是:在系统的流程、功能、性能和接口在系统的流程、功能、性能和接口4 4个方面,个方面,开发者与客户达成完全一致的需求,让客户最终开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在工程验收前,需求相对稳定签字确认,并保证在工程验收前,需求相对稳定不变如需求有变化,双方必须履行如需求有变化,双方必须履行“需求变更需求变更管理程序管理程序开发者与客户达成完全一致的需求,这既开发者与客户达成完全一致的需求,这既是需求分析的目的,又是需求分析的难点那么,是需求分析的目的,又是需求分析的难点那么,要克服这个难点,形成稳定可靠的需求文档基线要克服这个难点,形成稳定可靠的需求文档基线就要靠需求分析的方法、技巧和经验了就要靠需求分析的方法、技巧和经验了6031 总结前人需求分析的经验,系统分析师应该对用总结前人需求分析的经验,系统分析师应该对用户进行需求分析培训,用户应参加业务需求分析的全户进行需求分析培训,用户应参加业务需求分析的全过程,向用户发放需求调查表格,召开需求调研会,过程,向用户发放需求调查表格,召开需求调研会,深入到重点岗位了解需求,必要时参加实际的业务工深入到重点岗位了解需求,必要时参加实际的业务工作,边分析边整理文档,边征求修改意见,定期向用作,边分析边整理文档,边征求修改意见,定期向用户中的操作层、管理层、决策层分别汇报,演示目标户中的操作层、管理层、决策层分别汇报,演示目标系统的流程、功能、性能、接口及界面的需求。
系统的流程、功能、性能、接口及界面的需求需求分析的方法需求分析的方法6032 1 1、面向流程分析、面向流程分析 需求分析是面向流程的,而流程是动态的、实需求分析是面向流程的,而流程是动态的、实时的系统的功能、性能、接口、界面都是在流程中时的系统的功能、性能、接口、界面都是在流程中动态实时地反映出来在所有的流程动态实时地反映出来在所有的流程(物流、人流、物流、人流、资金流、信息流、单据流、报表流、数据流资金流、信息流、单据流、报表流、数据流)中,数中,数据流最重要,也最有代表性因为在计算机网络系统据流最重要,也最有代表性因为在计算机网络系统内,一切流程都表现为数据流所以,面向流程分析,内,一切流程都表现为数据流所以,面向流程分析,实质上是面向数据流程分析,或面向数据分析计算实质上是面向数据流程分析,或面向数据分析计算机网络只认识数据,其他所有的信息必须转化为数据机网络只认识数据,其他所有的信息必须转化为数据之后才能流动,所以说面向流程分析本质上是面向数之后才能流动,所以说面向流程分析本质上是面向数据流程分析据流程分析6033 需求分析的思路,是从用户的功能需求需求分析的思路,是从用户的功能需求(系系统需要做什么统需要做什么)出发,由系统的业务流程和数出发,由系统的业务流程和数据流程导出系统的业务模型和功能模型,识别据流程导出系统的业务模型和功能模型,识别出系统的元数据和中间数据,为今后设计数据出系统的元数据和中间数据,为今后设计数据模型做好充分准备。
同时,对系统的软、硬件模型做好充分准备同时,对系统的软、硬件环境配置;开发工期、费用、开发进度、培训、环境配置;开发工期、费用、开发进度、培训、系统风险进行评估系统风险进行评估6034 2.2.找出元数据找出元数据元数据的分析与识别,是需求分析的主要议题之元数据的分析与识别,是需求分析的主要议题之元数据是组织数据的数据,描述数据的数据,关于数元数据是组织数据的数据,描述数据的数据,关于数据的数据通俗地讲,元数就是信息系统中实体名及其据的数据通俗地讲,元数就是信息系统中实体名及其属性名的集合,或者说就是基表的表名与字段名的集合属性名的集合,或者说就是基表的表名与字段名的集合此可见,所谓实体,就是一组相关元数据的集合此可见,所谓实体,就是一组相关元数据的集合元数据分析的出发点是业务模型和功能模型,落脚点元数据分析的出发点是业务模型和功能模型,落脚点是系统中的实体及其属性,企事业单位的数据模型中的是系统中的实体及其属性,企事业单位的数据模型中的所有元素元数据蕴藏在信息系统的单据中,单据名称所有元素元数据蕴藏在信息系统的单据中,单据名称及其内部的数据项名称,一般就是元数据及其内部的数据项名称,一般就是元数据。
6035 它是一个实体,单据中的它是一个实体,单据中的“数据项就是该实体的姓名,数据项就是该实体的姓名,它们都是元数据而它们都是元数据而“,就不是元数据,只是由元,就不是元数据,只是由元数据所组织的一条记录数据所组织的一条记录品名品名型号型号规格规格单价单价数量数量产地产地海尔电海尔电视机视机HE200029英寸英寸2500100青岛青岛出厂日出厂日期期出库日期出库日期制单人制单人审核人审核人 批准人批准人02092620021012张三张三李四李四王五王五商品出库单商品出库单36 3 3找出中间数据找出中间数据 中间数据蕴藏在信息系统的输出报表中,报表名称及其内中间数据蕴藏在信息系统的输出报表中,报表名称及其内部的数据项名称,一般是中间数据其中部的数据项名称,一般是中间数据其中“部门名称,员工部门名称,员工人数,男性人数,本科以上人数,人数,男性人数,本科以上人数,3030岁以下人数,岁以下人数,这,这名词称为中间数据,而名词称为中间数据,而“市场部,市场部,2525,1616,2121,2323,这些,这些数据称为统计数据数据称为统计数据中间数据是组织统计数据的数据,描述中间数据是组织统计数据的数据,描述统计数据的数据,关于统计数据的数据。
统计数据的数据,关于统计数据的数据部门名称部门名称员工人数员工人数 男性人数男性人数 本科以上人数本科以上人数 3030岁以下人数岁以下人数市场部市场部2525161621212323开发部开发部8888676782826666销售部销售部3535323233191937 4 4找出元数据与中间数据之间的关系找出元数据与中间数据之间的关系 元数据对应原始单据,中间数据对应查询、统计、报表元数据对应原始单据,中间数据对应查询、统计、报表元数据将原始单据中与入的数据组织起来变成基表中的记录,元数据将原始单据中与入的数据组织起来变成基表中的记录,这些记录称为根底数据中间数据将统计报表叫输出的数据这些记录称为根底数据中间数据将统计报表叫输出的数据组织起来变成中间表中的记录,这些记录称为统计数据组织起来变成中间表中的记录,这些记录称为统计数据6038 4 4找出元数据与中间数据之间的关系找出元数据与中间数据之间的关系 那么读者会问:那么读者会问:“它们两者之间是否有关系它们两者之间是否有关系?有什么关系有什么关系?答复是:答复是:“有关系是一种因果关系有关系是一种因果关系中间表中的记录是由基表中的记录派生中间表中的记录是由基表中的记录派生(推导、加工、处理推导、加工、处理)出来的,为了简单起见,我们说出来的,为了简单起见,我们说“中间数据是由元数据派生中间数据是由元数据派生出来的,这种派生就是算法分析,也叫数拆处理。
在需求出来的,这种派生就是算法分析,也叫数拆处理在需求分析中,弄清由元数据到中间数据之间的演变关系,对需求分析中,弄清由元数据到中间数据之间的演变关系,对需求分析的成败至关重要,系统分析师和工程经理不能粗心大意分析的成败至关重要,系统分析师和工程经理不能粗心大意!6039 需求分析的方法需求分析的方法 5 5找出单据中的流程找出单据中的流程 单据中有如下三个流程单据中有如下三个流程1)(1)该单据的上游是什么该单据的上游是什么?例如,假设要录入例如,假设要录入“单据单据2 2,必,必须先录入须先录入“单据单据1 1,否那么,否那么“单据单据2 2就录入不进去那么就录入不进去那么“单据单据1 1就是就是“单据单据2 2的上游40 (2)(2)同一个单据内部的数据项之间,也存在一个先后次序同一个单据内部的数据项之间,也存在一个先后次序问题例:出库单中的数据项例:出库单中的数据项“制单人,审核人,批准人之间制单人,审核人,批准人之间的录入次序,也有一个先后问题制单人必须第一个录入,的录入次序,也有一个先后问题制单人必须第一个录入,审核人必须是第二个确认,批准人只能是第三个确认而且审核人必须是第二个确认,批准人只能是第三个确认。
而且只有批准人确认之后,该单据才能生效,才能出库,信息系只有批准人确认之后,该单据才能生效,才能出库,信息系统才能向后台数据库效劳器提交这条记录统才能向后台数据库效劳器提交这条记录3)(3)该单据的下游是什么该单据的下游是什么?是录入是录入“单据单据3 3呢呢?还是打印报还是打印报表表A A呢呢?还是当日单据汇总处理呢还是当日单据汇总处理呢?这个问题,也要明确否这个问题,也要明确否那么,操作员就可能误操作那么,操作员就可能误操作6041 6面向对象分析 也是从系统的根本功能入手,或从与系统有关的人和事入手,将所有的功能需求找出来,然后将每项功能对应一个对象,分析每个对象的属性、方法及包装方式,最后归并相同对象,删除冗余属性,将对象上升为类,再用对象总线或对象框架将类组装起来,用以表示用户所有需求CASE工具RationalRose用Usecase称为“用况或“用例,表示与系统有关的人、设备或外界子系统的一组交互动作序列)来进行需求分析,就是系统的需求面向数据分析,就是面向元数据和中间数据分析,只要将这两类数据及其之间的关系分析透了,对开发者来说,主要目的就到达了42 需求分析的方法需求分析的方法 7 7分析与设计要同时考虑分析与设计要同时考虑 在分析师心灵深处既要弄清目标系统是什么,又要为目在分析师心灵深处既要弄清目标系统是什么,又要为目标系统怎么设计做充分准备。
那种在分析师心灵深处只考虑标系统怎么设计做充分准备那种在分析师心灵深处只考虑目标系统是什么、而不考虑目标系统怎么做的需求分析观点,目标系统是什么、而不考虑目标系统怎么做的需求分析观点,是片面的、外表的、过时的、不可取的有经验的分析师,是片面的、外表的、过时的、不可取的有经验的分析师,常常是一边搞需求分析,一边在心灵深处思考今后怎么去设常常是一边搞需求分析,一边在心灵深处思考今后怎么去设计实现一旦发现设计实现中将会出现问题,立即进一步需计实现一旦发现设计实现中将会出现问题,立即进一步需求分析这是因为:许多问题在分析求分析这是因为:许多问题在分析“目标系统是什么时目标系统是什么时发现不了,只有考虑发现不了,只有考虑“目标系统怎么做时才能暴露和发现目标系统怎么做时才能暴露和发现更多的问题一些系统由于屡次需求分析不到位,甚至在设更多的问题一些系统由于屡次需求分析不到位,甚至在设计或编程时被卡住,不得不回头再做需求分析,就是缺乏分计或编程时被卡住,不得不回头再做需求分析,就是缺乏分析与设计的同步考虑析与设计的同步考虑6043 需求分析艺术需求分析艺术 作为系统分析员,要在实践中不断提高自己,增长才干,作为系统分析员,要在实践中不断提高自己,增长才干,修炼自身,形成独特的分析艺术。
下面介绍常用的几点艺术修炼自身,形成独特的分析艺术下面介绍常用的几点艺术1)(1)需求分析相似如乒乓球赛的双打,它是由分析师和用户需求分析相似如乒乓球赛的双打,它是由分析师和用户配对进行双打,而且用户不懂得需求分析方法怎么办配对进行双打,而且用户不懂得需求分析方法怎么办?在需在需求分析之初,要对用户进行通俗易懂、深入浅出的需求分析求分析之初,要对用户进行通俗易懂、深入浅出的需求分析方法培训和引导培训的内容是:需求分析的重要性、双方方法培训和引导培训的内容是:需求分析的重要性、双方配合的重要性、需要调查的工程、用户哪些人员参加、调查配合的重要性、需要调查的工程、用户哪些人员参加、调查表的填法和调查会的开法表的填法和调查会的开法44(2)(2)宏观上的流程,由企事业单位懂业务的中高层领导介宏观上的流程,由企事业单位懂业务的中高层领导介绍微观上的流程,由企事业单位懂业务的基层人员说明微观上的流程,由企事业单位懂业务的基层人员说明3)(3)同一个业务流程,要有两个以上懂业务的人员介绍,同一个业务流程,要有两个以上懂业务的人员介绍,而且要经得起推敲,要经过优化过滤处理,要被业务主管而且要经得起推敲,要经过优化过滤处理,要被业务主管确认。
确认4)4)企事业单位是个金字塔结构,上面小,下面大,需求企事业单位是个金字塔结构,上面小,下面大,需求也是个金字塔结构决策层提出宏观上的统计、查询、决也是个金字塔结构决策层提出宏观上的统计、查询、决策需求,管理层提出业务管理和作业控制需求,操作层提策需求,管理层提出业务管理和作业控制需求,操作层提出录入、修改、提交、处理、打印、界面、传输、通信、出录入、修改、提交、处理、打印、界面、传输、通信、时间与速度等方面的操作需求时间与速度等方面的操作需求6045(5)(5)在需求分析中,一般要向用户进行两三次汇在需求分析中,一般要向用户进行两三次汇报,公开征求决策层、管理层和操作层的意见报,公开征求决策层、管理层和操作层的意见每次汇报一个人主讲,其他人补充在汇报之前,每次汇报一个人主讲,其他人补充在汇报之前,先在工程组内部演示一次,即彩排一次,以提高先在工程组内部演示一次,即彩排一次,以提高汇报的质量汇报的质量(6)(6)要与用户交朋友,要记住用户的姓名、职务、要与用户交朋友,要记住用户的姓名、职务、职称、特长、爱好、脾气、特点要交心谈心,职称、特长、爱好、脾气、特点要交心谈心,要讲信誉,要尊重人,要诚恳待人。
要讲信誉,要尊重人,要诚恳待人46 需求管理过程需求管理过程1.1.需求管理的任务与内容需求管理的任务与内容 需求管理的中心任务,是保证软件产品满足客户在软件功需求管理的中心任务,是保证软件产品满足客户在软件功能、性能、接口三个方面的需求能、性能、接口三个方面的需求在开发过程中,经常会碰到客户不明确的需求及频繁的需在开发过程中,经常会碰到客户不明确的需求及频繁的需求变更,正确地对待并处理这种情况,可以保证软件产品在预求变更,正确地对待并处理这种情况,可以保证软件产品在预计的进度和本钱范围内提交需求管理过程的目标,是管理和计的进度和本钱范围内提交需求管理过程的目标,是管理和控制需求,维护软件方案、产品和活动与需求的一致性,并保控制需求,维护软件方案、产品和活动与需求的一致性,并保证需求在软件工程中得到实现证需求在软件工程中得到实现需求管理是面向需求过程的,需求管理过程主要包括需求需求管理是面向需求过程的,需求管理过程主要包括需求确认、需求评审、需求跟踪和需求变更活动确认、需求评审、需求跟踪和需求变更活动需求管理过程要求指定明确的负责人,负责与客户协商并需求管理过程要求指定明确的负责人,负责与客户协商并确认需求,包括非技术需求、技术需求及编制需求跟踪矩阵。
确认需求,包括非技术需求、技术需求及编制需求跟踪矩阵47(1)(1)非技术需求:一般在协议、条件和合同条款中描非技术需求:一般在协议、条件和合同条款中描述,包括提交的产品、提交的日期和里程碑等内容述,包括提交的产品、提交的日期和里程碑等内容2)(2)技术需求:描述系统的软件功能、性能、接口、技术需求:描述系统的软件功能、性能、接口、设计约束、编程语言和界面需求等多方面内容设计约束、编程语言和界面需求等多方面内容3)(3)需求跟踪矩阵,是在充分了解技术需求的根底上需求跟踪矩阵,是在充分了解技术需求的根底上编制的需求跟踪矩阵的建立,使工程经理能够跟踪编制的需求跟踪矩阵的建立,使工程经理能够跟踪每一项需求的实现状态每一项需求的实现状态6048 在需求被纳入到软件工程之前,要求软件工程组在需求被纳入到软件工程之前,要求软件工程组评审需求一般情况下,客户会参与工程需求的评评审需求一般情况下,客户会参与工程需求的评审评审的形象是需求确认的结果,包括非技术需审评审的形象是需求确认的结果,包括非技术需求文档、技术需求文档和需求跟踪矩阵评审的主求文档、技术需求文档和需求跟踪矩阵评审的主要目的在于:要目的在于:(1)(1)确定分配的软件功能、性能、接口需求,用确定分配的软件功能、性能、接口需求,用软件来实现是可行的、适当的。
软件来实现是可行的、适当的2)(2)软件功能、性能、接口需求被清晰、正确地软件功能、性能、接口需求被清晰、正确地描述3)(3)软件功能、性能、接口需求是一致的、相互软件功能、性能、接口需求是一致的、相互不矛盾4)(4)软件功能、性能、接口需求是可测试的软件功能、性能、接口需求是可测试的6049 评审的结束,标志着与客户协商确认需求的结束通过评审的结束,标志着与客户协商确认需求的结束通过高级管理者批准的需求文档,应置于软件基线库中,进行配高级管理者批准的需求文档,应置于软件基线库中,进行配置管理和控制,同时已批准的需求,作为软件工程筹划的主置管理和控制,同时已批准的需求,作为软件工程筹划的主要输入,要纳入到软件工程之中要输入,要纳入到软件工程之中需求跟踪的主要内容是跟踪不符合项的改正情况需求需求跟踪的主要内容是跟踪不符合项的改正情况需求跟踪的主要意义在于,获得需求目前的实现状态,确保用户跟踪的主要意义在于,获得需求目前的实现状态,确保用户所有的需求都得到满足可靠的跟踪信息可为需求变更、系所有的需求都得到满足可靠的跟踪信息可为需求变更、系统维护、关键成员离开、系统再设计和类似系统设计等很多统维护、关键成员离开、系统再设计和类似系统设计等很多方面,提供参考和指导,并可以减少风险和提高工程成功。
方面,提供参考和指导,并可以减少风险和提高工程成功一般来讲,需求变更,会引起方案及其他软件工作产品一般来讲,需求变更,会引起方案及其他软件工作产品的变更实施的变更实施CMMCMM的工程,都是遵照软件组织规定的变更流程的工程,都是遵照软件组织规定的变更流程进行需求变更需求变更的过程需要跟踪,同样,对变更的进行需求变更需求变更的过程需要跟踪,同样,对变更的需求也要进行跟踪需求也要进行跟踪60502 2对需求文档进行同行评审对需求文档进行同行评审 在在CMML3CMML3中,提倡同行评审,而不是专家鉴定需求文档中,提倡同行评审,而不是专家鉴定需求文档产生后,一定要进行同行评审假设未获得通过,那么要列产生后,一定要进行同行评审假设未获得通过,那么要列出出“不符合项,并进行跟踪监督不符合项,并进行跟踪监督同行评审,是指进行软件工作产品验证的活动,其目的同行评审,是指进行软件工作产品验证的活动,其目的是为了及早和高效地从软件产品中识别并消除缺陷与技术是为了及早和高效地从软件产品中识别并消除缺陷与技术鉴定不同,同行评审的对象一般是局部软件产品,其重点在鉴定不同,同行评审的对象一般是局部软件产品,其重点在于发现软件产品中的缺陷。
于发现软件产品中的缺陷所谓同行,是指和生产者在被评审的软件产品上有相同的所谓同行,是指和生产者在被评审的软件产品上有相同的开发经验和知识的人员一般来讲,不建议管理者作为同行开发经验和知识的人员一般来讲,不建议管理者作为同行参与同行评审,也不应使用同行评审的结果去评价产品生产参与同行评审,也不应使用同行评审的结果去评价产品生产者6051 与一般评审流程相似,同行评审过程包括筹划、准备和与一般评审流程相似,同行评审过程包括筹划、准备和实施三个阶段正式的同行评审一般采取会议的形式同行实施三个阶段正式的同行评审一般采取会议的形式同行评审的重点,在于确定产品的缺陷,而不是如何解决问题评审的重点,在于确定产品的缺陷,而不是如何解决问题在会议结束之后,软件产品的生产者依据同行评审记录,修在会议结束之后,软件产品的生产者依据同行评审记录,修正软件产品缺陷,然后由同行评审负责人确认缺陷的修正正软件产品缺陷,然后由同行评审负责人确认缺陷的修正引入同行评审流程后,加大了对软件开发前期产品质引入同行评审流程后,加大了对软件开发前期产品质量的保证力度,如需求分析、概要设计和详细设计阶段的产量的保证力度,如需求分析、概要设计和详细设计阶段的产品都是同行评审的重点。
对前期产品的质量保证,明显地降品都是同行评审的重点对前期产品的质量保证,明显地降低了软件产品的本钱,提高了软件产品的整体质量另外,低了软件产品的本钱,提高了软件产品的整体质量另外,由于进行同行评审,使大量人员对软件系统中原本不熟悉的由于进行同行评审,使大量人员对软件系统中原本不熟悉的局部更加了解因此,同行评审还提高了工程的连续性,培局部更加了解因此,同行评审还提高了工程的连续性,培训了后备人员训了后备人员52 需求分析文档需求分析文档需求报告和需求规格说明书的差异1、用户需求报告是对外的,需求规格说明书是对内的 用户需求报告是站在用户的角度、用他们可以看懂的语言写的,需要用户签字确认,目的是为用户验收测试提供依据(基线),内容既要描述当前系统的情况,又要描述目标系统的运行环境、流程、功能、性能、接口和界面等需求规格说明书那么不同,它是对内的,不需要用户签字确认它是站在开发者的角度、用开发者的语言写的(用户可能看不懂,比方主键、外键、算法分析、伪码等名词),目的是作为概要设计和详细设计的基线,内容不必描述当前系统的情况,只需描述目标系统的业务模型、功能模型(包括接口和界面)、数据模型60532用户需求报告是合同的产物,需求规格说明书是立项建用户需求报告是合同的产物,需求规格说明书是立项建议书的产物议书的产物 用户需求报告是对合同而言的。
因为签订了合同,要按合用户需求报告是对合同而言的因为签订了合同,要按合同要求为用户定制软件,所以要对用户的需求进行分析,最后同要求为用户定制软件,所以要对用户的需求进行分析,最后与用户在需求上达成一致,形成用户需求报告,因此用户需求与用户在需求上达成一致,形成用户需求报告,因此用户需求报告是合同的产物报告是合同的产物需求规格说明书是对立项建议书而言的由于事先没有签需求规格说明书是对立项建议书而言的由于事先没有签合同,没有确定的某个用户,只是针对某行业的共同特点研发合同,没有确定的某个用户,只是针对某行业的共同特点研发一个软件产品,为潜在的客户群效劳,所以要进行市场调研,一个软件产品,为潜在的客户群效劳,所以要进行市场调研,市场销售人员要写出立项建议书,正式立项后,再由系统分析市场销售人员要写出立项建议书,正式立项后,再由系统分析员进一步调研,写出需求规格说明书,以它作为概要设计和详员进一步调研,写出需求规格说明书,以它作为概要设计和详细设计的基线因此需求规格说明书是立项建议书的产物细设计的基线因此需求规格说明书是立项建议书的产物60543 3由用户需求报告可产生需求规格说明书由用户需求报告可产生需求规格说明书 签完合同后,一般是先书写出用户需求报告,后书写签完合同后,一般是先书写出用户需求报告,后书写出需求规格说明书。
当需求报告用户签字确认后,需求出需求规格说明书当需求报告用户签字确认后,需求规格说明书很快就出来了利用软件复用技术,在制作规格说明书很快就出来了利用软件复用技术,在制作需求规格说明书之前,先将需求报告拷贝一份,作为需需求规格说明书之前,先将需求报告拷贝一份,作为需求规格说明书的雏型,然后再在上面增、删、改,将用求规格说明书的雏型,然后再在上面增、删、改,将用户看不懂的内容,而设计师又必须知道的内容户看不懂的内容,而设计师又必须知道的内容(比方主键、比方主键、外键、算法分析等外键、算法分析等)加上去,就产生了最终的需求规格说加上去,就产生了最终的需求规格说明书,以它作为概要设计和详细设计的基线明书,以它作为概要设计和详细设计的基线60554 4需要注意的问题需要注意的问题 有的软件公司不仅将用户需求报告和需求规格说明书不有的软件公司不仅将用户需求报告和需求规格说明书不加区分地合二而一,而且还将概要设计说明书和详细设计说加区分地合二而一,而且还将概要设计说明书和详细设计说明书也不加区分地合二而一这种做法不标准,对小而熟悉明书也不加区分地合二而一这种做法不标准,对小而熟悉的工程可以,对大而生疏的工程不适宜,应该逐步改正,养的工程可以,对大而生疏的工程不适宜,应该逐步改正,养成一种认真、仔细、标准的作风。
成一种认真、仔细、标准的作风在软件开发的总工作量中,需求的工作量一般占在软件开发的总工作量中,需求的工作量一般占3030;设计的工作量一般占设计的工作量一般占3030,编码和单元测试的工作量一般占,编码和单元测试的工作量一般占3030,AlphaAlpha测试的工作量一般占测试的工作量一般占5 5,返工返修的工作量一,返工返修的工作量一般占般占5 5那种认为需求不重要、设计可不做、一上来就写程那种认为需求不重要、设计可不做、一上来就写程序的观点和做法是完全错误的序的观点和做法是完全错误的用户需求报告和需求规格说明书两者的内容较多;篇幅用户需求报告和需求规格说明书两者的内容较多;篇幅较长,少那么几十页,多那么上千页,一般为几百页较长,少那么几十页,多那么上千页,一般为几百页60562 2 用户需求报告用户需求报告 软件需求分为两种,一种是软件需求分为两种,一种是“用户需求报告,它是开用户需求报告,它是开发人员直接与用户打交道,直接向用户提交需求的报告发人员直接与用户打交道,直接向用户提交需求的报告另一种是分配的另一种是分配的“软件需求报告,它是开发人员不直接软件需求报告,它是开发人员不直接与用户打交道,只与系统集成工程组打交道,由系统集成与用户打交道,只与系统集成工程组打交道,由系统集成工程组将一个大工程分解为硬件和软件两局部,并将软件工程组将一个大工程分解为硬件和软件两局部,并将软件开发的任务分配给软件工程组,它相当于指令性软件开发开发的任务分配给软件工程组,它相当于指令性软件开发方案,是由软件工程组的分析人员与系统集成工程组共同方案,是由软件工程组的分析人员与系统集成工程组共同完成。
完成以业务流程为主线,以需求分析为中心,以功能、性能、以业务流程为主线,以需求分析为中心,以功能、性能、接口三个列表为根本点,按照规定的格式,就可以制作出接口三个列表为根本点,按照规定的格式,就可以制作出符合标准的用户需求报告符合标准的用户需求报告6057小小 结结 本章从需求分析的任务、目标、方法、经验、文档、管理等本章从需求分析的任务、目标、方法、经验、文档、管理等。