软考 软件设计师 场景分析题 速成篇

文章目录

  • 试题一:数据流图
    • 💖 基本图形元素
      • 1. 外部实体
      • 2. 数据存储
      • 3. 加工
      • 4. 数据流
    • 📚 例题
      • (1)实体名称
      • (2)数据存储名称
      • (3)数据流
        • ① 父子图平衡
        • ② 加工有输入有输出
        • ④ 数据守恒
        • ⑤ 答题格式
        • 参考答案
      • (4)疑难杂题
        • ① 结构化语言
        • ② 数据流是否应该存在
        • ③ 改进数据流
        • ④ 分析输入输出
  • 试题二:数据库 ER-图
    • 💖 基本图形元素
      • 1. 实体
      • 2. 属性
      • 3. 联系
    • 💖 关系模式
      • 1. 基本概念
      • 2. 一对一关系
      • 3. 一对多
      • 4. 多对多
      • 5. 三个实体的联系转换
      • 6. 实体父类和子类的转换
    • 📚 例题
      • (1)缺失的联系
      • (2)补充关系模式
      • (3) 疑难杂题
  • 试题三:UML 图
    • 💖 基础知识
      • 1. 关系
        • (1)依赖关系
        • (2)关联关系
        • (3)泛化关系
        • (4)实现关系
      • 2. 类图
      • 3. 用例图
        • (1)包含关系
        • (2)扩展关系
        • (3)泛化关系
    • 📚 例题
      • (1)用例名
      • (3)用例关系
      • (3)类名
      • (4)疑难杂题(事件流)
  • 试题四:设计模式
  • 💖 基础知识
    • 1. 简单工厂
    • 2. 工厂方法
  • 📚 例题
    • 1. 抽象工厂
      • 📙 题目
    • 2. 生成器模式(建造者模式)
      • 📙 题目
    • 3. 原型模式
      • 📙 题目
    • 4. 适配器模式
      • 📙 题目
    • 5. 桥接模式
      • 📙 题目
    • 6. 组合模式
      • 📙 题目
    • 7. 装饰器模式
      • 📙 题目
    • 8. 享元模式
      • 📙 题目
    • 9. 命令模式
      • 📙 题目
    • 10. 观察者
      • 📙 题目
    • 11. 状态模式
      • 📙 题目
    • 11. 策略模式
      • 📙 题目
    • 13. 访问者模式
      • 📙 题目
    • 14. 中介者模式
      • 📙 题目


👨‍🏫 参考笔记

试题一:数据流图

👨‍🏫 参考视频
数据流图:Data Fluid Diagram(DFD)

💖 基本图形元素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 外部实体

在这里插入图片描述

2. 数据存储

在这里插入图片描述

3. 加工

在这里插入图片描述

4. 数据流

在这里插入图片描述

📚 例题

在这里插入图片描述

(1)实体名称

看 子图,看数据流的加工,定位文字说明

在这里插入图片描述

(2)数据存储名称

文章中没有具体的数据存储名称,后面加表或者文件就可以了

在这里插入图片描述

(3)数据流

在这里插入图片描述

① 父子图平衡

结合父图看子图的数据流有没有缺失

② 加工有输入有输出

在这里插入图片描述

  • 黑洞:缺少以此加工为起点的数据流(加工输出到其他)
  • 白洞:缺少以此加工为终点的数据流(其他输入到加工)
④ 数据守恒

子图的加工 找 对应的文字描述

在这里插入图片描述

⑤ 答题格式

在这里插入图片描述

参考答案

在这里插入图片描述

(4)疑难杂题

① 结构化语言

在这里插入图片描述

② 数据流是否应该存在

在这里插入图片描述

③ 改进数据流

在这里插入图片描述

④ 分析输入输出

在这里插入图片描述

试题二:数据库 ER-图

👨‍🏫 参考视频

💖 基本图形元素

在这里插入图片描述

1. 实体

  • 弱实体
    在这里插入图片描述
  • 父子实体
    在这里插入图片描述

2. 属性

某个属性有下划线:主键

在这里插入图片描述

  • 简单属性:不可再分,原子的
  • 复合属性:可以细分为更小的部分

3. 联系

  • 一个:1
  • 多个:nm*

在这里插入图片描述


在这里插入图片描述

💖 关系模式

1. 基本概念

在这里插入图片描述

主键一般直接给出
在这里插入图片描述

2. 一对一关系

在这里插入图片描述
在这里插入图片描述

3. 一对多

外键给到 多的一方:把那方的主键 作为外键属性 给 方的实体

在这里插入图片描述
在这里插入图片描述

4. 多对多

在这里插入图片描述

在这里插入图片描述

5. 三个实体的联系转换

有联系的,把主键都加进去,作为新的主键

在这里插入图片描述

6. 实体父类和子类的转换

  • 父类的主键 加到 子类 中去
    在这里插入图片描述

📚 例题

在这里插入图片描述

(1)缺失的联系

在这里插入图片描述

在这里插入图片描述

(2)补充关系模式

  • 完整性约束关系:就是主键和外键
  • 主键下面是实线
  • 外键下面是虚线
    在这里插入图片描述

(3) 疑难杂题

在这里插入图片描述

试题三:UML 图

👨‍🏫 参考视频

软考近几年主要是考察 类图 和 用例图

💖 基础知识

1. 关系

在这里插入图片描述


(1)依赖关系

一个事务的变化引起另一个变化

在这里插入图片描述

(2)关联关系

描述整体和部分之间的关系

在这里插入图片描述


在这里插入图片描述


聚集
在这里插入图片描述

  • 聚合(空心菱形):好聚好散,可以独立存在
  • 组合(实心菱形) :一个组的,同生共死
(3)泛化关系
  • 子类 指向 父类 (空心三角形;聚合是空心菱形)
  • 特殊 和 一般
  • 继承:父类指向子类
    在这里插入图片描述
(4)实现关系
  • 接口和实现类
    在这里插入图片描述

2. 类图

聚集分为聚合:空心,组合:实心
关联:无向边
依赖:虚线箭头
泛化(继承):实线三角箭头
实现:虚线三角箭头

在这里插入图片描述

3. 用例图

在这里插入图片描述

(1)包含关系

虚线箭头 指向被包含用例(箭头指向的表示必须有)

在这里插入图片描述

(2)扩展关系

《extend》 虚线箭头 指向基本用例(箭头指向的表示必须有)

在这里插入图片描述

在这里插入图片描述

(3)泛化关系

实线空心三角形
继承的反义词,B继承A,A泛化B

在这里插入图片描述

📚 例题

在这里插入图片描述

(1)用例名

主要在描述中看:用户能够做的事情,也就是参与者的动作,这就是用例

在这里插入图片描述

在这里插入图片描述

(3)用例关系

  • 包含:A包含B,先执行 B 再执行 A (《inlcude》:虚线箭头指向 B)
  • 扩展:B扩展A,B是A的特殊情况下的备用事件(类似于异常)(《extend:虚线箭头指向A》)
  • 泛化:继承的反义
    在这里插入图片描述

在这里插入图片描述

(3)类名

  1. 注意文章描述中的英文,可能就是类名
  2. 从图中已有的类名入手
  3. 泛化关系,也就是继承 :(机器人和传感器)

在这里插入图片描述
在这里插入图片描述

(4)疑难杂题(事件流)

  • 基本事件流:正确发生的执行流程
  • 备选事件流:出错的处理事件和可选事件
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

试题四:设计模式

👨‍🏫 参考笔记

💖 基础知识

1. 简单工厂

在这里插入图片描述

public class SimpleFactory {
    public static void main(String[] args) {
        Product productA = Factory.createProduct("A");
        productA.info();

        Product productB = Factory.createProduct("B");
    }
}

abstract class Product {
    public abstract void info();
}

class Factory {
    public static Product createProduct(String type) {
        Product product = null;

        switch (type) {
            case "A":
                product = new ProductA();
                break;
            case "B":
                product = new ProductB();
                break;
            default:
                System.out.println("没有 " + type + " 类型的产品!");
                break;
        }

        return product;
    }
}

class ProductA extends Product {

    @Override
    public void info() {
        System.out.println("产品的信息:A");
    }
}

class ProductB extends Product {

    @Override
    public void info() {
        System.out.println("产品的信息:B");
    }
}

2. 工厂方法

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

在这里插入图片描述

把 简单工厂 的一个工厂 换成 多个工厂,定义一个工厂接口(工厂方法

在这里插入图片描述

public class FactoryMethod {
    public static void main(String[] args) {
        Factory factoryA = new FactoryA();
        // 父类 对象名 = new 子类();

        Product productA = factoryA.createProduct();
        // Product productA = new ProductA();
        productA.info();

        Factory factoryB = new FactoryB();

        Product productB = factoryB.createProduct();
        productB.info();
    }
}

// class Factory
interface Factory {
    public Product createProduct();
}

class FactoryA implements Factory {

    @Override
    public Product createProduct() {
        return new ProductA();
    }
}

class FactoryB implements Factory {

    @Override
    public Product createProduct() {
        return new ProductB();
    }
}

// abstract class Product
interface Product {
    // public abstract void info();
    public void info();
}

// class ProductA extends Product
class ProductA implements Product {

    @Override
    public void info() {
        System.out.println("产品的信息:A");
    }
}

// class ProductB extends Product
class ProductB implements Product {

    @Override
    public void info() {
        System.out.println("产品的信息:B");
    }
}

📚 例题

1. 抽象工厂

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。

抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。通过使用抽象工厂模式,可以将客户端与具体产品的创建过程解耦,使得客户端可以通过工厂接口来创建一族产品。

📙 题目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. 生成器模式(建造者模式)

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在这里插入图片描述


📙 题目

  • 注意是实现Cloneable接口
  • 注意类型转换
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

左边继承 右边传参

在这里插入图片描述


📙 题目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
在这里插入图片描述


📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 组合模式

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

在这里插入图片描述


📙 题目

在这里插入图片描述
***在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7. 装饰器模式

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. 享元模式

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。

享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的 Circle 对象。

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9. 命令模式

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

在这里插入图片描述

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

10. 观察者

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。

在这里插入图片描述
在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11. 状态模式

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。

在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。

在这里插入图片描述

📙 题目

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11. 策略模式

在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

13. 访问者模式

在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14. 中介者模式

中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。

在这里插入图片描述

📙 题目

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/636415.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库同步软件,天不生PanguSync万古如长夜

在信息时代的海洋中,数据是那永不熄灭的灯塔,照亮了科技发展的航道。然而,随着数据的膨胀和应用场景的多样化,如何确保这些宝贵资源在不同平台、不同设备间实时更新、保持一致性,便成了一道亟待解决的难题。于是&#…

redis常用场景——缓存登录信息

场景重现 当一个boot程序开启拦截器,那么每次拦截请求都需要通过 mysql 查询用户信息,这样会给服务器带来很大的负担,此时可以使用 redis 作为中间件,缓存登录信息 优点: redis 内存读写,速度快 没使用re…

Linux网络编程(socket)

1. 概念 局域网和广域网 局域网:局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网:又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 IP(Internet Protocol&a…

【计算机网络原理】对传输层TCP协议的重点知识的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

【B站 heima】小兔鲜Vue3 项目学习笔记Day04

文章目录 二级分类1.整体认识和路由配置2.面包屑导航功能实现3. 基础商品列表实现4. 定制路由滚动行为 详情页1.整体认识和路由配置2.基础数据渲染3.热榜区域实现4. 图片预览组件封装5.放大镜-滑块跟随移动左侧滑块跟随鼠标移动放大镜-大图效果 6. props适配7. SKU组件熟悉使用…

vue3项目+TypeScript前端项目 ———— elemnet-plus,svg图标配置,sass,mock数据

一.集成element-plus 官网地址 安装 pnpm install element-plus 引入 // main.ts import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vueconst app createApp(App)app.use(ElementPlus) app.…

气膜建筑的工作原理与优势解析—轻空间

近年来,气膜建筑凭借其独特的结构设计和诸多优点,迅速成为建筑领域的热门选择。本文将详细介绍气膜建筑的工作原理、机械系统、智能控制、索网控制和空气净化等方面,为您提供全面了解气膜建筑的基础知识。 气膜建筑的工作原理 气膜建筑是一种…

01 FreeRTOS 初识

1、freeRTOS 1.1 什么是FreeRTOS Free就是免费的,RTOS全称是real time operating system,即实时操作系统。FreeRTOS是一个迷你的实时操作系统内核,作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消…

【AI基础】反向传播

文章目录 1. 先写出第一步2.将其封装成函数3. pytorch版 1. 先写出第一步 # 定义输入值和期望输出 x_1 40.0 x_2 80.0 expected_output 60.0 初始化# 定义权重 w_1_11 0.5 w_1_12 0.5 w_1_13 0.5 w_1_21 0.5 w_1_22 0.5 w_1_23 0.5w_2_11 1.0 w_2_21 1.0 w_2_31 1…

RocketMQ实战教程之RocketMQ安装(含Docker安装,建议收藏!)

RocketMQ实战教程之RocketMQ安装 这里实例采用centos系统天翼云为例,分别采用传统安装以及Docker安装的方式来进行RocketMQ的安装.JDK8我这边已经安装配置好了,这里就不在赘述.直接进入正题: 传统安装包安装 系统要求 64位操作系统,推荐 Linux/Unix/macOS64位 JDK…

Java 对外API接口开发 java开发api接口如何编写

Java API API(Application Programming Interface)是指应用程序编程接口,的JavaAPI是指JDK提供的各种功能的Java类 String类 String类的初始化: (1)使用字符串常量直接初始化 初始化:String s…

第11章 集合与迭代器

目录 目录 目录 11.1 Collection集合 11.1.1 集合的概念 11.1.2 Collection接口 1、添加元素 2、删除元素 3、查询与获取元素 11.2 List 有序集合 11.2.1 新增方法 11.2.2 ArrayList 11.2.3 LinkedList 1、单向链表 2、双向链表 3、删除元素 11.3 Set 无序集合 …

深度学习-转置卷积

转置卷积 转置卷积(Transposed Convolution),也被称为反卷积(Deconvolution),是深度学习中的一种操作,特别是在卷积神经网络(CNN)中。它可以将一个低维度的特征图&#x…

深入 Rust 标准库,Rust标准库源代码系统分析

系列文章目录 送书第一期 《用户画像:平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 送书第三期 《深入浅出Java虚拟机》 送书第四期 《AI时代项目经理成长之道》 …

智能猫眼锁核心解决方案以及芯片简介SSD222

书接上回,前篇文章我们诠释了IP 网络摄像系统的定义以及组成部分的功能,也大概的讲了一下所针对的市场以及举例介绍了一款相关芯片,详情可点击下面卡片浏览高集成IP摄像SOC处理方案简介https://blog.csdn.net/Chipsupply/article/details/139…

PDF Reader Pro for Mac 直装激活版:专业PDF阅读编辑软件

在数字化时代,PDF文件已成为我们日常工作和学习中不可或缺的一部分。然而,如何高效、便捷地阅读、编辑和管理这些PDF文件,却一直是许多人面临的难题。现在,有了PDF Reader Pro for Mac,这些难题将迎刃而解。 PDF Reade…

谷歌快速收录怎么做?

快速收录顾名思义,就是让新的的网页内容能够迅速被谷歌搜索引擎抓取、索引和显示在搜索结果中,这对于做seo来说非常重要,因为它有助于新发布的内容尽快出现在谷歌的搜索结果中,从而增加网站的流量 想做谷歌快速收录谷歌推荐了几种…

AD162A低功耗语音解码芯片,助眠耳机方案推荐—云信通讯

睡眠一直是很多人所追寻的目标,无论是因为工作压力过大,还是日常烦扰的思绪,一个好的睡眠质量对每个人来说都至关重要。为了解决这个问题,一些科技公司开发了高品质的助眠耳机,通过音乐和声音来帮助入睡,为…

华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇

本文作者:郑岩(华为云AI变革首席专家)全文约3313字,阅读约需8分钟,请仔细看看哦~ 前阵子,我在公司内部发了一篇Sora的科普贴,本来只是个简单的技术总结,但让我意外的是,…

linux系统安全加固

目录 1、账户安全基本措施 1)系统账户清理 2)密码安全控制 3)命令历史限制 2、用户切换及提权 1)使用 su命令切换用户 2)使用sudo机制提升权限 3、系统引导和安全登录控制 1)开机安全控制 2&…