UML面向对象建模设计.ppt_第1页
UML面向对象建模设计.ppt_第2页
UML面向对象建模设计.ppt_第3页
UML面向对象建模设计.ppt_第4页
UML面向对象建模设计.ppt_第5页
免费预览已结束,剩余53页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、UML面向对象建模与设计,UML面向对象建模与设计,本课程内容安排: 1、面向对象概念与UML介绍: 2、类建模与类图介绍: 3、用例与用例图介绍: 4、顺序图介绍: 5、状态图介绍: 6、活动图: 7、协作图与构建图与部署图介绍: 8、UML在软件开发实例中的具体应用。,第01讲,面向对象概念与UML介绍,本讲目标:,1、面向对象的分析和设计 (OOAD) 2、面向对象的基本概念。 3、模型与建模 4、UML的基本概念。 5、UML的组成。 6、一个UML案例。,1、面向对象的分析和设计 (OOAD),1.1、面向对象程序设计的入:,随着信息技术的发展,软件复杂性的增长 使软件开发越来越困难

2、 应用软件 网络 操作系统,软件可能是人类制造出来的最复杂的实体,1.2、面向对象的分析和设计 (OOAD),面向对象的方法按照人类的自然思维的方式,面对客观世界建立软件模型。 充分体现了对复杂系统进行分解、抽象、模块化等思想,OOA依照用户所理解的真实世界中的对象概念,发现和分析对象的内部构成和外部关系,建立准确而简洁的软件系统的对象模型。,OOD 是根据已建立的系统对象模型,运用面向对象技术,进行软件设计。,2、面向对象的基本概念。,面向对象的基本概念,类与对象 抽象 封装 继承 多态,2.1 类和对象的概念,多边形对象,多边形类,属性顶点边的颜色填充颜色,方法绘制擦除移动,抽象为,2.2

3、类和对象的关系:抽象,考察特定应用程序相关问题的某些方面的过程,Class,2.3类的特性:封装,信息隐藏的过程 有选择的数据隐藏 防止意外的数据破坏 更易于隔离和修复错误,类的特性:封装,封装是允许有选择地隐藏类中的属性和方法的过程,2.4类的特性:继承,超类是有其他类继承其特征和行为的类 继承其他类的类称为子类,2.5类的特性:多态性,同样的函数在不同的类上有不同的行为,类:形状 方法: 绘制 移动 初始化,子类,对各个子类实现的方法 将产生不同的结果,2.6 类的其他知识,接口: 接口是一个收集方法和常数表单的契约。当类执行一个接口,它就许诺声明在那个接口中执行所有的方法。 在不同类中实

4、现取用相同参数的同名成员函数 契约,设计的灵魂 重载 在同一类中实现取用不同参数的同名成员函数 消息 对象之间的交互 包含三个方面的内容:消息的接收者;接收对象应采用的方法;方法所需要的参数,3、模型与建模,3.1什么是模型,模型是现实的简化 模型提供了系统的设计图。模型可以包含详细的规划,也可以包含概括性的规划,这种规划高度概括了正在考虑的系统。好的模型包括那些具有高度抽象性的元素。 模型有助于按原样或根据需要使系统可视化 通过模型可以详细说明系统的结构或行为 模型可以提供一个指导我们构建系统的模板 模型可以记录已经做出的决策,3.2、为什么要建模,建模是为了让我们更好地理解将要开发的系统。

5、,3.3、建模要实现的目的,模型有助于按原样或根据需要使系统可视化。 通过模型可以详细说明系统的结构或行为。 模型可以提供一个指导我们构建系统的模板。 模型可以记录已经做出的决策。,3.4、建模的原则,选择创建什么模型对于如何处理问题以及如何形成解决方案有很深远的影响。 每一种模型可以在不同的精度级别上表示。 最佳模型与现实情况是紧密相连的。 一个模型不足以全面地反映实际情况。每个具有一定规模的系统都是通过一组几乎独立的模型来表示的。,4、UML的基本概念。,4.1UML 简介,统一建模语言UML(Unified Modeling Language)是一种绘制软件蓝图的标准语言。 可以用UML

6、对软件密集型系统进行可视化、详述、构造和文档化。 从企业信息系统到基于Web的分布式应用,甚至严格的实时嵌入式系统都适合于用UML来建模。 它是一种富有表达力的语言,可以描述开发所需要的各种视图,然后以此为基础开发系统。,4.2UML的语义与语法:,1.UML语义描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。 2 UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文

