UML-03-类图-对象图-包图.

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

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

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

资源描述

可视化建模与UML教学安排一、基础部分专题一:UML概述专题二:面向对象概念与UML的组成二、UML模型图专题三:类图、对象图、包图专题四:用例图专题五:交互图(顺序图、协作图)专题六:状态图专题七:活动图专题八:部署图与配置图三、案例分析专题九:网上书店项目分析类图什么是类图类图的应用类图的组成类图的建模技术对象图包图实例分析-图书管理系统本次课主要内容什么是类图?类(Class)、对象(Object)和它们之间的关系是面向对象技术中最基本的元素。类图技术是OO方法的核心。类图标加上它们之间的关系就构成了类图。Aclassdiagramisagraphicpresentationofthestaticviewthatshowsacollectionofdeclarative(static)modelelements,suchasclasses,types,andtheircontentsandrelationships.类图的应用类图用于对系统静态设计视图建模。与数据模型不同,它不仅显示了信息的结构,同时还描述了系统的行为。类图中可以包含接口,包,关系等建模元素,也可以包含对象,链等实例。类图典型的应用在下面三类建模:对系统的词汇建模对简单协作建模对逻辑数据库模式建模类图的组成类图通常包含下述内容:类接口协作依赖、泛化和关联关系类图可以包含注解和约束;类图还可以有包或子系统,二者都用于把模型元素聚集成更大的组件。类(Class)Aclassisthedescriptorforasetofobjectswithsimilarstructure,behavior,andrelationships.在UML中,类可视化表示为划分成三个格子的长方形,如图所示:类名属性操作类的关系类之间的静态关系主要有:依赖:它表示类之间的使用关系(包括精化、跟踪和绑定关系)泛化:它把一般类连接到它的特殊类;关联:它表示对象之间的结构关系。类的泛化泛化意味着子类的对象可以被用在父类的对象可能出现的任何地方,但反之不行。泛化为“is-kind-of”的关系多数情况,用类和接口间的泛化指明继承关系。类的关联关联(association)表示两个类之间存在某种语义上的联系,它是一种结构关系,规定了一种事物的对象可以和另一种事物的对象相联系。关联的图标:在类图中,关联用一条把类连接在一起的实线表示。关联名称可以给关联加上关联名,来描述关联的作用。例如Person类和Company类之间的关联可以表示多种意义,如这个人是公司的客户、雇员、所有者等。下图是使用关联名的一个例子:一般地,关联的名字通常是动词或动词短语。关联命名的原则是该命名是否有助于理解该模型。关联角色关联两端的类可以某种角色参与关联。例如下图中,“公司”以“雇主”的角色,“人”以“雇员”的角色参与关联。“雇主”和“雇员”称为角色名。如果在关联上没有标出角色名,则隐含地用类的名称作为角色名。关联的多重性角色还具有多重性(Multiplicity),表示可以有多少个对象参与该关联。在下图中,雇主(公司)可以雇佣多个雇员,表示为“0..n”;雇员只能被一家雇主雇佣,表示为“1”。多重性指标聚集和组合聚集(aggregation)是一种特殊形式的关联。聚集表示类之间的整体与部分的关系。组合(composition)是一种特殊形式的聚集,组合关系中的整体与部分具有同样的生存期。Anaggregationisaformofassociationthatspecifiesawhole-partrelationshipbetweenawholeandaconstituentpart.Acompositionisaformofaggregationassociationwithstrongownershipandcoincidentlifetimeofpartsbythewhole.聚集和组合的表示UML中聚集和组合的表示:类的依赖Adependencyisarelationshipbetweentwoelementsinwhichachangetooneelement(thesupplier)mayaffectorsupplyinformationneededbytheotherelement(theclient).有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。在类中,依赖由各种原因引起,如:一个类向另一个类发消息;一个类是另一个类的某个操作参数类型。类的泛化泛化(Generalization)定义了一般元素和特殊元素之间的分类关系。在UML中,泛化表示为一头为空心三角形的连线。Ageneralizationisataxonomicrelationshipbetweenamoregeneralelementandamorespecificelement.Themorespecificelementisfullyconsistentwiththemoregeneralelementandcontainsadditionalinformation.接口(Interface)接口是一组用于描述类或构件的一个服务的操作。在图形上,把接口画为一个圆;其扩展形式是接口表示为一个构造型化类。协作(Collaboration)协作是一组类、接口和其他元素的群体,它们共同工作,提供比各组成部分的功能总和更强的合作行为。例子聚集类图的抽象层次在软件开发的不同阶段使用的类图具有不同的抽象层次。一般地,类图可分为三个层次,即概念层,说明层和实现层。类的概念层,说明层和实现层的划分最先是由SteveCook和JohnDaniels引入的。概念层(Conceptual)类图描述应用领域中的概念,一般地,这些概念和类有很自然的联系,但两者并没有直接的映射关系。说明层(Specification)类图描述软件的接口部分,而不是软件的实现部分。实现层(Implementation)类图才真正考虑类的实现问题,揭示实现细节。类图的三个层次的例子概念层说明层实现层建立类图的一般步骤1.研究分析问题领域2.发现对象与类,明确它们的含义和责任,确定属性。3.发现类之间的关系。把类之间的关系用关联、泛化、聚集、组合、依赖等关系表达出来。4.设计类与关系。调整和细化已得到的类和类之间的关系,解决诸如命名冲突、功能重复等问题。5.绘制类图并编制相应的说明。概念模型(领域模型)用户访问领域知识现实世界经验建立域模型问题描绘书如何发现类和它们之间的关系名词-动词分析法找出以上来源中的名词或名词短语,作为候选类对候选类进行筛选,去掉冗余的、和系统无关的、以及非独立的类以动词为线索确定类之间的关系实例分析-图书管理系统在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者姓名),账户中存储借阅者的个人信息、借阅信息以及预订信息,持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预订书刊并取消预订,但这些操作都是通过图书管理员进行的。图书管理系统在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效,若有效,借阅请求被接受,系统查询借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,系统记录借阅记录。借阅者还书后,系统清除借阅记录。如果借阅者所借书刊已被借出,借阅者还可预订该书刊。课堂练习-网上书店系统通过Internet接受订单一个顾客可以拥有一个帐号,系统维护顾客最多达1000000个的帐号对所有的帐号提供密码保护能够搜索标准的图书目录提供多种搜索图书目录的方法,包括按作者搜索、按书名搜索、按ISBN搜索、按关键字搜索本系统采取货到付款的方式根据顾客的定购量确定书价折扣顾客可以发表图书评论装货站工作人员负责根据订单装货收货站工作人员确保商品数量同订单相符分析模型分析类分为以下三种:边界类实体类控制类边界类边界类处理系统环境与系统内部之间的通信,为用户或另一个系统提供了接口。边界类组成了系统中依赖于环境的部分,边界类用于为系统的接口建模,代表了系统和系统外的一些实体之间的接口。边界类实体类实体类是模拟必须被存储的信息和关联行为的类。实体对象是实体类的实例,被用来保存或更新关于某个现象的信息,通常是持久性的。实体类通常是独立于他们的环境,对于系统环境如何与系统通信是不敏感的。实体类控制类控制类是用来为特定于一个或几个用例的控制行为建模的类。控制对象是控制类的实例,它经常控制其他的对象,所以控制对象的行为是协调类型的,控制类协调实现用例的规定行为所需要的事件。控制类封装了特定于用例的行为,通常依赖于应用程序的类。控制类实例分析-图书管理系统---查看具体的模型图设计模型实例分析-图书管理系统---查看具体的模型图对象图(ObjectDiagram)对象图是表示在某一时间点上一组对象以及它们的关系的图。在图形上,对象图是顶点和弧的集合。Aobjectdiagramisadiagramthatshowsobjectsandtheirrelationshipsatapointintime.对象图与类图对象图的模型元素有对象和链(link)。对象是类的实例;对象之间的链是类之间的关联的实例。对象与类的图形表示相似,UML中对象图与类图具有相同的表示形式。对象图实质上是类图的实例。对象图常用于表示复杂的类图的一个实例。对象图的使用相当有限,主要用于表达数据结构的示例,以及了解系统在某个特定时刻的具体情况。对象图对象图描述参与一个交互的各个对象在交互过程中某一时刻的状态。可以被看作是类图在某一时刻的实例。类图和对象图的区别类图对象图类具有三个分栏:名称、属性和操作对象只有两个分栏:名称和属性在类的名称分栏中只有类名对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”类中列出了操作对象图中不包含操作,因为对于属于同一个类的对象而言,其操作是相同的类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性类的属性分栏定义了所有属性的特征对象则只定义了属性的当前值,以用于测试用例或例子中类图和对象图包(Package)包是用于把元素组织成组的通用机制。在图形上,把包画为带标签的文件夹。Apackageisageneral-purposemechanismfororganizingelementsintogroups.包的有关说明包名分simplename和pathname两种形式。例:CameraSensors::Vision::Camera包中可以包含其它建模元素,如class,interface,component,node,usecase,package,…,等。包可以嵌套,但嵌套层次不要过深。包没有实例,即在系统运行时见不到包。包之间可以存在依赖关系,但这种依赖关系不存在传递性。包的应用对建模元素进行分组。设计良好的包把一些语义上接近并倾向于一起变化的元素组织在一起。在Rose中,包可以提供一些特殊的功能,如在数据建模中,用包表示模式和域包;在数据模型和对象模型之间的转换是以包为单位进行的;在Web建模中,包可以表示某一虚拟目录(virtualdirectory),在该目录下的所有web元素都在这个包中;包在Rose中还可以作为控制单元(controlledunit),以方便团队开发和配置管理。作业1问题:请仔细阅读以下问题描述,建立银行系统的概念类图。银行是与生活紧密相关的一个机构,银行提供了存款、取未、转账等业务。在银行设

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

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

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

×
保存成功