UML 概念 类图

下午突然不想干活了,在刷新了半小时邮箱又玩了半小时资源管理器后,决定还是看看UML,不找点事做做实在太无聊了。
于是下了本O'Reilly的Learning.UML.2.0,O'Reilly的书打发时间极佳,还不伤大脑,谁用谁知道。废话到此为止了,个猪头话唠。
 

modeling language建模语言:可以由任何能够用来描述系统的东西组成,比如伪代码、真实代码、图片、图表甚至是大段的文字描述。建模语言包含了用来表示模型的表示法和用来描述表示法的元模型。
UML notation表示法:构成建模语言的元素称为该语言的表示法,比如一个类声明(分成3块的大方盒子)就是UML表示法的一个元素。
semantics语义:语义描述了表示法的意义。比如把类图中分成3块的大方盒子理解为类声明。
meta-model元模型:元模型捕获了语义信息。简单理解的话就是元模型描述了每个表示法的元素的意义。
 

日啊,我讨厌概念!
不负责乱说:Car类声明(指UML图中的大方盒子)可以称为UML表示法的元素,它的brand属性(指UML图中的brand属性那一行)也可以称为UML表示法的元素。语义描述了大方盒子这样的元素的意义,所以我们看到大方盒子就知道他是一个类声明。而类的元模型,就包含了语义的信息,它定义了类声明应该是什么样子的,有哪些属性等等。
 

两个UML表示法元素介绍:
note:note可以用来放置任何供人阅读的信息。
stereotype构造型:stereotypes表示某种特定的用途或用意,它可以应用到几乎所有的UML表示法元素上去。stereotypes修改元素的意义,描述元素的角色。
一部分构造型有对应的图标,比如Actor对应火柴人图标,但大多数构造型都没有对应图标。
构造型的表示方式是使用对应图标或使用 <<stereotype_name>> 的形式。
一个元素可以对应多个构造型
UML定义了一系列标准构造型。
 

ClassDiagram类图

Visibility可见性:+public #protected ~package -private
注意对于protected,同包其他类是不可以访问的,与java不一致;对于package,包外继承是不可以访问的。

Attribute属性visibility Name:Type 例如:-name:String,表示字符串类型属性name,可见性为private。
multiplicity多重性attribute properties属性特性
-historicalChampion:Person[*]{not unique} ==> private Person[] historicalChampion;
    not unique指数组的项可以重复。默认特性是unique。
-createdBy:String="Adam Cock."{readOnly} ==> private final String createdBy = "Adam Cock.";

Operation操作visibility FunctionName(Parameter1:Type, Parameter2:Type):ReturnType
例如:+setName(name:String):void ==> public void setName(String name);
         +NamedNode(name:String)  ==> public NamedNode(String name);  构造函数没有返回类型。

static静态成员:加上下划线表示静态成员。

Relationships关系
UML提供了5种类关系,它们由弱到强为:

1. Dependency依赖关系:依赖关系表示一个类需要知道另一个类的存在以便使用这个类的对象。使用虚线(可能有箭头)表示。
2. Association关联关系:关联关系表示一个类以属性的形式握有另一个类的对象。使用实线(可能有箭头)表示。
单向关联与双向关联:单向关联用箭头表示。
3. Aggregation聚合关系:聚合关系表示一个类拥有另一个类。聚合关系的实现与关联关系一样,使用属性。用带空心菱形的实线表示,菱形指向拥有者。
4. Composition组合关系:组合关系表示一个类管理其组成部件,包括它们的生命周期。组合关系的实现与关联关系一样,使用属性。用带心菱形的实线表示,菱形指向拥有者。
5. Generalization泛化关系:类继承。用带三角形的实线表示,三角形指向基类。

Constraints约束
约束使用OCL(Object Constraint Language)来实现。略。

Abstract Classes抽象类:用斜体表示抽象类与抽象方法。

Interfaces接口:接口可以用<<interface>>构造型表示,也可以用圆圈图标表示。
6. Realization实现关系:实现接口。如果接口用<<interface>>构造型表示,实现关系用带三角形的虚线表示,三角形指向接口;如果接口用圆圈图标表示,实现关系用实线表示。

Templates模板

内容概要:本文介绍了“快速LDP-MST”这一针对大型数据集的高效基于密度峰值的聚方法,并提供了完整的Matlab代码实现。该方法通过构建最小生成树(MST)并融合密度峰值聚思想,有效提升了传统算法在处理大规模、复杂分布数据时的聚效率与准确性,尤其适用于高维与非球形簇结构的数据分析任务。文章不仅阐述了算法的核心原理与技术优势,还强调了科研过程中逻辑思维、创新意识与“借力”工具的重要性,倡导研究者善用现有资源加速科研进程。; 适合人群:具备一定编程基础,特别是熟悉Matlab语言,从事数据科学、机器学习、模式识别或相关领域的科研人员、工程师及研究生;尤其适合正在开展聚算法研究或需要高效处理大规模数据的开发者。; 使用场景及目标:①在大规模数据集中实现高效、精确的聚分析;②研究基于密度与论结合的聚算法设计原理与优化路径;③通过提供的Matlab代码快速搭建实验环境,验证算法性能,或在此基础上进行二次开发与算法改进。; 阅读建议:此资源以Matlab代码为核心支撑,建议读者结合算法理论与工程实践,按照文档结构循序渐进地学习,充分利用所提供的网盘代码与模型资源,动手运行、调试并可视化算法结果,从而深入理解快速LDP-MST算法的设计思想与实现细节,提升科研效率与创新能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值