首页计算机计算机软件软件工程 14 第8章 面向对象方法学引论2.pptx

14 第8章 面向对象方法学引论2.pptx

页数:60页文件大小:5.19 MB来源: 软件工程ppt课件

本课件讲解面向对象建模的三种模型,先说明建模的目的与UML的由来,随后详解对象模型中类图的基本符号、关联、聚集、泛化、依赖与细化等关系,并介绍动态模型的状态图与功能模型的用例图组成元素及用例之间的关系。

本章内容提纲,依次列出面向对象方法学概述面、面向对象建模、对象模型、动态模型等编排要点
开篇导入与要点回顾:维护费用,围绕合理、维护费用、生产率等要点展开说明
面向对象建模:根源在于软件,围绕复杂性、有效性、扩展性等要点展开说明
查看本课件的文字版(共 60 页,供检索与复制)

第1页:本章内容提纲

本节内容提纲

  • 面向对象方法学概述面向对象的概念
  • 面向对象建模
  • 对象模型
  • 动态模型
  • 功能模型
  • 三种模型之间的关系

第2页:开篇导入与要点回顾:维护费用

软件工程的目标预算合理费用较低功能达标性能良好提高维护性降低维护费用提高生产率及时交付质量焦点

第3页:面向对象建模:根源在于软件

面向对象建模

根源在于软件的复杂性有效性功能可移植性性能扩展性可维护性容错能力(1)产品

第4页:面向对象建模:(2)管理

面向对象建模:(2)管理

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第5页:面向对象建模:建模目的设计

面向对象建模

建模目的设计结构与系统行为融会贯通可视化和控制系统的体系结构化解复杂性的问题有效地管理开发风险开发出高品质的软件

第6页:面向对象建模:“软件

面向对象建模

“软件已经是抽象的东西,为什么要进行软件建模。”需要一种描述复杂系统的简单方法软件系统越来越大,无法单人管理没有参加开发的人员无法直接理解程序代码。

第7页:分析建模:与规格

分析建模

与规格说明数据模型实体联系图行为模型状态转化图逻辑模型数据流图撰写软件规格说明为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。模型。

第8页:分析建模:生命周期

软件生命周期不同的视角建建立模型,形成不同视图抽取对象,并抽象化描述对象或类成为软件系统的主要构造块8.3面向对象建模

第9页:面向对象建模:面向对象建模

面向对象建模:面向对象建模

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第10页:面向对象建模:对象模型

面向对象建模

对象模型
描述系统
数据结构动态模型
描述系统
控制结果功能模型
描述系统功能涉及到数据、控制、操作等共同概念,各有侧重综合起来更为全面的反映了对目标系统的需求使用数据结构执行操作完成数值的变化

第11页:统一建模语言UML

统一建模语言UML

建模有利于更好的理解系统软件具有复杂性用户很难选择建模语言建模语言差异影响用户间交流

第12页:统一建模语言UML(续)

统一建模语言UML

  • UML是Booch、OOSE和OMT方法的结合,吸收了其他方法的思想
  • UML成为一种定义明确的、富有表现力的、强大的、可应用于广泛的问题域的建模语言
  • 统一建模语言是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言
  • 它是一种富有表达力的语言,可以描述开发所需要的各种视图,并以此为基础组建系统。

第13页:8.4对象模型内容提纲

本节内容提纲

  • 面向对象方法学概述面向对象的概念
  • 面向对象建模
  • 对象模型
  • 动态模型
  • 功能模型
  • 三种模型之间的关系

第14页:对象模型:模型表示

  • 8.4对象模型对象模型表示静态的、结构化的系统的“数据”性质
  • 对象模型是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构
  • 对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息并具与它进行交互的能力
  • 为了建立对象模型,需要定义一组图形符号,并且规定一组组织这些符号以表示特定语义的规则

第15页:类图的基本符号

类图的基本符号

  • 类图描述类及类与类之间的静态关系
  • 类图是一种静态模型,它是创建其他UML图的基础
  • 一个系统可以由多张类图来描述,一个类也可以出现在几张类图中
  • 定义类定义属性定义服务

第16页:对象模型:类名、属性

类名属性服务8.4.1类图的基本符号(1)定义类UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域(下面两个区域可省略),3个区域分别放类的名字、属性和服务

第17页:类图的基本符号

类图的基本符号

使用标准术语使用确切的名词必要时采用名词短语为类命名的准则:

第18页:类图的基本符号(续)

类图的基本符号

(2)定义属性UML描述属性的语法格式:可见性属性名:类型名=初值{性质串}可见性:公有(public)/+、私有(private)/-、保护(protected)/#(没有默认可见性){性质串}:可能枚举值或其它性质,如{只读}

