java实战教程(一)软件开发流程-u0026开发模式
这里小编为了方便处于不同学习阶段的童鞋,准备了三个系列的文章,java系列教程、java实战教程、java进阶教程,对于刚入坑的童鞋,可以先按照这三个系列教程一步步的了解,循序渐进,java实战系列教程是针对于对java有一定了解并且熟悉到一定程度的童鞋品尝,如果对java基础不是很了解的同学可以参考java系列教程,也可以通过网上一些渠道进行java基础方面的学习。这里就不多说了,开始进入本系列的学习撒~
首先先简单描述一下软件开发的大致的一个流程
这里小编举个例子,写软件好比我们盖房子,我们盖房子首先需要有一个设计蓝图,我们要盖一个什么样的房子,多大,要容纳多少人,采用什么材料等等,这个就类比我们软件开发阶段的需求收集以及原型建立的怎么个阶段,明确我们需要做一个什么样的软件,完成什么样的功能需求,这一块一般是软件产品经理的工作。房子的蓝图有了,我们不可能直接就撸起袖子加油干,因为可能这个蓝图并不靠谱,所以设计蓝图弄好之后需要有个审核阶段,以确保盖出来的房子是可靠的,这个阶段我们可以类比软件开发过程中的需求评审阶段,产品经理将需求跟原型整理好了,聚集各位开发人员测试人员进行需求的评审,确认需求是否合理,这回大家就会展开头脑风暴,各抒己见,尽量将开发过程中的风险提前避开。这回蓝图审核好了,也就是软件的需求原型已经建立了,那么撸起袖子加油干撒,这回就进入了一个任务分解排期阶段,比如说这个房子我需要先打好地基,然后需要浇筑主体,砌砖,封顶等等,需要把这每一项工作进行排期,这样才能控制进度,以及总体工程耗费时间在一个可控的范围内,这里类比软件开发,首先需要根据需求进行系统的设计然后对模块以及功能进行分解,系统整体有多少个模块,多少功能点,需要多少人去完成,每个功能点由谁去实现,完成功能点需要多长时间等,以确保项目按照既定的排期推进,明确分工之后,这回就可以按部就班,撸起袖子加油干了,在一切顺利的前提下,房子如期竣工,这回可以直接交付给房主了吗?当然不行需要,房子在盖完之后需要进行验收确认各个指标到达设计的要求,这就类比软件开发的测试阶段,测试人员介入,根据系统需求进行测试用例编写,对软件进行全方位的测试以确保交付软件的可靠,其实最后还有一个阶段产品经理验收,产品经理需要对软件进行验收确保软件达到了设计的需求。大致的一个软件开发流程是这样的,不同的公司,可能会有细微的差别,大型公司软件开发流程把控会相对比较完善。
关于开发模式
现在比较主流的开发模式有两种
一、传统的瀑布式开发(SDLC)
图片来源:Software Testing Help
- Requirement gathering & Analysis: 需求收集以及分析阶段,由产品经理主导,产品经理梳理项目的需求进行分析生成软件需求说明书
- Design: 设计阶段,根据产品需求说明书进行系统架构设计,例如技术选型,数据库设计等
- Implementation & Coding: 功能需求编码实现,由开发人员完成
- Testing: 测试阶段,开发人员实现功能需求之后需要进行集成测试,确保软件质量
- Deployment: 软件部署阶段,测试完成后需要进行部署投产交付
- Maintenance:软件的日常维护工作
二、敏捷开发模式(agile model)
product backlog: 翻译过来可以理解成“积压的工作”,product backlog是一个具有优先级的需求列表, 并对每个需求进行了粗略的估算。表示可以预知的所有任务,包括未细化的产品功能要求、Bugs、缺陷、用户提出的改进、具竞争力的功能及技术升级等,按优先级定义出来,这些任务可能不是完整的,甚至可能随时会更改或添加。Prodcut Backlog永远处于不完整状态,它随着产品及其使用环境的变化而变化,它是动态的,管理层不断对之做出改变,确定产品需求,保证产品适用性、实用性和竞争性
然后在每一个迭代周期内,团队会根据优先级从product backlog池中取出,然后细分成一个个任务指派到具体的人去执行,通常在敏捷开发模式下,每天都会举行一个daily meeting会议,成员汇报工作进度,更新 sprint burn down (燃尽图)
当一个迭代周期完成后,需要进行复盘也就是展开一个评审会议(sprint review meeting)r如果顺利的话进行这一周期内完成的需求发布,并且对这一个周期进行复盘,做一个总结
这里针对开发模式不做太深入的了解,只是简单的介绍,如果后续大家对这一块感兴趣可以留言哈