![软件工程柯逍第六章(完成规格说明书)_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/4b1818a8-81c3-457c-8c39-079c5435e4df/4b1818a8-81c3-457c-8c39-079c5435e4df1.gif)
![软件工程柯逍第六章(完成规格说明书)_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/4b1818a8-81c3-457c-8c39-079c5435e4df/4b1818a8-81c3-457c-8c39-079c5435e4df2.gif)
![软件工程柯逍第六章(完成规格说明书)_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/4b1818a8-81c3-457c-8c39-079c5435e4df/4b1818a8-81c3-457c-8c39-079c5435e4df3.gif)
![软件工程柯逍第六章(完成规格说明书)_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/4b1818a8-81c3-457c-8c39-079c5435e4df/4b1818a8-81c3-457c-8c39-079c5435e4df4.gif)
![软件工程柯逍第六章(完成规格说明书)_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/4b1818a8-81c3-457c-8c39-079c5435e4df/4b1818a8-81c3-457c-8c39-079c5435e4df5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程软件工程2n在第在第5章讨论了章讨论了用例用例、数据建模数据建模和和基于类模型基于类模型后,很自然会问后,很自然会问“这些需求建模表示方法就这些需求建模表示方法就足够了吗足够了吗?”q要看情况而定要看情况而定n对于某种类型软件,对于某种类型软件,用例用例可能是唯一可行的需求建模表示方法可能是唯一可行的需求建模表示方法。而其他类型的软件,则需要选择。而其他类型的软件,则需要选择面向对象面向对象的方法开发基于类的方法开发基于类的模型。但在另外一些情形下,的模型。但在另外一些情形下,复杂应用需求复杂应用需求可能必须检测:可能必须检测:q查看当数据对象在系统中查看当数据对象在系统中移动时是如何
2、转换移动时是如何转换的的q查看一个应用系统是如何工作的查看一个应用系统是如何工作的q查看现存知识领域能否解决当前问题查看现存知识领域能否解决当前问题软件工程软件工程3第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6.3 生成行为模型生成行为模型n6.4 需求建模的模式需求建模的模式软件工程软件工程46.1 需求建模策略需求建模策略n结构化分析结构化分析q数据可作为数据可作为独立实体独立实体转换。转换。q数据对象模型的方式定义了它们的数据对象模型的方式定义了它们的属性和关系属性和关系。q操作数据对象的操作数据对象的建模过程建模过程表明当数据对象通过系统时表明当数
3、据对象通过系统时如何转换数如何转换数据据n面向对象分析面向对象分析q关注于关注于定义类定义类以及影响客户需求的类之间的以及影响客户需求的类之间的协作方式协作方式。n软件团队往往选择一种方法并排斥所有其他的表示方法。问题软件团队往往选择一种方法并排斥所有其他的表示方法。问题不是哪一种方法最好,而是不是哪一种方法最好,而是怎么组合怎么组合这些表示方法才能够为利这些表示方法才能够为利益相关者益相关者提供最好的软件需求模型提供最好的软件需求模型和通往软件设计最为有效的和通往软件设计最为有效的桥梁。桥梁。软件工程软件工程5第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6
4、.3 生成行为模型生成行为模型n6.4 需求建模的模式需求建模的模式软件工程软件工程6n描述了数据对象在系统中的描述了数据对象在系统中的变换过程变换过程n采用采用数据流图数据流图(data flow diagram,DFD)、状态迁移图状态迁移图等。等。nDFD是是结构化分析方法结构化分析方法,不是,不是UML的组成部分,但可以补的组成部分,但可以补充对系统充对系统需求需求和和流程流程的认识。的认识。nDFD采取了系统的采取了系统的输入输入-处理处理-输出输出观点,即流入软件的数据观点,即流入软件的数据对象,经由处理元素变换,最后结果以数据对象的形式流出对象,经由处理元素变换,最后结果以数据对
5、象的形式流出软件。软件。软件工程软件工程7软件工程软件工程8外部实体外部实体:储户、日历:储户、日历 处理处理:检验、登录、付款:检验、登录、付款数据存储数据存储:帐卡、存折:帐卡、存折软件工程软件工程9软件工程软件工程10n使用分层的方式表示使用分层的方式表示q第一个数据流模型(第第一个数据流模型(第0层层DFD,也称,也称环境图环境图)表示整个系统,)表示整个系统,随后的数据流图改进环境图,在每个后续层提供更多的细节。随后的数据流图改进环境图,在每个后续层提供更多的细节。n数据流图数据流图有助于软件工程师开发有助于软件工程师开发信息域信息域的模型,并同时开的模型,并同时开发发功能域功能域的
6、模型。的模型。q当把当把DFD逐步细化时,分析师同时也就完成了逐步细化时,分析师同时也就完成了系统功能分解系统功能分解。q与此同时,当数据在应用系统中的多个处理间与此同时,当数据在应用系统中的多个处理间流动流动时,时,DFD的的精炼结果导致了相应的精炼结果导致了相应的数据精化数据精化。软件工程软件工程11数据流图数据流图n导出数据流图的导出数据流图的指导原则指导原则q(1) 第第0层层DFD(也称环境层(也称环境层DFD或顶层或顶层DFD)将系统描述成)将系统描述成一个一个泡泡泡泡q(2) 仔细标记仔细标记主要的输入和输出主要的输入和输出q(3) 通过把选定的通过把选定的处理处理、数据对象数据
7、对象和和数据存储数据存储分离为下一层表示而分离为下一层表示而开始精化过程,即开始精化过程,即逐步求精逐步求精,一次精化一个处理,一次精化一个处理q(4) 使用有意义的名称,标记所有的箭头和泡泡使用有意义的名称,标记所有的箭头和泡泡q(5) 从一层转至另一层时,注意保持信息流的连续性从一层转至另一层时,注意保持信息流的连续性q(6) 一次精化一个泡泡一次精化一个泡泡软件工程软件工程12数据流图数据流图n可能会出现数据流图过于复杂。可能会出现数据流图过于复杂。n原因原因q分析师试图分析师试图过早过早地显示地显示过多过多的细节的细节q信息流中表示软件流程方面的内容信息流中表示软件流程方面的内容软件工
8、程软件工程13层次化的数据流图层次化的数据流图软件工程软件工程14SafeHome安全功能的环境层安全功能的环境层DFD外部实体外部实体(方框方框)产生产生并并使用使用系统产生的信息系统产生的信息软件工程软件工程15数据流图数据流图n如何将第如何将第0层层DFD扩展到第扩展到第1层数据流模型?层数据流模型?q对描述环境层泡泡的用例叙述采用对描述环境层泡泡的用例叙述采用“语法解析语法解析”的方法的方法q即将第一次需求收集会议获得的即将第一次需求收集会议获得的SafeHome处理叙述中处理叙述中的所有的所有名词名词(名词短语名词短语)与与动词动词(动词短语动词短语)分离开来。分离开来。软件工程软件
9、工程16 SH安全功能辅助房主在安装时配置安全系统,监测所有连接到安全安全功能辅助房主在安装时配置安全系统,监测所有连接到安全系统的传感器,通过系统的传感器,通过Internet、计算机或控制面板和房主交互。、计算机或控制面板和房主交互。 在安装中,在安装中,SH计算机被用于配置系统,每个传感器被分配一个编号计算机被用于配置系统,每个传感器被分配一个编号和类型,主密码被用以控制启动和关闭系统,当传感器事件发生时,和类型,主密码被用以控制启动和关闭系统,当传感器事件发生时,将拨打预设的电话号码。将拨打预设的电话号码。 当识别出一个传感器事件时,软件激活附于系统上的可发声警报,当识别出一个传感器事
10、件时,软件激活附于系统上的可发声警报,在一定的延迟时间(由房主在系统配置活动中指定)后,软件拨打监在一定的延迟时间(由房主在系统配置活动中指定)后,软件拨打监测服务的电话号码并提供关于位置的信息,报告被检测到的事件的性测服务的电话号码并提供关于位置的信息,报告被检测到的事件的性质,电话号码将每质,电话号码将每20秒重拨一次,直至电话接通。秒重拨一次,直至电话接通。 房主通过控制面板、计算机或浏览器这些统称为接口的设施接收安房主通过控制面板、计算机或浏览器这些统称为接口的设施接收安全信息。接口在控制面板、计算机或浏览器窗口中显示提示信息和系全信息。接口在控制面板、计算机或浏览器窗口中显示提示信息
11、和系统状态信息。房主的交互采用如下形式统状态信息。房主的交互采用如下形式软件工程软件工程17 SH安全功能安全功能辅助辅助房主房主在安装时在安装时配置配置安全系统安全系统,监测监测所有连接到安全所有连接到安全系统的系统的传感器传感器,通过,通过Internet、计算机或控制面板、计算机或控制面板和和房主房主交互交互。 在在安装安装中,中,SH计算机被用于计算机被用于配置配置系统系统,每个传感器被分配一个,每个传感器被分配一个编号编号和和类型类型,主密码主密码被用以被用以控制启动和关闭控制启动和关闭系统系统,当传感器事件发生时,当传感器事件发生时,将将拨打拨打预设的预设的电话号码电话号码。 当当
12、识别识别出一个出一个传感器事件传感器事件时,时,软件软件激活激活附于系统上的附于系统上的可发声警报可发声警报,在一定的延迟时间(由房主在系统配置活动中指定)后,软件拨打监在一定的延迟时间(由房主在系统配置活动中指定)后,软件拨打监测服务的电话号码并测服务的电话号码并提供提供关于位置的信息关于位置的信息,报告报告被检测到被检测到事件的性质事件的性质,电话号码电话号码将每将每20秒秒重拨重拨一次,直至一次,直至电话接通电话接通。 房主通过控制面板、计算机或浏览器这些统称为房主通过控制面板、计算机或浏览器这些统称为接口接口的设施的设施接收接收安安全信息全信息。接口在控制面板、计算机或浏览器窗口中。接
13、口在控制面板、计算机或浏览器窗口中显示显示提示信息和系提示信息和系统状态信息统状态信息。房主的交互采用如下形式。房主的交互采用如下形式软件工程软件工程18数据流图数据流图n根据语法解析根据语法解析q动词动词是是SafeHome的处理,在后续的的处理,在后续的DFD中用泡泡表示;中用泡泡表示;q名词名词是外部实体是外部实体(方框方框)、数据或控制对象、数据或控制对象(箭头箭头)、数据存储、数据存储(双横线双横线)。n在任何在任何DFD层次中对某个泡泡的层次中对某个泡泡的处理叙述文字处理叙述文字进行语法进行语法解解析析,可以产生许多如何精化到下一个层次的有用信息。,可以产生许多如何精化到下一个层次
14、的有用信息。q例如,第例如,第0层层DFD可以扩展为可以扩展为6个处理,这些处理来自于语法个处理,这些处理来自于语法解析检查。解析检查。软件工程软件工程19第一层第一层DFD软件工程软件工程20第二层第二层DFD软件工程软件工程21数据流图数据流图n持续进行持续进行DFD的求精,直到每个泡泡都执行了某个的求精,直到每个泡泡都执行了某个单一的单一的功能功能,也就是说,直至每个泡泡所代表的处理都执行一个,也就是说,直至每个泡泡所代表的处理都执行一个功能,并且该功能可以很容易地成为一个功能,并且该功能可以很容易地成为一个程序构件程序构件。nDFD之间的数据流必须要之间的数据流必须要连续连续。软件工程
15、软件工程22创建控制流模型创建控制流模型n对于很多类应用问题来说,为了获得关于软件对于很多类应用问题来说,为了获得关于软件需求的有益需求的有益理解理解,使用数据模型和数据流图是很有必要的。,使用数据模型和数据流图是很有必要的。n然而,有一大类应用问题是然而,有一大类应用问题是事件驱动事件驱动的而不是数据驱动的的而不是数据驱动的。这类问题。这类问题产生控制信息产生控制信息而不是报告或显示信息,并且处而不是报告或显示信息,并且处理信息时非常理信息时非常关注时间关注时间和和性能性能。n这样的应用系统除了数据流建模外还需要使用这样的应用系统除了数据流建模外还需要使用控制流建模控制流建模。软件工程软件工
16、程23创建控制流模型创建控制流模型n事件或控制项可以实现为事件或控制项可以实现为q布尔值布尔值 n例如,真或假、开或关、例如,真或假、开或关、1或或0q条件的条件的离散列表离散列表n例如,空、拥挤、满例如,空、拥挤、满软件工程软件工程24创建控制流模型创建控制流模型n选择潜在选择潜在候选事件候选事件的的指导原则指导原则:q列出所有被软件列出所有被软件“读读”的的传感器传感器。q列出所有的列出所有的中断条件中断条件。q列出操作人员能够启动的所有列出操作人员能够启动的所有“开关开关”。q列出所有的列出所有的数据条件数据条件。q回顾对处理叙述所进行的名词或动词的回顾对处理叙述所进行的名词或动词的语法
17、解析语法解析,考察所有可能考察所有可能作为控制规格说明输入作为控制规格说明输入/输出的输出的“控制项控制项”。q通过通过标识状态标识状态来描述系统的行为,标识如何达到这些状态,并定来描述系统的行为,标识如何达到这些状态,并定义义状态间的迁移状态间的迁移。q关注可能的关注可能的疏忽疏忽,即关注那些描述控制中,即关注那些描述控制中非常普遍的错误。非常普遍的错误。例如例如,提问,提问“有什么其他途径可以达到或离开这个状态吗?有什么其他途径可以达到或离开这个状态吗?”软件工程软件工程25创建控制流模型创建控制流模型nSafeHome的很多事件和控制项工作都是的很多事件和控制项工作都是传感器传感器事件事
18、件,例如:,例如:q传感器断开传感器断开q闪烁标志闪烁标志 (显示闪动信号显示闪动信号)q启动或停止开关启动或停止开关 (开关系统的信号开关系统的信号)软件工程软件工程26控制流模型控制流模型n控制流模型用于控制流模型用于事件驱动事件驱动问题的建模问题的建模n控制规格说明控制规格说明(Control SPECification, CSPEC)q对对行为的建模行为的建模,描述了软件描述了软件状态状态以及导致以及导致状态状态变化的事件变化的事件,常用,常用状态图状态图软件工程软件工程27ResettingEntry/set systermStatus “inactive”Entry/set dis
19、playMsg1 “Starting system”Entry/set displayMsg2 “Please wait”Entry/set displayStatus slowBlinkingDo: run diagnostics开始/结束切换电源 “开”IdleEntry/set systermStatus “inactive”Entry/set displayMsg1 “Ready”Entry/set displayMsg2 “”Entry/set displayStatus steadyKeyHit / handleKey系统就绪不能设置 /设置显示消息2“联系供应商”重置关闭/电源关
20、闭MonitoringSystemEntry/set systermStatus “monitoring”Entry/set displayMsg1 “Armed”Entry/set displayMsg2 “”Entry/set displayStatus steadyDo: MonitorAndControlSystemKeyHit / handleKey激活解除密码ActingOnAlarmEntry/set systermStatus “MonitorAndAlarm”Entry/set displayMsg1 “ALARM”Entry/set displayMsg2 triggeri
21、ngSenserEntry/set displayStatus fastBlinkingDo: MonitorAndControlSystemDo: soundAlarmDo: notifyAlarmRespondersKeyHit / handleKey传感器触发/启动计时器超时错误警报解除密码传感器触发/ 新启动计时器SafeHome安全功能的状态图安全功能的状态图软件工程软件工程28处理规格说明处理规格说明n处理规格处理规格说明(说明(Process SPECification, PSPEC):也称:也称加工说明加工说明,是对数据流图中每个加工所作的说明,处理规是对数据流图中每个加工所作
22、的说明,处理规格说明的格说明的内容内容包括包括叙述性正文、处理算法的程序设计语言叙述性正文、处理算法的程序设计语言描述、数学方程、图表,常用描述、数学方程、图表,常用判定表判定表。n通过为流模型中的每个泡泡提供通过为流模型中的每个泡泡提供PSPEC,软件工程师创,软件工程师创建了建了“小型规格说明小型规格说明”(mini-spec)可以作为软件构件实可以作为软件构件实现处理的现处理的设计指南设计指南。软件工程软件工程29处理规格说明处理规格说明n考虑图考虑图6-2中中SafeHome的的“处理密码处理密码”变化,该功能的变化,该功能的PSPEC可以采用如下形式:可以采用如下形式:q在在Safe
23、Home安全功能中安全功能中“处理密码处理密码”完成控制面板上的密码确认完成控制面板上的密码确认。“处理密码处理密码”从从“与用户交互与用户交互”功能接收功能接收4位密码,将该密码首位密码,将该密码首先和存储在系统中的主密码进行比较:先和存储在系统中的主密码进行比较:n如果如果与主密码匹配与主密码匹配。则向。则向“显示消息和状态显示消息和状态”功能传送有效信息功能传送有效信息n如果如果与主密码不匹配与主密码不匹配,则把,则把4位密码与位密码与次密码表次密码表比较比较(这些密码可能会这些密码可能会授予房子的客人和授予房子的客人和(或或)在房主不在家时需要进入房子的工人在房主不在家时需要进入房子的
24、工人)。如果密。如果密码和表中的某项匹配,将向码和表中的某项匹配,将向“显示消息和状态显示消息和状态”功能传送有效信息功能传送有效信息;n如果如果不匹配不匹配,将向,将向“显示消息和状态显示消息和状态”功能传送无效信息功能传送无效信息;软件工程软件工程30判定表判定表n一个表格,描述一个表格,描述条件条件和条件导致的和条件导致的动作动作的集合的集合Rule 1 Rule 2 Rule 3 Rule 4 Rule 5High standardized exam scoresTFFFFHigh grades-TFFFOutside activities-TFFGood recommendation
25、s-TFSend rejection letterSend admission forms软件工程软件工程31软件工程软件工程32结构化分析结构化分析n结构化分析结构化分析工具工具使用使用“数据字典数据字典”作为说明所有作为说明所有数据对象的中数据对象的中心数据库心数据库。n数据字典数据字典q管理管理各种关系模型中的各种关系模型中的信息信息q定义四类元素:定义四类元素:数据流数据流、数据流分量数据流分量、数据存储数据存储和和处理处理q信息:信息:n一般信息:名字、别名、描述等一般信息:名字、别名、描述等n定义信息:数据类型、长度、结构定义信息:数据类型、长度、结构n使用特点:值的范围、使用频率
26、、使用方式使用特点:值的范围、使用频率、使用方式n控制信息:来源、使用它的程序控制信息:来源、使用它的程序n分组信息:父结构、从属结构、物理位置等分组信息:父结构、从属结构、物理位置等软件工程软件工程33数据字典数据字典n数据元素数据元素组成数据对象组成数据对象的方式:的方式:q顺序顺序:两个或多个分量以:两个或多个分量以确定次序确定次序进行连接进行连接q选择选择:从两个或多个可能的元素中选取一个:从两个或多个可能的元素中选取一个q重复重复:把指定的分量重复零次或多次:把指定的分量重复零次或多次n可选:一个分量是可有可无的(重复可选:一个分量是可有可无的(重复0或或1次)次)n符号:符号:q=
27、 等价于等价于q+ 和和q 或(选择一个,用或(选择一个,用|隔开分量)隔开分量)n字母或数字字母或数字 = 字母字符字母字符 | 数字字符数字字符q 重复重复 n字母数字串字母数字串 = 0字母或数字字母或数字7q( ) 可选可选软件工程软件工程34数据字典数据字典n数据字典(例)数据字典(例)名字:订货报表名字:订货报表别名:订货信息别名:订货信息描述:每天一次送给采购员的需要订货的零件表描述:每天一次送给采购员的需要订货的零件表定义:订货报表定义:订货报表 = 零件编号零件编号 + 零件名称零件名称 + 订货数量订货数量 + 价格价格 + 供应者供应者位置:输出到打印机位置:输出到打印机
28、软件工程软件工程35数据字典(数据字典(IV)n数据字典(例)数据字典(例)名字:零件编号名字:零件编号别名:别名:描述:唯一地标识库存清单中特定零件的域描述:唯一地标识库存清单中特定零件的域定义:零件编号定义:零件编号=8字符字符8位置:订货报表、订货信息、库存清单、事务位置:订货报表、订货信息、库存清单、事务软件工程软件工程36第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6.3 生成行为模型生成行为模型n6.4 需求建模的模式需求建模的模式软件工程软件工程376.3 生成行为模型生成行为模型n行为模型描述了系统如何行为模型描述了系统如何响应外部事件或激励
29、响应外部事件或激励n要生成行为模型,分析师必须按如下步骤进行:要生成行为模型,分析师必须按如下步骤进行:q(1) 评估所有用例评估所有用例,以保证完全,以保证完全理解理解系统内的系统内的交互序列交互序列q(2) 识别识别驱动交互序列的驱动交互序列的事件事件,并,并理解理解这些事件如何和具体这些事件如何和具体的类相互的类相互关联关联q(3) 为每个用例为每个用例生成序列生成序列(顺序图)(顺序图)q(4) 创建创建系统状态图系统状态图q(5) 评审行为模型以评审行为模型以验证准确性和一致性验证准确性和一致性软件工程软件工程38识别用例事件识别用例事件n只要系统和参与者之间只要系统和参与者之间交换
30、了信息就发生事件交换了信息就发生事件。n从从信息交换信息交换的角度检查用例:的角度检查用例:q房主使用键盘键入房主使用键盘键入4 4位密码。该密码和保存在系统中的有效位密码。该密码和保存在系统中的有效密码相比较。如果密码不正确,控制面板将鸣叫一声密码相比较。如果密码不正确,控制面板将鸣叫一声并复位并复位以等待下一次输入;如果密码正确,控制面板等待进一步的以等待下一次输入;如果密码正确,控制面板等待进一步的操作。操作。n用例场景中加用例场景中加下划线的部分表示事件下划线的部分表示事件。应确认每个事件的。应确认每个事件的参与者参与者,应标记,应标记交换的所有信息交换的所有信息,而且应列出任何,而且
31、应列出任何条件或条件或限制限制。软件工程软件工程39识别用例事件识别用例事件n考虑用例中加下划线的考虑用例中加下划线的“房主使用键盘键入房主使用键盘键入4 4位密码位密码”。在需。在需求模型的环境下,对象求模型的环境下,对象Homeowner向对象向对象ControlPanel发送发送一个事件。这个事件可以称为一个事件。这个事件可以称为“输入密码输入密码”。传输的信息是组。传输的信息是组成密码的成密码的4位数字。注意到某些事件对用例的控制流有明显的位数字。注意到某些事件对用例的控制流有明显的影响,而其他的事件对控制流没有直接的影响。影响,而其他的事件对控制流没有直接的影响。q例如,事件例如,事
32、件“输入密码输入密码”不会明显地改变用例的控制流不会明显地改变用例的控制流q事件事件“比较密码比较密码”(从与事件从与事件“该密码和保存在系统中的有效密码该密码和保存在系统中的有效密码相比较相比较”的交互中得到的交互中得到)的结果将明显地影响到的结果将明显地影响到SafeHome软件的软件的信息流和控制流信息流和控制流。软件工程软件工程40识别用例事件识别用例事件n一旦确定了所有的事件,这些一旦确定了所有的事件,这些事件将被分配事件将被分配到所到所涉及的涉及的对象对象,对象负责生成事件对象负责生成事件,例如,例如qHomeowner房主对象房主对象生成生成“输入密码输入密码”事件事件q或或识别
33、识别已经在其他地方发生的事件已经在其他地方发生的事件n例如,例如,ControlPanel控制面板识别控制面板识别“比较密码比较密码”事件的事件的二元结果二元结果软件工程软件工程41状态表现状态表现n在行为建模的场合,必须考虑两种不同的状态描述:在行为建模的场合,必须考虑两种不同的状态描述:q(1)系统执行其功能时)系统执行其功能时每个类的状态每个类的状态q(2)系统执行其功能时从外部观察到的)系统执行其功能时从外部观察到的系统状态系统状态n类的状态有类的状态有被动被动和和主动主动两种特征:两种特征:q被动状态被动状态很简单,是某个对象所有很简单,是某个对象所有属性属性的的当前状态当前状态n比
34、如,对象的位置与方向信息等;比如,对象的位置与方向信息等;q主动状态主动状态对象进行对象进行持续变换和处理持续变换和处理时的当前状态时的当前状态n比如,移动、休息、受伤、疗伤、被捕、失踪等比如,移动、休息、受伤、疗伤、被捕、失踪等n必然发生事件必然发生事件(有时被称为有时被称为触发器触发器)才能迫使对象做出从一个主动才能迫使对象做出从一个主动状态到另一个主动状态的状态到另一个主动状态的转移转移。软件工程软件工程42状态图:为每个类呈现了主动状态和导致这些主动状态状态图:为每个类呈现了主动状态和导致这些主动状态变化的事件变化的事件每个箭头表示某每个箭头表示某个对象从一个主动个对象从一个主动状态转
35、移到另一个状态转移到另一个主动状态。主动状态。每个箭头上的每个箭头上的标标注注都体现了触发状都体现了触发状态转移的态转移的事件事件。软件工程软件工程43状态图状态图n除了说明导致转移发生的事件外,分析师还可以说明守卫除了说明导致转移发生的事件外,分析师还可以说明守卫Guard和动作和动作:q守卫守卫是为了保证转移发生而必须满足的一个是为了保证转移发生而必须满足的一个布尔条件布尔条件。转移的守。转移的守卫通常依赖于某个对象的卫通常依赖于某个对象的一个或多个属性值一个或多个属性值。换句话说,守卫。换句话说,守卫依依赖于赖于对象的对象的被动状态被动状态。n例如,例如,“Reading”状态转移到状态
36、转移到“Comparing”状态的守卫可以由检察状态的守卫可以由检察用例来确定用例来确定: if (password input= 4 digits) then compare to stored passwordq动作动作是与是与状态转移同时发生状态转移同时发生的或者的或者作为状态转移的结果作为状态转移的结果,而且通,而且通常动作包含对象的一个或多个常动作包含对象的一个或多个操作操作(职责职责)。n例如,和例如,和“输入密码输入密码”事件相关联的动作是事件相关联的动作是validatePassword()操作操作,该操作通过访问,该操作通过访问password对象并通过执行按位比较来验证输入
37、密对象并通过执行按位比较来验证输入密码。码。软件工程软件工程44顺序图顺序图n顺序图顺序图q用用时间函数时间函数表明表明事件事件如何引发从一个如何引发从一个对象对象到另一个对象到另一个对象的的转移转移q每个箭头代表了一个事件每个箭头代表了一个事件q时间纵向向下度量时间纵向向下度量q窄的纵向矩形窄的纵向矩形表示处理某个表示处理某个活动所用的时间活动所用的时间。q沿着纵向的时间线可以展示出对象的状态。沿着纵向的时间线可以展示出对象的状态。软件工程软件工程45顺序图顺序图软件工程软件工程46顺序图顺序图n一旦完成了完整的顺序图,把所有导致系统一旦完成了完整的顺序图,把所有导致系统对象对象之间转移的事
38、件之间转移的事件整理为整理为输入事件集合输入事件集合和和输出事件输出事件集合集合(来自一个对象来自一个对象)。软件工程软件工程47软件工程软件工程48软件工程软件工程49出卷系统案例出卷系统案例(III)n二级数据流图(二级数据流图(自动出卷自动出卷部分)部分)软件工程软件工程50出卷系统案例出卷系统案例(IV)n出卷功能初步的出卷功能初步的ER图图软件工程软件工程51出卷系统案例出卷系统案例(V)n“试题试题”的数据信息的数据信息名字:试卷名字:试卷别名:别名:描述:试卷的内容描述:试卷的内容定义:定义: 试卷试卷 = 试卷编号试卷编号 + 课程名课程名 + 出卷人出卷人 + 时间时间 +
39、总分总分 + 难度难度 试卷编号试卷编号= 1字符字符10课程名课程名 = 1字符字符30 出卷人出卷人 = 1字符字符8 时间时间 = 日期日期 总分总分 = 整数整数 难度难度 = 难难|中中|易易位置:试卷数据集位置:试卷数据集软件工程软件工程52出卷系统案例出卷系统案例(VI)n“出卷要求出卷要求”的数据信息的数据信息名字:出卷要求名字:出卷要求别名:要求别名:要求描述:出卷的卷面要求描述:出卷的卷面要求定义:出卷要求定义:出卷要求= 总分总分 + 总难度总难度 + 总知识点总知识点 总分总分 = 整数整数 总难度总难度 = 难分数比例难分数比例 + 中分数比例中分数比例 + 易分数比
40、例易分数比例 总知识点总知识点= 1知识点分数比例知识点分数比例*位置:自动出卷、手动出卷、设置出卷要求位置:自动出卷、手动出卷、设置出卷要求软件工程软件工程53短信系统案例短信系统案例n用例场景用例场景q发送短信发送短信的场景描述的场景描述n用户输入短信内容用户输入短信内容n用户选择若干个发送人员用户选择若干个发送人员n系统将明文短消息编码成格式化的短消息串系统将明文短消息编码成格式化的短消息串n系统以串行方式将短信串传入无线移动终端系统以串行方式将短信串传入无线移动终端q接收短信接收短信的场景描述的场景描述n用户向串口发送指令从无线移动终端读取一组短消息串用户向串口发送指令从无线移动终端读
41、取一组短消息串n系统将一组短信串解码成明文的短消息系统将一组短信串解码成明文的短消息n系统将短消息写入数据库,并显示给用户系统将短消息写入数据库,并显示给用户软件工程软件工程54短信系统案例(短信系统案例(II)q人员维护人员维护的场景描述的场景描述n管理员添加一个新成员管理员添加一个新成员n管理员更新一个成员的信息管理员更新一个成员的信息n管理员删除一个成员管理员删除一个成员q系统设置系统设置的场景描述的场景描述n管理员修改基本信息:如短信客服中心号码、发送频率、管理员修改基本信息:如短信客服中心号码、发送频率、延时等延时等n系统保存设置信息系统保存设置信息软件工程软件工程55短信系统案例(
42、短信系统案例(III)n类包括类包括q边界类边界类:用于建立系统与其参与者之间:用于建立系统与其参与者之间交互的模型交互的模型,经常代,经常代表对窗口、屏幕、打印机接口等抽象。表对窗口、屏幕、打印机接口等抽象。n发送短信界面、接收短信界面、收发接口发送短信界面、接收短信界面、收发接口q控制类控制类:代表协调、排序、事务处理以及其它的:代表协调、排序、事务处理以及其它的对象控制对象控制,经常用于经常用于封闭封闭与某个具体用例有关的控制。与某个具体用例有关的控制。n发送短信、接收短信发送短信、接收短信q实体类实体类:用于长效持久的信息建模。多数情况下,实体类是:用于长效持久的信息建模。多数情况下,
43、实体类是直接直接从业务对象模型中相应的从业务对象模型中相应的业务实体业务实体类类得到得到。n短信编短信编/解码、发送的短信串、接收的短信串解码、发送的短信串、接收的短信串软件工程软件工程56短信系统案例(短信系统案例(IV)n发送短信用例的发送短信用例的协作图协作图:软件工程软件工程57短信系统案例(短信系统案例(V)n发送短信用例的发送短信用例的顺序图顺序图(时序图时序图):软件工程软件工程58第第6章章n6.1 需求建模策略需求建模策略n6.2 面向流程建模面向流程建模n6.3 生成行为模型生成行为模型n6.4 需求建模的模式需求建模的模式软件工程软件工程596.4 需求建模的模式需求建模
44、的模式n软件模式软件模式是获取领域知识的一种机制,从而遇到新问题时可以是获取领域知识的一种机制,从而遇到新问题时可以反复使用。反复使用。q在某些情况下,领域知识在在某些情况下,领域知识在同一应用领域同一应用领域中用于解决新问题。中用于解决新问题。q在另外一些情况下,通过模式获取的领域知识可借助模拟用于完全在另外一些情况下,通过模式获取的领域知识可借助模拟用于完全不同的应用领域不同的应用领域。n分析模式分析模式表示了在某些应用领域中常表示了在某些应用领域中常合并合并一个类、一个功能、一个类、一个功能、或一个行为的或一个行为的解决方案解决方案。q当为某个领域的应用执行需求建模时会当为某个领域的应用
45、执行需求建模时会重用重用模式。模式。q分析模式都存储于一个分析模式都存储于一个仓库仓库中以便软件团队的成员能够使用搜索工中以便软件团队的成员能够使用搜索工具找到并复用。具找到并复用。q一旦选择到合适的模式,就可通过参考模式名称一旦选择到合适的模式,就可通过参考模式名称整合整合到需求模型中到需求模型中软件工程软件工程60发现分析模式发现分析模式n需求模型由各种元素组成:需求模型由各种元素组成:q基于场景基于场景(用例用例)、基于数据、基于数据(数据模型数据模型)、基于类、基于流和行为。、基于类、基于流和行为。q其中每个元素都是从其中每个元素都是从不同的视角不同的视角检查问题,并且检查问题,并且每
46、一个都提供一每一个都提供一种发现模式种发现模式的机会,可能发生在整个应用领域,或者发生在类似的机会,可能发生在整个应用领域,或者发生在类似但横跨不同的应用领域。但横跨不同的应用领域。n在需求模型的描述中最基本的元素是在需求模型的描述中最基本的元素是用例用例。一套。一套连贯用例连贯用例可以成为服务于可以成为服务于发现发现一个或多个一个或多个分析模式分析模式的的基础基础。q语义分析模式语义分析模式(semantic analysis pattern, SAP)描述了一小套连描述了一小套连贯用例,这些用例一起描述了贯用例,这些用例一起描述了通用应用通用应用的基础。的基础。软件工程软件工程61发现分析
47、模式发现分析模式n用例用例:监控反向运动监控反向运动n描述描述:当车辆安装了反向齿轮,控制软件就能从后向视频摄像机将一当车辆安装了反向齿轮,控制软件就能从后向视频摄像机将一段视频输入到仪表板显示器上。控制软件在仪表板显示器上叠加各种段视频输入到仪表板显示器上。控制软件在仪表板显示器上叠加各种各样距离和方向的线,以便车辆向后运动时驾驶员能保持方向。控制各样距离和方向的线,以便车辆向后运动时驾驶员能保持方向。控制软件还能监控临近传感器,以判定在车后方软件还能监控临近传感器,以判定在车后方1010英尺内是否有物体存在英尺内是否有物体存在。如果临近传感器检测到某个物体在车后方。如果临近传感器检测到某个
48、物体在车后方x x英尺内就会让车自动停英尺内就会让车自动停止,这个止,这个x x值由车辆的速度决定。值由车辆的速度决定。n本例中,本例中,“传感器传感器”提供临近信息和视频信息。提供临近信息和视频信息。“执行器执行器”用于车辆用于车辆的停止系统。许多的停止系统。许多不同应用领域不同应用领域的软件需要的软件需要监控传感器监控传感器和和控制物理执控制物理执行器行器。所依照的分析模式描述了能广泛应用的通用需求。所依照的分析模式描述了能广泛应用的通用需求。q形成了模式形成了模式Actuator-Sensor (执行器执行器-传感器传感器)软件工程软件工程62需求模式举例需求模式举例n模式名模式名:执行
49、器:执行器传感器传感器n目的目的:详细说明在嵌入式系统中的各种传感器和执行器。:详细说明在嵌入式系统中的各种传感器和执行器。n动机动机:嵌入式系统常有各种传感器和执行器。这些传感器和执:嵌入式系统常有各种传感器和执行器。这些传感器和执行器都直接或间接连接到一个控制单元。虽然许多传感器和执行器都直接或间接连接到一个控制单元。虽然许多传感器和执行器看上去十分不同,但它们的行器看上去十分不同,但它们的行为是相似的行为是相似的,足以让它们构足以让它们构成一个模式成一个模式。这个模式显示了如何为一个系统。这个模式显示了如何为一个系统指定传感器和执指定传感器和执行器行器,包括,包括属性属性和和操作操作。执
50、行器。执行器传感器模式为传感器模式为被动式被动式传感器传感器使用使用“拉机制拉机制”(通过请求查询来获得值通过请求查询来获得值),为,为主动主动传感器使用传感器使用“推机制推机制”(值改变时,主动进行消息广播值改变时,主动进行消息广播)。软件工程软件工程63需求模式举例:执行器需求模式举例:执行器传感器传感器n约束约束:q每个每个被动传感器被动传感器必须有某种方法必须有某种方法读取传感器的输入读取传感器的输入和和表示传感器表示传感器值的属性值的属性。q每个每个主动传感器主动传感器必须能在其值发生变更时必须能在其值发生变更时广播更新消息广播更新消息。q每个每个主动传感器主动传感器应该能应该能发送
51、发送一个一个生命刻度生命刻度,即在,即在特定时间帧中发特定时间帧中发布状态信息布状态信息,以便检测出可能的错误动作。,以便检测出可能的错误动作。q每个每个执行者执行者必须有某种方法必须有某种方法调用调用由由ComputingComponent构件产构件产生的生的适当应答适当应答。q每个每个传感器传感器和和执行器执行器应有实施应有实施检测其自身操作状态检测其自身操作状态的功能。的功能。q每个传感器和执行器能每个传感器和执行器能测试测试接收值或发送值的接收值或发送值的有效性有效性,并且当值,并且当值超出指定边界超出指定边界时能时能设定其操作状态设定其操作状态。软件工程软件工程64需求模式举例:执行
52、器需求模式举例:执行器传感器传感器n适用性适用性:对有多个传感器和执行器的任何系统都是非常有用的。:对有多个传感器和执行器的任何系统都是非常有用的。n结构体结构体:执行器、被动传感器和主动传感器是:执行器、被动传感器和主动传感器是抽象类抽象类,该模式中有四,该模式中有四种不同的传感器和执行器。种不同的传感器和执行器。图图6-8:传感器和执行器的:传感器和执行器的UML类图类图软件工程软件工程65需求模式举例:执行器需求模式举例:执行器传感器传感器n行为行为:顺序图,用以控制安全摄像机的调整:顺序图,用以控制安全摄像机的调整 (例如转动、变焦、聚焦例如转动、变焦、聚焦)图图6-9:传感器和执行器
53、的:传感器和执行器的UML顺序图顺序图软件工程软件工程66需求模式举例:执行器需求模式举例:执行器传感器传感器n参与者:参与者:列举需求模式中的列举需求模式中的类或对象类或对象,并描述每个类和对象的,并描述每个类和对象的职责职责软件工程软件工程67需求模式举例:执行器需求模式举例:执行器传感器传感器n协作协作:描述的是:描述的是对象和类对象和类之间如何进行之间如何进行交互活动交互活动以及以及实现自身的责任实现自身的责任。q当当ComputingComponent需要更新需要更新PassiveSensor时,它询问传感器,通过发时,它询问传感器,通过发送适当的消息送适当的消息请求传值请求传值。q
54、ActiveSensor无需查询。这些对象和类无需查询。这些对象和类主动主动向计算机单元中传送传感器的值向计算机单元中传送传感器的值,使用适当的方法设定在,使用适当的方法设定在ComputingComponent中的值。对象和类在中的值。对象和类在指定的指定的时间帧发送至少一次生命刻度时间帧发送至少一次生命刻度,以便用系统时间,以便用系统时间更新它们的时间戳更新它们的时间戳。q当当ComputingComponent需要设定需要设定执行器执行器的值时,给执行器发送值。的值时,给执行器发送值。qComputingComponent能使用适当的方法能使用适当的方法查询和设定查询和设定传感器和执行器的传感器和执行器的操作操作状态状态。如果发现操作状态为零,就发送错误给。如果发现操作状态为零,就发送错误给FaultHandler错误处理程序错误处理程序,这个类包含处理错误消息的方法,比如启动更详细的这个类包含处理错误消息的方法,比如启动更详细的恢复机制恢复机制或者或者备份设备备份设备。如果不可恢复,系统只能使用传感器最后的已知值或者默认值。如果不可恢复,系统只能使用传感器最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位转让职工合同范例
- 2025年立柱式单针缝纫机零件项目投资可行性研究分析报告
- 2025年卷捅机行业深度研究分析报告
- 2020-2025年中国新式现制茶饮行业发展趋势及投资前景预测报告
- 天然气流量积算仪行业深度研究报告
- 2020-2025年中国电影行业发展趋势预测及投资战略咨询报告
- 2025年电子计算机配件项目可行性研究报告
- 2025年中国汽保行业发展趋势预测及投资战略咨询报告
- 2024-2025年中国女性游戏行业发展趋势及投资前景预测报告
- 校三等奖学金申请书
- 2024-2025学年初中七年级上学期数学期末综合卷(人教版)含答案
- 体育活动策划与组织课件
- 公司违规违纪连带处罚制度模版(2篇)
- 2025届高考物理二轮总复习第一编专题2能量与动量第1讲动能定理机械能守恒定律功能关系的应用课件
- 内业资料承包合同个人与公司的承包合同
- 2024年计算机二级WPS考试题库(共380题含答案)
- 【履职清单】2024版安全生产责任体系重点岗位履职清单
- 跨学科实践活动10调查我国航天科技领域中新型材料新型能源的应用课件九年级化学人教版(2024)下册
- 2022年全国医学博士英语统一考试试题
- 学校工作总结和存在的不足及整改措施
- Petrel中文操作手册(1-3)
评论
0/150
提交评论