软件开发流程--百度百科

原创
2020/05/08 23:35
阅读数 254

软件开发流程即软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理,报废处理。

简介

周期和阶段

管理角度,软件生命周期

  • 起始阶段(Incepotion)--有一个好的想法:具体构想出终于产品的设想和它的业务案例,确定项目的范围 。
  • 细化阶段(Elaboration)--计划必要的活动和所需资源,具体确定功能并设计架构。
  • 构建阶段(Construction)--构建产品,发展最初的设想、架构和计划,直到一个能够交付给用户的产品(完毕后的设想)完毕。
  • 移交阶段(Transition)--将产品移交用户使用,包含:制造、交付、培训、支持、维护,直到用户惬意。

迭代

从技术的角度来 看,软件开发能够视为一连串的迭代过程,通过这些迭代被开发的软件得以增量演进。 每次迭代都以一个可运行的产品的公布而结束, 该产品可能是完整版本号的一个子集,但从project的或用户的角度来看是实用的。 每次公布都伴随一些支持性工件:版本号描写叙述、用户文档和计划等。 一次迭代包含下面活动: 计划、分析、设计、实施和测试。

依据迭代在开发周期中所处位置的不同,这些活动分别占不同的比例。

开发流程

需求份分析

  1. 相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
  2. 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
  3. 系统分析员向用户再次确认需求。

概要设计

首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

详细设计

在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

编码

在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题!

测试

测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会有不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。

软件交付

在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。

《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。

《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。

验收

用户验收

维护

根据用户需求的变化或环境的变化,对应用程序进行全部或部分的修改。

个人总结

  • 流程
graph LR
产品-->开发测试:前端/后端/测试
开发测试:前端/后端/测试-->运维


    1. 产品-->需求调研
    2. 产品-->需求分析
    3. 产品-->编写需求文档
    4. 产品-->需求确认
    5. 产品-->编写PRD
    6. 产品-->需求评审
    
    7. 开发、测试-->阅读需求文档了解需求
    8. 产品、开发、测试-->参与需求评审
    9. 产品、开发、测试-->需求讨论
    10. 产品-->修改需求
    
    11. 产品、开发、测试-->二次参与需求评审
    12. 产品、开发、测试-->二次需求讨论
    
    13. 开发--> 需求分析
    14. 开发--> 根据需求拆分模块
    15. 开发--> 制定开发计划
    16. 开发--> 约定接口文档
    
    17. 开发--> 前端、后端并行开发(技术选型)
    18. 开发--> 前端、后端单元自测
    19. 开发--> 前端、后端联调
    20. 开发--> 前端、后端综合自测
    21. 开发--> 提测(测试环境)
    22. 运维--> 搭建测试环境
    
    23. 测试--> 需求分析
    24. 测试--> 编写测试文档
    25. 测试--> 编写测试用例
    26. 测试--> 接口测试
    27. 测试--> 功能测试
    28. 测试--> 业务流测试
    29. 测试--> 提交测试报告
    
    30. 开发--> 修改bug
    31. 开发--> 提测
    
    32. 测试--> BUG验证
    33. 测试--> 提交测试报告
    
    34. 产品-->产品验收
    35. 产品-->需求变更
    39. 开发-->根据变更调整代码
    40. 测试-->测试变更
    41. 产品-->产品验收
    
    42. 运维--> 搭建线上环境
    
    43. 产品、开发、测试-->项目上线
    44. 产品、开发、测试-->线上测试
    
    45. 运维--> 重置项目数据
    46. 产品、开发、测试-->投入生产、项目维护
    
    47. 产品、开发、测试-->项目复盘
    
    


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部