




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章过程建模5-2PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-2学习目标过程模型描述了业务过程,即人们所做出的活动,它是为现有系统或待开发系统而开发的模型。最常用的过程建模技术是数据流图。学习目标理解数据流图的使用规则和设计原则理解创建数据流图的过程能够创建数据流图掌握UML鲁棒图、时序图、通信图、活动图
3
提纲§6.1引言§6.2数据流图§6.3创建数据流图
§6.4将方案应用到CDSelections项目§6.5UML动态建模
4
过程模型过程模型是表示业务系统运行的一种形式化方法,它演示了系统执行的过程或活动,以及数据在它们之间是如何流动的,过程模型可以用来描述现有系统或待开发系统,不管它们是否能被计算机化。有许多不同的过程建模技术数据流图是以图形的方式描述系统业务流程以及系统内数据传递的一种技术。数据流图主要关注的是过程和所执行的活动独立于任何实现技术来描述系统的逻辑过程模型
5
逻辑过程模型和物理过程模型逻辑过程模型描述了在没有提示的情况下业务过程是这样被执行的物理过程模型提供了在建立系统时所需的必要信息首先通过关注逻辑过程模型,系统分析员将重点关注业务怎么执行
6
提纲§6.1引言§6.2
数据流图§6.3创建数据流图
§6.4将方案应用到CDSelections项目§6.5UML动态建模5-7PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-7医生办公系统DFD的一部分5-8PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-86.2.2数据流图的基本元素DFD语言中有4中符号(过程、数据流、数据存储、和外部实体),每个符号用不同的图形表示。5-9PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-9数据流图元素的命名和表示图形ProcessDataflowDatastoreExternalentity5-10PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-10DFD元素---过程是为特定业务原因而执行的活动或功能可以是人工或计算机化每个过程应该是以“动词开头和名词结尾”的形式进行命名每个过程一般只执行一个活动每个过程必须至少有一个输入数据流和一个输出数据流复杂的过程需要用正规的技术进行描述,例如:结构化语句、决策表或决策树5-11PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-11DFD元素---数据流单个数据或是一些信息的逻辑集合总是和过程一起出现,从一个过程流出或是流入一个过程,总是在过程开始在过程结束5-12PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-12DFD元素---数据存储以某种方式存储的数据集合数据存储是数据模型的起始点,是过程模型和数据模型的主要连接点从数据存储流出的数据流显示的是从数据存储检索信息流入数据存储的数据流代表的是把数据存储到数据存储中或是修改在数据存储中的数据每个数据存储必须至少有一个输入数据流数据存储在某一层的DFD中至少要有一个输出数据流5-13PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-13DFD元素---外部实体是位于系统范围之外与正在被研究的系统交互的人、组织部门或是其他系统.对外部实体理解的关键点是:外部实体位于系统范围之外,可能是组织的一部分,也可能不是一个常犯的错误是把“过程执行人”作为外部实体对待过程执行人通常在过程中描述,而不是在DFD中描述5-14过程执行人5-15PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-15DFD的性质(1)DFD中的箭头仅表示系统中数据的流动,不表示实物,为代表实物的信息。(2)DFD不能表示程序的控制结构,不包含“控制流”、“控制结构”、“激发条件”之类的信息。(3)DFD表现范围具有很大的灵活性,常用一组DFD由粗到细表示一软件在不同抽象级别上的逻辑性质。5-16PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-166.2.3用数据流图定义业务过程大部分业务过程由于太复杂而不能在一个DFD中描述,因此大部分过程模型由一系列的DFD构成。第一个DFD给出了整个系统的概要,其他DFD对系统的每个业务过程进行更为详细地描述。用DFD进行过程建模最重要的一点就是把业务过程分解成一系列的DFD,每个DFD代表更低层次的细节。5-17PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-17上下文图每个业务过程模型的第一个数据流图显示的是整个系统的交互环境,所有的过程模型都有一个上下文图显示的是整个业务过程仅仅作为一个过程并与外部实体间进行的数据流入流出的情况图中不包括数据存储,除非不是系统或过程“自有的”而是外部的。5-18PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-18Level0图0层DFD显示第一层数据流图,即过程1~3的所有过程、数据存储、外部实体及它们之间的数据流0层DFD的目的是显示系统主要的高层过程及它们之间是如何交互的,所有过程模型有且只有一个0层。在创建一系列DFD时,另外一个关键原则是平衡。平衡意味着保证在一层数据流图中出现的所有信息都必须准确地出现在下一层数据流图中,必须都以恰当的方式显示出来。添加数据存储5-19PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-19RelationshipamongLevelsofDFDsContextdiagramLevel0diagramLevel1diagramLevel2diagram5-20层次数据流图5-21PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-21Level1图每个0层DFD的过程还能被分解为更加清晰的DFD,即1层DFD或1层图。通常在所有过程模型中1层DFD数和0层DFD中的过程数是一样的,0层DFD中的每个过程分解成其自己的1层DFD显示了信息是怎样从0层移动到1层子过程集和父过程是一样的,它们仅仅是从不同角度来看待同一事件5-22PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-22Level2图显示了在1层中一个过程被分解成的所有过程显示了每个过程之间信息的流入和流出2层图可以不必是所有1层的过程可以借助DFD过程编号中点的数量来判断DFD所处的层。5-23PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-23可选数据流根据不同的条件,一个过程可以产生不同的数据流在DFD中如何表示这些可选的路径呢?我们将在过程描述里面解释这些可选的数据流DFD本身不能解释那些互相排斥的数据流5-24数据流图TABC*TA*CBTABC+数据A和B同时输入才能变换成数据C数据A变换成数据B和C数据A或B,或数据A和B同时输入变换成C数据A变换成B或C,或B和CTA*CB只有数据A或B(但不能A、B同时)输入变换成C数据A变换成B或C,但不能变换成B和CTABCTACB5-25PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-25过程描述过程描述的目的是解释过程做什么,以及提供数据流图不能提供的附加信息。SDLC中我们所做的其实就是将常规的文本需求描述渐渐转化为越来越精确的描述,并最终将其转化为程序代码。对于特别复杂的过程,可以通过更为详尽的过程描述来解释发生在过程内部的逻辑,有3种技术结构化英语:使用简短的句子描述过程的执行情况;决策树:通过一系列节点和分支显示决策逻辑;决策表:是连接不同条件和行动的复杂决策规则这些技术通常在编码阶段讨论5-26PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-26注意1数据流程图上所有图形符号只限于前述四种基本图形元素。数据流程图上所有图形符号只限于前述四种基本图形元素。数据流程图上的数据流必须封闭在外部实体之间。每个过程至少有一个输入数据流和一个输出数据流。5-27PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-27注意2在数据流程图中,需按层给加工框编号,编号表明该加工所处层次及上下层的亲子关系。一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。数据流程图上每个元素都必须有名字和编号。数据流图中不可夹带控制流。
28
提纲§6.1引言§6.2数据流图
§6.3
创建数据流图
§6.4将方案应用到CDSelections项目§6.5UML动态建模5-29PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-296.3创建数据流图DFDs始于需求定义和用例信息。尽管用例是由项目团队和用户一起来创建,但是DFD通常是由项目团队创建,然后由用户查看。通常,构成过程模型的DFD集只是简单地集成独立的用例。项目团队把用例重新将它们转化为DFD,不得不修改用例信息以符合DFD的规则。最常见的修改规则是:将用例的名称改为过程和数据流的输入和输出。将用例中几个小的输入和输出合并为数据流图中的大的数据流。项目团队通常使用过程建模工具或CASE工具来构建过程模型。5-30PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-30创建数据流图步骤创建上下文图创建数据流图段创建0层数据流图团队基于每个用例的内部步骤开发1层DFD以便更好地解释它们是如何执行的。在某种情况下,1层DFD需要进一步分解为2层DFD、3层和4层DFD;etc.团队验证DFD集以保证它们的完整性和正确性。5-31PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-316.3.1创建上下文图上下文图定义了业务过程或计算机系统是如何与其所处环境进行交互的。(主要是外部实体)创建上下文图时只需要为业务过程或建模的系统绘制一个过程符号(编号为0并为这个过程或系统命名)通过阅读用例图,给上下文图添加顶层表格列出的输入和输出,以及它们的来源和去向。所有的输入和输出都来自或流向外部实体,如人、组织或其他信息系统。如果有输入输出与外部系统的数据存储直接相连,那么最佳实践的方式是创建一个外部实体并将其定义为拥有该数据存储的系统。5-32PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-32创建上下文图示例5-33PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-336.3.2创建数据流图段DFD度是数据流图的一部分,最终与其他的DFD段一起合并成一个完整的DFD每个用例被转化为一个DFD段。获得每个用例并根据用例顶部提供的信息绘制DFD段,包括:名称、ID号以及主要的输入和输出。在转化过程中还要做两个重要的修改——修改过程名称和增加数据流。所有过程的名称必须是动宾格式——必须由动词开头并包含一个名称。5-34PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-34创建数据流图段增加数据流——用例没有描述系统时怎样获取数据,所以用例经常遗漏从数据存储中读取数据的数据流。最简单的做法用用例顶部列出的主要输入和输出来创建DFD段验证所有的输出都具有足够的输入来创建它们5-35PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-35创建数据流图段DFD中的布局是没有正式规则的DFD段尽量把过程放在中间输入放在左边或上面输出放在右边或底部数据存储放在过程下面5-36PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-36ADFDFragmentExample5-37PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-37创建0层数据流图一旦有了DFD段集合,只要简单合并它们便是一个0层DFD。系统分析员总是把第一个过程放在图的左上角并按照过程的顺序自顶向下、从左往右排列。减少数据流交叉的次数迭代是设计良好DFD的基础5-38PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-38创建0层数据流图5-39PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-39创建1层数据流图(及下层)为0层DFD中需要1层DFD的每个过程创建低层DFD。创建1层DFD的过程所采取的步骤与之前所讲的将用例转变为0层DFD的步骤基本是一样的用例中每个带有输入和输出的步骤都转变成1层DFD中带有输入数据流和输出数据流的过程但是有时需要做细微的修改才能将用例中描述的非正式信息转变为更加正式的过程模型。也可以包括外部实体5-40PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-40创建1层数据流图(及下层)何时停止分解DFDs层次?在每个DFD中应该至少有3个过程,至多有7~9个过程.5-415-425-435-445-455-46PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-46验证数据流图语法错误–指DFD的结构以及DFD是否遵循他的语言规则。假设正确DFD结构ForeachDFD:
Checkeachprocessfor:
Auniquename:actionverbphrase;number;descriptionAtleastoneinputdataflowAtleastoneoutputdataflowOutputdataflownamesusuallydifferentthan
inputdataflownamesBetween3and7processesperDFD5-47PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-47验证数据流图ForeachDFD:
Checkeachdataflowfor:
Auniquename:noun;description Connectstoatleastoneprocess Showninonlyonedirection(notwo-headedarrows) Aminimumnumberofcrossedlines
Checkeachdatastorefor: Auniquename:noun;description Atleastoneinputdataflow AtleastoneoutputdataflowCheckeachexternalentityfor: Auniquename:noun;description Atleastoneinputoroutputdataflow5-48PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-48验证数据流图AcrossDFDs:
ContextDiagram:
EverysetofDFDsmusthaveoneContextDiagram
每一组DFD必须有一个上下文图
Viewpoint:
ThereisaconsistentviewpointfortheentiresetofDFDs
整个DFD的实体名称必须一致
Decomposition:
Everyprocessiswhollyandcompletedescribedbythe
processesonitschildrenDFDs
每个过程所对应的子DFD中的所有过程应能完整描述该过程
Balance:
Everydataflow,datastore,andexternalentityonahigherlevel
DFDisshownonthelowerlevelDFDthatdecomposesit
Nodatastoresordataflowsappearonlower-leverDFDsthatdonotappearontheirparentDFD
在高层DFD中的每个数据流、数据存储和实体,在分解后的低层DFD中都要被显示出来
5-49PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-49验证数据流图语义–是指DFD的含义以及它是否准确描述了创建的业务过程建模确保模型表述确切,让用户对模型走查验证角色扮演过程确保模型的最底层可以提供一致的细节层次保证整个建模过程中的术语一致性5-50PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-50常见错误一个过程只有输入,没有输出(黑洞错误)一个过程只有输出,没有输入(奇迹错误)数据流从实体到实体数据流从实体到数据存储数据存储只有输入或输出数据流有双向箭头
51
提纲§6.1引言§6.2数据流图
§6.3创建数据流图
§6.4
将方案应用到CDSelections项目§6.5UML动态建模5-52PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-52创建上下文图5-53PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-53创建0层数据流图5-54PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006©JohnWiley&Sons,Inc.Allrightsreserved.6-54创建1层数据流图
55
提纲§6.1引言§6.2数据流图
§6.3创建数据流图
§6.4将方案应用到CDSelections项目§6.5
UML动态建模
56We’reheretoanswerthequestion...
57CodeLet’sassumethatwe’vedonealittleprototyping,andstartedtowritesomeusecases.Butcodeisourdesireddestination.?58Beforewegettocode,though...Weneedacompletesetofclasses,withaccompanyingattributesandmethods.Weshowthisinformationondesign-levelclassdiagrams.59Design-LevelClassDiagramsurdesign-levelclassdiagramsserveasthestructureforourcode.?60Beforewehaveclasseswithattributesandmethods,though...Wehaveonlyenoughinformationtomakegooddecisionsaboutwhichclassesareresponsibleforwhichmethodswhilewearedrawingsequencediagrams.So,weneedtodrawasequencediagramforeachusecase.61SequenceDiagramsWeallocatemethodstoclassesaswedrawsequencediagrams.??62Beforewedosequencediagrams,though
...Weneedtohaveagoodideaaboutwhatobjectswillbeperforminginwhichusecase,andwhatfunctionsthesystemwillperformasaresultofuseractions.Wegetthisinformationfromrobustnessdiagrams,theresultofrobustnessanalysis.63RobustnessAnalysisDoneforeachusecaseClosesgapbetween“what”and“how”GUI,Logic,Repository
Boundary,Control,EntityUsefulinclient/serverandN-tiermodelingHelpsdomainmodelevolveintodetailedstaticmodel
64
三种分析类
65
三种分析类与MVC的相似与不同
66
67
销户用例的鲁棒图
68
ATM系统的用例图
69
ATM系统的用例描述---用户登录
70
ATM系统的用例描述---用户登录
71
ATM系统的鲁棒图---用户登录
72
73
ATM系统的用例描述---取钱
74
ATM系统的用例描述---取钱
75
ATM系统的鲁棒图---取钱
76
77
作业和第一次实验报告评价
78
鲁棒图建模的十条经验
79
鲁棒图建模规则
80
鲁棒图的语法
81
不能墨守成规
82
鲁棒图的优点:够用,好用
83
动态建模的重要性应用系统开发中,分析设计人员通过建立系统的静态模型,能够获得系统中的有关组成及结构、各个部分之间的关联关系等信息。但是如果此时就急于进行系统的编码实现,则往往会很困难。因为大部分软件的功能实现程序都是由复杂的交互过程组成的,仅了解系统的结构和关系不足以进行系统功能的实现,还必须对应用系统建立完善的动态模型和了解系统中各个组件的消息的传递过程以及组件之间的交互关系。通过为系统建立动态模型,从而产生体现系统动态行为的可视化分析结果---包括对象的时间特性和对象为完成目标任务而相互进行通信的机制、对象行为的改变和状态变化情况,以及对象可能出现的各种活动状况等信息。
84
动态模型受静态模型的限制动态建模是在系统静态模型的基础上建立相应的动态模型。在建好系统静态模型的基础上,分析和设计系统的动态结构,并且建立相应的动态建模。动态模型受静态模型的限制,并且必须与静态模型保持一致,因为动态模型中的许多模型元素都是来源于静态模型的。动态模型描述了系统随时间变化的行为,这些行为是用从静态模型视图中抽取的系统瞬间值的变化来描述的。动态模型分为交互模型和活动状态模型,其中的交互模型主要由顺序图和协作图构成,活动状态模型主要由活动图和状态图构成。
85
利用交互图可以对共同工作的对象群体的行为进行建模系统中功能的具体实现是通过程序类中方法之间的调用完成的,而软件系统的分析和设计人员想了解某个功能或者用例的具体实现过程,则必须了解该功能实现过程中涉及的对象、对象之间是如何进行消息的发送和接收的。交互图(interactiondiagram)主要用于定义软件系统如何实现特定功能,并能够按照时间流程显示用例的实现过程,包括:在信息流中需要什么对象、对象相互发送什么消息、什么角色启动消息流、消息按什么时序发送、对象的状态是如何改变的交互图中交互的含义:描述了一组对象和它们之间的相互操作,也包括在对象间传递的消息。对象之间的交互是指一个对象访问另外一个对象中的方法或由于事件的触发而产生的对象之间的合作关系交互图以图示的形式表示方法调用的具体过程,有两种形式:顺序图和通信图。
86
对象之间进行交互时的消息消息包括发送者、接收者和动作发送者:发送者是发送消息的类元角色。接收者:接收者是接受消息的类元角色。动作:动作为调用、信号、发送者的局部操作或简单动作,如创建和销毁。动作带有参量表、接收者表达式已经对激活的操作或信号的引用。它还包括消息执行的迭代和条件说明。简单消息(SimpleMessage):消息在单个控制线程中运行。用于描述控制如何在对象间进行传递,不考虑通信的细节。简单消息的UML图示
87
对象之间进行交互时的消息消息包括发送者、接收者和动作发送者:发送者是发送消息的类元角色。接收者:接收者是接受消息的类元角色。动作:动作为调用、信号、发送者的局部操作或简单动作,如创建和销毁。动作带有参量表、接收者表达式已经对激活的操作或信号的引用。它还包括消息执行的迭代和条件说明。消息的类型简单消息(SimpleMessage):消息在单个控制线程中运行。用于描述控制如何在对象间进行传递,不考虑通信的细节。同步消息(SynchronousMessage):表示等待的语义。异步消息(AsynchronousMessage):主要用于描述实时系统中的并发行为。由于是异步的控制流,其中没有显示的到调用者的返回消息。表示不等待的语义
88
顺序图和通信图的异同顺序图(sequencediagram):按照时间顺序来描述对象的交互,将交互建模成消息交换,主要强调在交互过程中产生的各个消息的时间顺序从计算机的角度描述用例。协作图(collaborationdiagram):围绕着对象和对象之间的链接来描述对象的交互,强调接收和发送消息的对象的组织结构。协作图不能体现消息的先后顺序(协作图在UML2.x中也称通信图communicationsdiagram)这两种图在语言上是对等的,表达的消息内容是相同的顺序图中对象之间的链接是隐含的,对象顺序信息不够明显;协作图中对象之间的链接是显式的,而且协作图显示了不同信息流的视图,更容易看出对象之间的关系。尽管两者作用相同,包含相同的信息,但视图体现出的表达问题的内涵有所不同。在应用方面的侧重点不同。用顺序表示图赤壁之战的执行过程
89
90
90顺序图示例1图15-1顺序图publicclassA{privateBmyB=newB();publicvoiddoOne(){myB.doTwo();myB.doThree();}//……}对象名:类名对象名:类名
91
91图15-3顺序图publicclassSale{privatePaymentpayment;PublicvoidmakePayment(MoneycashTendered){payment=newPayment(cashTendered);//…}}顺序图示例2
92
顺序图中的各个组成模型元素及其作用顺序图中包含的模型元素有:对象、消息、生命线、激活期(点)。对象类角色生命线
生命线代表对象的名
字放置在方格内,按
时间从上到下的顺序,
生命线显示了消息的
顺序。在生命线上的
消息比在其下的消息
先发。当收到消息时,接
收对象立即开始执行
活动,即对象被激活.
生命线上的细长矩形
表示对象被激活。
93
顺序图中的激活期什么是激活期
激活期表示对象执行一个动作的周期,即对象激活的时间段。当收到消息时,接收对象立即开始执行活动,即对象被激活了。应用要点
当一个对象在激活期时,该对象在激活状态,能够响应或发送消息,执行动作、活动;当一个对象不在激活期时,该对象在休眠状态,但它仍然存在,等待新的消息来激活它。
94
95
96
97
登录用例的协作图
98
取款用例的协作图
协作图不能体现消息的先后顺序???
99
登录用例的协作图
100
取款用例的协作图
协作图不能体现消息的先后顺序???
101
顺序图和通信图的优点和缺点每种图都有其优点,建模者也各有偏好,因此没有绝对“正确”的选择。UML规范更多是以顺序图为核心,对其表示法和语义投入了更多的精力,因此顺序图对工具的支持更好,并且有更多有效的表示法选项。在墙上绘制“UML草图”时利用通信图更具有优越性,因为其更具有空间效用(可以在任何位置方便地放置或擦除框图),采用顺序图可以更方便地表示调用流的顺序,仅需要从左到右阅读即可。
102
UML初学者没有对交互图给予足够重视大部分UML初学者知道类图,并且通常认为类图是OO设计中唯一重要的图形,但实际上并非如此!尽管类图确实重要,但动态建模的交互图(更确切地说是动态交互建模中的动作)的价值更高。准则应该花费时间使用交互图进行动态对象建模,而不仅是使用类图进行静态对象建模UML活动图活动图的组成元素:活动转移判定点同步条泳道
103
104
105
UML中的活动图活动图本质上是结构化开发实现中的流程图活动图中的各个活动是在完成某个特定业务功能的实现过程中产生的。用例模型描述和采用活动模型描述之间的区别描述问题的角度不同
用例模型描述是从外部参与者的角度来编写的,更多地是体现系统具有的功能项目;活动模型描述采用内部系统的观点来描述,更多地是体现参与者在系统中可能从事的各项活动项目;应用的目的不同
用例描述没有表达出实现某个用例时系统处理的顺序(描述了系统执行的功能类型,但没有明确地表达用例可能发生的顺序);活动图可以表示由内部生产的动作(即描述具体的活动),也可以为参与者对系统的操作行为建模(即描述具体的行为)
106
UML中的活动图活动图中的动作特性:原子性、不可中断性、瞬时性活动图的主要应用既可以用来描述操作(类的方法)的行为,也可以描述用例和对象内部工作过程的活动。由状态图变化而来,但各用于不同目的:活动图侧重于描述行为和活动,状态图侧重于描述状态和转换。活动图依据对象状态的变化来捕获动作与动作的结果,一个动作结束后将立即进入下一个活动,而在状态图中,状态的变迁可能需要事件的触发。在什么应用场合中应该使用活动图对用例的扩展
107
UML中的活动图活动图的建模步骤定义活动的范围。添加活动的起始和结束点。添加各个具体的活动项目。添加在活动期间行为的转变。找出系统中各种并行的活动。排版和整理,使活动图整洁。活动图中各种模型元素主要模型元素有:活动状态、分支、合并、条件表达式、泳道、对象流状态、状态类、信号发送和信号接收等。活动图中的活动(Activity)Actionwithmultipleincomingand
outgoingedgesandimplicitfork/join
108
109
computerhardwaresales
110
UML中的活动图活动图中各种模型元素活动图中的条件关系和分支
活动图中的并发行为
111
UML中的活动图活动图中各种模型元素活动图中的对象
Objectnodes
connectedpins
stand-alonenotation
活动图中的对象流
对象流对应于一个对象经过整个活动的不同状态,对象流采用虚箭头线表示,控制流采用实虚箭头线
112
113
114
computerhardwaresales
115
§6.1.2带泳道的活动图活动可以被分成几个区域,每个区域在图中用泳道分开为什么要采用泳道来描述活动?
活动图能够帮助分析设计人员了解发生了什么,但没有体现或者表达该项活动是由谁来完成的。这在程序设计中意味着活动图没有描述各个活动由哪个具体的类来完成。泳道能够解决这一问题。泳道的作用能够将活动图的逻辑描述与顺序图、协作图的责任描述结合起来加以说明;
通过设计带泳道的活动图,不仅可以描述各个活动的项目,而且能够描述完成某个用例实现过程中的各项活动过程,同时通过泳道还能够明确各个活动涉及的目标对象。可用于建模某些复杂的活动状态
每一个泳道都可以对应于一个协同的目标对象,其中的活动可以由一个或多个相互连接的类的对象来实现
116
Simpleorganizationalstructuresandswimlanes
117
Simpleorganizationalstructuresandswimlanes
118
119
120
Sale仓储与物流销售与客服财务
121
computerhardwaresales
122
提问谈谈顺序图和通信图的异同谈谈顺序图和通信图的优缺点谈谈用例模型描述和采用活动模型描述之间的区别活动图中的动作有哪三个特性?状态图
123
124
125
状态及状态表示法状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于DavidHarel所做的扩展,是用来展示状态与状态之间转换的图
126
何时使用状态图
127
阅读最简单的状态图最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换
128
转换的五要素源状态:即受转换影响的状态目标状态:当转换完成后对象的状态触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件监护条件:布尔表达式,决定是否激活转换动作:转换激活时的操作
129
转接的三个组成部分:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人砂石运输合同范例
- 借款担保合同标准文本个人
- 热电联产在能源科技创新的政策环境分析考核试卷
- 乡下施工合同标准文本
- 农业广告合同标准文本
- 公司合资合同范例
- 染料生产过程中的智能化监测与控制考核试卷
- 休闲娱乐消费合同范例
- 个人快递转让合同范本
- 兖矿集团合同范例
- 高一班守纪律讲规矩主题班会
- 危重患者的转运及注意事项
- 盾构机同步注浆及二次注浆施工技术总结
- 压面机机械结构设计
- 干熄焦工艺流程动画演示
- 多维阅读第15级Chichen Beat “动感小鸡”乐队
- Qingming-festival-清明节日英文介绍ppt
- SWIFT报文的结构与报文类型
- 专业技术人员年度(聘任期满)考核登记表
- 大动脉炎PPT学习教案
- 中西医结合康复治疗在冠心病PCI术后35例中的应用
评论
0/150
提交评论