系统架构师学习笔记-面向对象方法
目录
基本概念
统一建模语言(UML)
基本概念
对象(Object):它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位。
类(Class):它是具有相同属性和方法的一组对象的集合。
继承(Inheritance):它使子类可以继承父类的属性和方法,继承增加了软件复用的机会。
封装(Encapsulation):就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
.多态(polymorphism):在OO技术中,多态性是指同一个操作作用于不同的对象时可以有不同的解释,并产生不同的执行结果。
消息(Message):是指向对象发出的服务请求, 对象直接用消息的方式传递信息,而不是参数。
统一建模语言(UML)
UML又称统一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
关联(accociation):描述了给定类的单独对象之间语义上的连接。关联提供了不同类之间的对象可以相互作用的连接。
聚合关系:关联关系的一种特例, 是强的关联关系。聚合表示类之间的关系是整体与部分的关系,但整体与部分之间是可分离的,他们可以具有各自的生命周期。
组合关系:也是关联关系的一种特例,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
泛化(generalization):一般元素和特殊元素之间的关系。即OO语言中,类之间的继承关系。
实现(realization):一个元素完成另外一个元素的操作功能,则二者构成实现关系。如接口类及其实现;
依赖( dependency):一个元素B的改变会影响另外一个元素A,则称A依赖于B,二者之间存在依赖关系。
包含(include) (是一种依赖关系,加了版型<<include>>)
1. 两个以上用例有共同功能,可分解到单独用例形成包含依赖;
2. 箭头方向由基本用例指向被包含用例;
3. 执行基本用例时,每次都必须调用被包含的用例(吃饭前洗手);
4. 被包含用例也可以单独执行;
扩展(extend) (是一种依赖关系,加了版型<<extend>>)
如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则可以断定将这个用例分为一个主用例和一个或多个辅用例进行描述可能更加清晰。
用例图(use case diagram):描述一组用例、参与者(一种特殊的类)及它们之间的关系。
类图(class diagram):描述一组类、接口、协作和它们之间的关系。类图给出了系统的静态设计视图
顺序图(sequence diagram):是一种交互图(interaction diagram),交互图展现了一种交互,它由一组对象或角色以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。
协作图(通信图,UML2.0后的名称):是一种交互图,强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。
顺序图和通信图的区别:
活动图(activity diagram):将进程或其他计算的结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。
状态图(state chart diagram):它由状态、转移、事件和活动组成。状态图给出了对象的动态视图;
构件图(component diagram):描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。
部署图(deployment diagram):用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。
系统架构师学习笔记-面向对象方法相关推荐
- 系统架构师学习笔记_第六章(下)_连载
系统架构师学习笔记_第六章(下)_连载 6.3 基于 UML 的软件开发过程 6.3.1 开发过程概述 UML 是独立于软件开发过程的,能够在几乎任何一种软件开发过程中使用.迭代的渐进式软件开发过程 ...
- 系统架构师学习笔记_第十四章_连载
第十四章 基于ODP的架构师实践 14.1 基于ODP的架构开发过程 系统架构 反映了功能在系统系统构件中的 分布.基础设施相关技术.架构设计模式 等,它包含了架构的 原则 和 方法.构件关系 与 ...
- 系统架构师学习笔记-论文摘要部分的写法
目录 各种例子 总结 各种例子 首先说明下注意点: 凡是题目上提到的关键字,在摘要中都要体现: 举下面这个例子: 论软件需求管理 注意:题目中要求的地方,一定要在摘要中进行体现 摘要部分: 要写近2年 ...
- 系统架构师学习笔记_第五章(下)_连载
5.3 软件架构风格 体系结构设计 核心目标是 重复的体系结构模式,体系结构级的 软件重用. 5.3.1 软件架构风格概述 一个体系结构 定义 一个词汇表 和 一组约束.词汇表中包含 构件和连接件 ...
- 系统架构师学习笔记_第二章_连载
<计算机网络基础知识> 计算机系统 由 硬件和软件组成,软件通常分为 系统软件和应用软件. 系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但不能随意修改它. 常用 ...
- 系统架构师学习笔记-系统开发基础知识(一)
目录 软件开发方法 软件开发模型 软件开发方法 净室方法:净室软件工程(净室方法)是软件开发的一种形式化方法,它可以生成高质量的软件. 净室方法主要使用三种盒类型: 1. 黑盒:刻划系统或系统的某部分 ...
- 系统架构师学习笔记_第三章_连载
1975年,意大利学者 朗高(G·Longo)提出:信息是反映事物的形式.关系相差别的东西,它包含在事物的差异之中,而不在事物本身. 目前,关于信息 比较科学和统一的定义是:信息是对客观事物 变化和特 ...
- 系统架构师学习笔记_第四章(上)_连载
4.1 软件开发方法 4.1.1 软件开发生命周期 传统的软件生命期 是指软件产品 从形成概念(构思)开始,经过定义.开发.使用.维护.废弃,的全过程. 可以把软件生命期划分为 软件定义.软件开发 ...
- 系统架构师学习笔记_第十二章_连载
第十二章 系统安全架构设计 12.1 信息系统安全架构的简单描述 信息安全的特征 是为了保证信息的 机密性.完整性.可用性.可控性.不可抵赖性. 以风险策略为基础. 12.1.1 信息安全的现状 ...
最新文章
- 企业级nosql数据库应用与实战-redis
- Android构建boot.img(二):kernel的拷贝与打包
- win32 注册表操作
- Linux编译程序源码环境,Linux下对nodejs环境进行源码编译并部署云应用
- 数据AES加密安全传输之后台JAVA加密解密
- ESP8266 WIFI模块
- LoRa网关与服务器通信——PROTOCOL
- 一部手机最长能用几年?
- 关于 Unity 绑定手机 收不到验证码 的解决方案
- HTML 按钮交互,20 个交互非常棒的按钮代码_html/css_WEB-ITnose
- 七大江河水系--黄河(一)
- 异常-银行账户异常处理
- 【Pandas】计算相关性系数corr()
- PCL(Point Cloud Library)学习指南资料推荐(2021版)
- (7)centos7 同步服务器时间
- maya导出obj分组_maya2017怎么导入obj序列?
- 数据结构-二路归并及归并排序
- 快速找到python第三方库
- 如何用Python操作Excel自动化办公?一个案例教会你openpyxl——读取数据
- 机器人学中的Pieper准则【学习感悟】