移动 APP 研发需求是移动 APP 研发交付的起点,只有明确了移动 APP 的各类研发需求,才能保证最终的交付满足要求。

一、需求概述

产品的需求通常分为四类:业务需求、用户需求、功能需求、非功能需求

类别 介绍 举例
业务需求(Business requirement) 表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标 对应的是组织或者客户,可以类比为平台和商家
用户需求(User Requirement) 描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么 对应的是购买产品的用户,可以类比买家
功能需求(Functional Requirement) 规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求 对应的是产品,即你的产品有怎样的功能或价值,能相应的满足买家的需求;可以类比为你现售卖的产品
非功能需求(Non-Functional Requirement) 是指依一些条件判断系统运作情形或其特性,而不是针对系统特定行为的需求,非功能性需求也可以视为为了满足客户业务需求而需要符合,但又不在功能需求中的特性 对应的是产品开发及使用过程中的限制及品质等,如稳定性(stability)及可移植性(portability)、保安性、易用性、可测试性(英语:software testability)、可维护性、可扩展性、可伸缩性(scalability)等

注意:一般会在系统设计(英语:Systems design)中详细列出实现功能需求的计划,而会在系统架构(英语:Systems architecture)中详细列出实现非功能性需求的计划。一般而言,功能需求会定义系统的行为,而非功能性需求会定义系统的特性。

二、业务需求

表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。对应的是组织或者客户,可以类比为平台和商家。不同的平台和商家实际的业务需求也不一样,即使同行业的平台和商家,也会追求差异的竞争优势而不断制定新的组织或客户高层次的目标。

三、功能需求

功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。功能需求定义了对系统提供的服务或功能的约束,包括时间约束、空间约束、开发过程约束及应遵循的标准等。

常见的移动 APP 功能需求包含如下:

账号(注册、登录、注销)

  • 账号登录
  • 邮箱登录
  • 手机号登录
  • 混合登录
  • 第三方登录(支持三方登录的 APP 必须同时支持苹果账号登录)
  • 其它登录
  • 账号注销
  • 邀请

分享

  • 自建 or 三方(ShareSDK)

音视频(多媒体)

  • 华为
  • 腾讯
  • 网易
  • 阿里

即时通讯

  • 环信
  • 融云
  • 腾讯 IM
  • 网易云信

地图

  • 百度
  • 高德
  • 腾讯

支付

  • 支付宝
  • 微信
  • 苹果
  • 统一支付平台(Ping++等)

生物识别

  • 人脸识别
  • 指纹识别

二维码

  • 生成与识别

版本更新

  • 更新提示
  • 强制更新

搜索

Web 容器

用户反馈

举报

拉黑

电话

短信

通讯录

通话记录

日历

提醒事项

闹钟

相册

健康

语音识别

文件和存储

社交媒体账户

相机

麦克风

蓝牙

传感器

推送

  • 推送权限
  • 自建 or 三方(个推、极光、阿里云)

网络

  • 网络权限
  • HTTP/HTTPS
  • Socket
  • RPC
  • 网络不稳定场景
  • 网络模式切换场景
  • 低网速场景

位置

  • 位置权限(获取经纬度坐标)
  • 火星坐标
  • 根据经纬度获取地图位置(高德、百度、腾讯)

四、非功能需求

非功能需求描述了系统展现给用户的行为和执行的操作等。非功能需求源于用户的限制,包括预算的约束、机构政策、与其他软硬件系统间的互操作,以及如安全规章、隐私权保护的立法等外部因素。

非功能性需求一般会称为系统的“品质”,有时也会称为“限制”、“品质属性”、“品质目标”、“品质属性”、“品质服务需求”或“非行为性的需求”。有许多非功能性需求的英文都是以“ilitiy”结尾,例如稳定性(stability)及可移植性(portability),因此非功能性需求有时也称为“ilities”。

非功能性需求可以分为以下的二类:

  • 运行品质(Execution qualities),可以在系统运作时观察到的品质,例如保安性及易用性等。
  • 发展品质(Evolution qualities),和软件系统结构及开发过程有关的品质,例如软件可测试性(英语:software testability)、可维护性、可扩展性、可伸缩性(scalability)等。

移动 APP 所需要支持的非功能需求通常相对统一,常见的移动 APP 非功能需求如下:

模块(组件)化

  • 路由总线
  • 事件总线

性能需求

  • 性能监测
  • 性能优化

安全需求

  • 应用加固
  • 代码混淆
  • 身份认证
  • 法律合规(敏感词等)
  • 恶意注册
  • 运营风控
  • 网络加密
  • 数据库加密

统计分析

  • 统计方法:自建 or 三方(友盟)
  • 数据类型:页面访问:用户行为
  • 字段确
  • 统计场景:事件、基础数据(AARRR模型)、产品特性数据

风险控制

  • 调用的第三方 SDK 出故障
  • 服务器出现故障
  • iOS、Android官方紧急升级系统
  • 技术无法解决的故障

接口管理

  • 内部接口管理
  • 外部接口管理

数据管理

  • 闪退后数据是否丢失
  • 卸载删除软件数据如何处理
  • 数据安全
  • 数据存储极限/跨平台同步
  • 数据被移除时会发生的情况
  • 数据过多或者过少数据需求导致布局和UI的改变
  • 在不同时段/不同数据权限数据推荐显示机制
  • 如何处理大量数据
  • 数据同步被打断
  • 数据或架构更新时会造成影响
  • 无效数据的处理

兼容管理

  • 软件系统兼容
  • 硬件设备兼容(不同屏幕、横竖屏)
  • 应用版本兼容
  • 多平台兼容

语言需求

  • 多语言管理

参考

  • 各类引用及参考资料

测试

  • 测试包统一平台管理
  • 合并 iOS、Android 的下载地址
  • 模拟器安装包
  • 应用内测试辅助工具(网络、运行日志等)

后端

  • 接口数据
  • 推送消息
  • 数据延迟处理
  • 交互失败处理
  • 新旧数据覆盖处理

产品

  • 产品验收清单
  • 产品研发账号统一管理

设计

  • 设计验收工具

营销

  • 产品层面:需要对流失用户进行召回、用短信、邮件的方式。
  • 运营层面:做活动冲业绩,需要对高价值用户进行付费引导。

帮助

  • 是否需要产品提供FAQ?

    1
    请提供内部使用者或者客户在使用此产品时所需要的说明文档。
  • 是否需要提供客户服务?

    1
    产品里面留官方电话,邮箱,或者其他联系方式。

法务

  • 以下授权需要法务协助

    1
    2
    隐私权、知识产权、专利权、商标、服务条款(TOS)、版权、合同责任、客户沟通
    APP著作权需要法务协助,如果没有,容易被人侵权;并且部分应用市场无法上架。
  • 以下事宜需要法务协助

    1
    商户入驻,财务结算,黑白启动页

财务

以下事宜需要财务协助

1
2
财务结算
账务对账

客服

  • 产品上线是否需要客服协助?
  • 此产品计划的服务优先级和重要性如何?
  • 当此产品上线后,你想要从客服中得到什么信息?(比如,客服每周处理多少客诉?花多少时间回复e-mail?会员常问的问题是什么?)
  • 客服应如何支持?对客服有何影响?客服最常遇到什么状况?应如何回应?
  • 此产品尚未上线前或上线时,客服可或不可与客户沟通,沟通什么?(请与客户服务部和技术支持讨论确定)

参考文档