资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件工程第6章 需求建模:流程、行为和模式主要内容v需求建模策略需求建模策略v面向流程建模面向流程建模v生成行生成行为模型模型v需求建模的模式需求建模的模式v小小结需求建模v面向流程的建模面向流程的建模提供了一种如何利用提供了一种如何利用处理功能理功能转换数据数据对象的表示方法。象的表示方法。行行为建建模模描述了系描述了系统及其及其类的状的状态,以及事件,以及事件对这些些类的影响。的影响。基于模式的建模基于模式的建模利用利用现有有领域的知域的知识使得需求分析更使得需求分析更为容易。容易。需求建模策略v一种考一种考虑数据和数据和处理的分析建模方法被理的分析建模方法被称作称作结构化分析构化分析,其中数据作,其中数据作为独立独立实体体转换。数据。数据对象建模定象建模定义了了对象的属性和象的属性和关系,操作数据关系,操作数据对象的象的处理建模理建模应表明当表明当数据数据对象在系象在系统内流内流动时处理如何理如何转换数数据。据。v分析建模的第二种方法称作分析建模的第二种方法称作面向面向对象的象的分析分析,这种方法关注于定种方法关注于定义类和影响客和影响客户需求的需求的类之之间的的协作方式。作方式。UML和和统一一过程主要是面向程主要是面向对象的。象的。面向流程的建模v面向流的数据建模至今仍是广泛使用的分析表面向流的数据建模至今仍是广泛使用的分析表达法之一。尽管数据流达法之一。尽管数据流图及相关的及相关的图和信息不是和信息不是UML的正式的正式组成部分,但是它成部分,但是它们可以可以补充充UML图并提供并提供对系系统需求和流的需求和流的补充充认识。vDFD采取了系采取了系统的的输入入-处理理-输出出观点。流入点。流入软件的数据件的数据对象,象,经由由处理元素理元素转换,最后以,最后以结果数据果数据对象的形式流出象的形式流出软件。数据件。数据对象由象由带标记的箭的箭头表示,表示,转换由由圆圈(也称作泡泡)表示。圈(也称作泡泡)表示。DFD使用分使用分层的方式表示,即第一个数据流模型的方式表示,即第一个数据流模型从整体上表从整体上表现系系统,随后的数据流,随后的数据流图改改进环境境图,提供每个后提供每个后续层增加的增加的细节。创建数据流模型v数据流数据流图有助于有助于软件工程件工程师开开发信息域的信息域的模型,并同模型,并同时开开发功能域的模型。当功能域的模型。当DFD被改被改进到非常到非常详细的程度的程度时,分析,分析师同同时也就完成了系也就完成了系统功能分解。功能分解。创建数据流模型v导出数据流出数据流图时有一些很有用的有一些很有用的简单的指的指导原原则:v第第0层的数据流的数据流图应将将软件或系件或系统描述描述为一个泡泡一个泡泡 ;v应仔仔细标记主要的主要的输入和入和输出;出;v通通过把在下一把在下一层表示的候表示的候选处理理过程、数据程、数据对象和象和数据存数据存储分离,开始求精分离,开始求精过程;程;v应使用有意使用有意义的名称的名称标记所有的箭所有的箭头和泡泡;和泡泡;v当从一个当从一个层转到另一个到另一个层时要保持信息流要保持信息流连续性;性;v一次精化一个泡泡。一次精化一个泡泡。vSafehome安全功能的安全功能的DFD如如图6-1所示所示SafeHome安全功能的DFD图图6-1 SafeHome安全功能的DFD图创建数据流模型v第第0层的的DFD现在要在要扩展到第展到第1层。 有个有个简单而有效的方法是而有效的方法是对描述描述环境境层泡泡的泡泡的叙述叙述进行行“语法分析法分析”,即将第一次需求,即将第一次需求收集会收集会议中中获得的得的SafeHome处理叙述中理叙述中的所有名的所有名词与与动词分离开来。分离开来。SafeHome实例25创建数据流模型v这里提到的里提到的语法分析,开始形成一种模式。法分析,开始形成一种模式。动词是是SafeHome处理,它理,它们最最终将被表将被表示示为后来的后来的DFD中的泡泡;名中的泡泡;名词是外部是外部实体(方框)、数据或控制体(方框)、数据或控制对象(箭象(箭头)、)、数据存数据存储(双横(双横线)。通)。通过对任何任何DFD层次中某个泡泡的次中某个泡泡的处理叙述文字理叙述文字进行行语法分法分析,可以析,可以产生生许多关于如何精化到下一个多关于如何精化到下一个层次的有用信息。使用次的有用信息。使用这些信息,第些信息,第1层DFD如如图6-2所示。在第所示。在第0层和第和第1层之之间要保持信息流的要保持信息流的连续性。性。SafeHome安全功能的第1层DFD图图6-2 SafeHome安全功能的第1层DFD图创建数据流模型v在在DFD第第1层中表示的中表示的处理可以被理可以被进一步一步精化到更低的精化到更低的层次。例如,次。例如,监测传感器感器处理可以被精化理可以被精化为如如图6-3所示的第所示的第2层DFD。在在这两两层之之间保持了信息流的保持了信息流的连续性。性。vDFD的求精持的求精持续地地进行,直到每个泡泡都行,直到每个泡泡都执行一个行一个简单的操作,即直至每个泡泡所的操作,即直至每个泡泡所代表的代表的处理都理都执行一个功能,并且行一个功能,并且该功能功能可以很容易地被程序可以很容易地被程序实现。精化监测传感器处理的第2层DFD图图6-3 精化监测传感器处理的第2层DFD图创建控制流模型v有一大有一大类应用用问题是事件是事件驱动的而不是数的而不是数据据驱动的;的;这类问题产生控制信息而不是生控制信息而不是报告或告或显示信息,并且,示信息,并且,处理信息理信息时非常非常关注关注时间和性能。和性能。这样的的应用除了数据流用除了数据流建模外建模外还需要使用控制流建模。需要使用控制流建模。创建控制流模型v事件或控制事件或控制项可以可以实现为布布尔值(例如,例如,true或或false,on或或off,1或或0)或条件的离散列表或条件的离散列表(空、空、拥挤、满)。为了了选择潜在的候潜在的候选事件,建事件,建议使用如下的指使用如下的指导原原则:v列出所有被列出所有被软件件“读”的的传感器。感器。v列出所有的中断条件。列出所有的中断条件。v列出操作人列出操作人员能能够启启动的所有的所有“开关开关”。v列出所有的数据条件。列出所有的数据条件。v回回顾对处理叙述所理叙述所进行的名行的名词/动词语法分析,考察所有可能作法分析,考察所有可能作为控制流控制流输入入/输出的出的“控制控制项”。v通通过标识其状其状态来描述系来描述系统的行的行为,标识这些状些状态是如何达到是如何达到的,并定的,并定义状状态间的迁移。的迁移。v关注可能的疏忽关注可能的疏忽刻画控制中非常普遍的刻画控制中非常普遍的错误;例如,提;例如,提问“有什么其他途径可以达到或离开有什么其他途径可以达到或离开这个状个状态吗?”控制规格说明v控制控制规格格说明明(CSPEC)使用两种不同的使用两种不同的方式表方式表现系系统的行的行为。CSPEC包含一个状包含一个状态图,该图是行是行为的序列的序列说明;也可能包明;也可能包括程序激活表括程序激活表行行为的的组合合说明。明。v图6-4为SafeHome的第的第1层控制流模型控制流模型描述了一个初步的状描述了一个初步的状态图,图中中显示了当示了当系系统在在这个个层次上定次上定义的四个状的四个状态之之间来来回移回移动的的时候,系候,系统如何如何对事件作出响事件作出响应。SafeHome安全功能的状态图图6-4 SafeHome安全功能的状态图控制规格说明v状状态图(图6-4)指明:当系指明:当系统被重置、激活或断被重置、激活或断电时,可能会,可能会发生生Idle(空(空闲)状)状态的的转换;如;如果系果系统被激活(即打开被激活(即打开报警系警系统),将会),将会转换到到MonitoringSystemStatus状状态(监测系系统状状态),显示信息也将示信息也将变化,并化,并调用用处理理monitorAndControlSystem。源自。源自MonitoringSystemStatus状状态的的转换有两种:有两种:(1)当系当系统撤撤销激活激活时,发生回到生回到idle状状态的的转换;(2)当当传感器被触感器被触发时,发生到生到ActingOnAlarm状状态的的转换。控制规格说明v行行为表达的一种非常不同的模式是表达的一种非常不同的模式是处理激理激活表活表(PAT),它表示了在状,它表示了在状态图中中处理理环境所包含的信息,不包括状境所包含的信息,不包括状态。这张表指表指出了当有事件出了当有事件发生生时会引入流程模型中哪会引入流程模型中哪个个处理(泡泡)。理(泡泡)。vSafeHome第第1层流程模型的流程模型的处理激活表理激活表如如图6-5所示。所示。SafeHome安全功能的状态图图6-5 SafeHome安全功能的处理激活表处理规格说明v处理理规格格说明明(PSPEC)用于描述出用于描述出现在在求精求精过程中最程中最终层次的所有流模型的次的所有流模型的处理。理。处理理规格格说明的内容可以包括叙述性正文、明的内容可以包括叙述性正文、处理算法的程序理算法的程序设计语言描述、数学方程、言描述、数学方程、表、表、图或或图表。通表。通过为流模型中的每个泡流模型中的每个泡泡提供泡提供PSPEC,软件工程件工程师创建了建了“小小规格格说明明”,小,小规格格说明可以作明可以作为实现处理理的的软件构件的件构件的设计指南。指南。SafeHome实例26生成行为模型v行行为模型模型显示了示了软件如何件如何对外部事件或激外部事件或激励作出响励作出响应。要生成模型,分析。要生成模型,分析师必必须按如按如下步下步骤进行:行:v评估所有的用例,以保估所有的用例,以保证完全理解系完全理解系统内的交互序列。内的交互序列。v识别驱动交互序列的事件,并理解交互序列的事件,并理解这些事件如何和特些事件如何和特定的定的对象相互关象相互关联。v为每个用例生成序列。每个用例生成序列。v创建系建系统状状态图。v评审行行为模型以模型以验证准确性和一致性。准确性和一致性。识别用例事件v用例表用例表现了涉及的参与者和系了涉及的参与者和系统的活的活动顺序。一般而言,只要系序。一般而言,只要系统和参与者之和参与者之间交交换了信息就了信息就发生事件。生事件。v一旦确定了所有的事件,一旦确定了所有的事件,这些事件将被分些事件将被分配到所涉及的配到所涉及的对象,象,对象象负责生成事件或生成事件或识别已已经在其他地方在其他地方发生的事件。生的事件。SafeHome实例27状态表现v在行在行为建模的建模的场合下,必合下,必须考考虑两种不同两种不同的状的状态描述:描述:(1)系系统执行其功能行其功能时每个每个类的状的状态;(2)系系统执行其功能行其功能时从外部从外部观察察到的系到的系统状状态。v类状状态具有被具有被动和主和主动两种特征。被两种特征。被动状状态很很简单,是某个,是某个对象所有属性的当前状象所有属性的当前状态。一个一个对象的主象的主动状状态指的是指的是对象象进行持行持续变换和和处理理时的当前状的当前状态。必。必须发生事件才能生事件才能迫使迫使对象做出从一个活象做出从一个活动状状态到另一个活到另一个活动状状态的的转移。移。分析类的状态图v行行为模型的模型的组成之一是成之一是UML状状态图,UML状状态图为每个每个类表表现活活动状状态和和导致致这些活些活动状状态变化的事件(触化的事件(触发器)。器)。图7-20说明了明了SafeHome安全功能中安全功能中ControlPanel类的状的状态图。分析类的状态图图7-20 ControlPanel类的状态图分析类的状态图v除了除了说明明导致致转换发生的事件外,分析生的事件外,分析师还可以可以说明保明保护和和动作。保作。保护是是为了保了保证转变发生而必生而必须满足的一个布足的一个布尔条件。一般而条件。一般而言,言,导致状致状态转移的保移的保护通常依通常依赖于某个于某个对象的一个或多个属性象的一个或多个属性值。即保。即保护依依赖于于对象象的被的被动状状态。v动作和状作和状态转移同移同时发生或作生或作为状状态转移移的的结果,而且通常果,而且通常动作包含作包含对象的一个或多象的一个或多个操作。个操作。顺序图v第二种表第二种表现行行为的方式在的方式在UML中称作中称作顺序序图,说明事件如何引明事件如何引发一个一个对象到另一个象到另一个对象的象的转移。移。一旦通一旦通过检查用例确用例确认了事件,建模人了事件,建模人员就就创建建了一个了一个顺序序图用用时间函数表函数表现事件如何引事件如何引发流从一个流从一个对象到另一个象到另一个对象。它表象。它表现了了导致行致行为从一个从一个类流到另一个流到另一个类的关的关键类和事件。和事件。v图6-7列列举了了SafeHome安全功能的部分安全功能的部分顺序序图。v一旦完成了完整的一旦完成了完整的顺序序图,所有,所有导致系致系统对象之象之间转移的事件都可以被整理移的事件都可以被整理为输入事件集合和入事件集合和输出事件集合。出事件集合。顺序图图6-7 SafeHome安全功能的顺序图(部分)需求建模的模式v软件模式是件模式是获取取领域知域知识的一种机制从而遇到新的一种机制从而遇到新问题时可以反复使用。在某些情况下,可以反复使用。在某些情况下,领域知域知识在同一在同一应用用领域中用于解决新域中用于解决新问题。在另外一些。在另外一些情况下,通情况下,通过模式模式获取的取的领域知域知识可借助模可借助模拟用用于完全不同的于完全不同的应用用领域。域。v分析模式的最初分析模式的最初创作者没有作者没有“创建建”模式,但在模式,但在需求工程工作中需求工程工作中发现了模式。一旦了模式。一旦发现模式模式则记载“明确的常明确的常见问题:哪种模式适用、:哪种模式适用、规定的解定的解决方案、在决方案、在实践中使用模式的假践中使用模式的假设和和约束,以及束,以及关于模式的某些常关于模式的某些常见的其他消息,的其他消息,诸如使用模式如使用模式的的动机和机和驱动力,力,讨论模式的模式的优缺点,参考在缺点,参考在实践践应用中某些已知的使用模式的用中某些已知的使用模式的样例例”。小结作业vP125页
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号