第03章 软件需求分析.ppt
n第一节需求分析的任务和过程n第二节结构化分析方法n第三节Use Case用例分析n第四节类图分析13.13.1软件需求分析的任务软件需求分析的任务n n深入描述软件的功能和性能深入描述软件的功能和性能深入描述软件的功能和性能深入描述软件的功能和性能n n决定解决方案,完成高层次的设计,确定软件设计的约束和软决定解决方案,完成高层次的设计,确定软件设计的约束和软决定解决方案,完成高层次的设计,确定软件设计的约束和软决定解决方案,完成高层次的设计,确定软件设计的约束和软件同其它系统元素的接口细节件同其它系统元素的接口细节件同其它系统元素的接口细节件同其它系统元素的接口细节n n定义软件的其它有效性需求定义软件的其它有效性需求定义软件的其它有效性需求定义软件的其它有效性需求,分析所定出的产品要求,判断其分析所定出的产品要求,判断其分析所定出的产品要求,判断其分析所定出的产品要求,判断其正确性、一致性、完整性和可行性正确性、一致性、完整性和可行性正确性、一致性、完整性和可行性正确性、一致性、完整性和可行性把产品要求以用户手册及工程设计技术要求的形式表达出来把产品要求以用户手册及工程设计技术要求的形式表达出来把产品要求以用户手册及工程设计技术要求的形式表达出来把产品要求以用户手册及工程设计技术要求的形式表达出来(可能还包括测试的标准),用于在开发的全过程中验证核实(可能还包括测试的标准),用于在开发的全过程中验证核实(可能还包括测试的标准),用于在开发的全过程中验证核实(可能还包括测试的标准),用于在开发的全过程中验证核实所开发的产品确能满足用户的要求,支持技术文档的管理,更所开发的产品确能满足用户的要求,支持技术文档的管理,更所开发的产品确能满足用户的要求,支持技术文档的管理,更所开发的产品确能满足用户的要求,支持技术文档的管理,更重要的是支持需求变化的管理。重要的是支持需求变化的管理。重要的是支持需求变化的管理。重要的是支持需求变化的管理。2n n需求分析研究的对象是软件项目的用需求分析研究的对象是软件项目的用户要求户要求n n准确地表达被接受的用户要求准确地表达被接受的用户要求n n确定被开发软件系统的系统元素确定被开发软件系统的系统元素n n将功能和信息结构分配到这些系统元将功能和信息结构分配到这些系统元素素(需求工程需求工程)3需求工程的重要性需求工程的重要性Standish GroupStandish Group对对350350家公司的家公司的80008000个软件项目作过一次调个软件项目作过一次调查。其中,查。其中,31%31%的项目的结局是被取消。的项目的结局是被取消。导致这些项目失败的原因是:导致这些项目失败的原因是:1.1.13.1%13.1%不完整的产品要求;不完整的产品要求;2.2.12.4%12.4%缺乏用户的参与;缺乏用户的参与;3.3.10.6%10.6%缺少资源(人力、财力);缺少资源(人力、财力);4.4.9.9%9.9%不现实的期望;不现实的期望;5.5.9.3%9.3%高层领导支持不足;高层领导支持不足;6.6.8.7%8.7%产品要求与指标的改变;产品要求与指标的改变;7.7.8.1%8.1%没有制订计划;没有制订计划;8.8.7.5%7.5%不再需耍该开发中的系统。不再需耍该开发中的系统。其中,与产品需求有关的其中,与产品需求有关的(1,2,4(1,2,4和和6 6项项)占了占了44.1%44.1%。这些数。这些数据突出地显示了软件产品需求在软件开发中的重要性。据突出地显示了软件产品需求在软件开发中的重要性。43.1.1需求分析任务的抽象n n需求分析的任务就是借助于当前系统的需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解逻辑模型导出目标系统的逻辑模型,解决目标系统的决目标系统的“做什么做什么”的问题。的问题。5n n通常软件开发项目是要实现目标系通常软件开发项目是要实现目标系统的物理模型统的物理模型n n目标系统的具体物理模型是由它的目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个逻辑模型经实例化,即具体到某个业务领域而得到的业务领域而得到的捕获问题空间的捕获问题空间的“一般一般/特殊特殊”关系关系是认识是认识、构造问题的一般途径、构造问题的一般途径63.1.23.1.2需求分析的过程需求分析的过程(1)问题识别问题识别 从系统的角度来理解软件并评审从系统的角度来理解软件并评审 软件软件范围是否恰当范围是否恰当 确定对目标系统的综合要求,即软件确定对目标系统的综合要求,即软件的需求的需求 提出这些需求实现条件,以及需求应提出这些需求实现条件,以及需求应达到的标准达到的标准7软件的需求包括软件的需求包括:n n功能需求功能需求n n性能需求性能需求n n环境需求环境需求n n可靠性需求可靠性需求n n安全保密要求安全保密要求n n用户界面需求用户界面需求n n资源使用需求资源使用需求n n成本消耗需求成本消耗需求n n开发进度需求开发进度需求n n预先估计以后系统可预先估计以后系统可能达到的目标能达到的目标8用户需求用户需求:获得获得需求的角度需求的角度n n正常需求正常需求正常需求正常需求u用户陈述的针对系统的目标n n期望的需求期望的需求期望的需求期望的需求u隐式的需求,可能由于是非常基础的而用户没有显示的陈述,如人机交互的容易性、整体的操作正确性和可靠性,以及软件安装的容易性n n兴奋的需求兴奋的需求兴奋的需求兴奋的需求u在用户的期望范围之外,如果实现将令人愉快和出乎意料9问问题题识识别别的的另另一一项项工工作作是是建建立立分分析析所所需需要要的的通通信信途途径径,以以保保证证能能顺顺利利地对问题进行分析地对问题进行分析。10恰当地选取问题和需求的切入点n所有问题和需求都有发生的根源,其表面现象往往是开所有问题和需求都有发生的根源,其表面现象往往是开发者思路的切入点。如果切入点是狭隘的,那么围绕着问发者思路的切入点。如果切入点是狭隘的,那么围绕着问题和需求的分析往往局限于自身的思路范围,问题和需求题和需求的分析往往局限于自身的思路范围,问题和需求产生的原因就很难发现。所以当不能理解分析的问题和需产生的原因就很难发现。所以当不能理解分析的问题和需求时,不妨先跳出思维惯例,寻求存在这样的问题和需求求时,不妨先跳出思维惯例,寻求存在这样的问题和需求的原因,然后再分析理解之。的原因,然后再分析理解之。n交替反复分析多个问题和需求,寻找问题间的共性和特交替反复分析多个问题和需求,寻找问题间的共性和特性。性。11n问题复杂化,是一个抽象问题或需求的逆过程。问题复杂化,是一个抽象问题或需求的逆过程。提出问题需求的许多可能的假设,丰富问题需求提出问题需求的许多可能的假设,丰富问题需求的形式。问题复杂化的意图是许多问题应该从更的形式。问题复杂化的意图是许多问题应该从更多的方面去验证不同环境下问题是否同样存在。多的方面去验证不同环境下问题是否同样存在。n问题抽象化,继而简化问题。众多的问题和需求问题抽象化,继而简化问题。众多的问题和需求变成程序式过程,就是公式化问题和需求。变成程序式过程,就是公式化问题和需求。12(2)分析与综合分析与综合 从信息流和信息结构出发,逐步细化从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型给出目标系统的详细逻辑模型。13(3)编制需求分析阶段的文档编制需求分析阶段的文档 软件需求说明书软件需求说明书 数据要求说明书数据要求说明书 初步的用户手册初步的用户手册 修改、完善与确定软件开发实施计划修改、完善与确定软件开发实施计划14(4)需求分析评审需求分析评审n n系统定义的目标是否与用户的要求一系统定义的目标是否与用户的要求一致致;n n系统需求分析阶段提供的文档资料是系统需求分析阶段提供的文档资料是否齐全否齐全;n n文档中的所有描述是否完整、清晰、文档中的所有描述是否完整、清晰、准确反映用户要求准确反映用户要求;n n与所有其它系统成分的重要接口是否与所有其它系统成分的重要接口是否都已经描述都已经描述;15n n被开发项目的数据流与数据结构是否被开发项目的数据流与数据结构是否足够,确定足够,确定;n n所有图表是否清楚,在不补充说明时所有图表是否清楚,在不补充说明时能否理解能否理解;n n主要功能是否已包括在规定的软件范主要功能是否已包括在规定的软件范围之内,是否都已充分说明围之内,是否都已充分说明;n n设计的约束条件或限制条件是否符合设计的约束条件或限制条件是否符合实际实际;n n开发的技术风险是什么开发的技术风险是什么;16n n是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案;n n是否考虑过将来可能会提出的软件需是否考虑过将来可能会提出的软件需求求;n n是否详细制定了检验标准,它们能否是否详细制定了检验标准,它们能否对系统定义是否成功进行确认对系统定义是否成功进行确认;173.1.43.1.4软件需求分析的原则软件需求分析的原则n n需要能够表达和理解问题的信息域需要能够表达和理解问题的信息域和和功能域功能域n n要能以层次化的方式对问题进行要能以层次化的方式对问题进行分分解解和不断和不断细化细化n n要给出系统的要给出系统的逻辑视图逻辑视图和和物理视图物理视图18捕获问题空间的捕获问题空间的“整体整体/部分部分”关系是降低问题复杂性关系是降低问题复杂性的基本途径之一的基本途径之一19软件需求规格说明软件需求规格说明的原则的原则n n从现实中分离功能,即描述要从现实中分离功能,即描述要“做什做什么么”而不是而不是“怎样实现怎样实现”n n要求使用面向处理的规格说明语言要求使用面向处理的规格说明语言(或称系统定义语言)(或称系统定义语言)n n如果被开发软件只是一个大系统中的如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在一个元素,那么整个大系统也包括在规格说明的描述之中规格说明的描述之中20n n规格说明必须包括系统运行环境规格说明必须包括系统运行环境n n规格说明必须是一个认识模型规格说明必须是一个认识模型n n规格说明必须是可操作的规格说明必须是可操作的n n规格说明必须容许不完备性并允许扩规格说明必须容许不完备性并允许扩充充n n规格说明必须局部化和松散耦合规格说明必须局部化和松散耦合21好的思维严谨、逻辑和严谨、逻辑和“活跃活跃”的思考习惯。的思考习惯。严谨要求严谨要求思考的对象思考的对象应该是不放过任何一个应该是不放过任何一个“小小”问题问题逻辑要求逻辑要求思思考的过程考的过程应该是一种符合规则的推导应该是一种符合规则的推导过程过程活跃思维要求活跃思维要求思考的方式思考的方式应该是并行的,即不是应该是并行的,即不是仅一个角度,而是多个角度来思考问题仅一个角度,而是多个角度来思考问题223.2结构化分析方法结构化分析方法n n常用的分析方法常用的分析方法n n面向数据流的结构化分析方法(面向数据流的结构化分析方法(SA)n n面向数据结构面向数据结构的的Jackson方法(方法(JSD)n n结构化数据系统开发方法结构化数据系统开发方法(DSSD)n n面向对象的分析方法(面向对象的分析方法(OOA)等)等23软件需求方法软件需求方法n n需求分析方法由对软件问题的需求分析方法由对软件问题的信息信息域域和和功能域功能域的系统分析过程及其表的系统分析过程及其表示方法组成示方法组成n n大多数的需求分析方法是由大多数的需求分析方法是由信息驱信息驱动动的的n n信息域具有三种属性信息域具有三种属性:信息流信息流、信信息内容息内容和和信息结构信息结构。243.2.1结构化分析方法结构化分析方法 n n面向数据流进行需求分析的方法面向数据流进行需求分析的方法n n结构化分析方法适合于数据处理类型软结构化分析方法适合于数据处理类型软件的需求分析件的需求分析25n n具体来说,结构化分析方法就是用具体来说,结构化分析方法就是用抽抽象模型象模型的概念,按照软件内部的概念,按照软件内部数据传数据传递递、变换变换的关系,的关系,自顶向下逐层分解自顶向下逐层分解,直到找到满足功能要求的所有可实现直到找到满足功能要求的所有可实现的软件为止的软件为止n n结构化分析方法使用工具:数据流图,结构化分析方法使用工具:数据流图,数据词典,结构化英语,判定表与判数据词典,结构化英语,判定表与判定定树树263.2.23.2.2数据流图数据流图n n3.2.2.1数据流图中的主要图形元素数据流图中的主要图形元素27描述银行取款过程的数据流图描述银行取款过程的数据流图283.2.2.2数据流与数据加工之间的关系数据流与数据加工之间的关系293.2.2.3数据流图的层次结构数据流图的层次结构n n为了表达数据处理过程的数据加工为了表达数据处理过程的数据加工情况,需要采用情况,需要采用层次结构层次结构的数据流的数据流图。按照系统的层次结构进行图。按照系统的层次结构进行逐步逐步分解分解,并以分层的数据流图反映这,并以分层的数据流图反映这种结构关系,能清楚地表达和容易种结构关系,能清楚地表达和容易理解整个系统理解整个系统3031n n在多层数据流图中,在多层数据流图中,顶层流图顶层流图仅包含仅包含一个加工,它代表被开发系统。它的一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流输入流是该系统的输入数据,输出流是系统所输出数据是系统所输出数据n n底层流图底层流图是指其加工不需再做分解的是指其加工不需再做分解的数据流图,它处在最底层数据流图,它处在最底层n n中间层流图中间层流图则表示对其上层父图的细则表示对其上层父图的细化。它的每一加工可能继续细化,形化。它的每一加工可能继续细化,形成子图。成子图。323.2.2.4结构化分析方法步骤示例结构化分析方法步骤示例商店业务处理系统商店业务处理系统n n数据流图绘制步骤数据流图绘制步骤首先确定系统的输入和输出首先确定系统的输入和输出根据商店业务,画出顶层数据流图,根据商店业务,画出顶层数据流图,以反映最主要业务处理流程以反映最主要业务处理流程33经过分析,商店业务处理的主要经过分析,商店业务处理的主要功能应当有功能应当有销售销售、采购采购、会计会计三三大项。主要数据流输入的源点大项。主要数据流输入的源点和和输出终点输出终点是是顾客顾客和和供应商供应商。然后从输入端开始,根据商店业然后从输入端开始,根据商店业务工作流程,画出数据流流经的务工作流程,画出数据流流经的各加工框,逐步画到输出端,得各加工框,逐步画到输出端,得到第一层数据流到第一层数据流图图34顶层数据流图顶层数据流图n n这个数据流图只是这个数据流图只是一个高层的系统逻一个高层的系统逻辑模型,它反映了辑模型,它反映了目标系统要实现的目标系统要实现的功能功能35第一层数据流图第一层数据流图36加细每一个加工框加细每一个加工框 销售细化销售细化37采购细化采购细化383.2.2.5检查和修改数据检查和修改数据流图的原则流图的原则n n数据流图上所有图形符号只限于前述数据流图上所有图形符号只限于前述四种基本图形元素四种基本图形元素n n数据流图的主图必须包括前述四种基数据流图的主图必须包括前述四种基本元素,缺一不可本元素,缺一不可n n数据流图的主图上的数据流必须封闭数据流图的主图上的数据流必须封闭在外部实体之间在外部实体之间n n每个加工至少有一个输入数据流和一每个加工至少有一个输入数据流和一个输出数据流个输出数据流39n n在数据流图中,需按层给加工框编号。在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的编号表明该加工所处层次及上下层的亲子关系亲子关系n n规定任何一个数据流子图必须与它上规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父据流和输出数据流必须一致。此即父图与子图的平衡图与子图的平衡n n可以在数据流图中加入物质流,帮助可以在数据流图中加入物质流,帮助用户理解数据流图用户理解数据流图40n n图上每个元素都必须有名字图上每个元素都必须有名字n n数据流图中不可夹带控制流数据流图中不可夹带控制流n n初画时可以忽略琐碎的细节,以集中初画时可以忽略琐碎的细节,以集中精力于主要数据流精力于主要数据流413.2.33.2.3数据词典数据词典n n数据词典与数据流图配合,能清楚地数据词典与数据流图配合,能清楚地表达数据处理的要求表达数据处理的要求n n词条描述词条描述 对于在数据流图中每对于在数据流图中每一个被命名的图形元素,均加以定义,一个被命名的图形元素,均加以定义,其内容有其内容有:名字名字,别名或编号别名或编号,分类分类,描述描述,定义定义,位置位置,其它其它,等等423.2.3.13.2.3.1词条描述词条描述n n数据流名:数据流名:n n说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因和结果和结果n n数据流来源:来自何方数据流来源:来自何方n n数据流去向:去向何处数据流去向:去向何处n n数据流组成:数据结构数据流组成:数据结构n n数据量流通量:数据量,流通量数据量流通量:数据量,流通量1 1、数据流、数据流432 2、数据元素词条描述、数据元素词条描述n n数据元素名:数据元素名:n n类型:数字(离散值,连续值),类型:数字(离散值,连续值),文字(编码类型)文字(编码类型)n n长度:长度:n n取值范围:取值范围:n n相关的数据元素及数据结构:相关的数据元素及数据结构:443 3、数据文件词条描述、数据文件词条描述n n数据文件名:数据文件名:n n简述:存放的是什么数据简述:存放的是什么数据n n输入数据:输入数据:n n输出数据:输出数据:n n数据文件组成:数据结构数据文件组成:数据结构n n存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码n n存取频率:存取频率:454 4、加工逻辑词条描述、加工逻辑词条描述n n加工名:加工名:n n加工编号:反映该加工的层次加工编号:反映该加工的层次n n简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述n n输入数据流:输入数据流:n n输出数据流:输出数据流:n n加工逻辑:简述加工程序,加工顺序加工逻辑:简述加工程序,加工顺序46 n n对数据流图的每一个基本加对数据流图的每一个基本加工,必须有一个基本加工逻工,必须有一个基本加工逻辑说明辑说明n n基本加工逻辑说明必须描述基本加工逻辑说明必须描述基本加工如何把输入数据流基本加工如何把输入数据流变换为输出数据流的加工规变换为输出数据流的加工规则则基本加工逻辑说明基本加工逻辑说明47n n加工逻辑说明必须描述实现加工的加工逻辑说明必须描述实现加工的策略而不是实现加工的细节策略而不是实现加工的细节n n加工逻辑说明中包含的信息应是充加工逻辑说明中包含的信息应是充足的,完备的,有用的,没有重复足的,完备的,有用的,没有重复的多余信息的多余信息485 5、源点及汇、源点及汇(终终)点词条描述点词条描述n n名称:外部实体名名称:外部实体名n n简要描述:什么外部实体简要描述:什么外部实体n n有关数据流:有关数据流:n n数目:数目:496、数据结构的描述、数据结构的描述 符符 号号 含含 义义 举举 例例 被定义为被定义为 与与 x=ab.,.或或.|.或或 x=a,b,x=a|b.或或 m.n 重复重复 x=a,x=3a8(.)可选可选 x=(a)“.”基本数据元素基本数据元素 x=“a”.连结符连结符 x=1.9503.2.3.2实例实例n n1:进销存n n2:存折格式n n3:提案管理系统n n4:商业自动化系统511:进销存:进销存表名:商品档案表表名:商品档案表n别名:n组成:商品ID+商品名称+进价+零售价+库存数量+库存下限+所属种类+存放地点+生产厂商+进货日期n主键:商品ID52表名:销售表表名:销售表n别名:n组成:商品ID+商品名称+零售价+销售数量+销售总额+销售日期;n主键:商品ID 53数据流名数据流名:新货入库信息新货入库信息 别名:n组成:商品 ID+商品名称+进价+所属类别+总额+供货商名称+进货日期+存放地点 n组织:按商品 ID 升序排列 n备注:输入实际进货数量即可 54数据流名:盘点信息输入数据流名:盘点信息输入 n别名:盘点信息 n组成:商品 ID+商品名称+进价+盘赢/盘亏+盘点日期 n组织:按商品ID升序排列 n备注:每天只能对同一种商品盘点一次 552:存折格式:存折格式56n n存折户名所号帐号开户日性质(印密)存折户名所号帐号开户日性质(印密)存折户名所号帐号开户日性质(印密)存折户名所号帐号开户日性质(印密)11存存存存取行取行取行取行5050n n户名户名户名户名22字母字母字母字母2424n n所号所号所号所号“001”.“999”001”.“999”n n帐号帐号帐号帐号“00000001”.“99999999”00000001”.“99999999”n n开户日年月日开户日年月日开户日年月日开户日年月日n n性质性质性质性质“1”.“6”1”.“6”注:注:注:注:“1”1”表示普通户,表示普通户,表示普通户,表示普通户,“5”5”表示工表示工表示工表示工资户等资户等资户等资户等n n印密印密印密印密“0”0”注:印密在存折上不显示注:印密在存折上不显示注:印密在存折上不显示注:印密在存折上不显示n n存取行日期(摘要)支出存入余额操作复核存取行日期(摘要)支出存入余额操作复核存取行日期(摘要)支出存入余额操作复核存取行日期(摘要)支出存入余额操作复核573:提案管理系统:提案管理系统卡片形式的数据字典卡片形式的数据字典文件名:文件名:xtian别别 名:名:新提案表描描 述:述:教代会代表可根据实际情况,在每届教代会允许时间内提的未经初审的提案组组 成:成:提案号+代表号+姓名+代表团名称+工作单位+提案日期+联系电话+E_mail+案由+提案内容+提案措施+是否初审组组 织:织:提案号为主关键字,按提案号升序备备 注:注:保留本届教代会所有提案58数据项名:数据项名:name别别 名:名:姓名描描 述:述:教代会代表的真实姓名定定 义:义:1文本8位位 置置:新提案表+附议人表+立案表+废案表+意见建议表备备 注:注:新提案表中为提案人姓名,附议人表中为附议人姓名59加工名称:加工名称:添加人员编编 号:号:1描描 述述:媒介教代会开始前,评审委员会将本届教代会的代表、初审人、答复人添加到数据库中备备 注:注:添加时只需添加代表号或代号;初始密码=初始提示问题=初始提示问题答案=代号/代表号;添加代表时,同时向附议人密码表和提案人密码表中添加记录;每届评审人(评审委员会)无需添加;60简化的商业自动化系统简化的商业自动化系统营业员收款员经 理销售的商品销售的商品现金额现金额现金余额现金余额销售情况销售情况日销售额日销售额查询要求查询要求录入、修改或删除商品信息录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额销售的商品销售的商品现金额现金额现金余额现金余额查询要求查询要求销售情况销售情况日销售额日销售额销售文件销售文件1 12 23 34.商业自动化系统商业自动化系统61判定要求查询要求查询要求统计销售情况计算日销售额销售文件销售文件查询要求查询要求2 2查询要求查询要求1 1销售情况销售情况日销售额日销售额加工加工3:3:数据字典数据字典:1 1、数据流、数据流:销售的商品=商品名+商品编号+单价+数量+日期现金额=余额=日销售额=非负实数查询要求=商品编号|日期查询要求1=商品编号查询要求2=日期销售情况=商品名+商品编号+金额2 2、数据存贮、数据存贮:销售文件=销售的商品 623.2.4用于写加工逻辑说明的用于写加工逻辑说明的工具工具 结构化英语结构化英语 判定表判定表 判定判定树树633.2.4.1、结构化英语结构化英语n n结构化英语的词汇表由结构化英语的词汇表由uu 英语命令动词英语命令动词uu 数据词典中定义的名字数据词典中定义的名字uu 有限的自定义词有限的自定义词uu 逻辑关系词逻辑关系词 IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。等组成。64n n是一种介于自然语言和形式化语言之间是一种介于自然语言和形式化语言之间的语言的语言n n语言的语言的正文用基本控制结构进行分割正文用基本控制结构进行分割,加工中的加工中的操作用自然语言短语来表示操作用自然语言短语来表示n n其基本控制结构有三种:其基本控制结构有三种:uu简单陈述句结构简单陈述句结构:避免复合语句;:避免复合语句;uu重复结构重复结构:WHILE_DO 或或 REPEAT_UNTIL结构。结构。uu判定结构判定结构:IF_THEN_ELSE 或或 CASE_OF结构;结构;65商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”IF IF 发货单金额超过发货单金额超过发货单金额超过发货单金额超过$500 THEN$500 THEN IF IF 欠款超过了欠款超过了欠款超过了欠款超过了6060天天天天 THENTHEN 在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准 ELSE ELSE(欠款未超期)欠款未超期)欠款未超期)欠款未超期)发批准书,发货单发批准书,发货单发批准书,发货单发批准书,发货单 ENDIFENDIFELSE ELSE (发货单金额未超过发货单金额未超过发货单金额未超过发货单金额未超过$500$500)IF IF 欠款超过欠款超过欠款超过欠款超过6060天天天天 THENTHEN 发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告ELSE ELSE(欠款未超期)欠款未超期)欠款未超期)欠款未超期)发批准书,发货单发批准书,发货单发批准书,发货单发批准书,发货单 ENDIFENDIFENDIFENDIF66nBEGINnIF登录历史库THENnBeginnIF用户选择数据库THENnBeginn输入数据库所属年份n输入数据库所属上下学期n校验数据库名包含参数信息nIF输入不合法或用户取消THENn中断登录nEndnElsen中断登录nEnd用户登录系统逻辑67n输入用户账号和口令nIF输入空的帐号或口令THENnBeginn提示错误n中断登录nEndn验证帐号、口令、IP地址、网卡号nIF非合法用户THENnBeginn提示错误n中断登录nEndnIF权限=“禁止”THENnBeginn提示错误n中断登录nEnd用户登录系统逻辑68nIF登录历史库OR权限=“只读”THENnTHENn禁止事务操作nENDnELSEn允许事务操作nENDn初试化运行环境nEND 用户登录系统逻辑69nBEGINnIF用户权限标志为只读或登录历史数据库THENnBEGINn标志当前登录处于只读状态n启动事务n设置自动提交时间为0(即不自动提交)n禁止操作相关功能按钮nENDnELSEnBEGINn标志当前登录处于可读写状态n设置自动提交时间为10分钟n允许操作相关功能按钮nENDn数数据据库库事事务务操操作作逻逻辑辑70nIF提交数据库操作THENnBEGINn刷新数据库事务启动时间n执行数据库提交nENDnIF回滚数据库操作THENnBEGINn刷新数据库事务启动时间n执行数据库回滚nENDnnENDn数数据据库库事事务务操操作作逻逻辑辑713.2.4.23.2.4.2判定表判定表n n如果数据流图的加工需要依赖于如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定多个逻辑条件的取值,使用判定表来描述比较合适表来描述比较合适7273以以“检查发货单检查发货单”为为例例743.2.4.33.2.4.3判定判定树树n n判定树也是用来表达加工逻辑的一种判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。工具。有时侯它比判定表更直观。753.2.5建模中需注意的问题建模中需注意的问题1.1.模型平衡规则模型平衡规则父图和子图必须平衡父图和子图必须平衡每个数据流和数据存储必须在数据字典中予以定义每个数据流和数据存储必须在数据字典中予以定义“叶叶”加工(最低层)必须给出加工小说明加工(最低层)必须给出加工小说明小说明和数据流图的图形表示必须一致小说明和数据流图的图形表示必须一致 例如:在小说明中,必须说明例如:在小说明中,必须说明“输入数据流输入数据流”如何使用如何使用如何产生如何产生“输出数据流输出数据流”如何选取、使用、修改如何选取、使用、修改“数据存储数据存储”762.2.控制复杂性规则控制复杂性规则上层数据可以上层数据可以“打包打包”上、下数据流对应关系在数据字典中给出,但包上、下数据流对应关系在数据字典中给出,但包内数据流的性质(输入、输出)必须一致内数据流的性质(输入、输出)必须一致一幅图中的图元个数应控制在一幅图中的图元个数应控制在7+/-27+/-2以内以内与每一加工相关的数据流的数目应适中与每一加工相关的数据流的数目应适中(与层次与层次有关有关)分析数据内容,确定是否所有的输入信息都用于分析数据内容,确定是否所有的输入信息都用于产生输出信息产生输出信息分析加工,确定一个加工所产生的输出,是否都分析加工,确定一个加工所产生的输出,是否都能由该加工的输入能由该加工的输入信息导出信息导出773.3Use Case用例分析用例分析:ATM系统的用例图系统的用例图783.3.1 USE CASE概念概念一个一个USE CASEUSE CASE是系统或其它语义实体(例如子系统或一个是系统或其它语义实体(例如子系统或一个类)所提供的一块类)所提供的一块(unit)(unit)高内聚的功能,表示该系统和一高内聚的功能,表示该系统和一个或多个外部交互者(称为操作者)交替出现的消息序列,个或多个外部交互者(称为操作者)交替出现的消息序列,以及该系统所执行的动作。以及该系统所执行的动作。可可见见,USE USE CASECASE用用于于定定义义一一个个系系统统或或一一个个其其它它语语义义实实体体的的行行为为,没没有有揭揭示示该该实实体体的的内内部部结结构构。每每一一USE USE CASECASE说说明明该该实实体体与与其其操操作作者者进进行行交交互互所所执执行行的的一一个个动动作作序序列列,以以及及其其它动作(序列)的变体。它动作(序列)的变体。79USE CASE概念概念USE CASEUSE CASE包含一组操作和属性,这些操作和属性规约了该包含一组操作和属性,这些操作和属性规约了该USE CASEUSE CASE的实例所执行的那个动作序列。动作包含状态的的实例所执行的那个动作序列。动作包含状态的改变以及该改变以及该USE CASEUSE CASE与其环境的通讯。与其环境的通讯。如如:执行该动作序列的前置条件执行该动作序列的前置条件 主要路径主要路径 可选择的路径可选择的路径 执行该动作序列的后置条件执行该动作序列的后置条件80一个操作者定义了一组高内聚的角色,当用户与该实体交一个操作者定义了一组高内聚的角色,当用户与该实体交互时,用户可以扮演这一角色。互时,用户可以扮演这一角色。对于每一对于每一USE CASEUSE CASE,一个操作者有一种角色,即每一一个操作者有一种角色,即每一USE USE CASECASE与具有一种角色的操作者进行通讯。与具有一种角色的操作者进行通讯。角色角色/操作者概念操作者概念81简而言之简而言之n用例 u描述一个系统(或一个子系统)做什么,而不是说明怎么做 n角色 u系统用户 u与本系统交互的其他系统 u时间 82CheckstatusPlaceorderFillorderEstablishcreditTelephoneCatalogSalespersonShippingClerkSupervisorCustomerUSE CASE图示例图示例832.用例图的作用用例图的作用nUse CaseUse Case主要用于促进和用户的交流、沟通,为此使用了一主要用于促进和用户的交流、沟通,为此使用了一种用户和开发人员都能理解的方式描述系统功能和行为。种用户和开发人员都能理解的方式描述系统功能和行为。nUse CaseUse Case可以划分系统与外部实体的界限,是系统开发的起可以划分系统与外部实体的界限,是系统开发的起点,而最终应该落实到类和实现代码上。点,而最终应该落实到类和实现代码上。nUse CaseUse Case既然是对系统行为的动态描述,因此它是类、对象、既然是对系统行为的动态描述,因此它是类、对象、操作的来源,是系统分析和设计阶段的输入之一,是分析操作的来源,是系统分析和设计阶段的输入之一,是分析和设计、制定开发计划、测试计划、设计测试用例的依据和设计、制定开发计划、测试计划、设计测试用例的依据之一。之一。nUse Case ModelUse Case Model是系统需求分析阶段的成果之一。是系统需求分析阶段的成果之一。nUse CaseUse Case不但有助于帮助分析员理清思路,验证用户需求,不但有助于帮助分析员理清思路,验证用户需求,而且也是开发人员之间进行交流的重要手段。而且也是开发人员之间进行交流的重要手段。84用例图的作用n捕获用户能够看到的系统功能85用例图用例图的作用n在开发过程的早期创建n目的:u详细说明系统的表达含义;u捕获系统的需求;u验证系统的体系结构;u驱动实现和生成测试用例。n由分析人和领域专家开发863 使用使用USE CASE图的图的建模类型建模类型使用使用USE CASEUSE CASE图所建造的类型,可以从两个层面上进行分图所建造的类型,可以从两个层面上进行分类,它们是类,它们是“整体整体/部分部分”关系。关系。系统建模(系统建模(system modeling system modeling)系统建模用于描述软件系统的结构和行为系统建模用于描述软件系统的结构和行为业务建模(业务建模(business modelingbusiness modeling)业务建模用于企业或组织过程的优化和再工业务建模用于企业或组织过程的优化和再工程程.业务建模的图形元素不仅包括普通的业务建模的图形元素不仅包括普通的ActorActor和和Use CaseUse Case,还包括还包括WorkerWorker、ArtifactArtifact、BusinessBusiness过程描述时还应结合时序图过程描述时还应结合时序图(sequence diagram)(sequence diagram)和和任务图任务图(activity diagram)(activity diagram)873.3.2 USE CASE获取获取n仿真法(仿真法(SimulationSimulation)掌握用户的所有输入与输出的数据种类,通过仿真的方法,掌握用户的所有输入与输出的数据种类,通过仿真的方法,找出它们之间的对应关系,以及相应的数据处理过程。包括找出它们之间的对应关系,以及相应的数据处理过程。包括任何计划中将要新增加的数据类型与处理过程。任何计划中将要新增加的数据类型与处理过程。n原型法(原型法(PrototypingPrototyping)从用户处取得一组基本的从用户处取得一组基本的USE CASEUSE CASE产品要求之后,立即建造产品要求之后,立即建造USE CASEUSE CASE产品的原型(这个原型可以是实际可运行的软件产品的原型(这个原型可以是实际可运行的软件(外壳),或是一个用