## 第 2 章



问题 1：根据需求设计一个软件系统：

要求：1）满足智能校园应用的功能需求

2）满足各种需求指标（定性、定量）

## 1 确定软件系统需求-需求的层次

## **需求的层次**

- **用户根本性需求**：软件系统满足用户需要的**关键问题**。
    
- **用户描述性需求**：用户认知下对软件系统的**预期表现**。
    
- **系统表现性需求**：软件工程师需要完成的系统任务。
    

用户需求的提炼

用户对需求的描述

系统需求的详细清单

需求的关键

业务场景的实际调研

使用环境的研究分析

实现的关键

**项目目标**

考核标准

## 1 确定软件系统需求-业务流程的构建方法

## **业务流程构建**

- **业务场景**：完成工作任务的**工作流程**。
    
- **参与用户**：工作流程中涉及的**用户**及任务**节点**。
    
- **数据流**：工作流程中涉及的**数据**流。
    

**案例 1 教学**

```mermaid
flowchart TD
    subgraph 教师["教师"]
        A[初步了解学生的状况] --> B[备课] --> C[讲课] --> D[让学生做练习]
    end

    subgraph 学生["学生"]
        E[被分配到班级] --> F[按课表上课] --> G[完成作业] --> H[考试] --> I[评估学习]
    end
```
## 1 确定软件系统需求-从业务流程提炼关键问题

## **提炼关键问题**

​

|关键问题|方案与途径|关键技术|实现目标|
|---|---|---|---|
|时间有限， 师生时间不一致 问题 1、2|教师上传 教学资源，学生利用碎片化时间移动学习|通过在 微信小程序 平台上开发|实现学生自主碎片化安排学习时间|
|学习计划不明确 问题 3、4、8|获取学生的当前信息，得到用户画像，根据目标为其生成学习计划|基于深度 神经网络模型|实现学生明确自己的学习计划|
|学习资源 不具有针对性 问题 5、6|通过用户 画像和职业画像对比 的差异，推荐合适课程|根据学生的需求，为其推荐个性化课程|
|对自己现有水平 认知不清 问题 3、7|实时动态 更新学生个人信息， 从而更新人物画像， 以此动态更新计划与目标完成度|基于语义分析的 文本相似度计算， 数据可视化展示|学习进度可视化 学习路径可以调整|
|验证方法：市场调研，功能演示， 专家评审，实际应用 ，问卷调查， 抽取部分用户进行回访 最终目的：为学生提供详细的学习计划，让学生更好的学习|   |   |   |

​

相关问题

- 大学生在校期间被专业课占据大部分时间
    
- 主要的自用时间多为碎片化的零碎时间。
    
- 大学生对于自己的能力不够完全了解，不能为今后的学习目标进行动态规划，
    
- 同时由于每个人的个性差异，传统的计划表无法尽善尽美。
    
- 目前互联网上存在着大量的教学资源，
    
- 时间空间跨度非常大，以至部分资源早已跟不上技术的发展、政策的更新。
    
- 校内老师的教学任务繁忙，没有太多精力为每个学生定制个性化的学习计划，
    
- 大部分学生只能以培养计划作为当前的学习目标。
    

用户特点

用户类型

**1.课程繁忙缺少大量完整时间**

**学生**

**2.目标不明确多数人没有计划**

**3.能力参差不齐**

**老师**

**1. 教学科研任务繁忙**

**2. 与学生沟通不足**

**3. 教学资源扁平化**

## 1 确定软件系统需求-业务流程的构建方法

- **案例 2 电商**
    

核心角色

**规则**

**规则**

**查看订单**

（进度）

**确认订单** （完成）

**付款订单** （付款）

**查看商品**

**确认订单**

（购买）

**选择商品**

终端消费者

**规则**

**规则**

**规则**

接口

**交易**

**规则**

**规则**

**规则**

**规则**

电商系统

提供**商品**

展示清单

**确认订单**

（完成）

**确认订单**

（付款）

**确认订单**

（购买）

**提供信息**

**供货**

供应商系统

**规则**：业务

流转规定

（单独模块）

**动作**：101 查看 102 选择 103 确认 104 付款

105 查看 106 确认

201 提供 202 确认 203 确认 204 提供 205 确认

**数据**：商品（基础数据）

，订单（业务数据，随着业务变化）

，信息（外部系统数据）

**供货**

**提供信息**

中间商系统

**提供服务**

**接口：** 操作、数据（界面）

第三方系统

## 1 确定软件系统需求-业务流程的构建方法

- **案例 2 电商 信息化模型**
    

