返回

从需求到开发,实现1+2=3的坎坷历程

前端

最近公司在培训代码设计,感觉就是写文档吹牛皮。这篇博客会从需求阶段到最后实现跟大家分享一下我四天培训的收获。

跟产品吧啦吧啦沟通(chepi)了一天,产品说只要1+2=3这样常见的数字相加就可以。我们需要的只有相加功能,暂时不需要其他功能。

需求需要先发散后收敛,从功能点和实现技术上把需求想全面,需要做哪些,哪些先做,哪些后做,哪些可以不做。

需求发散

  1. 功能需求:支持1+2=3的相加功能,支持任意两个数字的相加,支持负数的相加,支持小数的相加,支持科学计数法的相加,支持各种进制的相加,支持任意精度的相加。
  2. 性能需求:相加操作必须在1毫秒内完成,必须支持高并发访问,必须支持海量数据相加,必须支持分布式相加。
  3. 安全需求:必须防止数据篡改,必须防止数据泄露,必须防止数据丢失。
  4. 可用性需求:必须保证7×24小时不间断服务,必须保证99.999%的可用率。
  5. 可扩展性需求:必须支持系统容量的弹性扩展,必须支持功能的灵活扩展,必须支持技术的平滑演进。
  6. 可维护性需求:必须保证代码易读易懂,必须保证代码易于维护,必须保证代码易于扩展。

需求收敛

经过需求发散,我们已经对需求有了全面的了解。现在需要对需求进行收敛,确定哪些需求是必须的,哪些需求是可以延期的,哪些需求是可以放弃的。

经过收敛,我们最终确定了以下需求:

  1. 功能需求:支持1+2=3的相加功能,支持任意两个数字的相加,支持负数的相加,支持小数的相加。
  2. 性能需求:相加操作必须在1毫秒内完成。
  3. 安全需求:必须防止数据篡改,必须防止数据泄露。
  4. 可用性需求:必须保证7×24小时不间断服务。
  5. 可维护性需求:必须保证代码易读易懂,必须保证代码易于维护。

功能设计

需求收敛后,我们需要进行功能设计。功能设计是指将需求分解成一个个小的功能模块,并定义每个功能模块的输入、输出和功能逻辑。

经过功能设计,我们最终确定了以下功能模块:

  1. 数字输入模块:负责接收用户的输入,并将其转换为数字。
  2. 计算模块:负责执行相加操作,并生成相加结果。
  3. 结果输出模块:负责将相加结果输出给用户。

编码实现

功能设计后,我们需要进行编码实现。编码实现是指将功能模块转换为代码,并将其集成到系统中。

经过编码实现,我们最终完成了1+2=3相加功能的开发。

测试验证

编码实现后,我们需要进行测试验证。测试验证是指通过运行测试用例,来验证系统是否满足需求。

经过测试验证,我们最终确认1+2=3相加功能满足了需求。

总结

通过这个简单的1+2=3相加功能的开发,我们学习了软件开发的整体流程,包括需求分析、系统设计、编程实现和测试验证。

希望这篇文章能帮助开发人员更好地理解软件开发的整体流程,提高开发效率和质量。