第7章-UML建模

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章UML建模•UML用例建模•UML静态建模•UML动态建模•UML建模实例——售票系统7.1用例模型•用例模型的基本构件:•用于描述系统的某项功能,所有用例代表系统所有功能的集合用例•与系统进行交互的对象,是用户、其他系统或者硬件参与者•具有一定功能的黑盒子,向外界提供特定的服务和接口系统用例图usecasediagram•用例图是外部用户所能观察到的系统功能的模型图,它描述人们希望如何使用一个系统。•作用:展示系统的核心功能及与其交互的用户。•主要元素:(1)用例:一个用例就是用户与计算机之间的一次典型的交互作用,代表系统的一个完整功能。(2)参与者:是系统外部的一个实体,它以某种方式参与用例的执行过程。•主要参与者•次要参与者•外部硬件实例——ATM用例图•银行客户可以通过使用ATM自动取款机完成提款、查询账户余额、修改账户密码等功能。请用用例图描述。客户提款查询余额修改密码用例模型•在UML中,一个用例模型是一个或一组用例图,还可能有额外的描述文档。•用例图描述系统应该实现的功能。7.1.1提取用例•1.用例(UseCase)–一个用例是用户与计算机系统之间的一次典型的交互作用,它代表的是系统的一个完整的功能。–在UML中把用例定义成系统执行的一系列动作,动作的结果能被外部参与者察觉到。客户统计表销售统计表保险销售人员客户签署保险文件1.领取保险文件2.讲解保险条款3填写保单4.签字销售保险用例图•参与者与用例之间的连线表示关联•用例的命名一般用动宾结构或主谓结构用例的特点•用户可见的功能;•由参与者激活,提供确定的值给参与者;•用例可大可小,是对一个具体用户目标的完整描述。7.1.2提取参与者(Actor)–参与者是在系统之外,透过系统边界直接与系统进行有意义交互的任何事物,包括人、设备、与本系统交互的另一个软件系统等。–一个用例必须至少与一个参与者相连,即一个参与者可以执行多个用例,一个用例也可以被多个参与者使用。例7-1某零件销售系统处理流程一家公司代理销售多种零件,准备开发一个基于Web的在线零件销售系统,实行会员制度。其基本流程是:–顾客(潜在会员)通过注册并存入一定数额的资金到内部帐户成为会员,登陆后可以进行零件检索,并将选中的零件放入购物车,使用内部账户结账。–系统根据会员提供的送货地址和订购数量,从供应商数据库中选出离会员最近的供应商,并通知供应商发货。–货管员不定期根据供应商系统发来的价格变动信息更新零件销售价格。–经理负责开放账户和打印销售报表和会员报表,系统定时进行帐户检查。检索零件下订单结账修改个人资料查询历史记录管理订单货管员会员经理时间会员登录注册潜在会员经理登录开放账户检索会员打印报表检查账户管理库存管理价格货管员登录零件销售系统用例图7.1.3确定用例之间的关系1、泛化关系(generalization)泛化关系可以理解为分析、设计阶段的“继承”,它描述的也是一般与特殊的关系,表示子用例继承了父用例的行为和含义。•泛化关系用带三角形的箭头表示•方向由子用例指向父用例。验证口令视网膜扫描识别用户用例泛化关系打印报表管理商品经理管理会员职员参与者泛化关系2、包含与扩展•(1)包含关系:•由用例A(基本用例)指向用例B(包含用例),表示用例A依赖于用例B中的行为或功能,此时,这两个用例之间就构成了包含关系。•包含用例用于描述在多个用例中都有的公共行为。图书预订填写电子表格include基本用例包含用例实例分析签人寿保险合同签汽车保险合同签保险单includeinclude包含用例基本用例基本用例扩展关系(extend)•向一个用例(基本用例)中加入一些新的动作后构成了另一个用例(扩展用例),这两个用例之间的关系就是扩展关系。还书缴纳罚金extend扩展用例基本用例画用例图的主要步骤①识别系统边界和参与者。②列出与参与者相关的事件。③从事件中识别出系统的功能性需求,即用例。④识别用例之间的关系。⑤画出用例图。⑥撰写必要的用例细节描述文档。7.2UML静态建模•UML静态建模定义了系统中重要对象的属性和操作以及这些对象之间的相互关系,主要包括:–类图(ClassDiagram)–对象图(ObjectDiagram)–包图(PackageDiagram)–构件图(ComponentDiagram)–部署图(DeploymentDiagram)1.类图与对象图•类图不仅定义系统中的类,表示类与类之间的静态关系(关联、依赖、泛化等关系),也表示类的内部结构(类的属性和操作)。•类图是构建其他图的基础。类图说明系统的组成部分是什么,其他图说明系统的组成部分干什么。•类图技术是OO方法的核心技术,应用非常广泛,其中类、对象以及它们之间的关系是最基本的建模元素,类图在系统的整个生命期内都是有效的。类图•表现类的特征•类图描述了多个类、接口的特征,以及对象之间的协作与交互•由一个或多个矩形区域构成,内容包括•类型(类名)•属性(可选)•操作(可选)订单+dateReceived:Date[0..1]+lineItems:OrderLine[*]{ordered}dispatchclose订单类的表示+,-,#对象图•对象图(ObjectDiagram)是显示了一组对象和他们之间的关系。•对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。•对象图的主要作用是加深对类图的理解,在实际建模中不常用。张三:研究生id=S200801name=张三C#程序设计:图书b-name=C#程序设计author=刘曼曼Java教程:图书b-name=Java教程author=吴思研究生-id:String-name:String图书-b-name:String-author:String借阅1..*0..1•关联(association)是两个或多个类之间的某种语义关系,关联表示一种简单的联系,用一条实线表示关联关系。•普通关联使用名称、角色、多重性和导航性等属性进行修饰说明。•注意:单项关联与双向关联的表示(1)关联关系客户订单*1人车*0..1角色•角色:关联的两端与类之间的接口,表示该类在这个关联中的行为。•每个关联有两个角色:–源:引出角色的类–目标:引入角色的类日期订单订单行+dateReceived*0..1+lineItems{ordered}*1源目标关联的多重性多重性表示举例语义说明0只能为0个对象1只能为1个对象0...1可以有0个或1个对象0...*可以有0个或多个对象1...*可以有1个或多个对象n必须有多个对象表示元素与元素之间关联的数量关系•(2)聚集和组合–聚集是一种特殊形式的关联,表示类之间整体与部分的关系。–组合是更强形式的关联,表示的也是类之间整体与部分的关系,但组合关系中的整体与部分具有同样的生存期。Circle-radiusStyle-color-isFilled聚集关系Circle-radiusPoint组合关系聚合关联的例子组合关联的例子3.依赖–设有两个元素X、Y,如果修改元素X的定义(语法的或语义的)引起对元素Y的定义的修改,则称元素Y依赖于元素X。依赖关系Schedule+add(m:Course)+remove(m:Course)Course依赖元素目标元素1..*作者姓名:string性别:string图书书名:string1..*作者-图书的类图作者-图书的对象图张三:作者姓名:张三性别:男C:图书书名:C语言JAVA:图书书名:JAVA7.2.2包图–面向对象技术解决这个问题的基本思路是将相关的类集合成一个高内聚、低耦合的类的集合,UML把这种分组机制称为包,用以描述大系统主要类之间的依赖。订单获取界面图形用户界面工具邮件发送清单界面数据库界面订单获取应用邮件发送清单应用领域订单顾客数量钱日期通用{global}SQLServer界面Oracle界面包图示例7.2.3构件图–构件可以是一段源程序代码、一个文本文件、二进制文件或可执行文件。例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。–构件图用于理解和分析软件各部分之间的相互影响程度。构件与类的比较:•都有相应的名称•都有可以实现的接口•都具有依赖关系•都可以被嵌套构件描述的是系统的物理实现,而类表示的是逻辑组成。类有属性和操作,构件只有操作。相同之处:不同之处:构件的接口具有两组接口:–提供接口:对外,表示它提供的服务,用球形表示–请求接口:对内,表示它需要的服务,用托座形曲线表示订单处理系统构件图提供接口请求接口7.2.4部署图–部署图也称配置图、实施图,用来显示系统中计算结点的拓扑结构、通信路径和制品等。课堂练习•判断分析以下类图中的类关系是否合适机翼机身驾驶舱飞机电器洗衣机空调电视0..110..110..11公司员工程序员分析员项目经理6.3.3UML动态建模•动态建模可以进行定义信息流的工作,描述对象之间、对象与参与者之间的工作流程和消息发送关系(不同于类图描述的类之间的关系),以及对象在其生命周期内的演变过程。•动态模型主要包括:–顺序图(SequenceDiagram)–通信图(CollaborationDiagram)–状态图(StateDiagram)–活动图(ActivityDiagram)7.3.1顺序图•顺序图显示单个用例内部若干个对象间的动态协作关系,这些对象是按消息传递的时间顺序排列的。•二轴:时间及对象•三元素:–对象–生命线–消息采购部create订单destroy顺序图关于顺序图•启动交互作用的对象放在最左边•对象之间交互的顺序按照Y轴从上到下时间发展的顺序:图书管理员登录对话框图书管理信息系统主窗口1:启动系统()2:创建登录对话框()3:输入登录信息()4:校验()5:创建主窗口()顺序图的组成•对象:顺序图顶部的对象表示在交互开始之前,就已经存在的对象。临时对象画在顶部偏下的位置。•生命线:垂直的虚线,表示从对象创建的到销毁的过程。临时对象,用“×”表示销毁。•注意:在对象正在执行动作的区间,生命线的虚线被一个矩形方框代替,表示对象被激活以完成某项任务。采购部create订单destroy•消息:消息表示对象之间的通信,用带箭头的水平实线表示。消息有多种类型,用不同的箭头形状表示。订单顺序图7.3.2通信图–顺序图和通信图都属于UML中的交互图。•顺序图着重体现交互的时间顺序•通信图则着重体现交互对象间的静态链接关系。•通信图也称为协作图,侧重于描述交互对象的空间链接,因此复杂的交互关系还需要用顺序图表示。5.8.8通信图的组成–对象:与顺序图中的对象含义一致,不同之处是不再描述其生命周期。–链接:对象之间的动态行为的关联–消息:与顺序图中的消息含义一致,表示引起对象行为的触发事件、类中的方法调用等等。7.3.2通信图–协作图–顺序图着重体现交互的时间顺序,而通信图则着重体现交互对象间的静态链接关系。通信图7.3.3状态图–状态指对象在其生命周期中的某个特定阶段所处的某种情形。–状态图适合于描述每个对象的内部逻辑,即描述一个对象跨多个用例的行为。–一个对象在系统内以某种方式开始存在,处于某种状态,并且在某个事件的强制下,会从一个状态转换到另一个状态。状态图的简单例子•人有三个状态:健康,感冒,康复中。触发的条件有淋雨(t1),吃药(t2),打针(t3),休息(t4)。所以状态机就是健康—(t1)—感冒;感冒—(t3)—康复中;感冒—(t2)—康复中;康复中—(t4)—健康。等等。•状态图实质就是状态转移图。•状态图包含一系列状态、事件以及状态之间的转移。•并不是所有的对象都需要创建状态机,只有当行为的改变和状态有关时才创建状态机图,状态机图只能对单个对象建模。闲置拨号接通拿起电话听筒拨号电话线路接通通话结束图5-37打电话的状态和转移状态图及活动图状态的要素•1、状态名•2、进入/退出动作:在进入/退出状态时所执行的动作。•

1 / 75
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功