继承
指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间
最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;

实现
指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字
implements明确标识,在设计时一般没有争议性;

依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过
河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性
的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联
类A引用了一个类型为被关联类B的全局变量;

聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,
部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来
区分;

组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此
时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区
分;

对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引
用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关
系;但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖
;
分享到:
相关推荐
UML建模的一般过程涉及以下几个关键步骤: 1. **需求分析**:收集和理解业务需求,这是所有建模工作的起点。需求分析阶段,通过访谈、问卷调查、观察等方式,了解业务流程、用户需求、系统约束等信息。 2. **业务...
下面将详细介绍几种常用的UML图表及其用途: ##### 1. 用例图 - **定义:** 描述了系统的功能,以及用户如何与系统交互。它关注于系统“做什么”,而不是“怎么做”。 - **组成元素:** - **用例(Use Case):**...
主要包括以下几种视图: 1. **静态视图**:关注系统的静态结构,如类图和对象图。这类视图主要用于描述系统的组成部分及它们之间的关系。 2. **用例视图**:描述了系统的功能需求,特别是从用户的角度出发。用例图...
UML(统一建模语言)提供了一种图形化的方式来表示用例,称为用例图。用例图包含以下几个元素: 1. **参与者(Actor)**:用小人图标表示,代表与系统交互的实体。 2. **用例(Use Case)**:通常用椭圆表示,里面...
UML(统一建模语言)是软件开发中用于建模和设计系统的一种标准化语言。在UML中,用例(Use Case)是一种描述系统功能需求的方式,它表达了系统与外部用户之间的交互,即用户期望系统能执行的任务或服务。用例描述了...
本实训报告以UML建模为核心,通过具体案例——网络教学系统,详细展示了如何运用UML的不同图种来描述系统的需求、结构和动态行为。 **一、需求简述** 网络教学系统是现代教育的重要组成部分,它结合了计算机技术和...
### 系统分析师UML用例实践 #### 1. 绘制用例图 **1.1 参与者的特征表** 为了更好地理解和定义系统的参与者,系统分析师可以通过创建一个参与者的特征表来确保所有相关人员对参与者的理解一致。表1-11列出了团队...
在C++中,有几种常见的方法来管理内存: 1. **使用`new`和`delete`操作符**:程序员可以通过`new`操作符为对象分配内存,并使用`delete`操作符来释放内存。 2. **智能指针**:如`std::shared_ptr`和`std::unique_...
寻找用例的方法包括但不限于以下几种: 1. **访谈法**:与最终用户或利益相关者进行深入访谈,了解他们的需求。 2. **观察法**:观察用户如何使用现有系统,从而发现潜在的需求。 3. **问卷调查**:向目标用户群体...
70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...
5. 设计模式:简述设计模式的概念、分类(创建型、结构型、行为型)以及几种常用的设计模式,如工厂方法模式、单例模式、观察者模式等。 6. 软件测试:概述软件测试的基本概念,包括静态测试、动态测试、白盒测试、...
**时序图**是一种展示对象间交互顺序的UML图,特别适用于描述系统的行为和通信模式。Orsic项目通过时序图展示了用例执行过程中各对象的交互序列,增强了对系统运作的理解。 - “增加客户”时序图展现了助手与系统...
6. **UML中的用例图**:UML用例图是图形化表示用例、参与者和其他系统元素之间关系的工具。它提供了对系统外部可见行为的高层次视图,有助于快速理解系统的主要功能和角色。 7. **用例的演进**:随着项目的进展,...
文档内容涉及UML(统一建模语言)的使用,以及如何通过UML的九种基本图形来阐述系统的需求和设计。 在需求分析阶段,文档首先强调了其在软件开发流程中的重要性,它是基于需求说明,通过对用户需求的详细分析,确定...
3. **类图(Class Diagram)**:类图是UML(统一建模语言)中的一个重要图表,用于描绘类、接口、继承关系、关联关系等。类图可以帮助我们可视化地表示系统中的类结构,包括类的属性、操作、构造函数和访问修饰符。...
常见的建模方法有统一建模语言(UML),其中用例视图是UML的核心部分之一。 用例视图在软件建模中扮演着重要角色,它主要描述了系统与外部用户(包括人和系统)之间的交互。用例表示了用户的需求,即系统需要执行的...
针对本题中的财务系统,可以设计以下几种测试用例:输入有效日期范围内的数据、输入超出有效日期范围的数据、输入不符合格式的数据等,以此来验证系统的健壮性和准确性。 综上所述,2018年山东大学软件工程考试主要...
3. UML:UML(Unified Modeling Language)是指统一建模语言,是一种标准的建模语言,用于描述软件系统的结构、行为和交互。 4. 软件的容错技术:软件的容错技术是指在软件开发中,使用各种技术和方法来提高软件系统...