软考--软件设计师--知识点01

  1. 关于UML状态图的叙述不正确的是:
    若事件触发一个没有特定监护条件的迁移,则对象离开当前状态

知识点:
转换可能具有一个监护条件,监护条件是一个布尔表达式,它是触发转换必须满足的条件。当一个触发器事件被触发时,监护条件被赋值。如果表达式的值为真,转换可以激发;如果表达式的值为假,转换不能激发;

  1. 下图所示UML图为 类图 有关该图的描述不正确的是 如果B的一个实例被删除,则包含A 的实例都被删除
    软考--软件设计师--知识点01_第1张图片
    知识点:
    用况图(用例)
    用例图,展现了一组用例、参与者(actor)以及它们之间的关系。
    用例图从用户角度描述系统的静态使用情况,用于建立需求模型。(用于需求分析)
    在UML中,参与者使用如图所示的一个小人表示:
    这里写图片描述
    用例(Use Case)用况
    在这里插入图片描述
    子系统(Subsystem)
    用来展示系统的一部分功能,这部分功能联系紧密。
    软考--软件设计师--知识点01_第2张图片

    类图
    在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

泛化(Generalization)
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类
软考--软件设计师--知识点01_第3张图片
实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口
软考--软件设计师--知识点01_第4张图片
关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
软考--软件设计师--知识点01_第5张图片
聚合(Aggregation)
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
软考--软件设计师--知识点01_第6张图片
组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体

依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
软考--软件设计师--知识点01_第7张图片

A与B为依赖关系,箭头指向A,则B依赖于A,A的变化会影响B。
所以 当B 的实例被删除,不会影响A,反之,A的变化会影响B

软考--软件设计师--知识点01_第8张图片
下图的类图,设计采用了桥接模式将抽象部分与其实现部分分离,使它们都可以独立的变化。其中Drawing定义了实现类接口,该模式适用于 不希望在抽象和他的实现部分之间有一个固定的判定关系 的情况 该模式属于结构型对象 模式

知识点:
桥接模式(Bridge Pattern):
抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。
桥接模式是遵循了合成/聚合复用原则
组成部分:

Abstraction:定义抽象类的接口,该接口中定义如何使用Implementor接口类型对象的方法。

RefinedAbstraction:实现由Abstraction定义的接口方法,可能会有自己的一些私有方法。

Implementor:定义Abstraction抽象的实现,这种实现是一种嫁接的关系,就像计算机主板和声卡、显卡的关系一样,它可以是一个接口, Implementor接口提供Abstraction抽象接口需要的基本操作,而 Abstraction则定义了基于这些基本操作的较高层次的操作

ConcreteImplementor:实现Implementor接口并定义它的具体实现。

从上面能够看出,实现类接口往往仅给出基本操作,而抽象类接口则会给出很多更复杂的操作

  1. 给定关系R(U,Fr)其中属性属U={A,B,C,D},函数依赖集Fr={A->BC,B->D}关系S(U,Fs),其中属性集U={ACE},函数依赖集Fs = {A->C,C->E}R和S 的主键分别为 A和A 关于Fr和Fs的叙述,正确的是 Fr,Fs分别蕴含A->D,A->E,故Fr,Fs都存在依赖关系

知识点:
Fr中:A能够遍历B,C,D
Fs中,A能够遍历CE
所以A能够作为两个关系的主键
Fr中 A->BC,B->D--------A->D 存在依赖传递
Fs中 A->C,C->E--------A->E 存在依赖传递

  • 事务的 持久性 是指,当某个事物提交后,对数据库的更新操作可能还停留在服务器磁盘缓冲区而未写入磁盘时,即使系统发生障碍。事务的执行结果仍不会丢失
  • 原子性
    原子性任务是一个独立的操作单元,是一种要么全部是,要么全部不是的原子单位性的操作。
  • 一致性
    一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
  • 隔离性
    事务是并发控制机制,他们交错使用时也能提供一致性。隔离让我们隐藏来自外部世界未提交的状态变化,一个失败的事务不应该破坏系统的状态。隔离是通过用悲观或乐观锁机制实现的。
  • 耐久性
    一个成功的事务将永久性地改变系统的状态,所以在它结束之前,所有导致状态的变化都记录在一个持久的事务日志中。如果我们的系统突然受到系统崩溃或断电,那么所有未完成已提交的事务可能会重演。
  1. 某树共有n个节点,其中所有分支节点的度为k(度为非叶子结点的子树数目),则该树中叶子结点的个数为 (n(k-1)+1)/k

软考--软件设计师--知识点01_第9张图片

你可能感兴趣的:(软考知识,设计模式,软件开发)