一、习题知识梳理

1、UML的4种事物分类

结构事物:模型的静态骨架(类、组件、节点等)。
行为事物:模型的动态部分(交互、状态机、活动)。
分组事物:用于组织模型(包)。
注释事物:用于说明和约束(注释)。

2、用例图

核心概念:系统功能的抽象,通过场景(Scenario)来描述具体的交互步骤。

3、泛化关系:

描述了一般事物与特殊事物之间的继承关系,即 “is-a” 关系。接口和实现类之间是实现关系,类之间的静态连接是关联关系。

4、UML4种核心关系

泛化:空心三角实线,指向父类 / 接口。
依赖:虚线箭头,指向被依赖者。
关联:实线,类之间的结构化连接。
实现:空心三角虚线,指向接口。

5、做题时涉及到的概念

关联关系它描述了类之间的结构化联系,是最常见的类间关系。

接口和实现该接口的类之间的关系是实现关系

对象图属于结构图(静态图),用于展示某一时刻类的实例(对象)及它们之间的链接。类图、组件图、顺序图均为 UML 标准结构图 / 行为图。

组合结构图是 UML 2.0 新增的图,用于描述复杂元素(如类 / 组件)的内部内部结构及协作关系。类图、交互概览图、时序图均为 UML 2.0 规范内的图种。

UML 的扩展机制包括构造型、标记值、约束。构造块是 UML 的核心组成元素(如类、关系),并非扩展机制。

标记值用于为元素添加特性信息(如版本、作者、属性)。构造型扩展语义,约束限定规则,注释是独立元素。

UML 由构造块(事物、关系、图)、公共机制和规则三部分组成。

行为图(如序列图、状态机图)专注于描述系统随时间的动态行为和对象交互,即模型的动态部分。(行为图的定义)

关系的作用:用于建立元素之间的语义联系。

UML 是一种图形化的建模语言,其符号仅表达语义,不依赖于绘制的大小和位置。(UML的语义规则)

UML 中的约束(Constraint)通常使用花括号 { } 内的文本来表示,例如 {只读}、{长度 > 0}。(约束的表示法)

6、UML的扩展机制:

构造型(<<>>):扩展元素语义。
标记值({tag=value}):添加元数据属性。
约束({ }):限定语义规则。

7、UML 4+1 视图模型

逻辑视图:系统功能设计(类图、对象图)。
开发视图:代码与组件组织(组件图)。
进程视图:并发与通信(序列图、通信图)。
物理视图:硬件部署(部署图)。
用例视图:需求驱动。

二、软件工程及其面向方法

1、软件危机

进度、成本、质量

2、软件工程目标

进度控制、成本控制、质量控制

3、面向对象概念

一种运用一系列面向对象的指导软件构造的概念和原则(如类、对象、抽象、封装、继承、多态等)来构造软件系统的开发方法。


4、面向过程------步骤化

分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用。

5、面向对象------行为化

把整个需求按照特点、功能划分,将存在共性的部分封装成类 (类实例化后是对象),创建对象不是为了完成某一个步骤,而 是描述某个事物在解决问题的步骤中的行为。

6、面向对象-------对象

◼自治性:独立处理问题
◼ 封闭性:外部对象只能发送消息对其施加影响,无法直接对对象修改
◼ 通信性:与其他对象通信
◼ 被动性:存在和状态转换由外界驱动,接收到外界消息后才进行某种转换

7、面向对象-------类

◼拥有共同的结构、行为和语义的一组对象,一组对象的公共属 性和公共行为。类也具有属性、操作和标识符。

◼面向对象程序中的构造单位,面向对象程序设计语言的基本成分

8、面向对象------抽象

◼去除不重要的细节,揭示一个事物的本质特征。

◼抽象取决于使用者的目的,同一实体在不同场景中可有不同抽象。

9、面相对象-------封装

◼ 隐藏对象的属性和实现细节,仅对外公开接口,并控制在程序中属性的 读和修改的访问级别。 ◼ 封装强调两个概念,封闭和独立。

