第四章软件工程需求分析基础第四章需求分析基础•需求分析的任务与原则(重点)需求分析的任务需求分析的过程软件需求分析的原则•初步需求获取技术•需求建模(重点)•问题抽象、问题分解与多视点分析•支持需求分析的快速原型技术•需求规格说明书软件需求:用户对目标软件系统在功能、行为、性能、设计约束等方面的期望§4.1需求分析的任务与原则软件需求析:对应用问题及环境的理解和分析,为问题涉及的信息、功能及系统行为建立模型。将用户需求精确化、完全化,最终形成需求规格说明书需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。目标系统当前系统物理模型逻辑模型模型化抽象化物理模型逻辑模型具体化实例化理解需求表达需求导出怎么做做什么需求分析的任务•通常软件开发项目是要实现目标系统的物理模型•目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的•需求分析研究的对象是软件项目的用户要求•准确地表达被接受的用户要求•确定被开发软件系统的系统元素•将功能和信息结构分配到这些系统元素中•需求分析的任务深入描述软件的功能和性能确定软件设计的约束和软件同其它系统元素的接口细节定义软件的其它有效性需求需求分析的具体任务•需求分析阶段的具体任务:确定对系统的综合要求系统功能要求系统性能要求运行要求将来可能提出的要求分析系统的数据要求(需求分析的本质就是对数据和加工进行分析,如用数据流程图、ER图)•导出系统的逻辑模型•修正系统开发计划•开发原型系统•编写软件需求规格说明书需求分析标准和过程•需求的四项基本标准明确(clear)完整(complete)一致(consistent)可测试(testable)•需求分析的过程:对问题的识别、需求描述(分析与综合)、制定规格说明和需求评审。•问题识别从系统的角度来理解软件并评审软件范围是否恰当确定对目标系统的综合要求,即软件的需求提出这些需求实现条件,以及需求应达到的标准•功能需求•性能需求•环境需求•可靠性需求•安全保密要求•用户界面需求•资源使用需求•成本消耗需求•开发进度需求•预先估计以后系统可能达到的目标需求分析的过程问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。软件的需求包括:需求分析的过程•分析与综合从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的关联、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。•常用的分析方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA)等需求分析的过程•编制需求分析阶段的文档软件需求说明书数据要求说明书初步的用户手册修改、完善与确定软件开发实施计划•需求分析评审系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;与所有其它系统成分的重要接口是否都已经描述;需求分析的过程•需求分析评审被开发项目的数据流与数据结构是否足够,确定;所有图表是否清楚,在不补充说明时能否理解;主要功能是否已包括在规定的软件范围之内,是否都已充分说明;设计的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否考虑过软件需求的其它方案;是否考虑过将来可能会提出的软件需求;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;需求分析流程软件需求分析的原则1、需要能够表达和理解问题的信息域和功能域信息域应包括:信息流:数据和控制通过一个系统时的变化方式。两个功能之间的数据/控制传递就确定了功能间的接口。信息内容:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的集合。信息结构:各种数据和控制项的内部组织。2、以层次化的方式对问题进行分解和不断细化软件的功能域和信息域都能做进一步的分解。这种分解可以是同一层次上的,称为横向分解;也可以是多层次的纵向分解。软件需求分析的原则3、要给出系统的逻辑视图和物理视图软件需求的逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系,而不是实现的细节。软件需求的逻辑描述是软件设计的基础。软件需求的物理视图给出的是处理功能和数据结构的实际表现形式,这往往是由设备本身决定的。纵向分解横向分解软件需求规格说明的原则•从现实中分离功能,即描述要“做什么”而不是“怎样实现”•要求使用面向处理的规格说明语言(或称系统定义语言)•如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中•规格说明必须包括系统运行环境•规格说明必须是一个认识模型•规格说明必须是可操作的•规格说明必须容许不完备性并允许扩充•规格说明必须局部化和松散耦合软件需求方法•需求分析方法由对软件问题的信息域和功能域的系统分析过程及其表示方法组成•大多数的需求分析方法是由信息驱动的•信息域具有三种属性:信息流、信息内容和信息结构。§4.2需求获取技术•需求获取技术包括两方面的工作建立获取用户要求的方法的框架;支持和监控需求获取的过程的机制。•获取用户需求的主要方法是调查研究需求调查的内容:组织概况、组织的业务活动、组织的业务状态、业务的详细内容、输入输出信息(信息流向、信息种类、利用的目的、信息的使用者和制造者、输入和输出地点、输入和输出信息量)、存在问题、约束条件、未来要求了解系统的需求软件开发是系统开发的一部分,仔细分析研究系统的需求规格说明,对软件的需求获取是很有必要的需求调查对象对组织的高层管理者,进行组织管理目标或经营方针等组织战略问题的调查对中层的管理者,进行全部业务流的调查对业务工作人员,进行详细业务信息的调查市场调查了解市场对待开发软件有什么样的要求;了解市场上有无与待开发软件类似的系统考察现场了解用户实际的操作环境、操作过程和操作要求。对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。观察用户工作流程用户和开发人员共同组成联合小组•调查研究方式发调查表;召开调查会;向用户领域的专家咨询;实地考察,跟踪现场业务流程;查阅有关的资料;使用各种调查工具等。•需求调查策略调查必须按计划进行,即制订调查进度计划掌握调查顺序。自顶向下顺序适于业务层次性较强、功能划分比较明确的系统;自底向上顺序适于业务相对分散且层次性不很强、功能划分不十分明确的系统。在调查过程中要注意数量概念,要收集足够的数字供定量分析之用在调查中要适时地对收集的资料进行研究分析在调查过程中掌握正确的调查态度§4.3需求建模•使用业务流程图建立需求模型需求模型不涉及软件实现和实现细节,是框架性的模型系统流程图是描绘物理系统的传统工具。它表示所描述部件的信息流图,而不表示信息加工的控制过程。系统流程图在可行性研究阶段也可以使用系统流程图可用图形符号来表示系统中的各个元素。例如,人工处理、数据处理、数据库、文件等。画系统流程图时,要搞清业务处理过程即处理中的各个元素,同时要理解系统的流程图各个符号的含义。系统流程图的符号符号名称说明处理代表加工或部件程序输入/输出表示不指具体设备的输入或输出连接同一页内的连接换页连接不同页的连接数据流指明信息流向文档表示打印输出磁带磁带输入/输出联机存储表示任何种类的联机存储磁盘磁盘输入/输出系统流程图的符号显示终端显示部件人工输入人工脱机处理,如填表格人工操作人工完成处理,如支票签字通信链路远程通信线路送数据挂号患者终端诊断系统知识库药库病例处方交款处方收讫取药某工厂的库房存放该厂生产需要的物品,库房中的各种物品的数量及各种物品库存量临界值等数据记录在库存文件上,当库房中物品数量有变化时,应更新库存文件。若某种物品的库存量少于库存临界值,则报告采购部门以便其订货,每天向采购部门送一份采购报告。库存管理模块订货信息变更生产模块库存订货报告输入变更记录§4.4问题抽象、问题分解与多视点分析•问题抽象•问题分解•多视点分析§4.5支持需求分析的快速原型技术•快速生成简单需求格式说明•检查、修订、评审•使用软件工具生成原型系统•提交用户评估•修改需求原型,重复上述过程§4.6需求规格说明与评审•需求格式说明书的目标用户、分析人员和设计人员交流目标系统的确认控制系统化过程•需求格式说明书的内容需求评审正确性无歧义性完全性一致性可验证性可理解性可修改性可追踪性需求规格说明书提纲1、引言1.1目的1.2背景1.3定义1.4参考资料2、项目概述2.1产品描述2.2产品功能2.3用户特点2.4一般约束2.5假设与依据3、具体需求3.1功能需求3.1.1规格说明3.1.1.1引言3.1.1.2输入3.1.1.3输出3.1.1.4加工3.1.2外部接口3.1.2.1用户接口3.1.2.2硬件接口3.1.2.3软件接口3.1.2.4通讯接口3.2性能需求3.2.1数据精度3.2.2时间特性3.2.3适应性3.3设计约束3.4属性需求3.4.1安全性3.4.2可维护性3.4.3保密性……附录索引•预习内容:第五章1-3节•作业:P110-1114.3、4.4、4.5、4.7•课堂讨论:根据学籍管理手册,通过预习第四章内容,如果你到学生处、教务处进行需求分析,拟定调查提纲教务管理系统调查分析过程•1、认真学习教务管理方面的知识,重点掌握其中的名词和术语•2、收集目前教务管理方面资料和软件,了解其特点,重点了解国家或商品化通用软件情况•3、写出调查计划、设计调查工作底稿•4、走访教务处、学生处领导和核心管理人员,了解组织机构、管理模式及内容、主要业务、国家标准、主要管理、业务文件及管理制度、存在问题,重点了解业务量大和问题多的业务。收集相关管理业务文件、国家标准样本方式:座谈会•5、写出主要业务分布图、整理调查底稿和调查方案,与教务处、学生处领导和核心管理人员交流,修改业务分布图、整理调查底稿,用户签字认可。6、根据业务分布图,与教务处、学生处负责报表处理的业务人员进行访问,进行输出数据流调查。了解主要报表及其数据的来源、组成、计算公式、审核公式、勾稽关系。收集报表样本(空表和带数据的真实报表),了解报表软件的情况和上下级部门十分需要的统计数据(手工统计十分困难)。方式:个别调查7、写出报表组成结构图,与相关业务人员交流,反复修改,让用户签字认可。8、根据业务分布图,与教务处、学生处各个业务部门的负责基础数据组织的业务人员进行访问,进行输入数据流调查。了解其基础数据来源(收集原始样本,特别是有时效性数据)、去向(和输出报表关系)、组成(数据元素及属性、数据结构、关系调查,收集带数据的原始样本)、处理情况(数据量、峰值、峰值日期、时间及数据流动中的时序关系),特别了解有规律性、需进行积累的历史数据、有变化的基础数据。方式:个别调查(须逐一进行,耗时较多)9、画出业务流程图、HIPO图、数据流程图、数据流动时序图及ER图,写出数据字典10、将业务流程图、HIPO图、数据流程图、数据流动时序图及ER图、数据字典与相应业务人员进行交流后反复修改,让用户签字认可。11、进行系统内部信息编码及来源于外系统的信息编码分析12、画出正式的数据流程图及ER图,写出数据字典13、根据ER图,进行数据库初步设计,使之尽量满足3NF15、写出需求分析说明书16、进行需求分析评审学生管理—学生处、各系学办1、新生入学新生报到记录入学后复查(三个月内按照招生规定进行)新生转系、转班的申请,经教务处批准后,变动后的新生名单表返回给班主任和学办各一份。新生填写基本信息卡、学籍卡一式两份,分别给学生处进行存档备案以及学办进行录入登记,转入在校生基本信息卡中。学籍卡片是新生复查合格后,取得学校学籍以后,才进行填写的。招生办教务处原新生各班名单表宿管科寝