已开启
设计文档 #23
caishengcheng创建于  6月4日
caishengcheng成员
6月4日 创建

2 Story上下文(必要)
说明:描述Story涉及到的内部模块交互和外部服务/组件/SDK交互接口,便于整体设计story涉及到的内部模块/服务接口/SDK接口及对应的关系,用图形表示:
3 功能点分解(必要)
说明:针对本需求,请详细分解具体的功能点,以便开发测试对此功能的认识能够从细节上对齐。此部分 应该由开发测试一起参与需求澄清后共同输出,作为双方统一认识的载体。测试的用例以覆盖此处的功能 点为目标进行设计。
4 实现设计(必要)
4.1 功能实现思路 (必要)
要描述清楚从规格到代码的实现思路,体现需求相关人(BA、开发、测试等)对系统的实现诉求和理解, 且理解一致,能够给这些人基于此文档做后续的工作,能够评估代码开发的工作量。 要有关键设计,包括:是否需要代码重构、新增、修改哪些类、整个业务流程、是否对现有功能产生影响; 是否从其他特性移植代码。
4.2 功能实现设计(必要)
本章节写设计与实现的具体内容,对于流程编排请提供流程图、时序图等。
如果需求本身涉及大量用户交互或业务流程,需要针对场景汇总说明,以用例图方式,用于覆盖该story能够覆盖到的操作场景及相关的关联关系,如下:
详细描述Story下具体的每个usecase的功能,可对应到story概述中的用例图,交互实现方式。
可以用流程图描述,尽量详细描述功能的设计方案,以及具体的实现流程。
注,如果涉及到业务功能较少,可不做具体描述,本章节可不做强制要求。
4.2.1 流程图
画图
4.2.2 流程说明
流程说明除正常流程外,存在异常流程影响体验和功能的,必须做强制说明。典型场景如服务器网络异常,超时等;
4.3 数据库及文件持久化设计(可选)
如果有涉及到数据库的操作,本章节写数据模型设计说明,主要包含设计的表结构变化、各字段的详细说明、原表数据量级、数据割接逻辑、回退逻辑等;
其他文件操作,如sharepf等,也请详细说明;
如果由数据割接,则需要说明清楚数据割接、回滚的逻辑
4.4 接口描述(必要)
重要,按照story上下文中的关系图,描述与服务器,第三方SDK,内部新增接口描述
涉及服务器接口,说明关键变更点,同时引用Confluence服务器接口定义地址,便于保持一致;
涉及第三方SDK,需引用具体第三方SDK接口文档存放地址;
内部接口在本章节直接描述;

举例:
 Store接口

  1. 根据发货地判断是否支持OOBE推荐
  2. 前置接口(应用列表获取)
  3. 权限获取接口

 软工对接接口

  1. startPrimaryFlowActivityForResult , 开机向导拉起OOBE推荐
     channelInfo :渠道信息
     simOperatorInfo:simcard信息
     isOpenChannel:标识是否是公开渠道
     isFromMoreApps:标识是否从select more apps入口进入

4.5 GUI界面(可选)
涉及到UI交互必须输出,不涉及UI不用输出。结合高保真模型输出
4.6 代码设计(必要)
针对story上下文中的2层框图,对代码层级做设计,重点看看我们要实施的模块化/组件化涉及的要点做说明,如果涉及到多仓,需要全部列举。建议以包图或目录结构做说明,涉及到MVP的需提前思考,向MVP靠拢;
5 DFx设计(可选)
如在系统设计或模块实现设计说明书中已完整考虑系统功能DFx方面的设计,本章节不用输出
5.1 性能设计
重点说明,关键接口性能指标
A.涉及到页面滑动、扫动帧率,过渡绘制,需关注;
B.涉及异步调用,service,广播之类的需关注;
C. 涉及网络交互或与第三方交互,需提前评估性能要求;
D.设计与服务器交互协商接口,大并发情况下,需提前评估客户端与服务器的相互冲击;
E.关注大对象,大量创建对象,多图片加载,嵌套调用/频繁调用导致的内存消耗/频繁GC或泄漏;
5.2 安全设计
网络协议、隐私保护、敏感数据加解密、权限(新增申请或者声明权限需在设计中明确写明原因,代码中也要注释清楚)、开放接口等
涉及到持久化存储的包括数据库和perference,需对持久化数据说明是否涉及安全;
涉及日志输出的敏感信息,需描述;
特有业务流程中的安全审视,学生模式,锁屏、密码输入防截屏/录屏,业务上是否绕过安全管控;
日志打印检查 是否涉及个人数据打印
是否新增网络请求/响应 是否涉及敏感数据
是否新增WebView 是否涉及JS接口及敏感信息传输
SP文件、数据库字段 是否涉及个人数据,华为帐号,设备信息等
新增组件(Activity、Service、Provider) 是否涉及组件对外暴露
加密、签名 加密、签名算法是否合规

5.3 兼容性设计
重要,
A.对外提供的接口/常量定义存在变更时,必须描述兼容性,含调用方式,返回值范围,异常类型等;
B.涉及到数据上报,含BI数据,日志数据等,如果存在key/value值定义修改,务必描述兼容性;
C.涉及到内部设置项,持久化存储,涉及key/value值定义修改,务必描述兼容性;
D.涉及数据库变动升级,务必描述兼容性;
E.涉及到不同EMUI版本或非华为手机需要兼容的地方,含GUI控件不同行为和不同anroid版本的差异判断,需描述;

5.4 全球化
重点描述全球化导致的变化点,如流程上的变化,特殊处理等;多语言,UI布局等;
重点关注服务地切换,账号切换,登录流程,内容分级引发的差异,将差异和解决方案分别用文字/图表等方式明确出来;
重点关注界面提示语;
重点关注翻译要求;
5.5 日志上报、BI,曝光性及可维护性
重点描述对业务流程存在核心影响的错误进行上报,包括接口异常,网络异常;
如涉及,请在下面具体描述
日志上报 涉及/不涉及
BI上报 涉及/不涉及
可维护性 涉及/不涉及
6 测试设计(必要)
本章节主要给出Story测试验证的建议,给出Story自验证用例,覆盖的测试场景;给出Story的单元测试设计,覆盖的测试场景。也可从接口测试、业务场景(正常场景)、异常场景
6.1 单元测试(UT)
单元测试主要覆盖哪些功能点
6.2 接口测试
接口测试必须按照接口说明书来测试,包括必选字段、可选字段、以及字段长度等校验
6.3 业务场景测试
简单描述涉及的业务场景即可
6.4 异常场景测试
描述异常场景下的可靠性测试,包括交互部件之间的断链/超时、针对批处理消息全部失败/部分失败/全部 成功等

likedislike