软件工程(第3版)齐治昌—第5章需求分析与验证课件

上传人:txadgkn****dgknqu... 文档编号:241902549 上传时间:2024-08-04 格式:PPT 页数:160 大小:2.54MB
返回 下载 相关 举报
软件工程(第3版)齐治昌—第5章需求分析与验证课件_第1页
第1页 / 共160页
软件工程(第3版)齐治昌—第5章需求分析与验证课件_第2页
第2页 / 共160页
软件工程(第3版)齐治昌—第5章需求分析与验证课件_第3页
第3页 / 共160页
点击查看更多>>
资源描述
第五章第五章 需求分析与验证需求分析与验证5.1分析模型的表示分析模型的表示顺序序图、通信、通信图、状状态图、扩充机制充机制5.2需求分析的需求分析的过程模型程模型5.3需求需求优先先级分析分析5.4用例分析用例分析5.5利用快速原型利用快速原型辅助需求分析助需求分析5.6评审分析模型分析模型5.7需求需求规约5.8需求需求验证2024/8/41第五章需求分析与验证 5.1分析模型的表示2第五章第五章 需求分析与验证需求分析与验证5.1 5.1 分析模型的表示分析模型的表示 5.1.1 5.1.1 顺序图顺序图 5.1.2 5.1.2 通信图通信图 5.1.3 5.1.3 状态图状态图 5.1.4 5.1.4 扩充机制扩充机制2024/8/42第五章需求分析与验证5.1分析模型的表示25.1 5.1 分析模型的表示分析模型的表示需求分析的任务:需求分析的任务:在需求获取阶段的输出制品的在需求获取阶段的输出制品的基础上,获得对软件需求的更深入、更完整的理基础上,获得对软件需求的更深入、更完整的理解,并且将软件需求表示为面向软件设计人员、解,并且将软件需求表示为面向软件设计人员、易于修改和维护的分析模型。易于修改和维护的分析模型。基于用例模型建立软件需求的分析模型是基于用例模型建立软件需求的分析模型是需求分需求分析活动的焦点析活动的焦点。在用例模型已成的情形下为何还要构建分析模型在用例模型已成的情形下为何还要构建分析模型?2024/8/435.1分析模型的表示需求分析的任务:在需求获取阶段的输出制分析模型的表示分析模型的表示构建分析模型的两点理由:构建分析模型的两点理由:分析模型比用例模型更加结构化、更加清晰分析模型比用例模型更加结构化、更加清晰直观,所以分析模型的构建过程实际上也是不直观,所以分析模型的构建过程实际上也是不断深入理解用例模型的过程,同时也是剔除用断深入理解用例模型的过程,同时也是剔除用例的自然语言描述中可能存在的模糊性和不一例的自然语言描述中可能存在的模糊性和不一致性的过程。致性的过程。分析模型是用例模型与软件设计模型之间的分析模型是用例模型与软件设计模型之间的“桥梁桥梁”,它比用例模型更接近于设计模型,它比用例模型更接近于设计模型,更适合于软件设计师设计软件系统的结构、构更适合于软件设计师设计软件系统的结构、构思软件求解算法,更易于为不太熟悉业务的软思软件求解算法,更易于为不太熟悉业务的软件设计师所理解,换言之,理解分析模型对业件设计师所理解,换言之,理解分析模型对业务知识的要求远低于理解用例模型。务知识的要求远低于理解用例模型。2024/8/44分析模型的表示构建分析模型的两点理由:2023/8/194分析模型的表示分析模型的表示需求分析活动参与者:需求分析活动参与者:主要完成者是来自软件开发方的主要完成者是来自软件开发方的需求工程师需求工程师。其他参与者包括其他参与者包括软件架构师、利益相关方,以软件架构师、利益相关方,以及项目软件经理、质量保证工程师及项目软件经理、质量保证工程师。需求分析输入与输出:需求分析输入与输出:u输入制品输入制品与需求获取活动的输出制品相同。在与需求获取活动的输出制品相同。在所有这些输入制品中,所有这些输入制品中,用例模型最重要用例模型最重要。u输出制品输出制品主要是软件需求的主要是软件需求的分析模型分析模型。该模型。该模型是需求规约的主要组成部分,同时也是后续软是需求规约的主要组成部分,同时也是后续软件设计、构造和测试活动的工作基础。件设计、构造和测试活动的工作基础。2024/8/45分析模型的表示需求分析活动参与者:2023/8/195分析模型的表示分析模型的表示分析模型的表示主要采用分析模型的表示主要采用UMLUML的的类图、活动图、交类图、活动图、交互图与状态图。互图与状态图。2024/8/46分析模型的表示分析模型的表示主要采用UML的类图、活动图、交5.1 5.1 分析模型的表示分析模型的表示用于表示分析模型的用于表示分析模型的UMLUML图形机制主要是类图形机制主要是类图、活动图、交互图与状态图。除此以外,图、活动图、交互图与状态图。除此以外,分析模型及设计模型等可能还需要引入分析模型及设计模型等可能还需要引入UMLUML的扩充机制来表达其标准语法设施无法表的扩充机制来表达其标准语法设施无法表达的语义。达的语义。本节主要内容:本节主要内容:顺序图顺序图通信图通信图状态图状态图UMLUML的扩充机制。的扩充机制。2024/8/475.1分析模型的表示用于表示分析模型的UML图形机制主要是5.1.1 5.1.1 顺序图顺序图交互图描述一组对象通过交互图描述一组对象通过消息传递消息传递而形成的而形成的协作协作行为行为。交互图的应用:交互图的应用:经常用于描述经常用于描述单个用例的功能的实现方式单个用例的功能的实现方式,软件系统在某种给定的使用场景下对象之间的交互协软件系统在某种给定的使用场景下对象之间的交互协作流程,作流程,软件系统的某个复杂操作的逻辑实现模型。软件系统的某个复杂操作的逻辑实现模型。通过交互图可清晰地了解对象在软件系统中扮演通过交互图可清晰地了解对象在软件系统中扮演的角色以及对象之间的交互协作。的角色以及对象之间的交互协作。2024/8/485.1.1顺序图交互图描述一组对象通过消息传递而形成的协作顺序图顺序图分类:交互图包括分类:交互图包括顺序图顺序图和和通信图通信图两种。两种。u前者强调前者强调消息传递的时间消息传递的时间序,后者突出序,后者突出交换消息的对交换消息的对象之间的合作关系象之间的合作关系。u虽然它们各有侧重,但从语义上讲基本等价,可从一虽然它们各有侧重,但从语义上讲基本等价,可从一种图自动转换为另一种图,所以没有必要针对同一建种图自动转换为另一种图,所以没有必要针对同一建模目标同时创建顺序图和通信图,这样反而容易引起模目标同时创建顺序图和通信图,这样反而容易引起语义上的冗余和冲突。语义上的冗余和冲突。2024/8/49顺序图分类:交互图包括顺序图和通信图两种。2023/8/19顺序图顺序图交互图的作用:交互图的作用:业务分析及需求分析人员业务分析及需求分析人员借助交互图可分析、表述业借助交互图可分析、表述业务处理过程或与软件相关的处理流程;务处理过程或与软件相关的处理流程;软件设计及实现人员软件设计及实现人员根据交互图确定对象的操作及操根据交互图确定对象的操作及操作实现方法;作实现方法;测试人员测试人员可从交互图了解软件处理过程并据此设计测可从交互图了解软件处理过程并据此设计测试用例。试用例。图图5.15.1是课程注册管理系统中是课程注册管理系统中“制订选课计划制订选课计划”用用例的顺序图,该图表示将一些课程设置添加至学例的顺序图,该图表示将一些课程设置添加至学生选课计划时软件系统内多个对象之间的交互协生选课计划时软件系统内多个对象之间的交互协作过程。作过程。2024/8/410顺序图交互图的作用:2023/8/1910图图5.1 5.1 课程注册管理系统中课程注册管理系统中“制订选课计划制订选课计划”用例的顺序图用例的顺序图2024/8/411图5.1课程注册管理系统中“制订选课计划”用例的顺序图20(一)顺序图概览(一)顺序图概览顺序图是一张顺序图是一张二维图二维图。其其纵向纵向代表时间轴代表时间轴,时间沿垂直方向向下延伸;,时间沿垂直方向向下延伸;其其横向横向由多个参与由多个参与交互的对象交互的对象构成,这些对象构成,这些对象之间无顺序关系。之间无顺序关系。一般情况下,一般情况下,时间轴上的两点只有相对时序时间轴上的两点只有相对时序的的差异,但在实时应用中,可以使用带时间刻度差异,但在实时应用中,可以使用带时间刻度的时间轴以度量两点之间的绝对时差。的时间轴以度量两点之间的绝对时差。一张基本的顺序图由以下图形元素构成:一张基本的顺序图由以下图形元素构成:对象对象及其生命线与活跃期,消息传递,注解及其生命线与活跃期,消息传递,注解。2024/8/412(一)顺序图概览顺序图是一张二维图。2023/8/1912顺序图概览顺序图概览顺序图中的对象表示为嵌于矩形框内形如顺序图中的对象表示为嵌于矩形框内形如 “对象名对象名:类名类名”的文本,其中对象名、类名分别可省略,但不能同时的文本,其中对象名、类名分别可省略,但不能同时省略。省略。当同一类有多个对象参与同一张顺序图所示的交互时,当同一类有多个对象参与同一张顺序图所示的交互时,或者当对象将作为参数出现在本图中的某条消息时,或者当对象将作为参数出现在本图中的某条消息时,对象名就不能省略。对象名就不能省略。对象之下的垂直虚线称为对象的对象之下的垂直虚线称为对象的生命线生命线,表示对,表示对象在始于对象表示图元所处的时间起点、止于对象象在始于对象表示图元所处的时间起点、止于对象生命终结符(见生命终结符(见图图5.15.1中中TimeConflictCheckerTimeConflictChecker对象对象的生命线)之间的时间段内在软件系统中存在。的生命线)之间的时间段内在软件系统中存在。u如果对象生命线的下方没有终结符,则表示对象在顺如果对象生命线的下方没有终结符,则表示对象在顺序图所代表的时间段之后仍然存在。序图所代表的时间段之后仍然存在。2024/8/413顺序图概览顺序图中的对象表示为嵌于矩形框内形如2023/8顺序图概览顺序图概览对象中操作的对象中操作的执行期执行期(包括等待同步调用返回(包括等待同步调用返回的时间)称为的时间)称为对象的活跃期对象的活跃期,它由覆盖于对象生,它由覆盖于对象生命线之上的长条形矩形表示。命线之上的长条形矩形表示。如果对象发出传向自身的消息(见如果对象发出传向自身的消息(见图图5.15.1中中TimeConflictChecker TimeConflictChecker 对象的生命线),或者作对象的生命线),或者作为消息接收方的对象在处理消息的过程中又向消为消息接收方的对象在处理消息的过程中又向消息发送方对象传递另一消息,则会导致息发送方对象传递另一消息,则会导致活跃期的活跃期的嵌套嵌套。2024/8/414顺序图概览对象中操作的执行期(包括等待同步调用返回的时间)顺序图概览顺序图概览对象间的消息传递表示为对象生命线之间的对象间的消息传递表示为对象生命线之间的有向边有向边,边上,边上可标注可标注 “*监护条件监护条件 返回值返回值:=:=消息名消息名(参数表参数表)”)”其中其中“*”“*”为迭代标记,表示同一消息对同一类的多个对象为迭代标记,表示同一消息对同一类的多个对象发送。发送。当出现迭代标记时,监护条件表达式表示迭代条件,例如当出现迭代标记时,监护条件表达式表示迭代条件,例如图图5.15.1中中的的“*“*对所有无冲突的课程设置对所有无冲突的课程设置”;否则,它表示消息传递实际发生的条件。否则,它表示消息传递实际发生的条件。返回值返回值表示消息被接收方对象处理完成后回送的结果。表示消息被接收方对象处理完成后回送的结果。消息名消息名的命名规则应与类图中操作的命名规则相一致。的命名规则应与类图中操作的命名规则相一致。在消息的在消息的条件表达式条件表达式和和参数表参数表中可以使用关键字中可以使用关键字“self”self”表示发出消息的源对象。表示发出消息的源对象。2024/8/415顺序图概览对象间的消息传递表示为对象生命线之间的有向边,边顺序图概览顺序图概览建模者勿需考虑消息发送与接收之间的时延,确需考虑时建模者勿需考虑消息发送与接收之间的时延,确需考虑时(例如,在实时应用中,或者当消息通过网络传输时),(例如,在实时应用中,或者当消息通过网络传输时),可以用斜向下方的消息边来表示,见图可以用斜向下方的消息边来表示,见图5.25.2(c c)。顺序图中的消息分为顺序图中的消息分为同步、异步同步、异步两种,分别用两种,分别用实心三角形实心三角形箭头箭头和和普通箭头普通箭头表示,见表示,见图图5.25.2(a a)和()和(b b)。同步消息的发送者等待消息接收对象将消息处理完成后再同步消息的发送者等待消息接收对象将消息处理完成后再继续,异步消息的发送者在发送完消息后不等待接收方即继续,异步消息的发送者在发送完消息后不等待接收方即继续自己的处理。继续自己的处理。同步消息会指向作为消息接收目标的对象的活跃期的顶端。同步消息会指向作为消息接收目标的对象的活跃期的顶端。2024/8/416顺序图概览建模者勿需考虑消息发送与接收之间的时延,确需考虑时顺序图概览顺序图概览UMLUML中有四种特殊的消息:中有四种特殊的消息:自消息、返回消息、自消息、返回消息、创建(创建(createcreate)消息、销毁()消息、销毁(destroydestroy)消息)消息。u自消息自消息是指一个对象传向其自身的消息。是指一个对象传向其自身的消息。u如果一条消息从对象如果一条消息从对象a a传向对象传向对象b b,那么其返回消,那么其返回消息是一条从息是一条从b b指向指向a a的虚线有向边,它表示原消息的虚线有向边,它表示原消息的处理已经完成,处理结果(如果有的话)沿返的处理已经完成,处理结果(如果有的话)沿返回回消息传回消息传回。2024/8/417顺序图概览UML中有四种特殊的消息:自消息、返回消息、创建(顺序图概览顺序图概览u创建消息、销毁消息的名称分别为创建消息、销毁消息的名称分别为 create create、destroydestroy,或或 在消息边上标注构造型在消息边上标注构造型 、,分别表示对消息传递的目标对象的创建和删除。分别表示对消息传递的目标对象的创建和删除。对于创建消息,目标对象的矩形表示图元的纵向对于创建消息,目标对象的矩形表示图元的纵向位置应位于消息接收点(因为在此之前此对象并位置应位于消息接收点(因为在此之前此对象并不存在)。不存在)。对于销毁消息,其目标对象的生命线应恰在消息对于销毁消息,其目标对象的生命线应恰在消息接收点之下显示终结符。接收点之下显示终结符。2024/8/418顺序图概览创建消息、销毁消息的名称分别为2023/8/191可以在对象生命线上可以在对象生命线上嵌入状态符嵌入状态符,它表示,它表示对象在状态符所处的时间点上必定进入相对象在状态符所处的时间点上必定进入相应的状态。应的状态。还可以用状态符来表示来自其他对象的某条还可以用状态符来表示来自其他对象的某条消息将导致对象状态的改变,此时状态符消息将导致对象状态的改变,此时状态符应在时间轴方向上靠近那条消息。应在时间轴方向上靠近那条消息。如,如,图图5.35.3表示,表示,ScheduleSchedule对象在收到对象在收到“confirm”“confirm”消息后将进入消息后将进入“confirmed”“confirmed”状态。状态。2024/8/419可以在对象生命线上嵌入状态符,它表示对象在状态符所处的时间顺序图概览顺序图概览在顺序图的左侧,可加在顺序图的左侧,可加注解注解以以阐释消息的意义、阐释消息的意义、有关的约束以及消息传递时间点之间的延时约束。有关的约束以及消息传递时间点之间的延时约束。注解处的位置应在注解处的位置应在水平方向上与对应的消息相齐水平方向上与对应的消息相齐。为精确地描述延时约束,可以在对象的生命线或为精确地描述延时约束,可以在对象的生命线或活跃期上标注时间标签,见图活跃期上标注时间标签,见图5.25.2(c c)。当用例图中的执行者的实例出现在顺序图中时,当用例图中的执行者的实例出现在顺序图中时,它与软件系统内部对象之间的交互消息不同于两它与软件系统内部对象之间的交互消息不同于两个内部对象之间的交互,仅依靠消息名、参数表个内部对象之间的交互,仅依靠消息名、参数表来描述此类消息往往过于形式化,也难以完整、来描述此类消息往往过于形式化,也难以完整、详尽地表达交互的内容,因此应该在注解中以自详尽地表达交互的内容,因此应该在注解中以自然语言予以阐述。然语言予以阐述。2024/8/420顺序图概览在顺序图的左侧,可加注解以阐释消息的意义、有关的图图 5.25.2 同步、异步及带时延的消息同步、异步及带时延的消息(b)异步消息)异步消息2024/8/421(a)同步消息(c)带时延的消息图5.2同步、异步及带时延的消息(b图图5.3 5.3 嵌入状态符的对象生命线嵌入状态符的对象生命线2024/8/422图5.3嵌入状态符的对象生命线2023/8/1922(二)主动对象与被动对象(二)主动对象与被动对象考察整张顺序图(而非局部),在该图表示的时间段内,考察整张顺序图(而非局部),在该图表示的时间段内,如果有如果有多个对象同时处于活跃期多个对象同时处于活跃期,其中,其中某些对象的活跃是某些对象的活跃是直接或间接地起因于某个对象直接或间接地起因于某个对象A A传出的消息传出的消息,则称,则称A A为主动为主动对象对象,称由,称由A A直接或间接激活的对象为直接或间接激活的对象为被动对象被动对象。被动对象在响应、处理消息时接受消息源对象的控制,在被动对象在响应、处理消息时接受消息源对象的控制,在消息处理完毕后将控制权交还,其活跃期的顶部位于消息消息处理完毕后将控制权交还,其活跃期的顶部位于消息接收点,底部位于消息处理完成时刻点。接收点,底部位于消息处理完成时刻点。如,在如,在图图5.15.1和和图图5.5.3 3中,中,ScheduleManagerScheduleManager对象为主动对对象为主动对象,其他对象为被动对象。象,其他对象为被动对象。主动对象在顺序图中以带主动对象在顺序图中以带双竖线的矩形双竖线的矩形表示,也可以采用表示,也可以采用约束特性约束特性activeactive来表示,见来表示,见图图5.45.4。2024/8/423(二)主动对象与被动对象考察整张顺序图(而非局部),在该图表主动对象与被动对象主动对象与被动对象在一张顺序图中,可能在一张顺序图中,可能存在多个主动对象存在多个主动对象。此时,这些主动对象所掌控的控制流将此时,这些主动对象所掌控的控制流将并发执行并发执行。两个主动对象之间的消息传递应该是两个主动对象之间的消息传递应该是异步的异步的。由于多个主动对象引起的上述语义复杂性,所以建模者应由于多个主动对象引起的上述语义复杂性,所以建模者应尽量避免这种情形,仅在确需强调多个主动对象所掌控的尽量避免这种情形,仅在确需强调多个主动对象所掌控的控制流的并发性及它们之间的异步消息时,才在一张顺序控制流的并发性及它们之间的异步消息时,才在一张顺序图中引入多个主动对象。图中引入多个主动对象。如,在图如,在图5.35.3所示的场景中,单个主动对象就已足够;但所示的场景中,单个主动对象就已足够;但在刻画协同工作场景时,需要强调任务负责人及多个子任在刻画协同工作场景时,需要强调任务负责人及多个子任务承担者之间的并行处理,就必须引入多个主动对象,见务承担者之间的并行处理,就必须引入多个主动对象,见图图5.45.4。2024/8/424主动对象与被动对象在一张顺序图中,可能存在多个主动对象。20图图5.4 5.4 多个主动对象构成的顺序图多个主动对象构成的顺序图2024/8/425图5.4多个主动对象构成的顺序图2023/8/1925(三)建模规则(三)建模规则在进行顺序图建模过程中,建议读者遵循以下经在进行顺序图建模过程中,建议读者遵循以下经验规则:验规则:在业务分析和需求分析阶段,建模者并不需要在业务分析和需求分析阶段,建模者并不需要过于精细地刻画顺序图的所有图形元素。过于精细地刻画顺序图的所有图形元素。消息名和消息传递条件均可采用业务术语及自然消息名和消息传递条件均可采用业务术语及自然语言描述,消息的参数表可以省略。语言描述,消息的参数表可以省略。2024/8/426(三)建模规则在进行顺序图建模过程中,建议读者遵循以下经验规建模规则建模规则无论是在分析阶段还是在设计阶段,建模者无论是在分析阶段还是在设计阶段,建模者均应聚焦于均应聚焦于对象间关键的、主要的交互对象间关键的、主要的交互,避免,避免因过多的细节而使顺序图含混不清、复杂不堪。因过多的细节而使顺序图含混不清、复杂不堪。如如u作为业务分析或需求分析模型的顺序图不必考虑作为业务分析或需求分析模型的顺序图不必考虑用户界面对象与业务对象之间的交互、数据的持久用户界面对象与业务对象之间的交互、数据的持久存储等问题。存储等问题。u除非特别必要,一般应尽量避免显式表示返回、除非特别必要,一般应尽量避免显式表示返回、创建、销毁消息及对象生命终结符,也不需要显式创建、销毁消息及对象生命终结符,也不需要显式区分同步、异步消息。区分同步、异步消息。u勿需过多考虑对象的活跃期图元,也不需显式表勿需过多考虑对象的活跃期图元,也不需显式表示活跃期的嵌套,一般利用建模工具自动生成的活示活跃期的嵌套,一般利用建模工具自动生成的活跃期图元即可。跃期图元即可。2024/8/427建模规则无论是在分析阶段还是在设计阶段,建模者均应聚焦于对建模规则建模规则在设计和实现模型中,如果消息的参数与顺在设计和实现模型中,如果消息的参数与顺序图表述的控制逻辑无关,仅起占位符作用,序图表述的控制逻辑无关,仅起占位符作用,则在消息的参数表中用参数的类型名(大写字则在消息的参数表中用参数的类型名(大写字母开头)表示此参数;母开头)表示此参数;u否则,应尽量采用实例名(小写字母开头)表示此否则,应尽量采用实例名(小写字母开头)表示此参数,建模者应保证顺序图的读者能够从实例名直参数,建模者应保证顺序图的读者能够从实例名直观、无歧义地推断出参数的类型,如果不然,应在观、无歧义地推断出参数的类型,如果不然,应在参数表中同时示出参数类型和参数实例名。参数表中同时示出参数类型和参数实例名。u对消息的返回值,如果后续的消息需要在条件表达对消息的返回值,如果后续的消息需要在条件表达式或参数表中使用此返回值,则需给出其实例名;式或参数表中使用此返回值,则需给出其实例名;u否则,如果建模者需要强调返回值类型,则可采用否则,如果建模者需要强调返回值类型,则可采用“消息名(参数表)消息名(参数表):返回值类型返回值类型”的形式表示的形式表示消息;消息;u其他情况下,应忽略消息的返回值。其他情况下,应忽略消息的返回值。2024/8/428建模规则在设计和实现模型中,如果消息的参数与顺序图表述的控(四)布局规则(四)布局规则尽管尽管对象在水平轴上的次序没有严格的语义信息对象在水平轴上的次序没有严格的语义信息,但建模应遵循,但建模应遵循以下以下布局规则布局规则:将用例的主动执行者实例安排在顺序图左侧;被动执行者将用例的主动执行者实例安排在顺序图左侧;被动执行者实例安排在顺序图右侧。实例安排在顺序图右侧。采用分层设计时,应将同层对象放在一起采用分层设计时,应将同层对象放在一起每层对象的排序规则是:接近用户界面层靠左,接近后台每层对象的排序规则是:接近用户界面层靠左,接近后台处理层(如,数据持久存储层)靠右;处理层(如,数据持久存储层)靠右;在软件分层结构中相邻的层,其对象集合在顺序图的水平在软件分层结构中相邻的层,其对象集合在顺序图的水平布局中也相邻。布局中也相邻。因同层对象交互较多,相邻层间的交互较少,跨层交互更因同层对象交互较多,相邻层间的交互较少,跨层交互更少,所以此排序规则可有效缩短消息边的长度,简化顺序少,所以此排序规则可有效缩短消息边的长度,简化顺序图。图。在遵守以上两条规则的同时,对象的排序应尽量缩短消息在遵守以上两条规则的同时,对象的排序应尽量缩短消息边的长度,并且尽量使消息边的方向从左至右。边的长度,并且尽量使消息边的方向从左至右。2024/8/429(四)布局规则尽管对象在水平轴上的次序没有严格的语义信息,但布局规则布局规则关于消息边上文字的位置,有以下布局规则:关于消息边上文字的位置,有以下布局规则:如果模型读者辨识消息的目标对象较辨识消息的源对象如果模型读者辨识消息的目标对象较辨识消息的源对象为难,则文字应置于消息的目标端;否则,文字应置于消为难,则文字应置于消息的目标端;否则,文字应置于消息的源端。息的源端。当消息的源和目标都易于辨识时,建模者可将文字置于任当消息的源和目标都易于辨识时,建模者可将文字置于任意一端(不宜将文字置于消息边的中间位置),但在本项意一端(不宜将文字置于消息边的中间位置),但在本项目的所有顺序图中应保持风格一致。目的所有顺序图中应保持风格一致。返回消息上的文字一定要置于消息的目标端。返回消息上的文字一定要置于消息的目标端。2024/8/430布局规则关于消息边上文字的位置,有以下布局规则:2023/85.1.2 5.1.2 通信图通信图通信通信图是是顺序序图的另一种表的另一种表现形式。形式。如,如,图5.5是与是与图5.1所示的所示的顺序序图等价的通信等价的通信图(除(除注解外)注解外)2024/8/4315.1.2通信图通信图是顺序图的另一种表现形式。2023/2024/8/432图5.5 课程注册管理系统中“制订选课计划”用例的通信图2023/8/1932图5.5课程注册管理系统中“制订选课(一)通信图概览(一)通信图概览通信图的构成元素:通信图的构成元素:通信图的通信图的节点节点是是参与交互的对象参与交互的对象,这些对象的表示方法,这些对象的表示方法与顺序图相同。与顺序图相同。由于不再设置单独的时间维度,所以对象在通信图中可由于不再设置单独的时间维度,所以对象在通信图中可自由定位。自由定位。对象之间的连接称为对象之间的连接称为连接器连接器(connectorconnector),它扮演),它扮演对对象之间的消息传递通道象之间的消息传递通道的角色。的角色。连接器可以是连接器可以是无向的无向的,表示此通道支持,表示此通道支持双向双向的消息传递;的消息传递;也可以是也可以是有向的有向的,此时消息只能,此时消息只能沿连接器的方向传递沿连接器的方向传递。在在连接器的两端可以标注连接器的两端可以标注角色名角色名,这与类图中的关联边,这与类图中的关联边相似。相似。在连接器上可以标示一到多条消息。在连接器上可以标示一到多条消息。每条消息的传递方向用每条消息的传递方向用靠近消息的小箭头靠近消息的小箭头表示。表示。与顺序图一样,通信图中也可以区分同步、异步消息,与顺序图一样,通信图中也可以区分同步、异步消息,以及返回消息、创建消息和销毁消息。以及返回消息、创建消息和销毁消息。2024/8/433(一)通信图概览通信图的构成元素:2023/8/1933通信图概览通信图概览通信图中消息的描述语法与顺序图稍有差异,形如:通信图中消息的描述语法与顺序图稍有差异,形如:序号序号 迭代描述符迭代描述符:条件条件返回值返回值:=:=消息名消息名(参数表参数表):):返回类型返回类型,其中:其中:消息序号采用多层结构化标号。消息序号采用多层结构化标号。如,如,“1.1”1.1”表示第表示第1 1个步骤中的第个步骤中的第1 1个子步骤,个子步骤,“1.2”1.2”在时序上一定位于在时序上一定位于“1.1”1.1”之后,之后,“1.1.3”1.1.3”表示表示“1.1”1.1”中的第中的第3 3个子步骤,如此等等。个子步骤,如此等等。在序号中可以在序号中可以嵌入小写字母表示线程名嵌入小写字母表示线程名,用来强调,用来强调并发并发的的消息传递,消息传递,如,如,“1.1a”1.1a”和和“1.1b”1.1b”所标引的消息在步骤所标引的消息在步骤“1.1”1.1”中中可以并发传递,可以并发传递,“1.1b.4”1.1b.4”表示表示“1.1”1.1”步骤的第步骤的第2 2个线程个线程中的第中的第4 4个子步骤。个子步骤。2024/8/434通信图概览通信图中消息的描述语法与顺序图稍有差异,形如:20通信图概览通信图概览通信图也可通过通信图也可通过消息序号来表示消息传递的时间序消息序号来表示消息传递的时间序,只不,只不过这种表示不如顺序图那样直观。过这种表示不如顺序图那样直观。迭代描述符形如迭代描述符形如“*“*迭代条件迭代条件”,表示同一条消息的,表示同一条消息的反复传递,见反复传递,见图图5.55.5中序号为中序号为1.2.21.2.2、1.31.3和和1.41.4的消息前的的消息前的迭代描述符示例。迭代描述符示例。当序号或迭代描述符出现时,第一个分隔符当序号或迭代描述符出现时,第一个分隔符“:”:”必须必须出现;否则,该分隔符应隐藏。出现;否则,该分隔符应隐藏。条件、返回值、消息名、参数表的表示及意义与顺序图条件、返回值、消息名、参数表的表示及意义与顺序图相同。相同。2024/8/435通信图概览通信图也可通过消息序号来表示消息传递的时间序,只不通信图概览通信图概览通信图的对象图元附近,可使用以下约束:通信图的对象图元附近,可使用以下约束:“new”“new”表示该对象是在本通信图表示的交互表示该对象是在本通信图表示的交互过程中因对象创建消息而获得生命的。过程中因对象创建消息而获得生命的。“destroyed”“destroyed”表示该对象是在本通信图表示表示该对象是在本通信图表示的交互过程中因对象销毁消息而结束生命的。的交互过程中因对象销毁消息而结束生命的。“transient”“transient”表示该对象在本通信图表示的表示该对象在本通信图表示的交互过程中既被创建,此后又被销毁。交互过程中既被创建,此后又被销毁。2024/8/436通信图概览通信图的对象图元附近,可使用以下约束:2023/8通信图概览通信图概览如果两个对象之间如果两个对象之间存在消息传递存在消息传递,那么它们,那么它们所属的类之间起码应所属的类之间起码应存在依赖关系存在依赖关系。这就。这就要求建模者必须仔细检查要求建模者必须仔细检查顺序图及通信图顺序图及通信图与类图之间的一致性与类图之间的一致性。发现不一致性,有两种处理方法:发现不一致性,有两种处理方法:u 在类图中添加必要的依赖或关联关系;在类图中添加必要的依赖或关联关系;u 在整个项目中约定,如果两个类的对象之间在整个项目中约定,如果两个类的对象之间有消息传递,即便类图中未显示它们之间的依有消息传递,即便类图中未显示它们之间的依赖关系,也隐含地认为该依赖关系实际上存在。赖关系,也隐含地认为该依赖关系实际上存在。2024/8/437通信图概览如果两个对象之间存在消息传递,那么它们所属的类之间(二)布局规则(二)布局规则尽管对象在通信图中可自由定位,但建模者应遵循以下规则:尽管对象在通信图中可自由定位,但建模者应遵循以下规则:对象按行上下对齐,按列左右对齐,连接器绘制成水平对象按行上下对齐,按列左右对齐,连接器绘制成水平线段、垂直线段或者由水平、垂直两种线段组合而成的折线段、垂直线段或者由水平、垂直两种线段组合而成的折线,避免斜线。线,避免斜线。如果有用例的主动执行者的实例,则它应位于通信图的如果有用例的主动执行者的实例,则它应位于通信图的左上部;如果有用例的被动执行者的实例,则它应位于通左上部;如果有用例的被动执行者的实例,则它应位于通信图的右侧。信图的右侧。当采用分层设计的思想(见第七章)时,分层对象的布当采用分层设计的思想(见第七章)时,分层对象的布局方法与顺序图中类似,不过通信图允许同层的多个对象局方法与顺序图中类似,不过通信图允许同层的多个对象布局成多行、多列。布局成多行、多列。在遵守以上三条规则的同时,对象的排列应尽量缩短连在遵守以上三条规则的同时,对象的排列应尽量缩短连接器的长度,并且尽量使消息的传递方向从左至右、从上接器的长度,并且尽量使消息的传递方向从左至右、从上至下。当然,也不能禁绝从右至左、从下而上的消息传递。至下。当然,也不能禁绝从右至左、从下而上的消息传递。2024/8/438(二)布局规则尽管对象在通信图中可自由定位,但建模者应遵循以(三)顺序图与通信图之间的选取(三)顺序图与通信图之间的选取顺序图和通信图互为派生视图,建模者往往面临选用顺序顺序图和通信图互为派生视图,建模者往往面临选用顺序图还是通信图的困惑。图还是通信图的困惑。建议读者依次考虑以下规则(前面的规则优先级较高):建议读者依次考虑以下规则(前面的规则优先级较高):当需要强调消息传递的时间序时采用顺序图;当需要强调消息传递的时间序时采用顺序图;当需要强调对象之间的交互、协作关系时采用通信图。当需要强调对象之间的交互、协作关系时采用通信图。当刻画用例的动作序列时,采用顺序图;当刻画用例的动作序列时,采用顺序图;当刻画软件内部等某项功能的实现构想时,采用通信图。当刻画软件内部等某项功能的实现构想时,采用通信图。在业务分析和需求建模阶段,优先考虑顺序图;在设计在业务分析和需求建模阶段,优先考虑顺序图;在设计和实现阶段,优先考虑通信图。和实现阶段,优先考虑通信图。2024/8/439(三)顺序图与通信图之间的选取顺序图和通信图互为派生视图,建5.1.3 5.1.3 状态图状态图定义定义 :状态图描述一个状态图描述一个实体实体在事件刺激下的在事件刺激下的反应反应式动态行为式动态行为。构成:构成:它包含实体所有可能的它包含实体所有可能的状态状态、在每个状态、在每个状态下能够响应的下能够响应的事件事件以及事件发生时的状态变迁与以及事件发生时的状态变迁与响应响应动作动作。实体实体可以是类的可以是类的典型对象典型对象,也可以是一个,也可以是一个软件系统软件系统(或其子部分)或其中一个软构件(或其子部分)或其中一个软构件,甚至也可以是包,甚至也可以是包含目标软件系统的含目标软件系统的整个大系统整个大系统。作用:作用:状态图可分别用来描述一个类的典型对象、状态图可分别用来描述一个类的典型对象、软件系统、软构件或系统的行为。软件系统、软构件或系统的行为。2024/8/4405.1.3状态图定义:状态图描述一个实体在事件刺激下的反状态图状态图并不需要对所有类建立状态图,并不需要对所有类建立状态图,仅针对系统中比较重要的仅针对系统中比较重要的类,并且其对象的行为比较复杂,行为的状态特征比较明类,并且其对象的行为比较复杂,行为的状态特征比较明显的类建立状态图即可。显的类建立状态图即可。“状态特征明显状态特征明显”指,对象在其生命周期中的行为模指,对象在其生命周期中的行为模式与其当前状态相关,对于同一事件,对象的状态不式与其当前状态相关,对于同一事件,对象的状态不同会导致事件响应行为的不同。同会导致事件响应行为的不同。图图5.65.6是对应于课程注册管理系统中是对应于课程注册管理系统中“课程设置课程设置”类的状类的状态图,图态图,图5.75.7是对应于某个购物网中是对应于某个购物网中“注册客户注册客户”类的结类的结构化状态图。构化状态图。2024/8/441状态图并不需要对所有类建立状态图,仅针对系统中比较重要的类,图图5.6 5.6 课程注册管理系统中课程注册管理系统中“课程设置课程设置”类的典型对象的状态图类的典型对象的状态图2024/8/442图5.6课程注册管理系统中“课程设置”类的典型对象的状态(一)相关概念(一)相关概念UMLUML的状态图四个基本概念:的状态图四个基本概念:状态状态 事件事件 活动(活动(activityactivity)动作(动作(actionaction)状态状态 对象的状态对应于由对象的状态对应于由对象的属性对象的属性构成的一个约束条件,无构成的一个约束条件,无论对象在其生命周期中属性值如何变化,当属性值满足此论对象在其生命周期中属性值如何变化,当属性值满足此约束条件时,对象对事件的响应行为完全一样。约束条件时,对象对事件的响应行为完全一样。因此,也可以将对象的状态定义为对象的具有统一行为模因此,也可以将对象的状态定义为对象的具有统一行为模式的某个生命周期阶段。式的某个生命周期阶段。2024/8/443(一)相关概念UML的状态图四个基本概念:2023/8/19事件事件 在对象生命周期中某时刻发生的、值得关注的针对该对在对象生命周期中某时刻发生的、值得关注的针对该对象的一种瞬时象的一种瞬时刺激或触动刺激或触动,包括:,包括:u消息型事件:消息型事件:其他对象传向该对象的同步消息,表示为其他对象传向该对象的同步消息,表示为 “消息名消息名(参数表参数表)”)”;u信号型事件:信号型事件:其他对象传向该对象的异步信号,表示为其他对象传向该对象的异步信号,表示为 “信号名信号名(参数表参数表)”)”;u时间型事件:时间型事件:时间到达指定的绝对时刻点或到达指定时间之后的相对时时间到达指定的绝对时刻点或到达指定时间之后的相对时刻点,分别表示为刻点,分别表示为 “at(at(绝对时间点绝对时间点)”)”、“after(after(基准时间点基准时间点,时延时延)”)”;u条件型事件:条件型事件:对象所处环境及对象属性值的变化导致某个条件成立,表对象所处环境及对象属性值的变化导致某个条件成立,表示为示为“when(when(条件表达式条件表达式)”)”。信号型事件的命名最好采用过去式,例如,信号型事件的命名最好采用过去式,例如,“属性已改变属性已改变”。2024/8/444事件2023/8/1944相关概念相关概念活动和动作都是计算过程,在过程中可以向对活动和动作都是计算过程,在过程中可以向对象发送同步消息或异步信号,创建或删除对象等。象发送同步消息或异步信号,创建或删除对象等。活动与动作之间的差异在于:活动与动作之间的差异在于:动作位于状态之间的迁移边上,比较简单,执行时间动作位于状态之间的迁移边上,比较简单,执行时间短;短;u活动位于状态中,可以比动作复杂、执行时间稍长。活动位于状态中,可以比动作复杂、执行时间稍长。2024/8/445相关概念活动和动作都是计算过程,在过程中可以向对象发送同步(二)基本机制(二)基本机制状态图的基本机制:状态图的基本机制:状态节点由状态名及可选的状态节点由状态名及可选的入口活动、出口活动、入口活动、出口活动、dodo活动、内部迁移活动、内部迁移构成。构成。一旦对象经迁移边从其他状态进入本状态,那么本状一旦对象经迁移边从其他状态进入本状态,那么本状态态入口活动将被执行入口活动将被执行。一旦对象经迁移边从本状态进入其他状态,那么本状一旦对象经迁移边从本状态进入其他状态,那么本状态的态的出口活动将被执行出口活动将被执行。dodo活动活动是当对象进入本状态并执行完入口活动(如果是当对象进入本状态并执行完入口活动(如果有的话)后应该执行的活动。有的话)后应该执行的活动。内部迁移内部迁移不会引起对象状态的变化不会引起对象状态的变化,所以它虽有源状,所以它虽有源状态(包含此迁移的状态),但没有目标状态。态(包含此迁移的状态),但没有目标状态。2024/8/446(二)基本机制状态图的基本机制:2023/8/1946基本机制基本机制(外部)迁移(外部)迁移表示为状态节点之间的有向边,自表示为状态节点之间的有向边,自迁移是指源状态节点与目标状态节点相同的特殊迁移是指源状态节点与目标状态节点相同的特殊的外部迁移。的外部迁移。有向边上可以标注有向边上可以标注 “事件事件 监护条件监护条件/动作动作”“事件事件”表示触发此次状态变迁的事件表示触发此次状态变迁的事件“监护条件监护条件”表示约束状态迁移真正发生的条件表达表示约束状态迁移真正发生的条件表达式式“动作动作”表示状态迁移期间应当执行的动作表示状态迁移期间应当执行的动作在监护条件和动作中均可引用触发事件的参数和在监护条件和动作中均可引用触发事件的参数和对象的属性。对象的属性。2024/8/447基本机制(外部)迁移表示为状态节点之间的有向边,自迁移是指基本机制基本机制顶层状态图包含初态和终态。顶层状态图包含初态和终态。它们均为特殊状态,其中初态还是一种伪状态它们均为特殊状态,其中初态还是一种伪状态(pseudo statepseudo state),不真正对应对象的属性值的),不真正对应对象的属性值的约束。约束。一张状态图应该恰有一个初态(所以不必对初态一张状态图应该恰有一个初态(所以不必对初态命名),可以有一到多个终态。命名),可以有一到多个终态。初态和终态不能包含任何活动或内部迁移。初态和终态不能包含任何活动或内部迁移。初态只能发迁移边,终态只能作为迁移边的目标初态只能发迁移边,终态只能作为迁移边的目标如果状态图在时间方面覆盖了对象的完整的生命如果状态图在时间方面覆盖了对象的完整的生命周期,那么初态表示对象的诞生,然后沿初态出周期,那么初态表示对象的诞生,然后沿初态出发的迁移边到达某个状态,终态表示对象将消亡发的迁移边到达某个状态,终态表示对象将消亡2024/8/448基本机制顶层状态图包含初态和终态。2023/8/1948(三)三)结构化机制结构化机制结构化机制是结构化机制是UMLUML状态图的重要特色。状态图的重要特色。它可以显著提升其描述能力并简化状态图的表示。它可以显著提升其描述能力并简化状态图的表示。下面结合图下面结合图5.75.7图简介图简介UMLUML状态图的结构化机制。状态图的结构化机制。2024/8/449(三)结构化机制结构化机制是UML状态图的重要特色。2023图图5.7 5.7 结构化状态图示例结构化状态图示例2024/8/450图5.7结构化状态图示例2023/8/1950结构化机制结构化机制状态状态s s是由子状态是由子状态s s 1 1,s,sn n 经经ANDAND(与)(与)逻辑复合逻辑复合而成指,对象处于状态而成指,对象处于状态s s当且仅当对象同时处于当且仅当对象同时处于s s1 1,s,sn n。可以认为复合状态对应的有关对象属性值的约束公可以认为复合状态对应的有关对象属性值的约束公式能够被分解为式能够被分解为n n个必须同时成立的子公式,每个个必须同时成立的子公式,每个子公式由一个子状态来表示。子公式由一个子状态来表示。UMLUML将由将由ANDAND逻辑复合而成的状态称为正交复合状态逻辑复合而成的状态称为正交复合状态如图如图5.75.7所示,已注册客户的状态被水平虚线分隔为所示,已注册客户的状态被水平虚线分隔为上、下两个正交区域,每个区域表示一个子状态,上、下两个正交区域,每个区域表示一个子状态,分别表示分别表示“积分状态积分状态”和和“信用状态信用状态”。当对象处于正交复合状态时,每个正交区域中恰有当对象处于正交复合状态时,每个正交区域中恰有一个状态是活跃的。一个状态是活跃的。2024/8/451结构化机制状态s是由子状态s1,sn经AND(与结构化机制结构化机制一个对象的状态一个对象的状态s s由子状态由子状态s s1 1,s,sn n经经XORXOR(异或)(异或)逻辑复合而成指,对象处于状态逻辑复合而成指,对象处于状态s s当且仅当对象处当且仅当对象处于于s s1 1,s,sn n中的某个子状态。中的某个子状态。可以认为子状态可以认为子状态s si i(1=i=n1=i=n)继承了复合状)继承了复合状态有关对象属性值的约束,并增强了这种约束以态有关对象属性值的约束,并增强了这种约束以使子状态之间可以相互区分。使子状态之间可以相互区分。UMLUML将复合状态将复合状态s s中的子状态称为直接子状态。中的子状态称为直接子状态。如,在图如,在图5.75.7中,上面的正交区域所表示的复合状中,上面的正交区域所表示的复合状态包含态包含“普通普通”、“银牌银牌”、“金牌金牌”3 3个直接子个直接子状态。状态。2024/8/452结构化机制一个对象的状态s由子状态s1,sn经XOR结构化机制结构化机制除通过除通过XORXOR和和ANDAND逻辑构造复合状态外,逻辑构造复合状态外,还可以将还可以将整张命名的状态图作为一个复合状态整张命名的状态图作为一个复合状态,在另一状,在另一状态图中以单个节点的方式引用,这就是态图中以单个节点的方式引用,这就是状态图的状态图的复用机制复用机制。在复合状态内部的子状态之间可以连接迁移边,在复合状态内部的子状态之间可以连接迁移边,子状态内部也可包含各种活动。子状态内部也可包含各种活动。复合状态本身可以是以其子状态为节点的普通状复合状态本身可以是以其子状态为节点的普通状态图,但对正交复合状态而言,迁移边不可穿越态图,但对正交复合状态而言,迁移边不可穿越正交区域分隔线。正交区域分隔线。2024/8/453结构化机制除通过XOR和AND逻辑构造复合状态外,还可以将整(四)建模规则(四)建模规则在状态图的建模过程中,应遵循以下规则:在状态图的建模过程中,应遵循以下规则:如果发现某些并非初态的状态节点上只有离开的如果发现某些并非初态的状态节点上只有离开的迁移边,没有到达的迁移边;迁移边,没有到达的迁移边;或某些并非终态的状态节点上只有到达的迁移边,或某些并非终态的状态节点上只有到达的迁移边,没有出发的迁移边,建模者就要高度没有出发的迁移边,建模者就要高度警惕迁移边警惕迁移边被遗漏的可能性被遗漏的可能性。在顶层状态图中示出初态与终态,以使状态图体在顶层状态图中示出初态与终态,以使状态图体现对象在其完整的生命周期中的行为。现对象在其完整的生命周期中的行为。在子状态图中,初态和终态可视实际需要而设置。在子状态图中,初态和终态可视实际需要而设置。状态中的入口活动必须适用于所有的到达迁移,状态中的入口活动必须适用于所有的到达迁移,出口活动必须适用于所有的离开迁移。出口活动必须适用于所有的离开迁移。2024/8/454(四)建模规则在状态图的建模过程中,应遵循以下规则:2023建模规则建模规则从同一状态出发、由同一事件触发的迁移边上的从同一状态出发、由同一事件触发的迁移边上的监护条件应该是互斥的。监护条件应该是互斥的。如果有两个以上的监护条件同时成立,具体执行哪如果有两个以上的监护条件同时成立,具体执行哪一条迁移边将是不确定的。一条迁移边将是不确定的。使用结构化状态图来描述对象的复杂行为,避免使用结构化状态图来描述对象的复杂行为,避免过于庞大的平板化状态图。过于庞大的平板化状态图。利用复合状态合并迁移边。利用复合状态合并迁移边。如,针对如,针对图图5.75.7,从复合状态,从复合状态“已注册已注册”边框上出边框上出发的迁移边等价于从该复合状态中所有子状态出发的迁移边等价于从该复合状态中所有子状态出发的发的1212条迁移边条迁移边“积分状态积分状态”的三个子状态和的三个子状态和“信用状态信用状态”的四的四个子状态可以组合出个子状态可以组合出34=1234=12个状态。个状态。2024/8/455建模规则从同一状态出发、由同一事件触发的迁移边上的监护条件(五)布局规则(五)布局规则针对状态图,本书推荐以下布局规则:针对状态图,本书推荐以下布局规则:状态节点按行上下对齐,按列左右对齐,迁移状态节点按行上下对齐,按列左右对齐,迁移边绘制成水平线段、垂直线段或者由水平、垂直边绘制成水平线段、垂直线段或者由水平、垂直两种线段组合而成的折线,避免斜线。两种线段组合而成的折线,避免斜线。初态应位于左上角,终态尽量靠近右下角。初态应位于左上角,终态尽量靠近右下角。迁移边上的文本标注应靠近源状态。迁移边上的文本标注应靠近源状态。2024/8/456(五)布局规则针对状态图,本书推荐以下布局规则:2023/85.1.4 5.1.4 扩充机制扩充机制UMLUML的扩充机制的组成:的扩充机制的组成:约束(约束(constraintconstraint)u 标记值(标记值(tagged valuetagged value)u 构造型(构造型(stereotypestereotype)扩充机制适合于以下应用场景:扩充机制适合于以下应用场景:建模者希望向模型的读者或实现者传递建模者希望向模型的读者或实现者传递UMLUML标准语义无标准语义无法表达的更为精细的语义信息。法表达的更为精细的语义信息。如,针对类中的操作,如果建模者希望区分查询类操如,针对类中的操作,如果建模者希望区分查询类操作(不改变对象的属性值)和更改类操作,就必须借作(不改变对象的属性值)和更改类操作,就必须借助扩充机制。助扩充机制。2024/8/4575.1.4扩充机制UML的扩充机制的组成:202
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!