软件生命周期清单

需求阶段

愿景

要干啥

价值

赚钱,战略目标

目标

目标是经过可行性判断的方向标。确定目标后可以开始制定执行计划。

需求记录

虽然文档是最高效的传播工具。同时可以试试别的表达方式,比如演场电影展示需求。

预算

预算粗排,人物成本,工期等。


设计阶段

需求分解

设计阶段需求分解和模型抽象,接口抽象是相辅相成的。此阶段输出流程,核心流程。

根据流程划分模块或系统。

模型抽象

数据模型,库表

服务抽象

模型上的原语抽象。原语是表达业务的术语,对应流程。比如电商平台的加车,下单,支付等。

原语抽象

比如支付是加钱,转账是加钱减钱。原语抽象是为了简化业务逻辑和复用。原语如同积木的各个小方块,由原语组装成服务,模型和原语是很重要的部分。

公共技术

选型,安全,可测试性,可观测性。比如模型有些内部分解是因为性能原因,比如数据库大字段的分解。

设计文档

指标制定

qps,tps,sla等

规范制定

编码约定如异常码,空间命名,术语解释,编码规范,数据库规范,redis规范其他中间件规范。交互规范,安全

规范。

系统边界

交代系统间依赖

内部模块

内部构造描述

核心流程图

核心流程图,时序图,编码前代入为代码实现检测流程是否预期。

评审设计

经过多轮评审,群策群力各自负责模块设计。设计是全面进行的,架构师进行全盘统筹,技术经理要攻坚模型,需求分解。各模块负责人要负责具体设计落实。

精确预算

提供更真实预算

编码阶段

原型定义

原型描述

接口定义

出接口描述

评审设计

套流程,观测设计并修正。模式选择。

评审编码

定期评审编码,任务要分解的足够小,不够小,不可测试,不可监控都是不合格的。评审和编码交替进行,疑问较大时开会解决,组内或三方皆可。本着先行失败的原则,有问题及早暴露。

程序设计

电商型toC业务,tps关键在于小事物原则。剔除一切可以不放在事物中的代码。事物小,锁的资源小,并发才能大,吞吐量才能大。

重构

模式应用,选对模式。

单元测试

覆盖核心流程,工具类。

自测


测试阶段

冒烟测试

功能测试

安全测试

性能测试

压力测试

集成测试

回归测试

验收测试

灰度测试


运维阶段

运维测试阶段皆是项目初期即接入,并非写在此处,就代表排在后面。整体是一个并行的步骤。

资源准备

买服务器,域名等

基准测试

稳定性测试,基准指标能力输出

部署服务

连通性测试

监控配置

通用指标监控,全链路,业务监控

报警配置

报警配置,模拟测试

伸缩演练

故障恢复


上线清单

各项指标合格的项目才允许上线


附录

项目周期管理

进度可视化

过程资料产物存档

人员成长

文化心理

统一思想,心即理。

轮岗制度

比如轮番主导设计,承担技术经理,项目经理职责

人员技术梳理

沟通反馈

库表设计原则

服务形态

toB toC需要分离

数据类型

分清行为数据,和配置数据。这两种数据的数据量是截然不同的。

大字段

mysql页分裂问题

索引覆盖

减少回表,预读命中,局部性原理命中。

读写分离

常更新的状态字段,和不更新的行为记录。

冷热字段

比如钱包的账户字段,独立,亦可分解成多个子账户,逻辑账户。

安全设计

安全的本质是分权

最小权限

安全测试

数据安全


时间管理

时间管理,单一角色同一时刻单一职责。重要性四项原则排序。



以上是个人工作一点浅见。鉴于之前不能系统做事,特列逐项,以资成考。能成事在于能系统做事,我今日重点列举软件系统落地实施步骤。然而项目管理及实施步骤,在各类型项目皆有应用。

你可能感兴趣的:(软件生命周期清单)