第19页:类图的基本符号

类图的基本符号

(2)定义属性例:-管理员:String=“未定”类变量实例:-货单数:Integer(类变量在该类所有对象中的属性值相等)

第20页:类图的基本符号(续)

类图的基本符号

(3)定义服务UML描述操作的语法格式:可见性操作名(参数表):返回值类型{性质串}参数的语法:参数名:类型名=默认值-Show(x:integer=0,y:integer,z:integer):integer

第21页:表示关系的符号细化

表示关系的符号细化

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第22页:对象模型:关联、对象

1.关联关联表示两个类的对象之间存在某种语义上的联系。a)普通关联b)关联的角色c)限定关联d)关联类8.4.2表示关系的符号。

第23页:对象模型:作家、计算机

作家计算机使用被使用*1…*8.4.2表示关系的符号a)普通关联普通关联是最常见的关联关系,只要在类与类之间存在连接关系就可以用普通关联表示。普通关联的图示符号是连接两个类之间的直线。

第24页:对象模型

  • 在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:
  • 在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:
  • 0…1表示0到1个对象;
  • 0…*或*表示0到多个对象;
  • 1+或1…*表示1到多个对象;
  • 1…15表示1到15个对象;
  • 3表示3个对象。如果图中未明确标出关联的重数,则默认重数是1。8.4.2表示关系的符号

第25页:对象模型:丈夫、妻子

人结婚丈夫妻子8.4.2表示关系的符号b)关联的角色任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。递归关联(即一个类与它本身有关联关系)的例子。如果没有显式标出角色名,则意味着用类名作为角色名。

第26页:表示关系的符号

表示关系的符号

c)限定关联限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。

第27页:对象模型:目录、文件

目录文件文件名限定关联目录文件保存被保存1…*普通关联8.4.2表示关系的符号c)限定关联

第28页:表示关系的符号

表示关系的符号

  • d)关联类为了说明关联的性质可能需要一些附加信息
  • 可以引入一个关联类来记录这些信息
  • 关联中的每个连接与关联类的一个对象相联系
  • 关联类通过一条虚线与关联连接
  • 队列电梯控制器电梯按钮4*

第29页:对象模型:关系、整体

  • 2.聚集聚集表示类与类之间的关系是整体与部分的关系
  • 在陈述需求时使用的“包含”、“组成”、“分为……部分”等字句,往往意味着存在聚集关系
  • 除了一般聚集之外,还有两种特殊的聚集关系,分别是共享聚集和组合聚集
  • 8.4.2表示关系的符号

第30页:对象模型:课题组、成员

课题组人成员*1…*8.4.2表示关系的符号a)共享聚集如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。一般聚集和共享聚集的图示符号,都是在表示关联关系的直线末端紧挨着整体类的地方画一个空心菱形。

第31页:表示关系的符号

表示关系的符号

b)组合聚集如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值了),则该聚集称为组合聚集(简称为组成)组合聚集用实心菱形表示。

第32页:对象模型:利用、教材

对象模型:利用、教材

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第33页:对象模型:教材、对象

教材描绘教材结构的对象模型(组合聚集)封面前言1+1+目录章节习题包含包含参考答案:

第34页:对象模型:UML、关系

  • 3.泛化UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系
  • 具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息
  • 在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素
  • a)普通泛化b)受限泛化8.4.2表示关系的符号

第35页:表示关系的符号

表示关系的符号

  • a)普通泛化普通泛化与继承基本相同,对普通泛化的概念此处不再赘述
  • 需要特别说明的是,抽象类通常作为父类,用于描述其他类(子类)的公共属性和行为
  • 图示抽象类时,在类名下方附加一个标记值{abstract}
  • 抽象操作的图示方法与抽象类相似,在操作标记后面跟随一个性质串{abstract}

第36页:表示关系的符号(续)

表示关系的符号

a)普通泛化图下方的两个折角矩形是模型元素“笔记”的符号其中的文字是注释,分别说明两个子类的操作drive的功能。

第37页:一个比较复杂的类图示例

一个比较复杂的类图示例

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第38页:表示关系的符号受限

表示关系的符号b)受限

  • 泛化可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化
  • 预定义的约束有4种:多重、不相交、完全和不完全
  • 这些约束都是语义约束
  • 多重继承指的是,一个子类可以同时多次继承同一个上层基类

第39页:表示关系的符号受限(续)

表示关系的符号b)受限

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第40页:表示关系的符号受限

表示关系的符号b)受限

泛化不相交继承,与多重继承相反,一个子类不能多次继承同一个基类。如果图中没有指定{多重}约束,则是不相交继承,一般的继承都是不相交继承。完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定{完全}约束。不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护,这为日后系统的扩充和维护带来很大方便。

不完全继承是一般情况下默认的继承关系。

第41页:依赖和细化:依赖关系描述

依赖和细化

依赖关系描述两个模型元素(类、用例等)之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。例如,一个类使用另一个类的对象作为操作的参数,一个类用另一个类的对象作为数据成员,一个类向另外一个类发消息等。8.4.2表示关系的符号。

第42页:对象模型:友元、成员

类B类A《友元》(友元:依赖类可以使用独立类中私有的或保护的成员)4.依赖和细化在UML的类图中,用带箭头的虚线连接有依赖关系的两个类,箭头指向独立的类。在虚线上可以带一个版类标签,具体说明依赖的种类。8.4.2表示关系的符号。

第43页:依赖和细化:当对同一个

依赖和细化

当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模型元素A和B描述同一个事物,它们的区别是抽象层次不同,如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。8.4.2表示关系的符号分析类设计类细化的图示符号为由元素B指向元素A的、一端为空心三角形的虚线。

细化用来协调不同阶段模型之间的关系,表示各个开发阶段不同抽象层次的模型之间的相关性,常常用于跟踪模型的演变。

第44页:对象模型:公司员工

例子:公司员工名字电话号码主要产品地址雇佣解雇姓名地址身份证号码工资1+职务部门名部门工人经理0…1管理产品产品名成本重量项目项目名预算优先级生产1+主持参加1+1+1+一家公司的对象模型组成

第45页:对象模型:学校、学生

  • 练习
  • 练习
  • 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是_______关系。
  • 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是_______关系。
  • 一个汽车有四个轮子,那么类“汽车”和“轮子”之间的关系是_______关系。
  • 学生与研究生之间是_______关系。关联依赖聚合泛化

第46页:本章内容提纲

本节内容提纲

  • 面向对象方法学概述面向对象的概念
  • 面向对象建模
  • 对象模型
  • 动态模型
  • 功能模型
  • 三种模型之间的关系

第47页:动态模型:表示瞬时的

动态模型

  • 表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列
  • 8.5动态模型1)状态:状态就是对象在其生命周期中的某个特定阶段所处的某种情形,是对象属性的一种抽象
  • 2)事件:事件是某个特定时刻所发生的事情
  • 它是引起对象状态转换的控制信息
  • 3)行为:行为是指对象达到某种状态时所做的一系列处理操作

第48页:对象模型:UML、状态图

  • 通常用UML提供的状态图来描绘动态模型
  • 注意:每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型
  • 8.5动态模型

第49页:动态模型

动态模型

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第50页:动态模型(续)

动态模型

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第51页:8.6功能模型内容提纲

本节内容提纲

  • 面向对象方法学概述面向对象的概念
  • 面向对象建模
  • 对象模型
  • 动态模型
  • 功能模型
  • 三种模型之间的关系

第52页:功能模型

功能模型

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第53页:功能模型:数据的源点/

功能模型

  • 数据的源点/终点变换数据的处理数据存储数据流T*+
  • T*+

第54页:功能模型:UML、用例

  • UML提供的用例图也是进行需求分析和建立功能模型的有力工具
  • 以用例图建立起来的系统模型称为用例模型
  • 用例模型描述的是外部行为者(actor)所理解的系统功能
  • 8.6功能模型

第55页:功能模型:方框、代表

8.6.1用例图方框代表系统椭圆代表用例行为者关系

第56页:功能模型:用例、代表

8.6.1用例图(1)系统提供用例的黑盒子。代表系统的方框的边线表示系统的边界,用于划定系统的功能范围,定义了系统所规定的功能。

第57页:功能模型:用例、代表(续)

  • 8.6.1用例图(2)行为者使用用例并且与系统交互的任何人或物都是行为者
  • 行为者代表一种角色,而不是某个具体的人或物
  • 一个具体的人可以充当多种不同角色
  • 行为者触发(激活)用例,并与用例交互信息

第58页:功能模型:用例、UML

  • 8.6.1用例图(3)用例可以被行为者感受到的、系统的一个完整的功能
  • 在UML中把用例定义成系统完成的一系列动作,动作的结果能被特定的行为者察觉到
  • 用例是一个类,代表一类功能而不是具体实例
  • 用例的实例,称为脚本

第59页:用例之间的关系扩展

用例之间的关系扩展

  • 关系向一个用例中添加一些动作后构成另一个用例,它们之间构成扩展关系
  • 使用关系一个用例使用另一个用例,它们之间构成使用关系
  • 8.6.1用例图

第60页:功能模型:变化、关系

  • 描述一般行为的变化时采用扩展关系
  • 两个或多个用例中出现重复描述时可采用使用关系
  • (4)用例之间的关系8.6.1用例图
顶部目录