软件开发流程
软件开发流程是软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。软件开发流程的目的是提高软件开发、运营和维护效率,提升用户满意度、软件的可靠性和可维护性。
开发流程有写了再改模式,瀑布模型,统一流程老板驱动的流程,渐进交付的流程MVP和MBP。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段。我比较支持其中的生鱼片模型,这个模型解决了各个步骤之间分离的缺点,每个步骤都与上一步紧密连接,使得整个模型都是完整的状态。缺点是不知道上一个阶段结束的时间。
我比较喜欢RUP统一流程,它是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。 RUP和类似的产品–例如面向对象的软件过程(OOSP),以及OPEN Process都是理解性的软件工程工具–把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。步骤为:业务建模,需求,分析和设计,实现,测试,部署,配置和变更管理,项目管理,环境。它有四个阶段:初始阶段,细化阶段,构造阶段,构造阶段,交付阶段。尽管耗时,但是有明确的计划,并且可以随时更改。