开发流程更完整、更有效率,产品才能脱颖而出。 1. 项目启动 在项目启动阶段,主要确定项目的目标、范围及其可行性,我们需要对项目的背景、干系人、决策人等等进行了解。 编制项目章程和组建项目团队,包括:产品经理、架构师、UI工程师、开发工程师、测试工程师等; 明确项目管理制度,每个阶段的成果产物及评审方式及过程,评审要有相应的《会议纪要》,从项目启动起,项目经理每周提供《项目周报》;测试阶段,测试工程师每周提供《项目测试周报》等等都属于项目管理制度。 《会议纪要》《项目周报》《项目测试周报》 2. 需求调研及分析 2.1 需求调研 了解相关对接系统的业务需求,比如该软件是为其它业务提供服务的平台,那一定要了解清楚相关对接方的具体需求才能设计出最佳的系统架构。又比如该软件是一个业务系统那必须要了解清楚业务方的具体需求才能达到业务满意、用户满意。 《需求调研》文档 2.2 需求分析 需求分析阶段主要对调研阶段收集到的各项需求进行细化分析,对业务需求进行去粗取精、去伪存真、准确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来。需求明确后应当有PRD文档、UI/UE设计图、高保真图等产出,项目经理也应当产出一份详尽的项目计划并严格执行。 《市场需求文档MRD》(MRD:市场需求文档)《产品需求文档》《设计文档(《产品原型》)》《产品开发计划》 产品经理的三大文档——BRD、MRD、PRD BRD(商业需求文档):项目背景(产品介绍)、市场分析、团队、产品路线、财务计划、竞争对手分析 等。 MRD(市场需求文档):目标市场分析(目标、规模、特征、趋势)、目标用户分析(用户描述、用户使用场景、用户分类统计、核心用户、用户分类分析、竞争对手分析、产品需求概况(定位、前景))。 PRD(产品需求文档):详细功能说明(功能清单、优先级、功能目的、功能详细说明)、业务流程(业务流程、用例)、业务规则、界面原型(界面流程、界面原型)、数据要求(输入输出、极限范围、数据格式等)。 3. 系统设计 3.1 概要设计 概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示整个系统的架构,其中应当包含但不限于以下几部分: - 系统架构设计: 需要对系统的整体技术架构做出设计,采用何种技术框架及架构,包含技术选型如web容器的选择、高速缓存组件的选择等;是否采用分层技术,是否采用分模块设计等等一系列技术方向进行明确。
- 业务架构设计: 考虑到系统是一个满足业务满足市场的长期存在,所以我们的系统需要应对未来业务的发展,那就需要做出相应的业务架构设计,包含系统未来的产品可扩展性、系统收缩性等相关方面的设计。
- 网络架构设计: 针对系统的网络结构进行设计,是部署在内网还是外网,分模块的系统需明确哪些模块部署外网区、哪些模块部署DMZ区、哪些模块部署内网区,模块之间的访问关系及端口要求等。
- 数据库设计: 针对系统的数据结构进行设计,包含是否采用分库分表技术,是否采用读写分离设计等,系统中所有的表结构设计及字段设计。
- 接口设计: 针对系统内部接口及外部接口进行设计,包含接口通讯方式、接口字符编码、接口数据规范、接口报文规范、接口报文格式、接口字段等进行设计。
- 安全设计: 包含数据的传输与存储安全、安全认证方式、数据的加解密签名验签方式、共计及防范方案等进行相应设计。
- 非功能设计: 主要包含系统性能、可靠性、可用性、可扩展性、可维护性等相关设计。
- 基准测试: 在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
- 负载测试: 是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。
- 压力测试: 压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
- 稳定性测试: 在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
- 并发测试: 测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题