第4章构件配置图ppt课件

上传人:沈*** 文档编号:171388702 上传时间:2022-11-26 格式:PPT 页数:113 大小:2.05MB
返回 下载 相关 举报
第4章构件配置图ppt课件_第1页
第1页 / 共113页
第4章构件配置图ppt课件_第2页
第2页 / 共113页
第4章构件配置图ppt课件_第3页
第3页 / 共113页
点击查看更多>>
资源描述
l用例图用例图显示一组用例,参与者以及它们之间的关系。显示一组用例,参与者以及它们之间的关系。用用于需求分析阶段,即确定于需求分析阶段,即确定“谁使用系统以及做什么谁使用系统以及做什么”。l画好用例图是由软件需求到最终实现的第一步。画好用例图是由软件需求到最终实现的第一步。l用例图包括以下用例图包括以下3方面内容。方面内容。(1)用例()用例(Use Case)(2)参与者(参与者(Actor)(3)关系(依赖、泛化以及关联)关系(依赖、泛化以及关联)l用例图的主要元素是用例和用例图的主要元素是用例和参与者参与者:所谓用例是指对系:所谓用例是指对系统提供的功能统提供的功能(或系统的用途或系统的用途)的描述;的描述;参与者参与者是指可能是指可能使用用例的人或外部系统。两者的关系是使用用例的人或外部系统。两者的关系是“谁使用了哪谁使用了哪个用例个用例”.”.l用例图着重于从系统外部用例图着重于从系统外部参与参与者的角度来描述系统需要者的角度来描述系统需要提供哪些功能,并且指明这些功能的参与者是谁。提供哪些功能,并且指明这些功能的参与者是谁。l参与者(参与者(Actor)是系统外部的一个实体(可以是是系统外部的一个实体(可以是任何的事物或人),它以某种方式参与了用例的任何的事物或人),它以某种方式参与了用例的执行过程。执行过程。l参与者通过向系统输入或请求系统输入某些事件参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。参与者是系统之外,透过系来触发系统的执行。参与者是系统之外,透过系统边界与系统进行有意义交互的任何事物(人或统边界与系统进行有意义交互的任何事物(人或事物)。事物)。l在处理参与者时,应考虑其参与系统的身份,而在处理参与者时,应考虑其参与系统的身份,而不是人名或工作名。不是人名或工作名。l在在UML中,参与者用人形图符表示。中,参与者用人形图符表示。l但参与者未必是人,可以是一个外部系统。但参与者未必是人,可以是一个外部系统。Customer(from Actor)l谁使用该系统谁使用该系统l谁改变系统的数据谁改变系统的数据l谁从系统获取信息谁从系统获取信息l谁需要系统的支持以完成日常工作任务谁需要系统的支持以完成日常工作任务l谁负责维护、管理并保持系统正常运行谁负责维护、管理并保持系统正常运行l系统需要应付那些硬件设备系统需要应付那些硬件设备l系统需要和那些外部系统交互系统需要和那些外部系统交互l谁对系统运行产生的结果感兴趣谁对系统运行产生的结果感兴趣 某汽车制造厂需要一套库存管理系统,某汽车制造厂需要一套库存管理系统,该系统实现的业务:生产工人根据生产计该系统实现的业务:生产工人根据生产计划领取物料,库存操作员根据生产系统的划领取物料,库存操作员根据生产系统的派单准备,交付给领料工人,余料即时归派单准备,交付给领料工人,余料即时归还库房。库房管理人员定期盘点库存,通还库房。库房管理人员定期盘点库存,通知供应商供货,对长期积存的货物,申请知供应商供货,对长期积存的货物,申请退货。退货。l谁使用该系统l谁改变系统的数据 l谁从系统获取信息 l谁需要系统的支持以完成日常工作任务 l谁负责维护、管理并保持系统正常运行l系统需要应付那些硬件设备l系统需要和那些外部系统交互 l谁对系统运行产生的结果感兴趣 操作员,管理员操作员,管理员操作员,管理员领料员,退料员,操作员,管理员,供应商管理员生产系统,供应商系统操作员,管理员,领料员,退料员操作员管理员领料员退料员供应商生产系统供应商系统时间用例用例描述了系统的功能需求,描述了系统的功能需求,是系统的一组动作序是系统的一组动作序列的描述列的描述.用例的本质是用户与计算机之间的一次交互作用。用例的本质是用户与计算机之间的一次交互作用。在在UML的概念中用例是系统作出的一系列动作的概念中用例是系统作出的一系列动作,而参而参与者能够察觉到这一系列动作的结果。与者能够察觉到这一系列动作的结果。UML中用例用一个椭圆来表示,用例的名字可以写中用例用一个椭圆来表示,用例的名字可以写在椭圆的内部或下方。在椭圆的内部或下方。用例的特点。用例的特点。识别用例识别用例 l识别用例最好的办法就是从分析系统的参与者开识别用例最好的办法就是从分析系统的参与者开始,先列出所有的参与者,在根据每个参与者列始,先列出所有的参与者,在根据每个参与者列出与它有关的用例出与它有关的用例。在识别用例的过程中,通过在识别用例的过程中,通过以下的几个问题可以帮助识别用例:以下的几个问题可以帮助识别用例:(1)参与者希望系统提供什么功能?)参与者希望系统提供什么功能?(2)系统是否存储和检索信息?如果是,这个行为)系统是否存储和检索信息?如果是,这个行为由哪个参与者触发由哪个参与者触发?(3)当系统改变状态时,通知参与者吗?)当系统改变状态时,通知参与者吗?(4)存在影响系统的外部事件吗?)存在影响系统的外部事件吗?(5)是哪个参与者通知系统这些事件?)是哪个参与者通知系统这些事件?用例分析用例分析l用例分析是处于系统的需求分析阶段,这用例分析是处于系统的需求分析阶段,这个阶段应该尽量的避免去考虑系统实现的个阶段应该尽量的避免去考虑系统实现的细节问题。也就是说,用例描述的是一个细节问题。也就是说,用例描述的是一个系统做什么,而不是怎么做。系统做什么,而不是怎么做。案例2:零件销售系统的参与者案例2:零件销售系统的用例注册注册会员登录会员登录管理订单管理订单检索零件检索零件购物购物结帐结帐修改个人资料修改个人资料查询历史纪录查询历史纪录货管员登录货管员登录管理价格管理价格管理库存管理库存打印报表打印报表开放帐户开放帐户经理登录经理登录检索会员检索会员检查帐户检查帐户潜在会员潜在会员会员会员货管员货管员经理经理时间时间案例2:零件销售系统注册注册会员登录会员登录管理订单管理订单检索零件检索零件购物购物结帐结帐修改个人资料修改个人资料查询历史纪录查询历史纪录货管员登录货管员登录管理价格管理价格管理库存管理库存打印报表打印报表开放帐户开放帐户经理登录经理登录检索会员检索会员检查帐户检查帐户潜在会员潜在会员会员会员货管员货管员经理经理时间时间l参与者与用例之间参与者与用例之间关联关系关联关系l用例与用例之间用例与用例之间包含关系包含关系(include)扩展关系扩展关系(extend)泛化关系泛化关系(generalization)l参与者与参与者之间参与者与参与者之间泛化关系泛化关系(generalization)l关联关系 描述参与者与使用用例之间的关系。在UML中,关系用实线表示,实线可以有箭头,也可以没有箭头。l例:参与者与用例通过关联相连。1)包含关系)包含关系(include)包含关系中一个用例总是使用另一个用例的功能包含关系中一个用例总是使用另一个用例的功能*如果两个以上用例有大量一致的功能,则可以将这个功能分解如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中。到另一个用例中。*一个用例的功能太多时,可以用包含关系建模两个小用例。一个用例的功能太多时,可以用包含关系建模两个小用例。包含关系中基用例本身是不完整的包含关系中基用例本身是不完整的。l例例1:本例中,用例本例中,用例“Check Credit”检查输入的信用卡号是否有效,检查输入的信用卡号是否有效,信用卡是否有足够的资金。信用卡是否有足够的资金。Purchase Ticket Check Credit用例间的关系用例间的关系包含关系包含关系2)扩展关系)扩展关系(extend)l扩展关系允许一个用例(可选)扩展另一个用例的功能。扩展关系允许一个用例(可选)扩展另一个用例的功能。l当某个新用例在原来的用例基础上增加了新的步骤当某个新用例在原来的用例基础上增加了新的步骤序列,则原用例被称作基用例,这种关系被称为扩序列,则原用例被称作基用例,这种关系被称为扩展关系。展关系。l基用例可以单独存在,但在一定的条件下,他的行基用例可以单独存在,但在一定的条件下,他的行为可以被另一个用例的行为延伸。扩展只能发生在为可以被另一个用例的行为延伸。扩展只能发生在基用例的序列中某个特定的点上,这个点叫扩展点。基用例的序列中某个特定的点上,这个点叫扩展点。l扩展关系中基用例本身是完整的。扩展关系中基用例本身是完整的。用例间的关系用例间的关系扩展关系扩展关系包含关系与扩展关系的区别包含关系与扩展关系的区别用例间的关系用例间的关系泛化关系泛化关系3)泛化关系(也称类属或概括关系)泛化关系(也称类属或概括关系)l泛化关系其实是子类与父类的关系。象类之间泛化关系其实是子类与父类的关系。象类之间的泛化关系一样,用例和参与者也可以继承另的泛化关系一样,用例和参与者也可以继承另一个用例和参与者。一个用例和参与者。l泛化关系CustomerCompany Personal关系类型说明表示符号关联(association)Actor和use case之间的关系泛化(generalization)Actor之间或use case之间的关系包含(include)use case之间的关系 扩展(extend)use case之间的关系 参与者、用例间的关系类型参与者、用例间的关系类型 建立实际的系统,还需要更多的细节,这些细建立实际的系统,还需要更多的细节,这些细节写在事件流文档中。节写在事件流文档中。事件流是通过文字描述一个用例的行为,说明事件流是通过文字描述一个用例的行为,说明用例的逻辑流程。发起用例的参与者是谁,用用例的逻辑流程。发起用例的参与者是谁,用例的前置条件是什么,主事件流,其他事件流例的前置条件是什么,主事件流,其他事件流和完成后的后置条件是什么,从用例中获益的和完成后的后置条件是什么,从用例中获益的参与者是谁。参与者是谁。事件流包括:简要说明、前置条件、主事件流、事件流包括:简要说明、前置条件、主事件流、其他事件流和后置条件。其他事件流和后置条件。l简要说明:每个用例应有一个相关说明,描述简要说明:每个用例应有一个相关说明,描述该用例的作用。该用例的作用。l前置条件(前置条件(前提条件):列出开始用例之前必前提条件):列出开始用例之前必须满足的条件。须满足的条件。l主事件流:显示用例从开始到结束的完整的正主事件流:显示用例从开始到结束的完整的正常流程。常流程。l其他事件流:显示异常条件或错误。其他事件流:显示异常条件或错误。l后置条件(后置条件(事后条件):用例结束后系统应具事后条件):用例结束后系统应具备的状态。备的状态。简要说明:简要说明:客户可以从ATM机上取出自己帐目上的部分或者全部存款。前提条件:无前提条件:无 主事件流:主事件流:(见下页)1.客户将卡插入客户将卡插入ATM机,开始用例。机,开始用例。2.ATM显示欢迎消息并提示客户输入密码。显示欢迎消息并提示客户输入密码。3.客户输入密码。客户输入密码。4.ATM确认密码有效。如果无效则执行其他事件流确认密码有效。如果无效则执行其他事件流A1。如果如果与主机联接有问题,则执行异常事件流与主机联接有问题,则执行异常事件流E1。5.5.ATMATM提供以下选项:提供以下选项:存钱,取钱,存钱,取钱,查询查询 。6.6.用户选择取钱选项。用户选择取钱选项。7.7.ATMATM提示输入所取金额。提示输入所取金额。8.8.用户输入所取金额。用户输入所取金额。9.9.ATMATM确定该帐户是否有足够的金额。如果余额不够,则执行确定该帐户是否有足够的金额。如果余额不够,则执行其他事件流其他事件流A2A2,如果与主机联接有问题,则执行异常事件如果与主机联接有问题,则执行异常事件流流E1E1。10.10.ATMATM从客户帐户中减去所取金额。从客户帐户中减去所取金额。11.ATM向客户提供要取的钱。向客户提供要取的钱。12.ATM打印清单。打印清单。13.ATM退出客户的卡,用例结束。退出客户的卡,用例结束。其他事件流其他事件流A1:输入无效密码输入无效密码 1.ATM告诉客户该密码错误。2.ATM退出客户的卡,用例结束。其他事件流其他事件流A2:余额不足余额不足1.ATM告诉客户该帐户余额不足。2.ATM退出客户的卡,用例结束。异常事件流异常事件流E1E1:连接主机出现错误连接主机出现错误1.ATM告诉客户连连接主机出现错误。2.ATM在错误日志记下错误。3.ATM退出客户的卡,用例结束。事后条件:无事后条件:无l例:网上选课系统l 类图(类图(class diagram)描述了类与类之间的描述了类与类之间的静态关系。静态关系。它不仅定义系统中的类类,表示类之间的联系联系(关联、依赖、聚合等),还包括类的内部结构内部结构(类的属性和操作)。l类图描述的是一种静态关系,在系统的整个生命周期都是有效的。l类分为类分为3种类型:实体类种类型:实体类(entity)、边界类边界类(boundary)和控制类和控制类(control)。boundarycontrolentity(entity)l实体类保存要放入永久存储体的信息。实体类保存要放入永久存储体的信息。l每个实体类在数据库中有相应的表。每个实体类在数据库中有相应的表。正常情况下,我正常情况下,我们把每个们把每个实体实体类映射为一个表,每个属性映射为一个类映射为一个表,每个属性映射为一个列。列。l例:定义实体类例:定义实体类Student。标签形式标签形式(Label)图标形式图标形式(Icon)l边界类位于系统与外界的交界处。边界类位于系统与外界的交界处。直接与外部设备交互的类直接与外部系统交互的类l包括窗体包括窗体、对话框对话框、报表,还有打印机和扫描仪报表,还有打印机和扫描仪等硬件接口以及与外部系统的接口。等硬件接口以及与外部系统的接口。l通常,一个参与者与一个用例之间的交互对应一通常,一个参与者与一个用例之间的交互对应一个边界类。边界类接受来自参与者的信息,这些个边界类。边界类接受来自参与者的信息,这些信息可以被实体类和控制类使用。信息可以被实体类和控制类使用。l例:例:l控制类负责协调边界类和实体类的工作,通常控制类负责协调边界类和实体类的工作,通常在现实世界中没有对应的事物,它负责接收边在现实世界中没有对应的事物,它负责接收边界类的信息,并将其分发给实体类。界类的信息,并将其分发给实体类。l一般,一个用例对应一个控制类,控制用例中一般,一个用例对应一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。的事件顺序,控制类也可以在多个用例间共用。l控制类是可选的,本身没有任何业务功能,但控制类是可选的,本身没有任何业务功能,但可以向其他的类发消息,控制总体逻辑流程。可以向其他的类发消息,控制总体逻辑流程。l例:网上选课系统中的类例:网上选课系统中的类类的关系有:l泛化 Generalizationl关联 Association连接 Link聚合 Aggregation组合 Compositionl依赖 Dependencyl是一般和特殊的关系 Is a kind ofl泛化即类的继承,子类继承父类属性和操作。l子类可以应用在父类对象可能出现的地方l例:选课系统的泛化关系的分析。例:选课系统的泛化关系的分析。l关联是一种结构关系,它描述了给定类之间的语义连接,是两个类或多个类之间的一个关系。LibraryBook*1+owner1*ownsl如果两个类都彼此知道对方,则应该使用实线来表示关联关系;如果只有其中一个类知道该关联关系,则使用开箭头表示。l l在上图中,我们同时看到了继承关系和两个关联关系。CDSalesReport类继承自Report类。一个CDSalesReport类与一个CD类关联,但是CD类并不知道关于CDSalesReport类的任何信息。CD类和Band类都彼此知道对方,两个类彼此都可以与一个或者多个对方类相关联。l双向连接代码l单向连接代码类的关联-聚合、组合l例:选课系统的关联关系的分析。例:选课系统的关联关系的分析。l表示类之间的使用关系表示类之间的使用关系当客户类的操作需要提供者类的参数当客户类的操作需要提供者类的参数客户类的操作返回提供者类的值客户类的操作返回提供者类的值客户类的操作在实现中使用提供者类的对象客户类的操作在实现中使用提供者类的对象客户类提供者类案例案例1:零件销售系统的类图:零件销售系统的类图案例案例2:学校信息管理系统的类图:学校信息管理系统的类图l一个系统通常要创建几个类框图:有些要显示一个系统通常要创建几个类框图:有些要显示类及其关系;有些显示类的子集,包括属性和类及其关系;有些显示类的子集,包括属性和操作;还有些显示类包及包之间的关系,把概操作;还有些显示类包及包之间的关系,把概念上或语义上相近的模型元素纳入一个包。念上或语义上相近的模型元素纳入一个包。l默认情况下,有一个主类框图,直接放在逻辑默认情况下,有一个主类框图,直接放在逻辑视图视图(Logic View)下面,在复杂的系统中,这下面,在复杂的系统中,这个类框图显示模型中的类包及其关系,即包图。个类框图显示模型中的类包及其关系,即包图。包中存放语义上相近的多个类。包中存放语义上相近的多个类。l在大型系统中,包图是一种重要的工具。有些在大型系统中,包图是一种重要的工具。有些专家建议,当整个系统的类图不能压缩到一张专家建议,当整个系统的类图不能压缩到一张A4纸时,就应该用包图。纸时,就应该用包图。例例:例:例:Java程序程序“HelloWorld”的的 UML建模。建模。import java.awt.Graphics;public class HelloWorld extends java.applet.Applet public void paint(Graphics g)g.drawString(“Hello World!”,20,30);在在UML中中,对上述程序对上述程序的建模如右图的建模如右图:三、三、对象图对象图l在在UMLUML中,对象图(中,对象图(Object DiagramObject Diagram)是表示在某一时刻一是表示在某一时刻一组对象以及它们之间的关系的图。组对象以及它们之间的关系的图。l对象图可以被看作是类图在系统某一时刻的实例。对象图可以被看作是类图在系统某一时刻的实例。l对象之间的连接对象之间的连接(link)link)是类之间关联关系的实例。是类之间关联关系的实例。l对象图标和类图基本一样,但对象名下面要带下划线,对象对象图标和类图基本一样,但对象名下面要带下划线,对象名位于冒号的左边,该对象所属的类名位于冒号的右边名位于冒号的左边,该对象所属的类名位于冒号的右边。Rose不支持对象图,需要用其他的图来代替。不支持对象图,需要用其他的图来代替。l例例:类图和对象图的区别类图和对象图的区别:Haier Washer:Washing Machine:Washing Machine状态图是状态图是UML中对系统动态建模的图之一。状态中对系统动态建模的图之一。状态图用来描述图用来描述某个对象某个对象的所有可能状态及其状态转换的所有可能状态及其状态转换信息。通常用于表示单个对象在其生命周期中行为。信息。通常用于表示单个对象在其生命周期中行为。一个状态图包括一系列的状态及状态之间的转移。一个状态图包括一系列的状态及状态之间的转移。但不是每个类都应该有一个状态图。只对但不是每个类都应该有一个状态图。只对“感兴感兴趣的趣的”状态的类(也就是说,在系统活动期间具有状态的类(也就是说,在系统活动期间具有三个或更多潜在状态的类)才进行状态图描述。三个或更多潜在状态的类)才进行状态图描述。1、状态(、状态(State)状态是对象执行了一系列活动的结果。当某个事件状态是对象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化,状态的改变叫做发生后,对象的状态将发生变化,状态的改变叫做转移。转移。2、状态图中状态之间带箭头的连线被称为、状态图中状态之间带箭头的连线被称为转移转移。浸泡洗涤漂洗脱水 在在UML里,转移由五个部分组成,它们分别是:初始里,转移由五个部分组成,它们分别是:初始状态状态、终止状态终止状态、触发事件(触发事件(Trigger Event)、)、守护条守护条件(件(Guard Condition)、)、动作(动作(Action)。)。状态图用初始状态表示对象创建时的状态,每一个状态状态图用初始状态表示对象创建时的状态,每一个状态图只有一个初始状态,用实心圆点表示;每一个状态图图只有一个初始状态,用实心圆点表示;每一个状态图可能有多个终止状态,用一个实心圆外加一个圆圈表示。可能有多个终止状态,用一个实心圆外加一个圆圈表示。l状态图可有多个状态框,每个状态框中有两格:上格放状态图可有多个状态框,每个状态框中有两格:上格放名称,下格说明处于该状态时,系统或对象要进行的活名称,下格说明处于该状态时,系统或对象要进行的活动。动。l状态之间的触发事件状态之间的触发事件(event),对应对象的操作。对应对象的操作。l事件在特定的条件下发生,这样的条件称为守护条件。事件在特定的条件下发生,这样的条件称为守护条件。l发生事件时的处理称为动作发生事件时的处理称为动作(action)。l是两个状态之间的一种关系,表示处于是两个状态之间的一种关系,表示处于某状态的对象,在特定事件发生且某特某状态的对象,在特定事件发生且某特定的条件满足时进入第二个状态。定的条件满足时进入第二个状态。l描述格式:描述格式:event(arg)guard-condition/actionABCDevent x0 状态转换的条件:状态转换的条件:l事件触发状态转换l源状态的内部活动执行完毕自动触发转移l给定的状态只能产生一个转移l发生事件时的处理称为动作。发生事件时的处理称为动作。l4种基本的动作类型:种基本的动作类型:Entry:用来指定进入状态时发生的动作;用来指定进入状态时发生的动作;Exit:用来指定退出状态时发生的动作;用来指定退出状态时发生的动作;Do:用来指定处于状态时发生的动作;用来指定处于状态时发生的动作;Event:用来指定当特定事件触发时发生的用来指定当特定事件触发时发生的动作。动作。Lightingentry/turn onexit/turn offdo/computeDegreeevent power off/power supply状态名状态名退退出出动动作作事件事件进入动作进入动作活动活动手机开机时,处于空闲状态;当用户开始手机开机时,处于空闲状态;当用户开始呼叫某人时,手机进入拨号状态;如果呼叫某人时,手机进入拨号状态;如果呼叫成功,进入通话状态;如果呼叫不呼叫成功,进入通话状态;如果呼叫不成功,重新进入空闲状态。在空闲状态成功,重新进入空闲状态。在空闲状态被呼叫,进入响铃状态;如果用户接听,被呼叫,进入响铃状态;如果用户接听,进入通话状态;如果一分钟不接听,重进入通话状态;如果一分钟不接听,重新进入空闲状态。新进入空闲状态。idledialingworkingringingfinish connection(1)不要对系统中的每个类都画状态图。尽管)不要对系统中的每个类都画状态图。尽管这样做很完美,但太浪费精力,其实你可能只这样做很完美,但太浪费精力,其实你可能只关心某些类的行为。正确的做法是:为帮助理关心某些类的行为。正确的做法是:为帮助理解类而画它的状态图。解类而画它的状态图。(2)状态图描述跨越多个用例的单个对象的行)状态图描述跨越多个用例的单个对象的行为,而不适合描述多个对象间的行为合作。为为,而不适合描述多个对象间的行为合作。为此,常将状态图与其它技术此,常将状态图与其它技术(如顺序图、合作如顺序图、合作图和活动图图和活动图)组合使用。组合使用。状态图的创建状态图的创建 例:例:选课系统课程类(对象)选课系统课程类(对象)(Course)的状态变化的状态变化过程。过程。l 一般学习过一般学习过C语言或别的程序设计语言的读者一语言或别的程序设计语言的读者一定接触过流程图,因为流程图清晰的表达了程序的定接触过流程图,因为流程图清晰的表达了程序的每一个步骤序列、过程、判定点和分支。每一个步骤序列、过程、判定点和分支。l在在UML里,活动图本质上就是流程图,他描述系里,活动图本质上就是流程图,他描述系统的活动、判定点、分支等,可用于对系统的业务统的活动、判定点、分支等,可用于对系统的业务需求建模,因此它对于开发人员来说是一种重要的需求建模,因此它对于开发人员来说是一种重要的工具。工具。lUML UML 活动图记录了单个操作或方法的逻辑,单个用活动图记录了单个操作或方法的逻辑,单个用户案例或者单个业务流程的逻辑。户案例或者单个业务流程的逻辑。l也可以说,活动图是用图形化的方式描述事件流也可以说,活动图是用图形化的方式描述事件流(即描述用例图中某个用例(即描述用例图中某个用例的的逻辑流程逻辑流程)5.1 活动图的基本概念和组成活动图的基本概念和组成 从系统内部视角来看,从系统内部视角来看,活动图活动图反映的是系统功能所要完成反映的是系统功能所要完成的动作过程的动作过程。它定义了工作流从何时开始、哪里开始、它定义了工作流从何时开始、哪里开始、按什么顺序发生、最终在哪结束按什么顺序发生、最终在哪结束。活动图由起始状态活动图由起始状态、终止状态终止状态、活动、状态转移活动、状态转移、决策决策、守护条件守护条件、同步棒和泳道组成。同步棒和泳道组成。l活动图的起始状态和终止状态的表示同状态图。活动图的起始状态和终止状态的表示同状态图。l活动图中的活动用圆角四边形表示,内部文字说明采取活动图中的活动用圆角四边形表示,内部文字说明采取的动作。动作间的转移用带有箭头的实线表示。的动作。动作间的转移用带有箭头的实线表示。活动结束开始5.1 活动图的基本概念和活动图的基本概念和组成组成l守护条件:用来约束转移,守守护条件:用来约束转移,守护条件为真时转移才可以开始。护条件为真时转移才可以开始。l决策:活动图中的决策用一个决策:活动图中的决策用一个菱形表示。分支表示一个触发菱形表示。分支表示一个触发事件在不同的触发条件下引起事件在不同的触发条件下引起多 个 不 同 的 转 移。多 个 不 同 的 转 移。分支可以有一个进入转移和两分支可以有一个进入转移和两个或多个输出转移。在每条输个或多个输出转移。在每条输出转移上都有守护条件(即一出转移上都有守护条件(即一个布尔表达式)保护,当且仅个布尔表达式)保护,当且仅当守护条件的值为真时,该输当守护条件的值为真时,该输出路径才有效出路径才有效。例例:“记录学生分数记录学生分数”的活动图的活动图注注:活动图与状态图的标记符非常相似活动图与状态图的标记符非常相似,有时会让人混淆。其实,有时会让人混淆。其实,活动图是用来建模不同区域的工作如何彼此交互的;而状态活动图是用来建模不同区域的工作如何彼此交互的;而状态图用来表示单个的对象,以及对象的行为如何改变其状态。图用来表示单个的对象,以及对象的行为如何改变其状态。l同步棒:在建模过程中,可能会遇到对象在运同步棒:在建模过程中,可能会遇到对象在运行时存在两个或多个并发运行的控制流。所有行时存在两个或多个并发运行的控制流。所有的并行转移在合并前必须被执行。的并行转移在合并前必须被执行。在在UML中,一条粗黑线表示将转移分解成两中,一条粗黑线表示将转移分解成两个或多个并发流,同样用粗黑线表示分支的合个或多个并发流,同样用粗黑线表示分支的合并。粗黑线称为同步棒。并。粗黑线称为同步棒。加水到容器中将咖啡放到过滤器中点燃咖啡炉取出咖啡杯把过滤器放到咖啡炉上冲调咖啡倒咖啡找饮料取一听可口可乐喝饮料人找到可口可乐没有可口可乐没有咖啡找到咖啡熄灭咖啡炉例例1:(A)A)客户在线输入采购清单客户在线输入采购清单(B)B)客户服务部接收到订单,客户服务部接收到订单,检查订单是否正确检查订单是否正确l正确,执行正确,执行C Cl不正确,发订购失败不正确,发订购失败EmailEmail,结束。结束。(C)C)同步:定单转仓管部出货同步:定单转仓管部出货定单转财务部收款定单转财务部收款(D)D)确认客户收到货品确认客户收到货品l正确,执行正确,执行E El不正确,执行不正确,执行D D(E)(E)确认客户已完成收货付款确认客户已完成收货付款l正确,执行正确,执行F Fl不正确,执行不正确,执行E E(F)(F)确认送货人将所收款项交财务部确认送货人将所收款项交财务部l正确,执行正确,执行G Gl不正确,执行不正确,执行F F(G)(G)财务部做订单结案处理财务部做订单结案处理(H)H)结束结束活动图的基本概念和组成活动图的基本概念和组成-泳道泳道活动图告诉你发生了什么,但没有告诉你该项活动由活动图告诉你发生了什么,但没有告诉你该项活动由谁来完谁来完成成。在程序设计中,这意味着活动图没有描述出各个活动。在程序设计中,这意味着活动图没有描述出各个活动由哪个类来完成。泳道解决了这一问题。由哪个类来完成。泳道解决了这一问题。泳道泳道:用矩形框来表示,属于某个泳道的活动放在该矩形框:用矩形框来表示,属于某个泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。对象负责。泳道可以提高活动图的可读性泳道可以提高活动图的可读性,可用于建模某些复杂的活可用于建模某些复杂的活动图。动图。例例2:“修改学生信息修改学生信息”活动活动图图l活动图最适合支持描述并行行为,这使活动图最适合支持描述并行行为,这使之成为支持工作流建模的最好工具。之成为支持工作流建模的最好工具。l活动图最大的缺点是很难清楚地描述动活动图最大的缺点是很难清楚地描述动作与对象之间的关系。作与对象之间的关系。活动图的用途活动图的用途 活动图用于对系统的动态行为建模。活动图描述活动图用于对系统的动态行为建模。活动图描述了从活动到活动的流。了从活动到活动的流。在对一个系统建模时,通常有两种使用活动图的在对一个系统建模时,通常有两种使用活动图的方式:方式:(1)为工作流建模)为工作流建模 对工作流建模强调与系统进行交互的对象所观察对工作流建模强调与系统进行交互的对象所观察到的活动。用于可视化、详述、构造和文档化开到的活动。用于可视化、详述、构造和文档化开发系统所涉及的业务流程。发系统所涉及的业务流程。(2)为对象的操作建模)为对象的操作建模 活动图本质上就是流程图,他描述系统的活动、活动图本质上就是流程图,他描述系统的活动、判定点、分支等部分。因此,在判定点、分支等部分。因此,在UML中,可以中,可以把活动图作为流程图来使用,用于对系统的操作把活动图作为流程图来使用,用于对系统的操作建模。建模。l对于以下情况可以使用活动图:对于以下情况可以使用活动图:(1 1)分析用例,即用图形化的方式描述用)分析用例,即用图形化的方式描述用例的事件流;例的事件流;(2 2)理解牵涉多个用例的工作流,即描述)理解牵涉多个用例的工作流,即描述系统的业务流程系统的业务流程;(3 3)处理多线程应用。)处理多线程应用。相似:都是对系统的动态行为建模。区别:l描述重点不同:状态图描述对象的状态及状态之间的转移,而活动图描述从活动到活动的控制流。l使用场合不同:如果是为了表示一个对象在其生命周期内的行为,使用状态图较好;如果目的是为了分析用例,或者理解涉及多个用例的工作流程,或者处理多线程应用等,则使用活动图较好。活动图的创建活动图的创建例:例:选课系统中添加课程选课系统中添加课程(Course)用例用例的活动图的创建。的活动图的创建。l在在UML中,用例的实现用交互图来指定和说中,用例的实现用交互图来指定和说明。交互图通过显示对象之间的关系和对象之明。交互图通过显示对象之间的关系和对象之间处理的消息来对系统的动态特性建模。间处理的消息来对系统的动态特性建模。l交互图包括:时序图(也称顺序图或序列图)交互图包括:时序图(也称顺序图或序列图)和协作图。和协作图。l交互图一步步地显示用例的实现流程。交互图一步步地显示用例的实现流程。包括需包括需要什么对象、对象之间发送什么、什么角色启要什么对象、对象之间发送什么、什么角色启动流、消息按什么顺序发送等。动流、消息按什么顺序发送等。l创建时序图和协作图的步骤:创建时序图和协作图的步骤:1)寻找对象;)寻找对象;2)寻找角色;)寻找角色;3)将消息加进图中。)将消息加进图中。l时序图(时序图(Sequence Diagram)是强调消息时是强调消息时间顺序的交互图。间顺序的交互图。l时时序图显示具体用例(或者是用例的一部分)序图显示具体用例(或者是用例的一部分)的详细流程。的详细流程。一般放在相应用例的下面。一般放在相应用例的下面。l时序图描述了类与类之间相互交换以完成期时序图描述了类与类之间相互交换以完成期望行为的消息。望行为的消息。l注意:时序图注意:时序图只显示对象,不显示类。即只显示对象,不显示类。即时时序图序图是针对某个特定情况、特定对象进行的描是针对某个特定情况、特定对象进行的描述。述。时序图由活动者、对象、消息、生命线和控制焦点组成。时序图由活动者、对象、消息、生命线和控制焦点组成。时序图存在两个轴:水平轴表示不同的对象,垂直轴表示时时序图存在两个轴:水平轴表示不同的对象,垂直轴表示时间。间。时序图中的时序图中的对象对象:用一个带有垂直虚线的矩形框表示,并标:用一个带有垂直虚线的矩形框表示,并标有对象名和类名。垂直虚线是对象的有对象名和类名。垂直虚线是对象的生命线生命线,用于表示在某,用于表示在某段时间内对象是存在的。段时间内对象是存在的。对象间的通信:通过在对象的生命线间画对象间的通信:通过在对象的生命线间画消息消息来表示。来表示。时序图中的消息:当收到消息时,接收对象立即开始执行活时序图中的消息:当收到消息时,接收对象立即开始执行活动,即对象被激活了。动,即对象被激活了。控制焦点控制焦点:是时序图中表示时间段的符号,在这段时间内,:是时序图中表示时间段的符号,在这段时间内,对象将执行相应的操作。通过在对象生命线上显示一个细长对象将执行相应的操作。通过在对象生命线上显示一个细长矩形框来矩形框来表示激活表示激活。生命线控制焦点消息时序图的建模技术时序图的建模技术 时时序图的绘制非常简单。横跨图的顶部,每个框序图的绘制非常简单。横跨图的顶部,每个框表示每个类的实例(对象)。在框中,类实例名表示每个类的实例(对象)。在框中,类实例名称和类名称之间用冒号来分隔,称和类名称之间用冒号来分隔,对象名对象名:类名。类名。l如果某个类实例向另一个类实例发送一条消息,如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的开箭头的连线,则绘制一条具有指向接收类实例的开箭头的连线,并把消息并把消息/方法的名称放在连线上面。方法的名称放在连线上面。l时序图一般放在用例的下面,对应用例的执行路时序图一般放在用例的下面,对应用例的执行路径。径。1.通过进水管向洗涤缸注水。通过进水管向洗涤缸注水。2.洗涤缸保持洗涤缸保持5分钟静止状分钟静止状态。态。3.水注满,停止注水。水注满,停止注水。4.洗涤缸往返旋转洗涤缸往返旋转15分钟。分钟。5.通过排水管排掉洗涤后的通过排水管排掉洗涤后的脏水。脏水。6.重新开始注水。重新开始注水。7.洗涤缸继续往返旋转洗涤。洗涤缸继续往返旋转洗涤。8.停止向洗衣机中注水。停止向洗衣机中注水。9.通过排水管排掉漂洗衣物通过排水管排掉漂洗衣物的水。的水。10.洗涤缸加速单方向旋转洗涤缸加速单方向旋转5分钟。分钟。11.洗涤缸停止旋转,洗衣洗涤缸停止旋转,洗衣过程结束。过程结束。当当“洗衣服洗衣服”这个用例被执行时,将会依次发生什么事情这个用例被执行时,将会依次发生什么事情呢?假设你已经完成了呢?假设你已经完成了“加衣物加衣物”、“加洗涤加洗涤”和和“开机开机”的操作,那么洗衣步骤如下:的操作,那么洗衣步骤如下:进水管洗涤缸排水管注入新水保持静止停止注水往返旋转排掉洗涤后的脏水注入新水往返旋转排掉漂洗过的水单向旋转停止转动停止注水例例2:理理解解时时序序图图通过上述时序图,我们得知有以下通过上述时序图,我们得知有以下8个过程:个过程:1.FlooringClient新建一个对象新建一个对象theSurface2.FlooringClient新建一个对象新建一个对象theFlooring3.FlooringClient发送一个消息给对象发送一个消息给对象theFlooring,并以并以theSurface为变量为变量4.theFlooring发送一个消息发送一个消息getLength()给给theSurface5.theSurface发送一个回应给发送一个回应给theFlooring6.theFlooring发送一个消息发送一个消息getWidth()给给theSurface7.theSurface发送一个回应给发送一个回应给theFlooring8.theFlooring发送一个回应给发送一个回应给FlooringClientl寻找角色寻找角色列出启动该用例的参与者列出启动该用例的参与者;l寻找对象寻找对象边界对象:列出启动用例时参与者使用的边界对象。边界对象:列出启动用例时参与者使用的边界对象。如窗体等。一般,一个参与者与一个用例的交互至少如窗体等。一般,一个参与者与一个用例的交互至少对应一个边界对象。对应一个边界对象。控制对象:列出管理该用例的控制对象。控制对象是控制对象:列出管理该用例的控制对象。控制对象是可选的对象,控制用例的流程。一般,一个用例对应可选的对象,控制用例的流程。一般,一个用例对应一个控制对象。一个控制对象。实体对象:列出用例中使用到的实体对象。实体对象实体对象:列出用例中使用到的实体对象。实体对象用于保存信息的对象,最终可能映射成数据库中的表用于保存信息的对象,最终可能映射成数据库中的表和字段。和字段。l将消息加进图中将消息加进图中按时间顺序列出分析对象之间进行消息访问的序列。按时间顺序列出分析对象之间进行消息访问的序列。举例举例1:检索零件时序图:检索零件时序图时序图和类图的映射时序图中某个对象消息的传入对应于该类对象时序图中某个对象消息的传入对应于该类对象所具有的操作。所具有的操作。举例2:采购用例的时序图列出上图中所有的类(对象),并分别列出图中显示的每个类列出上图中所有的类(对象),并分别列出图中显示的每个类的方法(带参数)。并填空完成以下的类说明文档。的方法(带参数)。并填空完成以下的类说明文档。文件名称:类说明文件名称:类说明.docdoc类名:类名:方法:方法:1._1._供货供货通知退货通知退货2._2._业务经理业务经理3._3._执行采购(采购计划)执行采购(采购计划)接货(供货单,货物)接货(供货单,货物)4._4._通知拒收通知拒收通知付款通知付款5._5._办理入库(入库单,采购计划,货物)办理入库(入库单,采购计划,货物)验货(入库单,采购计划,货物)验货(入库单,采购计划,货物)填写实际入库数量填写实际入库数量6._6._7._7._通知付款(入库单财务联)通知付款(入库单财务联)出纳出纳8._8._文件名称:类说明文件名称:类说明.docdoc类名:类名:方法:方法:供应商供应商供货供货通知退货通知退货付款付款(采购款采购款)业务经理业务经理采购员采购员执行采购(采购计划)执行采购(采购计划)接货(供货单,货物)接货(供货单,货物)核货(供货单,货物)核货(供货单,货物)通知拒收通知拒收通知付款通知付款库管员库管员办理入库(入库单,采购计划,货物)办理入库(入库单,采购计划,货物)验货(入库单,采购计划,货物)验货(入库单,采购计划,货物)填写实际入库数量填写实际入库数量签字入库签字入库会计会计通知付款(入库单财务联)通知付款(入库单财务联)出纳出纳通知付款(付款凭证)通知付款(付款凭证)答案:答案:例:以例:以 选 课 系 统 中 选 课 用 例选 课 系 统 中 选 课 用 例(Select Course)为例。为例。l 协作图(协作图(Collaboration Diagram)是交互图的另一是交互图的另一种表现形式,它强调参加交互的各对象的组织。主种表现形式,它强调参加交互的各对象的组织。主要用于描述一组相互合作的对象间的交互和链接要用于描述一组相互合作的对象间的交互和链接.l协作图只对相互间有交互作用的对象和这些对象间协作图只对相互间有交互作用的对象和这些对象间的关系建模,而忽略了其他对象和关联。的关系建模,而忽略了其他对象和关联。l时序图主要描述对象间消息发送的时间顺序,而协时序图主要描述对象间消息发送的时间顺序,而协作图侧重于描述交互对象之间链接关系(或称交互作图侧重于描述交互对象之间链接关系(或称交互关系),而不专门突出这些消息发送的时间顺序。关系),而不专门突出这些消息发送的时间顺序。l协作图不像时序图一样具备时间维协作图不像时序图一样具备时间维,为了表示消息的为了表示消息的时间顺序时间顺序,通常要为消息加一个数字前缀通常要为消息加一个数字前缀.l时序图与协作图在语义上是等价的,可以互换,在时序图与协作图在语义上是等价的,可以互换,在Rose中按中按F5键。键。l协作图由活动者、对象、连接和消息组协作图由活动者、对象、连接和消息组成。成。使用实线表示两个对象之间的连接使用实线表示两个对象之间的连接.消息由标记在连接上方的带有标记的箭头表消息由标记在连接上方的带有标记的箭头表示示.例例1:内部计时器洗涤缸进水管1.停止注水2.往返旋转:检索零件UI:检索零件UC:零件:会员1:提交查询条件()2:检索零件()3:检索零件()4:显示零件列表()5:选中零件()6:取零件信息()7:取零件信息()8:显示零件详细信息()例例2:检索零件时序协作图:检索零件时序协作图多对象:在协作图中,多对象指的是由多个多对象:在协作图中,多对象指的是由多个对象组成的对象集合,一般这些对象是属于对象组成的对象集合,一般这些对象是属于同一个类的。同一个类的。当需要把消息同时发送给多个对象而不是单当需要把消息同时发送给多个对象而不是单个对象的时候,就使用多对象这个概念。个对象的时候,就使用多对象这个概念。在协作图中,多对象用多个方框的重叠表示。在协作图中,多对象用多个方框的重叠表示。例如:老师让多个学生同时交作业。例如:老师让多个学生同时交作业。时序图和协作图的比较时序图和协作图的比较:时序图和协作图都属于交互图,都用于描述时序图和协作图都属于交互图,都用于描述系统中对象之间的动态关系。两者可以相互系统中对象之间的动态关系。两者可以相互转换,但两者强调的重点不同。转换,但两者强调的重点不同。当对象及其连接有利于理解对象之间的交互当对象及其连接有利于理解对象之间的交互时时,选择协作图选择协作图;当强调消息发送的时间顺序时当强调消息发送的时间顺序时,选择时序图。选择时序图。时序图中有对象生命线和控制焦点,协作图时序图中有对象生命线和控制焦点,协作图中没有;协作图中有路径,并且协作图中的中没有;协作图中有路径,并且协作图中的消息必须要有顺序号,但时序图中没有这两消息必须要有顺序号,但时序图中没有这两个特征。个特征。实际应用中,一般采用时序图。实际应用中,一般采用时序图。组件图的概念和内容组件图的概念和内容 l组件图是对面向对象系统的物理方面建模时使组件图是对面向对象系统的物理方面建模时使用的两种图之一,另一种图是配置图。目前,用的两种图之一,另一种图是配置图。目前,演示意义大于实际意义。演示意义大于实际意义。l组件图和配置图统称系统的实现图。其中组件组件图和配置图统称系统的实现图。其中组件图显示代码本身的逻辑结构;配置图显示系统图显示代码本身的逻辑结构;配置图显示系统运行时的结构。运行时的结构。l组件图描述软件组件以及组件之间的关系。组组件图描述软件组件以及组件之间的关系。组件是代码的软件模块,组件图则显示了代码的件是代码的软件模块,组件图则显示了代码的结构。结构。l组件图画在组件视图组件图画在组件视图(Component View)下面。下面。组件图显示了组件以及它们之间的依赖关系。组件图显示了组件以及它们之间的依赖关系。l组件是代码的软件模块,一般来说,就是一个组件是代码的软件模块,一般来说,就是一个实际文件。实际文件。l组件包括以下类型:组件包括以下类型:源代码组件:一个源代码文件或一个包对应的若干源代码组件:一个源代码文件或一个包对应的若干个源代码文件。个源代码文件。二进制组件:一个目标码文件,一个静态的或动态二进制组件:一个目标码文件,一个静态的或动态的库文件。的库文件。可执行组件:即可执行程序。可执行组件:即可执行程序。l组件的特点:组件的特点:A、组件是物理的组件是物理的B、组件是可替代的组件是可替代的C、组件是系统的一部分组件是系统的一部分NewComponentl每个组件体现了系统设计中特定类的实现。良好定义的组件不直接依赖于其他组件而依赖于组件所支持的接口。l每个组件实现一些接口,并使用另一些接口。每个组件实现一些接口,并使用另一些接口。分别为实现依赖和使用依赖。分别为实现依赖和使用依赖。组件图的用途是显示系统中的组件之间的依赖关系,组件图的用途是显示系统中的组件之间的依赖关系,以及组件的接口和调用关系。以及组件的接口和调用关系。l组件图中的依赖关系使用虚线箭头表示。这种依组件图中的依赖关系使用虚线箭头表示。这种依赖关系主要就是编译时的顺序。在其后编译的组赖关系主要就是编译时的顺序。在其后编译的组件向提前编译的组件画出箭头件向提前编译的组件画出箭头,表示对其依赖。表示对其依赖。如下图所示:如下图所示:Component 1Component 2Component 3例:以网上例:以网上选课系统为例。选课系统为例。配置图的概念和内容配置图的概念和内容l 配置图(也称配置图(也称部署图部署图、布局图)、布局图)显示了运行软显示了运行软件系统的物理硬件,以及如何将软件配置到硬件件系统的物理硬件,以及如何将软件配置到硬件环境中。环境中。l配置图配置图的用途是显示该系统不同的组件将在何处的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。一个系物理地运行,以及它们将如何彼此通信。一个系统模型只有一个配置图。统模型只有一个配置图。l配置图可以清楚地描绘硬件设备的配置、通信以配置图可以清楚地描绘硬件设备的配置、通信以及在各硬设备上各种软组件和对象的配制。及在各硬设备上各种软组件和对象的配制。l配置图中通常包括以下元素:配置图中通常包括以下元素:(1)节点)节点(2)组件)组件(3)关系)关系节点节点 节点是系统在运行期间存在的物理元素,它通常是节点是系统在运行期间存在的物理元素,它通常是处理器或其他硬件设备等处理器或其他硬件设备等计算机硬件资源计算机硬件资源。如:一。如:一台主机、一台打印机或一个台主机、一台打印机或一个PCPC终端等终端等。节点之间的连线表示系统之间的通信路径,即连接节点之间的连线表示系统之间的通信路径,即连接。通信类型则放在连接旁边的。通信类型则放在连接旁边的“”之间,表示之间,表示所用的通信协议或网络类型。所用的通信协议或网络类型。配置图中各个节点的安置不受地理位置的限制。配置图中各个节点的安置不受地理位置的限制。配置图中的节点分为两种类型配置图中的节点分为两种类型:处理器(处理器(processor),任何有处理功能的,任何有处理功能的机器,即可以执行程序的硬件构件。在配机器,即可以执行程序的硬件构件。在配置图中,可以说明处理器中有哪些进程,置图中,可以说明处理器中有哪些进程,进程的优先级等。进程的优先级等。设备(设备(device),任何没有处理功能的机器,任何没有处理功能的机器,如打印机、终端等。如打印机、终端等。Application SeverDB SeverClientPrinter 1Printer 2配置图建模技术配置图建模技术 配置图用于对系统的实现视图建模。绘制这配置图用于对系统的实现视图建模。绘制这
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


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

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


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