面向对象方法与 UML 建模
理解对象、类、封装、继承、多态等基本概念,会读会画类图并分清关联、聚合、组合、泛化、实现、依赖六种关系,会画用例图、顺序图和状态图,了解面向对象分析与设计的主要任务和设计原则。
本节导读
这一节讲软件工程大纲第(四)单元「系统规约及软件设计」中的面向对象方法。结构化方法以「加工」为中心,把数据和处理分开;面向对象方法以「对象」为中心,把数据和对数据的操作封装在一起,用 UML 的各种图从静态结构和动态行为两个方面描述系统。
常见资料提到软件工程有「建模」题,面向对象部分建模的典型做法是画类图、用例图,也可能要求画顺序图或状态图;选择和判断要记准六种关系的画法、include 与 extend 的区别、各种图的用途。学完你应该能根据一段需求描述画出类图和用例图,并说清每条连线的含义。
面向对象的基本概念
| 概念 | 含义 |
|---|---|
| 对象 | 由属性(数据)和操作(方法)构成的实体,有唯一标识 |
| 类 | 具有相同属性和操作的一组对象的抽象,对象是类的实例 |
| 封装 | 把属性和操作结合成一个整体,对外隐藏内部细节,只通过接口访问 |
| 继承 | 子类自动拥有父类的属性和操作,并可增加或重新定义;有单继承和多继承 |
| 多态 | 同一消息发给不同类的对象,各自做出不同的响应,靠动态绑定实现 |
| 消息 | 对象之间请求服务的方式,包括接收对象、操作名和参数 |
抽象类不能直接创建对象,只用来被继承;接口只声明操作、不给实现,由类去实现它。面向对象方法的好处是:问题域中的事物与软件中的对象直接对应,便于理解;封装和继承便于复用和修改。
UML 概述
UML(统一建模语言)是一种可视化的建模语言,用来描述、构造和记录软件系统,不依赖具体的开发过程。它由事物、关系和图三部分组成。UML 2 的图大体分为两类:
| 类别 | 主要的图 | 用途 |
|---|---|---|
| 结构图(静态) | 类图、对象图、包图、构件图、部署图 | 描述系统由哪些元素组成、元素之间的关系 |
| 行为图(动态) | 用例图、活动图、状态图、顺序图、通信图 | 描述系统的功能、对象之间的交互和状态的变化 |
其中顺序图和通信图合称交互图:顺序图强调消息的时间先后,通信图强调对象之间的连接结构。
类图与类之间的关系
类图中一个类画成分成三栏的矩形:类名、属性、操作。属性和操作前的符号表示可见性:「+」公有,「-」私有,「#」保护,「~」包内可见。类之间有六种关系:
| 关系 | 含义 | 画法 | 例子 |
|---|---|---|---|
| 关联 | 两类对象之间有结构上的联系 | 实线,可标名字和多重性 | 教师—课程 |
| 聚合 | 整体与部分,部分可以离开整体独立存在 | 实线,整体一端画空心菱形 | 球队—球员 |
| 组合 | 更强的整体与部分,部分随整体创建和消亡 | 实线,整体一端画实心菱形 | 订单—订单项 |
| 泛化 | 一般与特殊,即继承 | 实线,空心三角指向父类 | 轿车—汽车 |
| 实现 | 类实现接口中声明的操作 | 虚线,空心三角指向接口 | 文件存储—存储接口 |
| 依赖 | 使用关系,一方的变化会影响另一方 | 虚线箭头,指向被依赖的一方 | 报表生成器—打印服务 |
多重性写在关联线的端点,表示对方的一个对象对应本端的几个对象:「1」恰好一个,「0..1」零或一个,「」或「0..」零或多个,「1..*」一个或多个。
用例图
用例图从用户的角度描述系统的功能。参与者是系统外部与系统交互的人或其他系统,画成小人;用例是系统为参与者提供的一项完整、有价值的功能,画成椭圆;系统边界画成方框。部分教材把用例译作「用况」。
用例之间有三种关系:包含(include)——基用例每次执行都必然要执行被包含的用例,用来抽出几个用例的公共部分,虚线箭头由基用例指向被包含用例;扩展(extend)——扩展用例只在特定条件下才插入基用例的执行,虚线箭头由扩展用例指向基用例;泛化——特殊用例继承一般用例。参与者之间也可以有泛化关系。
顺序图与状态图
顺序图描述多个对象之间按时间顺序进行的消息交互:对象排在顶部,每个对象下面的竖向虚线是它的生命线,生命线上的细长矩形是激活期(对象正在执行操作的时间),对象之间的水平箭头是消息,返回消息用虚线箭头,时间从上往下推进。
本节后面还有约 1623 字:报名学员看全文
每门课前 10 节免费看全文;从第 11 节起,完整教程要报名后由顾问在后台为你的账号开通才能看。
题库账号可以直接登录,但第 11 节起的完整教程要报名后由后台开通才能看。
学完练一练
按本节考点从本课的课后练习里抽题(每次 10 道以内),做完看解析、错题自动进错题本。第 11 节起的课后练习报名学员才能练。
本节内容由 AI 辅助编写,配图由 AI 生成,仅供备考参考;考试要求以《全国各类成人高等学校招生考试大纲(2024 年版)》及浙江省教育考试院当年公布为准。