一.需求的概念
需求主要分为两点,一为用户需求,二为软件需求。
一般来说用户需求是随随便便的一句话,作为不了开发需求,软件需求才是开发人员的依据,
比如用户需求是做一个登陆界面,这是软件需求就需要分析一系列操作,看需要什么界面,需要输入什么,判断输入的是否合法,还需要什么来辅助等一系列需求,才能作为开发人员的依据,
二.开发模型
开发模型其实还有个名字叫做软件的生命周期
生命周期是这样的:
先需求分析 -> 计划 - > 设计 - > 编码 - > 测试 - > 运行维护
接下来说开发模型,
1.瀑布模型
根据上述的生命周期,提出了瀑布模型
这样的瀑布模型风险显而易见,就是有问题的话,要在最后面才能看见,最后的测试阶段也是风险大爆发的时候,也就是业界说的:“集成之日就是爆炸之日”
优点:线性结构,每个流程执行一次 ,也是其他模型的基础框架。
缺点:测试后置,容易大面积返工,开发周期长,可能出品的时候已经过时了
瀑布模型适用场景:需求固定的小项目
2.螺旋模型
一种渐进式的开发模式
在瀑布模型的基础上,引进了原型和风险分析。
缺点:需要额外引进风险分析人才,额外增加成本
是否遗留风险和风险分析人员技术很有关
适用场景:需求很大,规模大,风险大的项目
3.迭代模型和增量模型
增量模型如其名,就是把一个大需求改成一个个小项目,然后每个功能独立开发上线。
迭代模型就是先上一个简易版,然后慢慢增加优化,
在互联网的发展下,这俩款几乎都是在一起使用,
使用场景:大型项目,需求不明确。
4.*敏捷模型
因为之前一直很流行瀑布迭代模型完成一个项目,就导致如果客户中途想变更请求以及想合并都是需要高成本和时间的。在这种情况下就出现了敏捷模型。
敏捷模型有一个敏捷宣言:
个体与交互重于过程和⼯具
可⽤的软件重于完备的⽂档
客⼾协作重于合同谈判
响应变化重于遵循计划
特点有四点: 轻⽂档,轻流程,重⽬标,重产出
敏捷模型有很多开发模型,其中Scrum是比较流行的一种,又称迭代式增量软件开发模型,主要有三个角色和五个重要会议
三个角色: scrum由product owner(产品经理)、scrum master(项⽬经理)和team(研发团队)组成。
其中product owner负责整理user story(用户故事),定义其商业价值,对其进⾏排序,制定发布 计划,对产品负责。
scrum master负责召开各种会议,协调项⽬,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每⼀次迭代的⽬标,交付产品。
五个重要会议: