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

文章目录

  • 试题一:数据流图
    • 💖 基本图形元素
      • 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 {@Overridepublic void info() {System.out.println("产品的信息:A");}
}class ProductB extends Product {@Overridepublic 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 {@Overridepublic Product createProduct() {return new ProductA();}
}class FactoryB implements Factory {@Overridepublic 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 {@Overridepublic void info() {System.out.println("产品的信息:A");}
}// class ProductB extends Product
class ProductB implements Product {@Overridepublic 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)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。

在这里插入图片描述

📙 题目

在这里插入图片描述


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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Windows10中重命名文件和文件夹的6种方法,有你熟悉和不熟悉的

序言 你可以通过多种方式在Windows 10上重命名文件。如果每次你想更改文件名时仍右键单击并选择“重命名”,那么我们有一些技巧可以加快更改速度。 使用文件资源管理器重命名文件和文件夹 Windows 10的文件资源管理器是一个功能强大的工具。你知道吗,有四种不同的方法可以…

CSS【常用CSS样式、盒子模型、定位、浮动 、扩展样式】--学习JavaEE的day46

day46 CSS 练习 页面实现&#xff1a; 分析&#xff1a; 未优化&#xff1a; 优化&#xff1a; 参考代码&#xff1a;&#xff08;包含样式优化–选择器CSS属性&#xff09; 先写上table方便实现&#xff0c;之后再去除即可 name没有服务器&#xff0c;可暂时不写 <!…

微软开源多模态大模型Phi-3-vision,微调实战来了

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型& AIGC 技术趋势、大模型& AIGC 落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了…

零部件销售|基于SSM+vue的轻型卡车零部件销售平台系统的设计与实现(源码+数据库+文档)

轻型卡车零部件销售平台 目录 基于SSM&#xff0b;vue的轻型卡车零部件销售平台系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 管理员功能模块 3 用户后台功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题…

stream( ).collect ( Collectors.groupingBy ( ) ) 的用法

文章目录 第一种解释1、基本用法2、指定值收集器3、多级分组4、常见应用场景和用处 第二种解释1、基本语法2、示例3、更复杂的用法 第一种解释 Collectors.groupingBy 是 Java 8 引入的 Stream API 中的一个收集器&#xff08;Collector&#xff09;&#xff0c;它用于将流&am…

【笔记】Qt 按钮控件介绍(QPushButton,QCheckBox,QToolButton)

文章目录 QAbstractButton 抽象类(父类)QAbstractButton 类中的属性QAbstractButton 类中的函数QAbstractButton 类中的信号QAbstractButton 类中的槽 QPushButton 类(标准按钮)QPushButton 类中的属性QPushButton 类中的函数、槽 QCheckBox 类(复选按钮)QCheckBox 类的属性QCh…

Html中,想利用JS引入Jquery文件;$.getScript()无效

在使用$.getScript()时&#xff0c;会爆出错误&#xff1a;ReferenceError: $ is not defined &#xff0c;这是因为没有在JS文件前引入Jquery。 那么可以这样使用&#xff1a;(这个方式只适合放在页面代码最后面使用) (function () {var script window.document.createEleme…

Kettle简介

一、Kettle简介 Kettle是一个开源的ETL&#xff08;Extract-Transform-Load的缩写&#xff0c;即数据抽取、转换、装载的过程&#xff09;项目。 项目名很有意思&#xff0c;水壶。按项目负责人Matt的说法&#xff1a;把各种数据放到一个壶里&#xff0c;然后呢&#xff0c;以…

ComfyUI 本地部署指南:概念、部署过程、生成图片、共享 WebUI 模型

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本文主要讲解 ComfyUI 的本地部署指南&#xff0c;内容主要包括&#xff1a;ComfyUI 的概念、ComfyUI 本地部署过程、使…

inventor 2021 Inventor 无法访问您的许可。网络许可不可用 也会出现在其他软件上

错误提示一般如下图 Inventor 无法访问您的许可。 无法访问您的许可 最常见的原因有: 未连接到 Internet许可服务器不工作许可服务器找不到有效许可 您可以执行以下操作: 检查是否连接到 Intemnet停止/重新启动许可服务器 如需进一步帮助&#xff0c;您可以: -与 CAD或IT管理…

【全开源】班级管家微信小程序(FastAdmin+ThinkPHP)

班级管家微信小程序 班级管家微信小程序&#xff0c;作为一款专注于家校沟通、作业管理、成绩发布等方面的工具&#xff0c;凭借其丰富的特色功能和显著的优势&#xff0c;已经成为广大教师、家长和学生日常学习生活中不可或缺的一部分。 一、特色功能 家校沟通便捷&#xff…

Vue3实现简单的瀑布流效果,可抽离成组件直接使用

先来看下效果图&#xff1a; 瀑布流中的内容可进行自定义&#xff0c;这里的示例图是通过不同背景颜色的展示进行区分&#xff0c;每个瀑布流中添加了自定义图片和文字描述。 实现方式&#xff1a; 1.建立子组件&#xff08;可单独抽离&#xff09;写出瀑布流的样式 文件名为…

数据结构之时间复杂度和空间复杂度的相关计算

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 时间复杂度 概念 大O的渐进表示法 相关练习 例1&#xff1a; 例2&#xff1a; 例3&am…

重磅推荐!四信AI智能一体屏系列全网上线

近年来&#xff0c;随着物联网、云计算、人工智能等新兴技术快速发展&#xff0c;制造、能源、交通、零售、医疗等行业设备需要更高程度的自动化控制。 传统的计算机和控制设备早已无法满足如今高性能复杂任务的要求&#xff0c;越来越多主流行业的项目落地依靠工控机&#xff…

Stanford-Coursera 算法Week1 笔记

题外话&#xff1a;全文免费放心食用&#xff0c;作者在此求个 三连关注 1. Integer Multiplication&#xff08;引入&#xff09; &#xff08;很小的时候我们就学过&#xff1a;两个数字相乘的算法——将输入(两个数字)转换为输出(它们的乘积)的一组定义良好的规则&#xf…

网络安全资源和参考指南

由美国国防部&#xff08;DoD&#xff09;发布的《网络安全资源和参考指南》&#xff0c;旨在为美国政府、商业部门以及美国盟友和伙伴之间的安全合作提供有用的、现成的参考资料。文档涵盖了网络安全规范、最佳实践、政策和标准&#xff0c;这些都是由美国联邦政府、国防部以及…

软件测试学习

软件测试学习 编辑时间&#xff1a;2024/5/17 0.理论学习 第一单元 Q开发工程师和测试工程师的关系理解 Q软件测试的目的和原则&#xff0c;识记、理解 为什么要进行软件测试 软件产品最终具备哪些功能由客户需求决定&#xff0c;客户需求如何转化为最终的软件产品要…

Wpf 使用 Prism 实战开发Day23

自定义对话框服务 当原有对话框不能满足需求的时候&#xff0c;可以通过自定义对话框来实现特殊的需求 一.自定义对话框主机服务步骤&#xff1a; 1.建立一个IDialogHostService 接口类&#xff0c;继承自 IDialogService 对话框服务类。并且自定义基类的服务方法。 public …

【嵌入式软件工程师面经】Socket,TCP,HTTP之间的区别

目录&#xff1a; 目录 目录&#xff1a; 一、Socket原理与TCP/IP协议 1.1 Socket概念&#xff1a; 1.2 建立Socket连接&#xff1a; 1.3 SOCKET连接与TCP/IP连接 二、HTTP连接&#xff1a; 2.1 HTTP原理 三、三者的区别和联系 前些天发现了一个巨牛的人工智能学习网站&#xf…