手写公式计算器APP 体系结构设计说明书 系统总体结构 提示: (1)将系统分解为若干子系统,绘制物理图和逻辑图,说明各子系统的主要功能。 (2)说明“如何”以及“为什么”(how and why)如此分解系统。 (3)说明各子系统如何协调工作,从而实现原系统的功能。
时间: 2024-03-06 17:51:09 浏览: 18
系统总体结构分解为以下几个子系统:
1. 用户界面子系统:该子系统包括公式输入界面和计算结果展示界面,负责与用户进行交互和数据的显示。物理图和逻辑图如下:
物理图:
```
+----------------------+
| 用户界面子系统 |
| +--------+ |
| | 输入界面 | |
| +--------+ |
| | 展示界面 | |
| +--------+ |
+----------------------+
```
逻辑图:
```
+----------------------+
| 用户界面子系统 |
| +--------+ |
| | View | |
| +--------+ |
+----------------------+
```
2. 公式解析子系统:该子系统负责将用户输入的公式进行解析,并将其转换成计算机可执行的代码。物理图和逻辑图如下:
物理图:
```
+----------------------+
| 公式解析子系统 |
| +--------+ |
| | 解析器 | |
| +--------+ |
+----------------------+
```
逻辑图:
```
+----------------------+
| 公式解析子系统 |
| +--------+ |
| | Model | |
| +--------+ |
+----------------------+
```
3. 运算引擎子系统:该子系统负责执行解析后的计算机代码,完成公式计算并生成结果。物理图和逻辑图如下:
物理图:
```
+----------------------+
| 运算引擎子系统 |
| +--------+ |
| | 引擎 | |
| +--------+ |
+----------------------+
```
逻辑图:
```
+----------------------+
| 运算引擎子系统 |
| +--------+ |
| | Model | |
| +--------+ |
+----------------------+
```
4. 数据存储子系统:该子系统负责保存用户输入的公式和计算结果,以便下一次使用时能够快速加载。物理图和逻辑图如下:
物理图:
```
+----------------------+
| 数据存储子系统 |
| +--------+ |
| | 数据库 | |
| +--------+ |
+----------------------+
```
逻辑图:
```
+----------------------+
| 数据存储子系统 |
| +--------+ |
| | Model | |
| +--------+ |
+----------------------+
```
5. 外部接口子系统:该子系统负责与其他应用程序或系统进行数据交互,以便实现更多的功能和服务。物理图和逻辑图如下:
物理图:
```
+----------------------+
| 外部接口子系统 |
| +--------+ |
| | 接口 | |
| +--------+ |
+----------------------+
```
逻辑图:
```
+----------------------+
| 外部接口子系统 |
| +--------+ |
| | Controller | |
| +--------+ |
+----------------------+
```
这样设计的原因是:
1. 通过将系统分解为若干子系统,可以降低系统的复杂度,方便系统的开发和维护。
2. 各子系统之间功能独立,有利于并行开发和测试,提高开发效率。
3. 采用MVC模式,各子系统之间通过Controller进行协调工作,实现了模块之间的松耦合,方便系统的扩展和维护。
各子系统如何协调工作,从而实现原系统的功能:
1. 用户界面子系统通过View向用户展示数据和进行交互,将用户输入的公式传递给公式解析子系统进行解析。
2. 公式解析子系统将解析后的代码传递给运算引擎子系统进行计算,得到结果后将结果传递给用户界面子系统进行展示。
3. 数据存储子系统负责保存用户输入的公式和计算结果,以便下一次使用时能够快速加载。
4. 外部接口子系统负责与其他应用程序或系统进行数据交互,以便实现更多的功能和服务。