1、3.6 3.6 状态转换图状态转换图 状态转换图状态转换图(简称为状态图简称为状态图)通过描绘系统的通过描绘系统的状态状态及引起系统状态转换的及引起系统状态转换的事事件件,来表示系统的,来表示系统的行为行为。此外,状态图还指明了作。此外,状态图还指明了作为特定事件的结果系统将做哪些动作为特定事件的结果系统将做哪些动作(例如,处理数例如,处理数据据)。1).1).状状 态态 状态状态是任何可以被观察到的是任何可以被观察到的系统行为模式系统行为模式,一,一个状态代表系统的一种行为模式。个状态代表系统的一种行为模式。状态规定了状态规定了系统对事件的响应方式系统对事件的响应方式。系统对事件的响应,。系
2、统对事件的响应,既可以是做一个既可以是做一个(或一系列或一系列)动作,也可以是仅动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态仅改变系统本身的状态,还可以是既改变状态又做动作。又做动作。初态初态 (即初始状态即初始状态)状态状态 终态终态 (即最终状态即最终状态)中间状态中间状态一张状态图中只能有一个初态,而终态则可以有一张状态图中只能有一个初态,而终态则可以有0 0至多个。至多个。2).2).事事 件件 事件是在某个特定时刻发生的事情,它是对引起事件是在某个特定时刻发生的事情,它是对引起 系统做动作或系统做动作或(和和)从一个状态转换到另一个状态从一个状态转换到另一个状态 的外界事
3、件的抽象。的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。简而言之,简而言之,事件就是引起系统做动作或事件就是引起系统做动作或(和和)转换转换 状态的控制信息。状态的控制信息。初态用实心圆初态用实心圆表示,表示,终态用一对同心圆终态用一对同心圆(内圆为实心圆内圆为实心圆)表表示。示。中间状态用圆角矩形表示中间状态用圆角矩形表示,可以用两条水平横线把它分成,可以用两条水平横线把它分成上、中、下上、中、下3 3个部分。个部分。上面部分为状态的名称上面部分为状态的名称,这部分是必,这部分是必须有的;须有的;中间部分为状态变量的名字和值中间部分为状态变量的名
4、字和值,这部分是可选,这部分是可选的;的;下面部分是活动表下面部分是活动表,这部分也是可选的。,这部分也是可选的。3).3).符符 号号活动表的语法格式:事件名活动表的语法格式:事件名(参数表参数表)/)/动作表达式动作表达式 其中,其中,“事件名事件名”可以是任何事件的名称。在活动表中经常可以是任何事件的名称。在活动表中经常使用下述使用下述3 3种标准事件:种标准事件:entryentry,exitexit和和dodo。entryentry事件指定事件指定进入该状态的动作,进入该状态的动作,exitexit事件指定退出该状态的动作,而事件指定退出该状态的动作,而dodo事件则指定在该状态下的
5、动作。需要时可以为事件指定参数事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。表。活动表中的动作表达式描述应做的具体动作。3).3).符符 号号状态图中两个状态状态图中两个状态之间带箭头的连线称为状态转换之间带箭头的连线称为状态转换,箭头指明了,箭头指明了转换方向。转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的的箭头线上标出触发转换的事件表达式箭头线上标出触发转换的事件表达式;如果在箭头线上未标明;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换
6、。事件,则表示在源状态的内部活动执行完之后自动触发转换。事件表达式的语法:事件表达式的语法:事件说明守卫条件动作表达式事件说明守卫条件动作表达式事件说明事件说明的语法为:事件名的语法为:事件名(参数表参数表)。守卫条件守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。发生。动作表达式动作表达式是一个过程表达式,
7、当状态转换开始时执行该表达式。是一个过程表达式,当状态转换开始时执行该表达式。3).3).符符 号号闲置闲置拿起听筒拿起听筒拨号音拨号音Timer=0Do/响拨号音响拨号音且增加且增加Timer挂断电话挂断电话超时超时超时超时Do/响蜂鸣音响蜂鸣音挂断电话挂断电话数字数字拨号拨号数字数字无效号码无效号码存储的信息存储的信息Do/播放信息播放信息有效号码有效号码接通中接通中Do/试试接通接通占线占线忙音忙音Do/响响忙音忙音已已接通接通振铃振铃Do/振铃振铃受话人回话受话人回话通话通话受话人挂断电话受话人挂断电话断线断线信息播完信息播完4 4).举举例例3.7 3.7 其他图形工具其他图形工具
8、层次方框图层次方框图 Warnier图图 IPO图图3.7.1 3.7.1 层次方框图层次方框图层次方框图用层次方框图用树形结构的一系列多层次的矩形框树形结构的一系列多层次的矩形框描绘数据的层描绘数据的层次结构。次结构。树形结构的树形结构的顶层是一个单独的矩形框顶层是一个单独的矩形框,它代表完整的数据结构,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集下面的各层矩形框代表这个数据的子集,最底层最底层的各个框代表的各个框代表组成这个数据的组成这个数据的实际数据元素实际数据元素(不能再分割的元素不能再分割的元素)。随着结构的精细化,层次方框图对数据结构也描绘得越来越详随着结构的精细化,层
9、次方框图对数据结构也描绘得越来越详细,细,这种模式非常适合于需求分析阶段的需要这种模式非常适合于需求分析阶段的需要。系统分析员从。系统分析员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定对顶层信息的分类开始,沿图中每条路径反复细化,直到确定了数据结构的全部细节时为止。了数据结构的全部细节时为止。举举 例例领导层辅助决策系统领导层辅助决策系统查询查询辅助决策辅助决策物物资资信信息息重重点点供供料料信信息息商商情情信信息息人人员员状状况况合合同同监监视视财财务务信信息息计计划划执执行行情情况况工工程程进进展展情情况况超超储储低低储储情情况况经经营营指指标标历历年年对对比比价价格格预预测测
10、物物资资用用量量预预测测库库存存定定额额核核定定库库存存结结构构分分析析经经济济采采购购批批量量保保本本保保利利分分析析3.7.2 3.7.2 Warnier图图法国计算机科学家法国计算机科学家WarnierWarnier提出了表示信息层次结构的另外提出了表示信息层次结构的另外一种图形工具。一种图形工具。WarnierWarnier图也用树形结构描绘信息,但是这种图形工具比层图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。次方框图提供了更丰富的描绘手段。用用WarnierWarnier图可以图可以表明信息的逻辑组织表明信息的逻辑组织。它可以指出一类信息或一个信息元素
11、是它可以指出一类信息或一个信息元素是重复出现重复出现的,也可以的,也可以表示特定信息在某一类信息中是表示特定信息在某一类信息中是有条件地出现有条件地出现的。的。重复和条件约束是说明软件处理过程的基础,所以很容易把重复和条件约束是说明软件处理过程的基础,所以很容易把WarnierWarnier图转变成软件设计的工具。图转变成软件设计的工具。举举 例例 图中表示一种软件产品图中表示一种软件产品要么要么是系统软件是系统软件要么要么是应用软件。是应用软件。系统软件中有系统软件中有P1P1种操作系统,种操作系统,P2P2种编译程序,此外还有软件种编译程序,此外还有软件工具。软件工具是系统软件的一种,它又
12、可以进一步细分为工具。软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试驱动程序和设计辅助工具,编辑程序、测试驱动程序和设计辅助工具,图中标出了每种图中标出了每种软件工具的数量。软件工具的数量。3.7.3 3.7.3 IPO图图左边的框中列出有关的输入左边的框中列出有关的输入数据。数据。中间的框内列出主要的处理,中间的框内列出主要的处理,处理框中列出处理的次序暗处理框中列出处理的次序暗示了执行的顺序,但是用这示了执行的顺序,但是用这些基本符号还不足以精确描些基本符号还不足以精确描述执行处理的详细情况。述执行处理的详细情况。在右边的框内列出产生的输在右边的框内列出产生的输出数据。出数据
13、。在在IPOIPO图中还用类似向量符号图中还用类似向量符号的粗大箭头清楚地指出数据的粗大箭头清楚地指出数据通信的情况。通信的情况。一种改进的一种改进的IPO图图(也称为也称为IPO表表)在需求分析阶段可以使用在需求分析阶段可以使用IPO表表简略地简略地描述系统的描述系统的主要算法主要算法(即数据流图中即数据流图中各个处理的基本算法各个处理的基本算法)。需求分析阶段,需求分析阶段,IPO表中表中的许多附加信息暂时还不的许多附加信息暂时还不具备,但在设计阶段可以具备,但在设计阶段可以进一步补充修正这些图,进一步补充修正这些图,作为设计阶段的文档。作为设计阶段的文档。这正是在需求分析阶段用这正是在需
14、求分析阶段用IPO表作为描述算法的工表作为描述算法的工具的重要优点。具的重要优点。3.8 3.8 验证软件需求验证软件需求验证软件需求的正确性,一般应从验证软件需求的正确性,一般应从4 4个方面进行:个方面进行:(1)(1)一致性一致性 所有需求必须是一致的,任何一条需求不能和所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。其他需求互相矛盾。(2)(2)完整性完整性 需求必须是完整的,规格说明书应该包括用户需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。需要的每一个功能或性能。(3)(3)现实性现实性 指定的需求应该是用现有的硬件技术和软件技指定的需求应该是用现有的硬
15、件技术和软件技术基本上可以实现的。术基本上可以实现的。(4)(4)有效性有效性 必须证明需求是正确有效的,确实能解决用户必须证明需求是正确有效的,确实能解决用户面对的问题。面对的问题。为了更有效地保证软件需求的正确性,特别是为了保证需求的一致性,需要有适当的软件工具支持需求分析工作。这类软件工具应该满足下列要求:(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容;(2)使用这个软件工具能够导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;(4)使用这个软件工具之后,应该能够改进通信状况。3
16、.8.3 用于需求分析的软件工具PSL/PSA系统的功能主要有下述4种:(1)描述任何应用领域的信息系统;(2)创建一个数据库保存对该信息系统的描述符;(3)对描述符施加增加、删除和更改等操作;(4)产生格式化的文档和关于规格说明书的各种分析报告。PSL/PSA系统用描述符从系统信息流、系统结构、数据结构、数据导出、系统规模、系统动态、系统性质和项目管理等8个方面描述信息系统。3.9 小结需求分析的任务:what functions+other requirements获取需求的方法:visit,prototyping,refinement分析建模与规格说明:数据、功能和行为模型实体-联系图&数据规范化状态转换图+有穷状态机数据字典&其他图形工具验证软件需求:一致性、完整性、现实性和有效性