10、面向对象--------泛化

◼ 一般描述和具体描述之间的关系,具体描述在一般描述基础上对其进行了扩展。
◼ 实现泛化关系的机制为继承。一个子类继承一个父类,就实现两者之间的泛化关系。

11、面向对象-------多态

◼ 多态是在同一接口下表现多种行为的能力。
◼ 多态允许不同类的对象对同一消息做出不同响应。
◼ 当一个对象接收到进行某项操作的消息时,多态机制将根据对象所属的类,动态地选用该类中定义的操作。

三、统一建模语言UML

1、UML特点

UML用来捕获系统静态结构(对象间的属性和方法,对象 间的关系)和动态行为(对象在不同时间、状态下的变 化以及对象间的相互通信)的信息。

UML是独立于过程的,它适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以各种开发工具。

UML不是一种程序设计语言,可以使用代码生成器将UML模型转换为多种程序设计语言代码,或者使用逆向工程将程序代码转换为UML。

四、初识UML

1、构造块

构造块指的是UML的基本建模元素,是现实世界中的概念的抽象描述方法。

2、事物

对模型中关键元素的抽象体现

事物的分类:结构事物(UML模型的静态部分)、行为事物(是UML模型的动态部分,即静态元素之间产生的时间和空间上的行为动作)、分组事物(是UML模型的组织部分,是用来组织系统设计的事物。)、注释事物(是UML模型的解释部分,用来描述、说明和标注模型的元素。)

3、关系

事务和事务间联系的方式

关系的分类:关联关系(指一种对象和另一种对象之间存在联系)、依赖关系(如一个元素的某些特性随另一个独立元素的特性的改变而改变)、泛化关系(描述特殊到一般的关系)、实现关系(描述特殊到一般的关系)

4、图

相关的事务及其关系的聚合表现

结构图:捕获事物与事物之间的静态关系。

行为图:捕获事物的交互过程的动态行为。

5、通用机制

规格说明:UML的规格说明用来对系统的细节进行描述,确定系统的更多性质

修饰:对规格说明的基本符号添加一些独特性的修饰(对类名添加斜体修饰表明这是一个抽象类;公有性(public)的操作,保护性(protected)的操作,私有性(private)的操作)

扩展机制:为了扩充描述能力定义的通用性扩展

UML的三种扩展机制:构造型、标记值、约束。

6、4+1架构

在“4+1”视图模型中,软件开发者从五个不同视角描述软件体系结构的一组视图模型。

逻辑视图:

➢将系统功能进行分解,负责反映出系统内部是如何组织和协
作来实现功能的。
➢ 通过揭示类、对象、类与对象之间的静态关系,以及对象之
间如何交互的动态行为来展示各个对象如何实现系统功能.
➢ 逻辑视图主要对应UML的类图。

开发视图:

➢ 面向开发人员,描述软件的各个模块的组织方式,主要考虑软 件编程时的需求,例如模块编写是否容易,是否可以重用,哪 些成熟的框架可以应用。

➢ 由于其描述了静态的软件组织结构,一般对应UML中的组件图。

进程视图:

➢ 描述系统的运行特性,关注进程、线程、对象、并发、同步、通信等运行时概念。
➢ 为逻辑视图中类的具体操作指定进程或线程,并对运行时单元之间的交互加以规划。
➢ 在UML中运行时一般采用状态机图、交互图和活动图完成。

物理视图:

➢描述硬件配置,强调系统的安装、配置、通信、拓扑结构等问题。
➢将软件系统映射到指定的硬件设备上,保证不同的硬件环境给软件性能带来的影响最小,或让物理配置的性能和稳定性达到最高。
➢UML中的部署图基本可以实现物理视图中涉及的部分。

场景视图:

➢ 从项目需求入手,将四个视图结合为一个整体。四个视图中的元素需要协同工作以实现场景视图中给出的用例,它是距离用户需求最近的视图,是软件开发中重要的驱动要素(用例驱动)。
➢ UML中的场景视图主要指用例图。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