3.1 需求分析的任务需求分析的任务 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法 3.3 分析建模与规格说明分析建模与规格说明 3.4 实体实体-联系图联系图 3.5 数据规范化数据规范化 3.6 状态转换图状态转换图 3.7 其他图形工具其他图形工具 3.8 验证软件需求验证软件需求第第3章章 需求分析需求分析第第3章章 需求分析需求分析需求分析的任务:需求分析的任务:n需求分析是软件定义时期的最后一个阶段,它需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答的基本任务是准确地回答“系统必须做什么系统必须做什么?”这个问题这个问题n确定系统必须完成哪些工作,也就是对目标系确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求统提出完整、准确、清晰、具体的要求n系统分析员应该写出软件需求规格说明书,以系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求书面形式准确地描述软件需求n需求:需求:正在构建的系统必须符合的事务正在构建的系统必须符合的事务n需求管理:需求管理:是一种获取、组织并记录系统需求是一种获取、组织并记录系统需求的系统化方案以及一个使客户与项目团队不断的系统化方案以及一个使客户与项目团队不断变更的系统需求达成并保持一致的过程。
变更的系统需求达成并保持一致的过程n传统需求分析:传统需求分析:强调需求的记录,以一成不变强调需求的记录,以一成不变的观点对待需求,不重视需求实现与维护的观点对待需求,不重视需求实现与维护n现代需求过程:现代需求过程:包括需求的获取、分析、处理、包括需求的获取、分析、处理、验证、实现和全过程的需求管理需求管理覆验证、实现和全过程的需求管理需求管理覆盖软件工程的整个过程盖软件工程的整个过程传统与现代需求方法的比较:传统与现代需求方法的比较:需求管理过程需求管理过程需求管理功能需求管理功能需求管理思想方法需求管理思想方法传统传统局限于需求分局限于需求分析这一个阶段析这一个阶段注重具体的需注重具体的需求分析方法求分析方法一成不变的观点,一成不变的观点,注重注重“描述描述”的方的方法和过程,是纯技法和过程,是纯技术性的转换术性的转换现代现代全过程的,注全过程的,注重整个产品过重整个产品过程的全部程的全部功能范围更广,功能范围更广,包括获取、分包括获取、分析、处理、验析、处理、验证、实现和全证、实现和全过程的需求管过程的需求管理理注重需求实现与维注重需求实现与维护过程,处理不断护过程,处理不断变更的系统需求变更的系统需求需求管理存在的问题:需求管理存在的问题:n范围问题:系统目标、边界未被良好定义,用范围问题:系统目标、边界未被良好定义,用户和开发团队理解不一致。
户和开发团队理解不一致n理解问题:用户不能完全了解自己需要什么,理解问题:用户不能完全了解自己需要什么,对系统能力、局限更加不清楚;工程师不理解对系统能力、局限更加不清楚;工程师不理解用户的问题域和应用环境用户的问题域和应用环境n易变问题:需求随时间发生变化易变问题:需求随时间发生变化需求工程:需求工程:n20世纪世纪80年代中期,形成了软件工程的子领年代中期,形成了软件工程的子领域域需求工程需求工程n进入进入20世纪世纪90年代后,需求工程称为软件界研年代后,需求工程称为软件界研究的重点之一究的重点之一nAlan Davis 把需求工程定义为把需求工程定义为“直到(但不包直到(但不包括)把软件分解为实际架构构件之前的所有活括)把软件分解为实际架构构件之前的所有活动动”需求工程的阶段划分:需求工程的阶段划分:3.1 需求分析的任务需求分析的任务 n确定对系统的综合要求确定对系统的综合要求 n分析系统的数据要求分析系统的数据要求 n导出系统的逻辑模型导出系统的逻辑模型 n修正系统开发计划修正系统开发计划 3.1.1 确定对系统的综合要求确定对系统的综合要求 1.功能需求功能需求2.性能需求性能需求3.可靠性和可用性需求可靠性和可用性需求4.出错处理需求出错处理需求5.接口需求接口需求6.约束约束7.逆向需求逆向需求8.将来可能提出的要求将来可能提出的要求3.1.2 分析系统的数据要求分析系统的数据要求n建立数据模型建立数据模型ER图图 n描绘数据结构描绘数据结构层次方框图和层次方框图和Warnier图图 n数据结构规范化数据结构规范化 3.1.3 导出系统的逻辑模型导出系统的逻辑模型 n综合上述两项分析的结果可以导出系统的详细综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用的逻辑模型,通常用数据流图数据流图、实体实体-联系图联系图、状态转换图状态转换图、数据字典数据字典和和主要的处理算法主要的处理算法描述描述这个逻辑模型。
这个逻辑模型n根据在分析过程中获得的对系统的更深入更具根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划进度,修正以前制定的开发计划3.1.4 修正系统开发计划修正系统开发计划 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法n访谈访谈 n面向数据流自顶向下求精面向数据流自顶向下求精n简易的应用规格说明技术简易的应用规格说明技术 n快速建立软件原型快速建立软件原型 需求分析综合症需求分析综合症解决方案解决方案需求诱导的方法:需求诱导的方法:3.2.1 访谈访谈1.正式访谈正式访谈n系统分析员将提出一些事先准备好的具体问题系统分析员将提出一些事先准备好的具体问题2.非正式访谈非正式访谈n分析员将提出一些用户可以自由回答的开放性问题,分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法以鼓励被访问人员说出自己的想法3.调查表调查表n经过仔细考虑写出的书面回答可能比被访者对问题的经过仔细考虑写出的书面回答可能比被访者对问题的口头回答更准确口头回答更准确4.情景分析技术情景分析技术n对用户将来使用目标系统解决某个具体问题的对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。
方法和结果进行分析情景分析技术的用处:情景分析技术的用处:n能在某种程度上演示目标系统的行为,从而便能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求析员目前还不知道的需求n能保证用户在需求分析过程中始终扮演一个积能保证用户在需求分析过程中始终扮演一个积极主动的角色让用户起积极主动的作用对需极主动的角色让用户起积极主动的作用对需求分析工作获得成功是至关重要的求分析工作获得成功是至关重要的3.2.2 面向数据流自顶向下求精面向数据流自顶向下求精 1.分析追踪数据流图分析追踪数据流图n需求分析的目标之一就是把数据流和数据存储定义到需求分析的目标之一就是把数据流和数据存储定义到元素级,通常从数据流图的输出端着手分析元素级,通常从数据流图的输出端着手分析2.用户复查用户复查n必须请用户对上述分析过程中得出的结果仔细地复查必须请用户对上述分析过程中得出的结果仔细地复查复查过程验证了已知的元素,补充了未知的元素,填复查过程验证了已知的元素,补充了未知的元素,填补了文档中的空白补了文档中的空白n随着分析过程的进展,经过问题和解答的反复循环,随着分析过程的进展,经过问题和解答的反复循环,分析员越来越深入具体地定义了目标系统,最终得到分析员越来越深入具体地定义了目标系统,最终得到对系统数据和功能要求的满意了解。
对系统数据和功能要求的满意了解面向数据流自顶向下求精过程面向数据流自顶向下求精过程3.2.3 简易的应用规格说明技术简易的应用规格说明技术n简易的应用规格说明技术是一种简易的应用规格说明技术是一种面向团队面向团队的需的需求收集法求收集法n这种方法提倡用户与开发者密切合作,共同标这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并识问题,提出解决方案要素,商讨不同方案并指定基本需求指定基本需求分析需求的典型过程如下:分析需求的典型过程如下:1.初步访谈,准备会议初步访谈,准备会议n首先进行初步的访谈,初步确定待解决的问题首先进行初步的访谈,初步确定待解决的问题的范围和解决方案的范围和解决方案n然后开发者和用户分别写出然后开发者和用户分别写出“产品需求产品需求”选定会议的时间和地点,并选举协调人定会议的时间和地点,并选举协调人2.会前审查需求,确定列表会前审查需求,确定列表n要求每位与会者在开会的前几天认真审查产品要求每位与会者在开会的前几天认真审查产品需求,并且列出对象、操作这些对象或与这些需求,并且列出对象、操作这些对象或与这些对象交互的服务、约束条件和性能标准。
对象交互的服务、约束条件和性能标准3.会上讨论列表,创建组合列表会上讨论列表,创建组合列表n每位与会者展示列表供大家讨论大家共同创建一每位与会者展示列表供大家讨论大家共同创建一张组合列表由协调人主持讨论这些列表张组合列表由协调人主持讨论这些列表4.分组制定小型规格说明分组制定小型规格说明n与会者分成更小的小组,为每张列表中的项目制定与会者分成更小的小组,为每张列表中的项目制定小型规格说明每个小组都向全体与会者展示他们小型规格说明每个小组都向全体与会者展示他们制定的小型规格说明,供大家讨论制定的小型规格说明,供大家讨论5.制定确认标准,起草需求规格说明书制定确认标准,起草需求规格说明书n每个与会者都制定出产品的一整套确认标准,并提每个与会者都制定出产品的一整套确认标准,并提交会议讨论,以创建出意见一致的确认标准交会议讨论,以创建出意见一致的确认标准n最后,起草完整的软件需求规格说明书最后,起草完整的软件需求规格说明书简易的应用规格说明技术的优点:简易的应用规格说明技术的优点:n开发者与用户不分彼此,齐心协力,密切合作;开发者与用户不分彼此,齐心协力,密切合作;n即时讨论并求精;即时讨论并求精;n有能导出规格说明的具体步骤。
有能导出规格说明的具体步骤3.2.4 快速建立软件原型快速建立软件原型 n快速建立软件原型是最准确、最有效、最强大快速建立软件原型是最准确、最有效、最强大的需求分析技术的需求分析技术n快速原型就是快速建立起来的旨在演示目标系快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序统主要功能的可运行的程序n构建原型的要点是,它应该实现用户看得见的构建原型的要点是,它应该实现用户看得见的功能,省略目标系统的功能,省略目标系统的“隐含隐含”功能快速原型的特性:快速原型的特性:n“快速快速”快速原型的目的是尽快向用户提供快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型因一个可在计算机上运行的目标系统的模型因此,原型的某些缺陷是可以忽略的此,原型的某些缺陷是可以忽略的n“容易修改容易修改”如果原型的第一版不是用户所如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它,需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户需求构建出原型的第二版,以更好地满足用户需求如果修改耗时过多,势必延误软件开发时间如果修改耗时过多,势必延误软件开发时间。
快速原型通常使用下述快速原型通常使用下述3种方法和工具:种方法和工具:(1)第四代技术(第四代技术(4GL)n第四代技术包括众多数据库查询(如第四代技术包括众多数据库查询(如SQL)和)和报表语言(如报表语言(如ADF)、程序和应用系统生成器)、程序和应用系统生成器(如(如Power Builder和和Oracle的应用开发环境)的应用开发环境)以及其他非常高级的非过程语言以及其他非常高级的非过程语言n第四代技术使得软件工程师能够快速地生成可第四代技术使得软件工程师能够快速地生成可执行的代码,它们是较理想的快速原型工具执行的代码,它们是较理想的快速原型工具第四代技术特点:第四代技术特点:n简单易学,用户界面良好,面向问题、非过程化程度简单易学,用户界面良好,面向问题、非过程化程度高,用户只需告知系统做什么,而无需说明怎么做高,用户只需告知系统做什么,而无需说明怎么做用用4GL编程使用的代码量较少,并可成数量级地提高编程使用的代码量较少,并可成数量级地提高软件生产率软件生产率程序设计语言划代:程序设计语言划代:n1GL是汇编语言;是汇编语言;n2GL是高级程序设计语言,如是高级程序设计语言,如FORTRAN,ALGOL,BASIC,LISP等;等;n3GL是增强性的高级程序设计语言,如是增强性的高级程序设计语言,如PASCAL,ALGOL68,FORTRAN77等;等;n4GL是按计算机科学理论指导设计出来的结构化语言,是按计算机科学理论指导设计出来的结构化语言,如如ADA,MODULA2,SMALLTALK80,JAVA,VB,VC,VF等。
等2)可重用的软件构件可重用的软件构件n另外一种快速构建原型的方法,是使用一组已另外一种快速构建原型的方法,是使用一组已有的软件构件有的软件构件(也称为组件也称为组件)来装配来装配(而不是从头而不是从头构造构造)原型n软件构件可以是数据结构软件构件可以是数据结构(或数据库或数据库),或软件,或软件体系结构构件体系结构构件(即程序即程序),或过程构件,或过程构件(即模块即模块)3)形式化规格说明和原型环境形式化规格说明和原型环境n非形式化方法:自然语言描述非形式化方法:自然语言描述n半形式化方法:数据流图或实体半形式化方法:数据流图或实体-联系图联系图n形式化方法:基于数学的技术形式化方法:基于数学的技术 3.3 分析建模与规格说明分析建模与规格说明3.3.1 分析建模分析建模n模型:模型:就是为了理解事物而对事物做出的一种就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述通抽象,是对事物的一种无歧义的书面描述通常,模型由一组图形符号和组织这些符号的规常,模型由一组图形符号和组织这些符号的规则组成n结构化分析过程:结构化分析过程:实质上是一种创建模型的活实质上是一种创建模型的活动。
系统分析员从不同角度抽象出目标系统的动系统分析员从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型型中,直至最终用程序实现模型分析模型的结构分析模型的结构n需求分析过程需求分析过程应该建立应该建立3种模种模型,分别是:型,分别是:q数据模型数据模型q功能模型功能模型q行为模型行为模型 n数据字典:数据字典:是分析模型的核心,它描述软件使是分析模型的核心,它描述软件使用或产生的所有数据对象用或产生的所有数据对象n实体实体-联系图:联系图:描绘数据对象及数据对象之间描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形的关系,是用于建立数据模型的图形n数据流图:数据流图:描绘当数据在软件系统中移动时被描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。
功能,因此,数据流图是建立功能模型的基础n状态转换图状态转换图(简称为状态图简称为状态图):指明了作为外部指明了作为外部事件结果的系统行为为此,状态转换图描绘事件结果的系统行为为此,状态转换图描绘了系统的各种行为模式了系统的各种行为模式(称为称为“状态状态”)和在不和在不同状态间转换的方式状态转换图是行为建模同状态间转换的方式状态转换图是行为建模的基础3.3.2 软件需求规格说明软件需求规格说明 n通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档得出的最主要的文档n通常用自然语言完整、准确、具体地描述系统通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求逆向需求以及将来可能提出的要求我国定义了我国定义了GB856D-1988国家标准,给出了需求规格说国家标准,给出了需求规格说明的内容框架:明的内容框架:1 引言引言 1.1 编写目的编写目的 1.2 项目背景(单位和其他系统项目背景(单位和其他系统的关系)的关系)1.3 定义(专门术语和缩写词)定义(专门术语和缩写词)2 任务概述任务概述 2.1 目标目标 2.2 运行环境运行环境 2.3 条件限制条件限制3 数据描述数据描述 3.1 静态数据静态数据 3.2 动态数据动态数据 3.3 数据库描述数据库描述 3.4 数据字典数据字典 3.5 数据采集数据采集4 功能需求功能需求 4.1 功能划分功能划分 4.2 功能描述功能描述5 性能需求性能需求 5.1 数据精确度数据精确度 5.2 时间特性时间特性 5.3 适应性适应性6 运行需求运行需求 6.1 用户界面用户界面 6.2 硬件接口硬件接口 6.3 软件接口软件接口 6.4 故障处理故障处理7 其他需求其他需求(检测或验收标准、可用性、可(检测或验收标准、可用性、可维护性、可移植性、安全保密性)维护性、可移植性、安全保密性)练习题:练习题:习题习题3.3,画数据流图,画数据流图顶层数据流图顶层数据流图功能级数据流图功能级数据流图细化的数据流图细化的数据流图3.4 实体实体-联系图联系图n概念性数据模型是一种面向问题的数据模型,概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。
它描述是按照用户的观点对数据建立的模型它描述了从用户角度看到的数据,它反映了用户的现了从用户角度看到的数据,它反映了用户的现实环境,且与在软件系统中的实现方法无关实环境,且与在软件系统中的实现方法无关n数据模型中包含数据模型中包含3种相互关联的信息:种相互关联的信息:q数据对象数据对象q数据对象的数据对象的属性属性q数据对象彼此间相互连接的数据对象彼此间相互连接的关系关系 3.4.1 数据对象数据对象 n数据对象:数据对象:是对软件必须理解的复合信息的抽是对软件必须理解的复合信息的抽象复合信息是指具有一系列不同性质或属性象复合信息是指具有一系列不同性质或属性的事物,仅有单个值的事物不是数据对象的事物,仅有单个值的事物不是数据对象n数据对象可以是数据对象可以是外部实体外部实体、事物事物、行为行为、事件事件、角色角色、单位单位、地点地点或或结构结构等n数据对象彼此间是有关联的数据对象彼此间是有关联的3.4.2 属性属性n属性:属性:定义了数据对象的性质必须把一个或定义了数据对象的性质必须把一个或多个属性定义为多个属性定义为“标识符标识符”n根据对问题的理解来确定特定数据对象的合适根据对问题的理解来确定特定数据对象的合适的属性。
的属性3.4.3 联系联系n联系:联系:数据对象彼此之间相互连接的方式称为数据对象彼此之间相互连接的方式称为联系,也称为关系联系,也称为关系n联系可分为以下联系可分为以下3种类型:种类型:q一对一联系一对一联系(1 1)q一对多联系一对多联系(1 N)q多对多联系多对多联系(M N)n联系也可能有属性联系也可能有属性3.4.4 实体实体-联系图的符号联系图的符号ER图中包含:图中包含:n实体实体(即数据对象即数据对象),用矩形框表示;,用矩形框表示;n关系,用连接相关实体的菱形框表示;关系,用连接相关实体的菱形框表示;n属性,用椭圆形或圆角矩形表示,并用直线把属性,用椭圆形或圆角矩形表示,并用直线把实体实体(或关系或关系)与其属性连接起来与其属性连接起来例例1:某校教学管理系统的某校教学管理系统的ER图图ER图的优点:图的优点:n比较接近人的习惯思维方式;比较接近人的习惯思维方式;n用简单的图形符号表达系统分析员对问题域的理解,用简单的图形符号表达系统分析员对问题域的理解,用户也容易理解,可以作为用户与分析员之间有效的用户也容易理解,可以作为用户与分析员之间有效的交流工具交流工具数据建模工具:数据建模工具:以自动化的方式创建以自动化的方式创建ER图、数据字典图、数据字典及相关模型。
及相关模型qAllFusion ERWin 辅助设计数据库、数据对象、结构、关键辅助设计数据库、数据对象、结构、关键元素元素qER/Studio 支持实体支持实体-关系建模关系建模qOracle Designer 建模、应用系统和数据库设计建模、应用系统和数据库设计qMeta Scope 图形化显示数据图形化显示数据qModel Sphere Visible Analyst 模型可视化分析模型可视化分析例例2:习题习题3.3,银行储蓄系统的,银行储蓄系统的ER图图 银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的工作过程大致如下:n储户填写的存款单或取款单由业务员键入系统储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址,如果是存款则系统记录存款人姓名、住址(或号码或号码)、身份证号码、存款类型、存款、身份证号码、存款类型、存款日期、到期日期、利率及密码日期、到期日期、利率及密码(可选可选)等信息,等信息,并印出存单给储户;并印出存单给储户;n如果是取款而且存款时留有密码,则系统首先如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
则系统计算利息并印出利息清单给储户银行储蓄系统的银行储蓄系统的ER图图 3.5 数据规范化数据规范化n数据结构规范化:数据结构规范化:软件系统经常使用各种长期软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化过程,通常需要把数据结构规范化n范式:范式:通常用通常用“范式范式(normal forms)”定义消除定义消除数据冗余的程度第一范式数据冗余的程度第一范式(1 NF)数据冗余程数据冗余程度最大,第五范式度最大,第五范式(5 NF)数据冗余程度最小数据冗余程度最小q范式级别越高,存储同样数据需要分解成更多张范式级别越高,存储同样数据需要分解成更多张表,因此,表,因此,“存储自身存储自身”过程越复杂过程越复杂q随着范式级别的提高,数据的存储结构与基于问随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因此,在题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。
需求变化时数据的稳定性较差q范式级别提高则需要访问的表增多,因此性能范式级别提高则需要访问的表增多,因此性能(速速度度)将下降第一、第二和第三范式的定义:第一、第二和第三范式的定义:n第一范式,每个属性值都必须是原子值,即仅第一范式,每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构仅是一个简单值而不含内部结构n第二范式,满足第一范式条件,而且每个非关第二范式,满足第一范式条件,而且每个非关键字属性都由整个关键字决定键字属性都由整个关键字决定(而不是由关键而不是由关键字的一部分来决定字的一部分来决定)n第三范式,符合第二范式的条件,每个非关键第三范式,符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一属性不能仅仅是对另一个非关键字属性的进一步描述步描述(即一个非关键字属性值不依赖于另一即一个非关键字属性值不依赖于另一个非关键字属性值个非关键字属性值)3.6 状态转换图状态转换图n状态转换图:状态转换图:通过描绘系统的状态及引起系统通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态转换的事件,来表示系统的行为n状态图还指明了作为特定事件的结果系统将做状态图还指明了作为特定事件的结果系统将做哪些动作哪些动作(例如,处理数据例如,处理数据)3.6.1 状态状态 n状态:状态:是任何可以被观察到的系统行为模式,一个状是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式状态规定了系统对事件态代表系统的一种行为模式状态规定了系统对事件的响应方式的响应方式n状态主要有:状态主要有:q初态初态(即初始状态即初始状态),只能有,只能有1个个q终态终态(即最终状态即最终状态),可以有,可以有0至多个至多个q中间状态中间状态n状态图分类:状态图分类:q表示系统循环运行过程,通常不关心循环是怎样启动的表示系统循环运行过程,通常不关心循环是怎样启动的q表示系统单程生命期,需要标明初始状态和最终状态表示系统单程生命期,需要标明初始状态和最终状态3.6.2 事件事件n事件:事件:是在某个特定时刻发生的事情,它是对是在某个特定时刻发生的事情,它是对引起系统做动作或引起系统做动作或(和和)从一个状态转换到另一从一个状态转换到另一个状态的外界事件的抽象简而言之,事件就个状态的外界事件的抽象。
简而言之,事件就是引起系统做动作或是引起系统做动作或(和和)转换状态的控制信息转换状态的控制信息3.6.3 符号符号n初态:用实心圆表示;初态:用实心圆表示;n终态:用一对同心圆终态:用一对同心圆(内圆为实心圆内圆为实心圆)表示;表示;n中间状态:用圆角矩形表示,分成上、中、下中间状态:用圆角矩形表示,分成上、中、下3部分q上面部分上面部分-为状态的名称;为状态的名称;q中间部分中间部分-为状态变量的名字和值;为状态变量的名字和值;q下面部分下面部分-是活动表是活动表n带箭头的连线:称为状态转换,箭头指明了转带箭头的连线:称为状态转换,箭头指明了转换方向状态图中使用的主要符号状态图中使用的主要符号活动表的语法格式:活动表的语法格式:事件名事件名(参数表参数表)/动作表达式动作表达式n“事件名事件名”可以是任何事件的名称可以是任何事件的名称n常用的常用的3种标准事件:种标准事件:qentry事件指定进入该状态的动作;事件指定进入该状态的动作;qexit事件指定退出该状态的动作;事件指定退出该状态的动作;qdo事件则指定在该状态下的动作事件则指定在该状态下的动作n需要时可以为事件指定参数表。
活动表中的动需要时可以为事件指定参数表活动表中的动作表达式描述应做的具体动作作表达式描述应做的具体动作事件表达式的语法:事件表达式的语法:事件说明守卫条件动作表达式事件说明守卫条件动作表达式n事件说明的语法为:事件名事件说明的语法为:事件名(参数表参数表)n守卫条件是一个布尔表达式如果同时使用事守卫条件是一个布尔表达式如果同时使用事件说明和守卫条件,则当且仅当事件发生且布件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生如果只有尔表达式为真时,状态转换才发生如果只有守卫条件没有事件说明,则只要守卫条件为真守卫条件没有事件说明,则只要守卫条件为真状态转换就发生状态转换就发生n动作表达式是一个过程表达式,当状态转换开动作表达式是一个过程表达式,当状态转换开始时执行该表达式始时执行该表达式3.6.4 例子例子例例1:系统系统例例2:银行储蓄系统银行储蓄系统存款过程的状态图存款过程的状态图例例2:银行储蓄系统银行储蓄系统取款过程的状态图取款过程的状态图3.7 其他图形工具其他图形工具3.7.1 层次方框图层次方框图n层次方框图:层次方框图:用树形结构的一系列多层次的矩用树形结构的一系列多层次的矩形框描绘数据的层次结构。
形框描绘数据的层次结构n树形结构的顶层是一个单独的矩形框,它代表树形结构的顶层是一个单独的矩形框,它代表完整的数据结构;完整的数据结构;n下面的各层矩形框代表这个数据的子集;下面的各层矩形框代表这个数据的子集;n最底层的各个框代表组成这个数据的实际数据最底层的各个框代表组成这个数据的实际数据元素元素(不能再分割的元素不能再分割的元素)某计算机公司的全部产品的层次方框图某计算机公司的全部产品的层次方框图3.7.2 Warnier图图nWarnier图:图:和层次方框图类似,和层次方框图类似,Warnier图图也用树形结构描绘信息,但是这种图形工具比也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段层次方框图提供了更丰富的描绘手段n特点:特点:用用Warnier图可以表明信息的逻辑组织,图可以表明信息的逻辑组织,也可以表示特定信息在某一类信息中是有条件也可以表示特定信息在某一类信息中是有条件地出现的因为重复和条件约束是说明软件处地出现的因为重复和条件约束是说明软件处理过程的基础,所以很容易把理过程的基础,所以很容易把Warnier图转变图转变成软件设计的工具成软件设计的工具。
软件产品的软件产品的Warnier图图3.7.3 IPO图图nIPO图:图:是输入、处理、输出图的简称,它是是输入、处理、输出图的简称,它是美国美国IBM公司发展完善起来的一种图形工具,公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输能够方便地描绘输入数据、对数据的处理和输出数据之间的关系出数据之间的关系n基本形式:基本形式:是在左边的框中列出有关的输入数是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据在框内列出产生的输出数据在IPO图中还用类图中还用类似向量符号的粗大箭头清楚地指出数据通信的似向量符号的粗大箭头清楚地指出数据通信的情况主文件更新处理的主文件更新处理的IPO图图n改进的改进的IPO图:图:这这种图中包含某些附种图中包含某些附加的信息,在软件加的信息,在软件设计过程中将比原设计过程中将比原始的始的IPO图更有用图更有用n在需求分析阶段可在需求分析阶段可以使用以使用IPO图简略图简略地描述系统的主要地描述系统的主要算法算法(即数据流图中即数据流图中各个处理的基本算各个处理的基本算法法)。
IPO表表系统:定货系统系统:定货系统 作者:祁燕作者:祁燕模块:处理事务模块:处理事务 日期:日期:2010.3编号:编号:1.0被调用:被调用:定货系统定货系统调用:调用:接受事务接受事务 更新库存清单更新库存清单 处理定货处理定货输入:输入:事务事务输出:定货信息输出:定货信息 库存清单库存清单处理:处理:(用过程描述工具描述本模块的算法,(用过程描述工具描述本模块的算法,如如PAD图、图、N-S图、伪代码等)图、伪代码等)局部数据元素:局部数据元素:注释:注释:3.8 验证软件需求验证软件需求3.8.1 从哪些方面验证软件需求的从哪些方面验证软件需求的正确性正确性n一致性一致性,所有需求必须是一致的,任何一条需,所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾求不能和其他需求互相矛盾n完整性完整性,需求必须是完整的,规格说明书应该,需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能包括用户需要的每一个功能或性能n现实性现实性,指定的需求应该是用现有的硬件技术,指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的和软件技术基本上可以实现的n有效性有效性,必须证明需求是正确有效的,确实能,必须证明需求是正确有效的,确实能解决用户面对的问题。
解决用户面对的问题3.8.2 验证软件需求的方法验证软件需求的方法1.验证需求的一致性验证需求的一致性n人工技术审查人工技术审查n形式化的描述软件需求的方法形式化的描述软件需求的方法2.验证需求的现实性验证需求的现实性n仿真或性能模拟技术仿真或性能模拟技术3.验证需求的完整性和有效性验证需求的完整性和有效性n开发原型系统开发原型系统3.8.3 用于需求分析的软件工具用于需求分析的软件工具软件工具应该满足下列要求:软件工具应该满足下列要求:n必须有形式化的语法必须有形式化的语法(或表或表),因此可以用计算,因此可以用计算机自动处理使用这种语法说明的内容;机自动处理使用这种语法说明的内容;n使用这个软件工具能够导出详细的文档;使用这个软件工具能够导出详细的文档;n必须提供分析必须提供分析(测试测试)规格说明书的不一致性和规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;明对完整性分析的结果;n使用这个软件工具之后,应该能够改进通信状使用这个软件工具之后,应该能够改进通信状况ER图练习题:图练习题:n请为某仓库的管理设计一个请为某仓库的管理设计一个ER模型。
该仓库模型该仓库主要管理零件(包括零件编号、名称、颜色、主要管理零件(包括零件编号、名称、颜色、重量)的定购和供应等事项仓库向工程项目重量)的定购和供应等事项仓库向工程项目(包括项目编号、项目名称、开工日期)供应(包括项目编号、项目名称、开工日期)供应零件,并且根据需要向供应商(包括供应商编零件,并且根据需要向供应商(包括供应商编号、名称、地址)定购零件号、名称、地址)定购零件仓库管理系统的仓库管理系统的ER图图状态图练习题:状态图练习题:习题习题3.6 复印机的工作过程大致如下:复印机的工作过程大致如下:n未接到复印命令时处于闲置状态,一旦接到复未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印定的工作后又回到闲置状态,等待下一个复印命令;命令;n如果执行复印命令时发现没纸,则进入缺纸状如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;状态,准备接收复印命令;n如果复印时发生卡纸故障,则进入卡纸状态,如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
后回到闲置状态演讲完毕,谢谢观看!。