## 1 确定软件系统需求-问题建模的构建方法

- **案例 3 智能驾驶**
    

## 1 确定软件系统需求-三层次法（用户角度）

### **案例 4 财务管理**

针对不同用户：

**提出**“对用户

切身利益最关切

的**问题**”

**并说明**“别的系统

做不到”

确定

**需求的底层逻辑**

## 1 确定软件系统需求-三层次法（信息化）

把用户问题：

**映射**

“计算机

能处理的**问题**”

把需要解决的问题：

**变成**

“计算机

要处理的**用户需求**”

**案例 3:智能驾驶系统**

**案例 5 智能协同通用模型**

## 1 确定软件系统需求-三层次法（技术体系）

案例: 以 **智能系统，提高用户舒适度** 为例

首先 确定问题的工作内容

环境数据捕捉

用户身体状况判别

智能匹配方案

设备调节

其次 确定研究方案的生成过程

最后 确定解决方案的技术水平（自己的）

确定领域

生理学

心理学

计算机

自动化

….

应用场景

家庭房间

办公室

白天

晚上

….

相关要素

基理研究

应用研究

解决方案

空间

设备数量

光照度

湿度

个人状态

….

**对人的影响**

湿度、光照、

色彩、空间等

**舒适度评估**

指标、方法、

验证等

….

**智能家居**

设备操作方便性

人脸识别能力

语音识别能力

别人的

研究成果

自己的

研究成果

….

行业认可的

商业化的

解决方案

## 2 确定软件系统目标-目标种类

- **功能性目标**：软件系统 给予用户“**操作的功能**”。
    
- **任务性目标**：软件系统 帮助用户“**起到的效果**”。
    
- **辅助型目标**：软件系统 的“**可维护性，可扩展性，友好性**”等。
    
- **其他目标**：软件系统 的“**技术水平、反应、数据量**”等
    

### **系统能力**

- **定量目标**：可以**明确**测量指标与提供测试报告的目标。
    
- **定性目标**：需要**主观评价**并提供专家审核的目标。
    

### **指标类型**

界面包括：

图像，动作、声音等一切交互手段形成的交互媒介（手机，显示屏，喇叭等）

- **人机交互** ：人机可以通过“界面”协作完成。
    
- **功能分配**：有“智能体”动态分配人机功能。
    
- **非交互功能**：由软件系统独立完成。
    

### **展现方式**

## 3 确定软件系统需求清单-部分案例

1 确定项目：项目名称，项目内容（拟解决的问题等），技术方向等。

2 需求调研：通过“**业务场景**” 获得 三个层次需求（用户描述需求，产品经理总结的根本性需求，系统表现需求。）

3 需求的编制方式：

- 调研报告：用户描述需求。（表现的零碎，散装，**需要归类**）
    
- 问题分析：根本性需求。（从业务流程描述**让用户满意**，从计算机模型描述让**问题清晰便于技术解决**。）
    
- 系统需求：需求说明书。（从系统角度描述“**系统表现出的功能**、性能与其他技术指标）
    

## 3 确定软件系统需求清单-部分案例

调研详细记录 excel 版

千岛湖集团业务流程图

管理驾驶舱项目需求描述

## 4 确定软件系统目标-技术水平

### **智能化水平**

**体现足够“智能水平”的功能点或相关特征**

智商级别

学习能力

拟人化处理能力

思考能力

**特定功能**的**智能性**

**整体**的**智能性**

**采用了最新的先进技术**

### **先进性**

大模型

量子智能

### **功能新颖**

**具备其他软件系统没有的新功能**

### **技术指标优异**

**同样的功能体现“更优越”的指标**

## 5 整体解决方案-系统基础架构

## **案例 3 智能驾驶**

5 整体解决方案-系统物理部署架构

**案例 3 智能驾驶**

## 6 课程的主要内容

- 软件系统与体系架构设计方法
    
    - **基于 智能化校园案例 （提供案例说明书，每部分算一次小作业）**
        
    - **包括：需求分析，关键问题和相关技术研究、行业相关产业链，软件系统体系架构，软件系统实现技术，原型系统界面等。**
        
- JavaEE 开发技术架构技术
    
    - **JavaEE 的基础知识（需要进行课堂试卷考核）**
        
    - **JavaEE 的 SpringBoot，MVC，Cloud 等技术（需要进行课堂实践考核）**
        
    - **前端开发框架的使用。（需要进行课堂实践考核）**
        
    - **JavaEE 调用大模型、数据分析等工具、云服务等的方法。（需要进行课堂实践报告）**