> ## Documentation Index
> Fetch the complete documentation index at: https://base.bangwu.me/llms.txt
> Use this file to discover all available pages before exploring further.

# System analysis and design

> Course notes on system analysis and design covering data flow diagrams, ER modeling, structured analysis methods, and UML object-oriented modeling techniques.

<details>
  <summary>写在前面</summary>
  系统分析与设计：重点由老师给出，本文章根据给出的重点来进行总结，理解或背诵自行解决 全文结合老师给的重点
  PS：引言部分帮助理解

  ![explorer\_d5F5kaOfGm](https://cdn.bangwu.top/img/202312231959498.webp)
</details>

# 一、系统概要、信息、管理与信息系统

<details>
  <summary>引言👈</summary>
  系统分析与设计：系统分析【理解需要做什么，详细说明需要做什么】+ 系统设计【详细说明系统将如何工作】
</details>

## 1.1系统概要

> 系统是由相互联系和相互制约的若干要素组成的、具有特定功能的有机整体

## 1.2信息概要

> \*\*数据（**Data**）\*\*是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合，反映了客观事物属性的记录
>
> \*\*信息（**Information**）\*\*是经过加工后的数据，以有意义的形式加以排列和处理的数据（有意义的/被理解的数据）（who、when、where、what）
>
> **知识**（Knowledge）是信息的集合，从相关信息中过滤、提炼及加工而得到的有用资料，使得信息变得有用（有用的信息），是人类关于自然界、人类社会及思维方式与运动规律的认识、经验的总和 （why、how to）
>
> **智慧**（Wisdom）是知识和信息经过人类大脑内化后转换为对事物理解和处理的能力 （What is best），人类独有的一种能力。

**数据和信息可看作原材料和成品的关系**

![chrome\_etPYy1IlSL](https://cdn.bangwu.top/img/202312251927552.webp)

> **信息的属性**

* 事实性、扩散性、传输性、共享性、增值性、不完全性、等级性、滞后性

## 1.3信息系统

> **信息系统**：以计算机为基础，结合管理理论和方法，应用信息技术解决管理问题，为管理决策提供支持的系统。

**信息系统的基本功能**：

* 数据的采集和输入
* 数据的传输、存储、加工、维护和使用

**信息系统的结构**：【按照抽象程度分为三个结构】

1. 概念结构
2. 基于管理职能的逻辑结构
3. 基于计算机实现的物理结构【硬件结构+软件结构】

![chrome\_a2yNXHtbtG](https://cdn.bangwu.top/img/202312251952140.webp)

## 1.4信息系统与组织

> 信息系统在组织中的地位

* **战略型**：信息系统是这些企业核心竞争力的一部分
* **转变型**：信息系统将逐步转变为企业未来成功的战略性支柱
* **工厂型**：信息系统是企业顺利运作的保障
* **支持型**：信息系统对企业当前运作和未来战略的影响不大

# 二、信息系统建设概论

## 信息系统建模

> 信息系统领域常用模型：【理解即可】

| 模型名称             | 用途                      |
| ---------------- | ----------------------- |
| 业务流程图            | 描述不同职能部门业务活动分工和活动过程     |
| 数据流图             | 描述数据的产生、处理、存储和去向的信息处理模型 |
| 实体关系图            | 描述系统中有价值的实体及其关系的数据模型    |
| 组织结构图            | 描述组织的部门及其从属关系的层次模型      |
| 模块结构图            | 描述软件功能模块及其调用关系的层次模型     |
| 判定表、判定树          | 描述决策条件及其行动关系            |
| UML（类图、用例图、顺序图等） | 描述软件系统结构及行为的一组模型        |
| 甘特图              | 描述项目任务及其完成日期的项目计划模型     |

## 2.2信息系统开发方法与工具

> 信息系统的生命周期(System Development Life Cycle，SDLC)   设计=>评价=>设计

基于**生命周期**的开发方法：原型法、迭代法、瀑布法等【管理信息系统已学，理解即可】

基于**技术**的开发方法：面向过程、面向对象、面向服务

# 三、系统规划与分析概述

## 3.2信息系统规划的技术与方法

> 战略目标集转移法【基本思想：将组织战略集转换成与它相关联和一致的信息系统战略集】
>
> 企业系统规划法【四个关键步骤：定义管理目标、定义管理功能组、定义数据分类、定义信息结构】
>
> 关键成功因素法【找出成功因素】
>
> 价值链分析法【企业进行的种种活动可以用一个价值链来表明，每个活动都有可能产生增值行为】

## 3.5系统分析的任务、过程和方法

> 系统分析的重要任务是识别和表达用户需求，分析领域业务，建立系统的逻辑模型。

要解决以下问题：

* 如何采集信息、理解和分析问题？
* 如何进行需求分析、确定需求？
* 如何表述需求？

**系统分析的过程**：问题分析=>需求分析=>需求定义

![chrome\_TJOv3VWjMa](https://cdn.bangwu.top/img/202312282116857.webp)

# 四、UML统一建模语言

> 统一建模语言UML（unified modeling language）是一种基于面向对象的可视化的通用建模语言，用于对软件进行描述、可视化处理、构造和建立软件系统工作的文档。

![chrome\_ifV2TxayLC](https://cdn.bangwu.top/img/202312282119927.webp)

**UML的构成**：

* **事物(建模元素)**：UML模型中面向对象的基本模块，代表物理上或概念上的元素
* **关系**：事物与事物之间的联系，根据耦合度从弱到强排列，分别是依赖、关联、聚合、组合、继承/泛化和实现关系
* **图**：事物和关系的可视化表示

理解以下几种图的构成及功能：

![](https://cdn.bangwu.top/img/202312282122289.webp)

![chrome\_jZvHwR4mUu](https://cdn.bangwu.top/img/202312282124009.webp)

![chrome\_OR9CZVf3KJ](https://cdn.bangwu.top/img/202312282125853.webp)

# 五、流程建模（理解为主）

## 业务流程分析与建模

> **跨职能流程图**【面向过程】

➢ 也称泳道图，面向过程，能够展示工作流中每个步骤涉及的职能部门和工作事项
➢ 能展示各个环节间的关系，同时还能展示为过程负责的执行者（比如说人或部门）
➢ 适用于涉及多个部门或角色的场景

> **UML活动图**【面向对象】

➢ 面向对象，描述满足用例要求所要进行的活动以及活动间的约束关系，阐明了业务用例实现的工作流程
➢ 活动图可用于需求获取、分析和设计的工作流中
➢ 适合描述系统中多个对象跨多个用例的活动顺序

![chrome\_lUo0WXHplq](https://cdn.bangwu.top/img/202312282135023.webp)

## 数据流程分断与建模

> **数据流图（Data Flow Diagram，DFD）**，它从数据传递和加工角度，以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。
>
> 数据流图用来记录系统中的数据是如何被采集、处理、保存和使用的

![chrome\_PqYiKwykhF](https://cdn.bangwu.top/img/202312282142173.webp)

业务流程图和数据流图的区别：

| 项目   | 业务流程图                  | 数据流图                          |
| ---- | ---------------------- | ----------------------------- |
| 关注点  | 关注业务操作的顺序、活动以及角色之间的交互  | 关注数据如何在系统中流动以及如何被不同的过程或功能所处理  |
| 组成要素 | 角色、活动、关系、交付物、分支等       | 外部实体、数据流、数据处理、数据存储            |
| 用途   | 用于描述、分析、优化和通信关于业务的工作流程 | 表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程 |
| 表示方式 | 跨职能流程图、UML活动图          | 数据流图                          |

> **数据字典**：数据字典是对数据流图的补充描述，用来描述数据流程图中的数据流、数据存储、处理过程和外部实体的详细内容。

![chrome\_vldrNRO2S2](https://s2.loli.net/2023/12/28/WQlbOFfzs9D3uVX.webp)

## 5.3业务规则表示

> 从信息系统角度看，业务规则是描述和约束业务的语句，用来刻画业务的结构、控制和影响用户的行为。
>
> 处理复杂逻辑：【结构化语言+判定表+判定树】

# 六、用例建模（理解为主）

由于这章整章都需要理解，请看👉[课件](https://alist.bangwu.top/%E9%98%BF%E9%87%8C%E4%BA%91-%E6%A3%92%E6%97%A0/%E8%AF%BE%E4%BB%B6/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90/%E7%AC%AC6%E7%AB%A0%20%E7%94%A8%E4%BE%8B%E5%BB%BA%E6%A8%A1.pdf)以及[课件补充](https://alist.bangwu.top/%E9%98%BF%E9%87%8C%E4%BA%91-%E6%A3%92%E6%97%A0/%E8%AF%BE%E4%BB%B6/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90/%E7%AC%AC6%E8%AE%B2%E8%A1%A5%E5%85%85%EF%BC%9A%E4%BF%A1%E6%81%AF%E5%9C%A8%E7%A4%BE%E4%BC%9A%E7%BB%93%E6%9E%84%E4%B8%AD%E7%9A%84%E5%88%86%E5%B8%83%E7%8E%B0%E8%B1%A1.pdf)

# 七、领域对象建模（理解为主）

## 7.1面向对象方法概述

`对象`【对问题域中某个实体的抽象，由名称、属性和行为（方法）】、`类`【是指有相同属性和方法的一组对象的抽象概念】、`封装`【把对象的属性和方法结合为一个独立的整体，并尽可能隐藏对象的内部实现细节】、`继承`【指子类的对象拥有其父类的全部属性与方法】就不再做过多赘述

> `多态`：指不同层次的子类可以共享父类中同一方法名称，但却可以各自按自己的需要实现不同的行为和执行不同的方法。【提高代码的扩展性】
>
> `对象关系`：继承、实现、关联、依赖。
>
> `对象之间的消息与协作`：【消息：对象之间必须要进行交互来实现复杂的行为，用消息message的形式提供信息】

## 7.2领域对象建模

> **领域对象**：也称实体类，就是问题域中有意义的概念类，是现实世界中存在的事物（things）或事件（events）
>
> **领域模型**：又称领域对象模型、分析对象模型，是对领域内的概念类或现实世界中对象的可视化表示。

![chrome\_j8NGPMnKOv](https://cdn.bangwu.top/img/202312282222288.webp)

> **领域类图**（Domain Class Diagram）：分析阶段，用来表示特定领域内的概念以及这些概念之间的关系
>
> 主要包括：领域对象、领域对象之间的关系、关键属性【通常不包括方法】

> **状态机图**（state machine diagram）关注对象的状态及转换，用于描述基于事件响应的对象动态行为和状态之间的关系【适合描述某个对象的内部逻辑， 即描述**一个对象跨多个用例**的行为。】

![chrome\_KbloAb2J39](https://cdn.bangwu.top/img/202312282227030.webp)

# 八、面向对象设计

## 8.1系统设计概述

> \*\*`系统设计`\*\*又称为物理设计，就是根据新系统逻辑模型所提出的各项功能要求，结合实际条件，科学、合理地设计出新系统的解决方案，并为系统实施阶段的各项工作准备好必要的技术资料和有关文件。【系统设计对系统分析与系统实施起桥梁作用】

![chrome\_8qlu9OWbP4](https://cdn.bangwu.top/img/202312282230886.webp)

## 8.3数据设计【这部分就是数据库知识，看看就行】

设计关系数据模型顺序：

1. 需求分析：确定应用程序需要存储的信息

2. 定义实体：实体代表了业务环境中的一个对象；每个实体创建一张二维表

3. 定义属性：即实体的特征; 每个属性对应表中的一列

4. 确定键：确定每张表的主键和外键

5. 定义关系：确定实体之间的关系；通过外键和参照完整性约束来实现和维护这些关系

6. 规范化：通过分解表来消除数据冗余，提高数据一致性；通过正规化阶段，例如第一范式、第二范式等来进行

7. 创建ER图（实体-关系图）

8. 反规范化（如有必要）

# 九、接口层设计

> 接口设计是指系统与外界的交互设计【人机接口设计、软件接口设计】

理解用户体验设计内容：

![chrome\_ehnsIEexa4](https://cdn.bangwu.top/img/202312282235109.webp)

用户界面模型：**原型图**（Prototype）【就是用Axure设计出的原型】

# 十、业务逻辑层设计

## 10.1面向过程的设计

> **模块结构图**(Structure Chart)描述系统的模块结构及模块间的联系

模块结构图的主要成分：

![chrome\_nmzop6jwJh](https://cdn.bangwu.top/img/202312282242399.webp)

例如：

![chrome\_DnlykHe8Is](https://cdn.bangwu.top/img/202312282243091.webp)

## 10.2面向对象业务逻辑设计

> **理解设计类图/包图/顺序图/通信图，无需绘图**

这部分我也不知道要怎么表述，就看[课件](https://alist.bangwu.top/%E9%98%BF%E9%87%8C%E4%BA%91-%E6%A3%92%E6%97%A0/%E8%AF%BE%E4%BB%B6/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90/%E7%AC%AC10%E7%AB%A0%20%E4%B8%9A%E5%8A%A1%E9%80%BB%E8%BE%91%E5%B1%82%E8%AE%BE%E8%AE%A1.pdf)吧

# 十一、系统实施

## 系统实施阶段的任务

> 系统实施是将系统设计阶段得到的设计方案转换为以计算机硬件为基础的能够实际运行的应用软件系统的过程。
>
> **主要任务**：硬件准备、软件准备（程序编写、测试和部署等）、人员培训和数据准备。实施完毕，系统才可上线。

## 11.3系统测试

> **白盒测试**：根据一个软件部件的内部控制结构，测试是否依据设计正确地执行【逻辑上面走程序的流程，检测是否能走通】

例如：

![chrome\_6QurArE5Bv](https://cdn.bangwu.top/img/202312282251578.webp)

就测试这个程序的条件分支是否能输出结果

# 十二、系统运维与管理（自学）

> 建议先看[课件](https://alist.bangwu.top/%E9%98%BF%E9%87%8C%E4%BA%91-%E6%A3%92%E6%97%A0/%E8%AF%BE%E4%BB%B6/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90/%E7%AC%AC12%E7%AB%A0-%E7%B3%BB%E7%BB%9F%E8%BF%90%E7%BB%B4%E4%B8%8E%E7%AE%A1%E7%90%86%EF%BC%88%E8%87%AA%E5%AD%A6%EF%BC%89.pdf)然后再看下面的内容，也可以自己总结，其实也没什么，管理信息系统课好像学过

## 12.1系统运维与管理概述

> 系统运维与管理的主要任务是企业IT部门采用相关的方法、手段、技术、制度、流程和文档等，对软硬件运行环境、业务应用系统和运维人员进行综合的管理。
>
> 系统运维与管理主要由技术性运维和运维管理构成。

## 12.2开发运维一体化DevOps

> DevOps（Development & Operations), 即开发运维一体化，重视“软件开发人员（Dev）”和“IT运维技术人员（Ops）”之间沟通合作的文化、运动或惯例。通过自动化“软件交付”和“架构变更”的流程，来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

![chrome\_CQ4IBy2SVh](https://cdn.bangwu.top/img/202312282256832.webp)

不是很重要，就是走流程。。。
