资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章统一建模语言UML,教学目标,了解uml历史 Uml中的结构建模 Uml中的行为建模,目录,UML概括,面向对象的开发方法,UML结构建模,UML行为建模,一、UML概括,一个人开发(小系统)开发模型,一、UML概括,多人开发(复杂系统)开发模型,一、UML概括,分析模型:以需求说明为基础,进行独立于程序开发,专注于业务的分析,一般用图形方式表达。 设计模型:以分析模型为基础,结合系统的实现来设计,比分析模型表达出更多的细节,从而便于系统的代码编写。 为尽量保持分析模型与设计模型的一致,我们采用统一设计语言设计两种模型。,一、UML概括,在软件体系结构的设计中先后出现了众多的语言,但这种情况使得不同软件系统、不同人员之间产生了交流成本,为解决这一问题,从而逐渐形成了统一建模语言(UML)。 UML从1997年发展至今最高版本为2.0版。 UML2.0能适用于软件工程中需求分析以后的各个阶段。 本书中的重点讲解讲解需求分析、概要设计、详细设计阶段。,一、UML概括,UML语言是一种标准,而不是一种方法。但允许任意一种过程和方法使用它。 UML是一种“语言” 语言的基本含义是一套按特定规则和模式组成的符号系统能被熟悉该符号系统的人或物使用。 UML是一种“建模语言”,用于系统开发人员之间、开发人员现用户之间的交流,一、UML概括,UML2.0规范包括四部分: 底层结构 上层结构 对象约束语言 图形交流 其中上层结构式设计人员直接使用的部分。,一、UML概括,UML2.0的模型驱动体系支持模型到代码的自动生成,同一个UML模型可以自动转化出大多数软件开发环境的语言代码(如:c+、java、c#) UML建模工具有Visio 、Rational Rose、PowerDesign 等。,二、面向对象的开发方法,UML就是以面向对象开发方法为基础的。面向对象开发方法中的主要概念如下: 类 继承 聚集 多态 消息,二、面向对象的开发方法,UML的建模机制 结构建模 类图 包图 对象图 构件图 组合结构图 部署图 行为建模 活动图 交互图:顺序图、通信图、交互概览图、时序图 状态图 用例图,二、面向对象的开发方法,UML的4+1模型 逻辑视图(Logic View):逻辑试图主要是用来描述系统的功能需求,即系统提供给最终用户的服务. 开发视图(Development/Module View) : 开发视图主要用来描述软件模块的组织与管理(通过程序库或子系统)。服务于软件编程人员, 方便后续的设计与实现。 进程视图 (process view):进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。服务于系统集成人员,方便后续性能测试。 物理视图(Physical view) : 物理试图主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。 场景(Scenarios) : 场景用于刻画构件之间的相互关系,将四个视图有机地联系起来。,三、UML2.0结构建模-类图,类 类代表了被建模的应用领域中的离散概念物理实体(如飞机)、商业事物(如一份订单)、逻辑事物(如广播计划)、应用事物(如取消键)、计算机领域的事物(如哈希表)或行为事物(如一项任务)。类是有着相同结构、行为和关系的一组对象的描述符号。,三、UML2.0结构建模-类图,类图是各种类相关的元素静态关系的可视表示。类图不仅包含类,而且还包含接口、枚举、包和各种关系、实例及其联系。,三、UML2.0结构建模-类图,类的定义 从上到下分为三部分,分别是类名、属性和操作。类名是必须有的 类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等 类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等。 抽象类的定义,三、UML2.0结构建模-类图,类的定义 实例:,三、UML2.0结构建模-类图,接口 接口用来声明一些属性或者方法,但并不实现它们。,三、UML2.0结构建模-类图,类之间的关系 依赖 关联 聚集 构成 泛化 实现 关联类,三、UML2.0结构建模-类图,类之间的关系 依赖(dependency) 当一个类需要访问另一个类的信息,即是依赖关系。 如:销售系统中,客户需要知道产品信息。 举例:依赖关系:?,选课系统中,学生类依赖课程信息类,毕业设计系统中,教师类依赖学生信息类,三、UML2.0结构建模-类图,类之间的关系 关联(association) 两个类在语义上有联系,即是关联关系,关联关系有方向性。 举例:关联关系:?,选课系统中,学生类关联课程类,多对多,三、UML2.0结构建模-类图,类之间的关系 聚集(aggregation) 一个类的实例在某一业务中存在于另一个类的实例中,即是聚集关系,该关系属于较弱的整体与部分的关系。 举例:聚集关系:?,三、UML2.0结构建模-类图,类之间的关系 构成(composition) 两个类的实例是一种包含关系的,即是构成关系。该关系是比聚集关系更强的整体与部分的关系。,三、UML2.0结构建模-类图,依赖、关联、聚集、构成的区别 依赖是一个类A要用到另一个类B提供的服务,A、B的关系具有偶然性的、临时性的。代码表现为A的一些方法中可能需要B的实例作为参数。 关联是一种强依赖关系,该关系具有长期性的,而且双方的关系一般是平等的。在代码层面表现为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。 聚集是关联关系的一种特例, 是强的关联关系. 聚合是整体和个体之间的关系,整体与部分之间是可分离的,他们可以具有各自的生命周期 。 构成是也是关联关系的一种特例 ,同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。,三、UML2.0结构建模-类图,类之间的关系 泛化(generalization) 类的继承即是泛化关系。继承是类与类或者接口与接口之间最常见的关系。,三、UML2.0结构建模-类图,类之间的关系 实现(realization) 一个元素是另一个元素的实现,如:员工是抽象类,管理人员和销售人员是员工的派生类(实现了员工类中的功能)。(教程案例),三、UML2.0结构建模-类图,类之间的关系 关联类(associationclass) 用来记录类之间关系的类,即是关联类。 如: 举例:,三、UML2.0结构建模-类图,实例,三、UML2.0结构建模-包图,包图的关系 依赖关系,三、UML2.0结构建模-包图,包图的关系 导入关系:A(import)导入到B,意味着B可以直接访问A中的所有元素;A(access)导入到c,意味着c可以直接访问A中的所有public元素。,三、UML2.0结构建模-包图,包图的关系 合并关系:D与E合并后,可以互相直接使用private以外的元素。,三、UML2.0结构建模,对象图(staruml不能没有对象图),三、UML2.0结构建模,构件图 当分析大型软件系统时,分成子系统,构件图能帮助我们。 构件是指系统中可替换的物理部分,系统封装了实现以及提供了一组接口的实现。 构件的接口说明了它支持的功能。接口中的每个操作最终都必须映射到构件支持的功能上。,三、UML2.0结构建模,构件图 构件之间有的依赖关系:一个构件的实现元素需要另一个构件的实现元素提供。如:A构件要调用B、C构件中的元素参与工作。,三、UML2.0结构建模,构件图 构件的接口:提供接口、需求接口 提供接口:向外提供的服务。 需求接口:请求外部服务。 如:图2_18. 举例:选课系统中,选课构件如何画,三、UML2.0结构建模,构件图 装配构件 实例:选课系统中教师构件、学生构件、课程构件的装配。,三、UML2.0结构建模,构件图 构件视图 白盒视图:显示构件时介绍构件的提供的接口如何实现,通常用类图更细致的描述 黑盒视图:从外在的视图显示构件,不考虑太多的细节,四、UML2.0结构建模,构件图 构件视图 白盒视图:显示构件时介绍构件的提供的接口如何实现,通常用类图更细致的描述 黑盒视图:从外在的视图显示构件,不考虑太多的细节。 举例:,三、UML2.0结构建模,构件图与包图的区别 包图在UML的建模机制中,侧重逻辑结构上的模型的组织包把建立的各种模型组织起来,形成各种功能或用途的模块,并可以控制包中元素的可见性以及描述包之间的依赖关系。通过这种方式,系统模型的实现者可在高层把握系统的结构。 构件图提供系统物理视图,在一个非常高的层次上显示系统中的构件与构件之间的依赖关系。将系统中可重用的模块封装为具有可替代性的物理单元,就是构件。它是一个系统或子系统中的封装单元,提供一个或多个接口,是系统高层的可重用部件。构件作为系统中的一个物理实现单元,包括:软件代码(源码,二进制代码,可执行文件,脚本,命令行等),带有身份标识并且有物理实体的文件(文档,数据库)。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号