7、字所表达的是应用级的模型,在语义上它是UML元模型的实例,4.3在不同系统中的应用,信息系统:与数据库有关的系统 技术系统:处理和控制技术设备 嵌入式系统:控制像移动电话这样的设备以及家用设备 分布式系统:使用 CORBA 和类似的面向对象机制分布在不同系统上的数据库系统 系统软件:操作系统和编写系统实用程序 业务系统:与工作流有关的系统,5、UML的组成。,5.UML的组成,标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:,类图:,类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态

8、关系,在系统的整个生命周期都是有效的。 以洗衣机为例:类图如右下:,对象图:,对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 如下面:左图指明对象和它对应的类名;右图尽管指明了对象所属类,但并未提供一个具体的对象名,这是匿名对象。,用例图,用例图:是从用户角度描述系统功能,并指出各功能的操作者 。 以洗衣机系统如下:,状态图,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图

9、。如下为一洗衣过程的状态图。,顺序图,顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。,活动图,活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动,协作图,协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。,构件图,构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。,部署图,配置图定义系统中软硬件的物理体系结构

10、。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。下面为不同品牌计算机的通信部署图:,UML中几个图的关系,用例图,需求,类图(复杂),状态图,顺序图,类图(简单),活动图,协作图,UML应用领域,最常用的是为软件系统建模,但不限于软件系统建模。UML还可用来描述其他非软件系统,如一个机构的组成或机构中的工作流程等。,UML应用-需求分析阶段,UML 的用例视图可以表示客户的需求,通过用例建模可以对外部的角色以及它们所需要的系统功能建模。,UML应用-分析阶段,分析阶段

11、主要考虑所要解决的问题。可用UML 的逻辑视图和动态视图来描述,类图描述系统的静态结构;协作图、状态图、顺序图和活动图描述系统的动态特征。 在分析阶段,只为问题领域的类建模,不定义软件系统的解决方案的细节(如用户接口的类数据库等)。,UML应用-设计阶段,在设计阶段把分析阶段的结果扩展成技术解决方案,加入新的类来提供技术基础结构-用户接口,数据库操作等。 分析阶段的领域问题类被嵌入在这个技术基础结构中,设计阶段的结果是构造阶段的详细的规格说明。,UML应用-构造阶段,在构造(或程序设计)阶段把设计阶段的类转换成某种面向对象程序设计语言的代码。,UML应用-测试阶段,对系统的测试通常分为单元测试

12、、集成测试、系统测试和接受测试几个不同级别。 不同的测试小组使用不同的UML 图作为他们工作的基础。单元测试使用类图和类的规格说明;集成测试典型地使用组件图和协作图;而系统测试实现用例图来确认系统的行为是否符合这些图中的定义。,UML应用-构造阶段,在构造(或程序设计)阶段把设计阶段的类转换成某种面向对象程序设计语言的代码。,6、一个UML案例,顺序图案例,刘备,孔明,关羽,求战,请拟策略,张飞,请防守荆州,请防守 荆州前线,孙权,曹操,请联络孙权,请孙权领兵相助,借东风火攻,火攻曹军,刘备的责任?,刘备,求战,请拟策略,请防守荆州,请联络孙权,我必须 迎战曹操!,使用UML表示,孔明,请拟策

13、略,请联络孙权,请孙权领兵相助,借东风火攻,火攻曹軍,使用UML表示,关羽,张飞,请防守 荆州,请防守 荆州前线,关羽,防守荆州,张飞,防守荆州前线,关羽,防守荆州,张飞,防守荆州前线,刘备,迎战曹操,孔明,拟定策略,联合孙权,借东风火攻,UML的类图,怎么根据模型来写代码呢?,使用C#,刘备,迎战曹操,写C# 程序,class 刘备 public 迎战曹操() ,孔明,拟定策略,联合孙权,借东风火攻,写C# 程序,class 孔明 public 拟定策略() public 联合孙权() private 借东风火攻() ,class 刘备 public 迎战曹操() ,使用C#,class 孔

14、明 public 拟定策略() public 联合孙权() private 借东风火攻() ,class 关羽 public 防守荊州() ,class 张飞 public 防守前线() ,依样画葫芦,准备填写public方法内容,写C#程序内容,刘备,求战,请拟定策略,请防守荆州,请联络孙权,写C# 程序,class 刘备 孔明 k new 孔明 关羽 g new 关羽public 迎战曹操() k.拟定策略 g.防守荆州 k.联合孙权 ,写C#程序内容,孔明,请拟定策略,请联络孙权,请孙权领兵相助,借东风火攻,借东风火攻,写C# 程序,class 孔明 孙权 s new 孙权 public 拟定策略() public 联合孙权() s.请领兵相助 借东风火攻() private 借东风火攻() ,写C#程序内容,case end,class 刘备 孔明 k = new 孔明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论