软考(软件设计师)-下午实操题重点

目录

  • 面向对象设计-设计原则
  • 面向对象设计-设计模式
    • 创建型模式
    • 结构型模式
    • 行为型模式
  • 数据流图
    • 平衡原则
  • 数据字典
  • 数据库设计的过程
  • UML
    • UML总览
    • 用例图
    • 类图
    • 类图的关系
      • 泛化
      • 实现
      • 关联
      • 聚合
      • 组合
      • 依赖
    • 顺序图
    • 活动图
    • 状态图
  • 数据结构与算法应用
    • 分治法
      • 分治法 - 递归技术
      • 分治法 - 二分查找
    • 回溯法
    • 贪心法
    • 动态规划法

面向对象设计-设计原则

软考(软件设计师)-下午实操题重点_第1张图片

面向对象设计-设计模式

软考(软件设计师)-下午实操题重点_第2张图片

创建型模式

软考(软件设计师)-下午实操题重点_第3张图片

结构型模式

软考(软件设计师)-下午实操题重点_第4张图片

行为型模式

软考(软件设计师)-下午实操题重点_第5张图片

数据流图

软考(软件设计师)-下午实操题重点_第6张图片

平衡原则

软考(软件设计师)-下午实操题重点_第7张图片

数据字典

软考(软件设计师)-下午实操题重点_第8张图片

数据库设计的过程

软考(软件设计师)-下午实操题重点_第9张图片

UML

UML总览

软考(软件设计师)-下午实操题重点_第10张图片

结构图(静态图)中间
行为图(动态图)最右边
用例图最好不要定性,它有争议。

用例图

软考(软件设计师)-下午实操题重点_第11张图片

包含关系是会使用到,比如登记外借信息一定会用到用户登录;
查询书籍之后想要修改信息,那就是拓展关系,因为查询是一定用到的,但是修改不一定每次都有;
区分包含或者拓展在于是否 **必须**;

类图

软考(软件设计师)-下午实操题重点_第12张图片

类图的关系

软考(软件设计师)-下午实操题重点_第13张图片

一般后四个需要了解,
实现是对接口而言的,泛化是对类来说的;

泛化(Generalization):是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性
实现(Realization): 是一种类与接口的关系,表示类是接口所有特征和行为的实现.
关联(Association):是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
聚合(Aggregation):是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
组合(Composition):是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
依赖(Dependency):是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

泛化

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类

软考(软件设计师)-下午实操题重点_第14张图片

实现

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口

软考(软件设计师)-下午实操题重点_第15张图片

关联

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者
软考(软件设计师)-下午实操题重点_第16张图片

聚合

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体
软考(软件设计师)-下午实操题重点_第17张图片

组合

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体
软考(软件设计师)-下午实操题重点_第18张图片

依赖

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

软考(软件设计师)-下午实操题重点_第19张图片
各种关系的强弱顺序:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面这张UML图,比较形象地展示了各种类图关系:
软考(软件设计师)-下午实操题重点_第20张图片

顺序图

软考(软件设计师)-下午实操题重点_第21张图片

活动图

软考(软件设计师)-下午实操题重点_第22张图片

状态图

软考(软件设计师)-下午实操题重点_第23张图片

数据结构与算法应用

分治法
回溯法
贪心法
动态规划法

分治法

软考(软件设计师)-下午实操题重点_第24张图片

分治法 - 递归技术

软考(软件设计师)-下午实操题重点_第25张图片

分治法 - 二分查找

软考(软件设计师)-下午实操题重点_第26张图片

回溯法

软考(软件设计师)-下午实操题重点_第27张图片

贪心法

软考(软件设计师)-下午实操题重点_第28张图片

动态规划法

软考(软件设计师)-下午实操题重点_第29张图片

动态规划法与分治法很像,但注意区分
动态规划法基本上都用到查表

你可能感兴趣的:(软考,设计模式,uml)