UML之面向对象技术

2019-04-14 13:05发布

引言

1)面向对象是UML的基础
2)UML有9种图
3)UML和设计模式之间的关系

内容

##第一部分
1,面向对象技术——程序设计方法
1)用对象来描述事物,类是具有相同共性的抽象描述
2)特性:封装性和继承性、聚合性、多态性
类和类之间的关系:四大类
提高了软件的质量:五种
2,模型可用6元组表示
建模的原理:分解、抽象、泛化、投影/视图、构件化、形式化
3,什么是UML,UML发展历史
1)不是程序设计语言也不是形式化语言,是可视化建模语言
4,统一软件过程RUP
1)三个特点
5,UML工具
Rational Rose界面,画图
## 第二部分
1,UML的结构
节点:用立方体表示
包:UML中唯一的组织机制
2, UML中的关系
有四种关系:关联、依赖(虚线表示)、泛化(继承关系,实线1)、实现(虚线1)
依赖:类和类、包和包、构建和构建之间的关系
3,UML中的事物
1)类:对一组具有相同属性、方法关系和语义的对象的描述。一个类事项一个或多个接口。
接口;描述了一个类或构件的一个服务的操作集。
接口和类的区别:接口定义了一组操作的规范
2)协作:定义了一个交互,是由一组共同工作以提供某种协作角 {MOD}和其他元素构成的群体。这些协作的行为大于所有元素的各自行为的总和。
协作有结构、行为和维度。一个给定的类可以参与几个协作。
3)用例:描述一组动作系列或功能模块
4)主动类:其对象至少拥有一个进程或线程,因此能启动控制活动
5)构件:系统中物理的、可替代的部件
6)节点:运行时存在的物理元素,表示一种可计算的资源;可从一个节点到另一个节
7)行为事物
交互:
状态机
8)分组事物:
包:把元素组织生成组的机制
## 第三部分
UML中的图(9种图)
1,use-case图(软件需求进行描述)
静态图(2,class类图 3,对象图)
行为图(4,状态图 9,活动图)
交互图(7,协作图 8,序列图)
部署图(5,构件图 6,部署图(实施图)) UML表示机制的层次结构:1用例图 2,类图 3,行为图 (3.1 状态图 3.2 活动图 3.3 交互图(3.3.1 序列图 3.3.2 协同图))4,实现图 (4,1 组件图 4,2部署图)
UML的公共机制:修饰和通用划分、扩展机制
通用划分:类/对象二分法(类和类、节点和节点、构件和构件之间的实例)
接口/实现二分法
扩展机制:构造型、标注值和约束
## 第四部分 03讲
依赖关系,用代码表示时,要在开端加上形如:“ import java.awt.Graphics; ——public void paint(Graphics q)
包:一个包如果含有多个子包,把这些子包放在一个大包里就行。
有向的虚线端描述了对象与包之间的以依赖关系
序列图:对象和对象之间的交互关系
构件图:原程序就是构件,呈现整个程序的
04讲
面向对象技术的基本原则:抽象、封装(对客户隐藏实现——客户仅仅看到接口)、模块性(强调一个模块里面可以分为哪几个功能大块)、层次性(讲究的是软件之间的类,之间层次的关系)
对象:状态、行为、标识(对象的名字)
一个类包含属性和方法;一个对象就是类的实例
通过名称可得到对象有哪些
对象的行为:反映了一个对象将如何响应其他对象
属性描述这个类的静态信息,行为描述动态信息 类的表示方法:类名、类的属性、类的方法的组合
类和对象的关系:定义了属性和方法,提供了一个创建对象的模版
所谓实例化:就是给这个类赋予不同的状态值给不同的对象
类的实例化得到了对象
通过操作读取和修改属性,可做到对属性的封装性
面向对象的三大特性:封装性、继承性、多态性
05讲
不同的对象得到同一个消息产生的行为是不同的,这个概念就是封装性
不同的对象收到相同的消息而产生不同的行为——多态
组件:1,源程序 2,运行时动态库 3,可执行程序 可视化源代码之间的依赖关系,如account.cpp 依赖于account.h
文件://account.cpp
依赖:#include"“account.h”"
注:以上代码则为组件之间的依赖关系 包:是一个逻辑的组织关系,描述是把代码逻辑化,使得代码更加清楚
定义一个叫animal的包:
package animal;
里面又一个叫cat的类 class cat {
} 使用到包用import,代码如下:
import java.axw.event.*; (用了java里面的event包里面的类) 子系统:
1)用书名括起来表明它是子系统,一个子系统用圆圈表明接口
2)子系统是个比较大的概念:比系统小,比模块大
3)子系统比较松散
关系:
对象间的关系:关联、依赖、泛化、实现
1)关联:整体-部分关系(聚合aggregate和组合composition)
聚合和组合的比较:聚合是空心的菱形,组合是实心的菱形;实心的菱形约束比较强些
举例:火车和引擎、列表和节点
2)依赖using的关系
3)泛化关系
单重继承
多重继承:类和接口共同完成
06讲
1)程序设计:面向对象(出发点是认清这里面到底有哪些类)和面向过程(出发点是以共同模块)
直线表示有关联关系
2)举例订单销售对类图有个基本认识
3)发展 Fortran是我们的第一个高级程序设计语言:适合做科学计算
机器语言-汇编语言-高级程序设计语言
4)面向对象语言的特点:继承性、封装性、多态性
5)C++语言
基本数据类型:int double float char···········
语句:1)if 语句
(定义了一个整型变量) int i =10 ;
if (i==10)
printf (“i=10 ”);
else
···········
2)for语句
for循环 for(int i=0; i <10; i++)
{
}
注:还有while 和do-while语句,还有switch语句: switch语句不能区分字符串
在C++语言里面如何定义一个类:类和类之间通过方法来调用的
07讲
1)java总共有四种访问符:private public protected 还有一种是缺的什么都不用写
每一个类,属性,方法前面都有一个访问符
2)抽象为一个总体的类:abstract
继承用extends
3)多态在java的使用:
while (!乐谱结束)
instrument a = 读取下一个演奏对象
a. play()
注:不同对象接收同一个消息,发出不同的信号。play是同一个消息,a代表不同对象
4)在java用接口,主要是做多重继承
接口来说:用interface Ins ,用接口implements表示继承
5)定义包
package 包的名称;
(另外一个包里面的类) import java.awt.envent
class

总结

记下不懂的,继续往前看