今天看到了几个觉得很有用的软件工程相关的知识:
首先是螺旋模型:https://baike.baidu.com/item/%E8%9E%BA%E6%97%8B%E6%A8%A1%E5%9E%8B
通过不断的导入需求,分析风险,阶段实现,客户反馈来螺旋式的组织开发,降低风险,提高项目与客户需求的符合程度。
它不同于瀑布模型https://baike.baidu.com/item/%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B/9817778的死板固执,瀑布模型更适合应用于一些固定的项目工程,比如建筑行业等,而不适宜于软件工程这种需求一直改变需要不断明确的工程领域。
同时 快速原型https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%9E%8B 也是一个比较好的模型,它提前根据不同目的(需求分析,需求确认,运行,评估,修改),来有控制的采用多步来逼近客户需求。
这三种软件开发模型都是很典型的,其中螺旋模型和快速原型模型是对于目前的项目开发最具有参考意义的模型。
同时,不断变化的需求,快速的交付需求,以及保持与客户的沟通,不断获得需求端反馈的现实状况,都决定了即使是传统开发模型中,比较好的螺旋模型和快速开发模型,都已经难以应对当前的项目需求。因此敏捷开发概念的引入,从开发团队本身来重构开发资源及组织形式,使一些看起来不可能实现的项目开发需求变得不再不可能。敏捷开发要求敏捷团队内的每一位成员都能够为保证项目开发三大新需求而适配自己的工作方式,但是不同角色之间依然清晰界定,明确职责,提高效率。
三大新需求如上所述:
1.需求不明确,且不断变化
2.快速交付
3.开发过程不断导入客户意向,减少与客户预期之间的差距
敏捷开发:https://baike.baidu.com/item/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91