XXX特性软件特性提案模板.md 8.6 KB
Newer Older
K
kenneth 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
# XXX软件特性提案模板

## 1 简介

> REPLACE ME:对本文档进行简单描述,涉及什么子系统、组件,要解决什么需求或问题等。

## 2 需求分析

### 2.1 需求描述

> REPLACE ME:对本提案的需求进行描述,实现什么需求,解决什么问题。如有需求Issue链接,请提供Issue链接。

### 2.2 需求分析

> REPLACE ME:使用用例(Use Case)以及场景分析需求。 利用Use Case图描述功能需求,并给出每个用例的文字说明。用例的Actor可以是用户,也可以是本文档描述的对象外部周边模块。对于用户Actor,需要从给用户带来的价值角度识别用例,不能把实现一个完整功能的中间步骤当作用例。对于外部模块Actor,可以从功能接口角度识别用例。

### 2.3 需求规格

> REPLACE ME:描述需求涉及的关键技术指标,性能,功耗和内存等指标。

## 3 软件系统设计

> REPLACE ME:本章节描述系统功能如何被分解到模块或子系统中,各个模块如何协调工作实现系统功能(必要时可以描述其它系统分解方法为何没有被采纳)。

### 3.1 现有技术

> REPLACE ME:描述分析现有技术,例如:相同领域中其他解决方案是如何解决这个问题?是否有任何已发表的论文或重要的帖子讨论过这个问题?如果你有一些相关的论文可以参考,这可以作为更详细的理论背景。本节旨在鼓励您洞察其他平台的经验知识,为审核者提供更全面的了解。如果没有现有技术,无论它们是全新的还是从其他业务改造而产生,那说明您的想法很有创新性。

### 3.2 设计思路

> REPLACE ME:若针对具体问题的方案设计存在多套解决方案,则在此处一一描述,并比较优劣,给出最后选择的原因。

### 3.3 系统架构

#### 3.3.1 软件系统上下文关系

> REPLACE ME:明确对外部的依赖,以及[组件、部件、模块](https://gitee.com/openharmony/docs/blob/master/zh-cn/design/OpenHarmony%E9%83%A8%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97.md)间的依赖关系,描述本软件系统在对应架构设计框图、在系统中的位置。描述本软件系统如何与周边系统一起组成一个完整系统,重点在于描述本设计牵涉的软件子系统在系统中的位置(可以用软件结构框图描述)。描述待开发软件系统与周边系统的交互,只需要画出与本模块有交互关系的模块即可,也需要体现各软件模块所属的层次,并使用连线表示模块间的交互关系。

#### 3.3.2 系统架构说明

> REPLACE ME:描述系统的主要业务处理流程,系统实现架构的逻辑视图。可以使用UML交互图描述各子系统/模块间是如何交互协作完成本软件系统功能的。

#### 3.3.3 模块划分

> REPLACE ME:使用逻辑模型将本文的设计对象划分为几个大的子系统或模块,是一种软件结构的静态视图。可以使用软件框图或者UML组件图描述系统结构,要体现各模块所属的软件层次。需要有文字说明设计思路,并描述每个子模块的功能。

### 3.4 模块功能描述

> REPLACE ME: 本节描述系统中的子系统和模块或者类。

#### 3.4.1 模块/子系统1功能描述

> REPLACE ME: 针对划分好的子系统或模块,进一步做分解描述。使用类图说明各个子模块分解,并使用文字描述每个类的主要功能。对于复杂的子系统/模块,可使用UML交互图描述各个类之间是如何交互协作完成本子系统/模块功能的。

#### 3.4.2 模块/子系统2功能描述

> REPLACE ME: 同上。

### 3.5 业务/实现流程说明

> REPLACE ME: 这里使用顺序图针对Use Case图中的每个用例,说明其业务处理流程。 顺序图中的参与对象使用类,不使用子系统/模块。

### 3.6 接口描述

> REPLACE ME:本节描述软件系统中子系统,模块接口,接口描述可以使用接口文件,参数表等。 变更或新增接口此项必选。

#### 3.6.1 调用接口

> REPLACE ME:描述本模块使用到的周边模块的关键业务接口,可以不写模块内部的接口。如涉及HDI等外部标准接口,提供相关说明。

> | 编号             | 接口函数   | 输入                           | 输出                           | 返回值         | 接口具体描述           | 接口范围        |
> | -------------- | ------ | ---------------------------- | ---------------------------- | ----------- | ---------------- | ----------- |
> | 本提案自定义编号_00001 | 具体接口函数 | 具体输入参数及类型、使用方法,若涉及多个输入,可分列给出 | 具体输出参数及类型、使用方法,若涉及多个输出,可分列给出 | 函数返回类型、使用方法 | 总体描述接口的实现目的和使用方法 | 跨模块/跨子系统/…… |
> | 本提案自定义编号_00001 |        |                              |                              |             |                  |             |

#### 3.6.2 提供接口

> REPLACE ME:描述本模块提供给周边模块的关键业务接口,可以不写模块内部的接口。

> | 编号             | 接口函数   | 输入                           | 输出                           | 返回值         | 接口具体描述           | 接口范围        |
> | -------------- | ------ | ---------------------------- | ---------------------------- | ----------- | ---------------- | ----------- |
> | 本提案自定义编号_00001 | 具体接口函数 | 具体输入参数及类型、使用方法,若涉及多个输入,可分列给出 | 具体输出参数及类型、使用方法,若涉及多个输出,可分列给出 | 函数返回类型、使用方法 | 总体描述接口的实现目的和使用方法 | 跨模块/跨子系统/…… |
> | 本提案自定义编号_00001 |        |                              |                              |             |                  |             |

## 4 非功能设计

### 4.1 可靠性设计

> REPLACE ME: 需明确回答以下问题:

> 1、 该提案对应模块产生的故障分类(包括:模块内故障、模块间故障、外部输入故障)及对用户造成的影响;

> 2、 针对不同的故障类型,给出对应的检测方案、维测方案、特征日志采集和大小;

> 3、 考虑故障的容错和恢复机制;

> 4、 如何测试以确保可靠性设计生效。

### 4.2 兼容性设计

> REPLACE ME:

> 1. 保证整个设计不破坏原有架构和接口;

> 2. 版本间前后兼容,补充升级场景设计,分析设计升级兼容性;

> 3. 兼容各种芯片平台。

### 4.3 可测试性设计

> REPLACE ME:针对本提案提供测试方法,如:使用业界成熟或自行开发工具进行测试。 自动化测试设计,此部分为新方案的必须选项,不可省略。

### 4.4 安全设计

> REPLACE ME: 此部分为新方案的必须选项,不可省略。针对该提案进行安全设计时,请排查如下安全相关的检查项:
> 
> | 检查项                                                                        | 是否涉及 | 如涉及,给出详细信息 |
> | -------------------------------------------------------------------------- | ---- | ---------- |
> | 是否涉及新增服务?如果是,需要给出服务整体权限管控和API权限管控设计信息(包含但不限于AccessToken校验、UID校验、selinux校验等) |      |            |
> | 是否涉及新增跨进程API?如果是,需要给出API权限管控设计信息(包含但不限于AccessToken校验、UID校验、selinux校验等)      |      |            |
> | 是否涉及新增文件或内核节点?如果是,需要给出文件的权限信息(UGO和selinux)                                 |      |            |
> | 是否使用了加密算法?如果是,需要给出详细加密算法规格和相关秘钥信息                                          |      |            |
> | 是否涉及分布式场景?如果是,需要给出相关安全能力是完全依赖系统原有能力,还是有独立设计                                |      |            |
> | 是否涉及系统安全能力变更?如果是,需要到安全SIG评审                                                |      |            |
> | 是否涉及个人数据处理或云端交互逻辑?如果是,需要到安全SIG评审                                           |      |            |