如果你只想写代码,那么了解软件生命周期对你来说是没有意义的。如果你想深入这个行业,以后想做项目组长、项目经理、部门经理、技术总监或者准备自己开软件公司,那就必须了解软件生命周期。你对这个行业了解得越深入,越会体会到开发一个软件不是把代码交上去就可以了。
软件生命周期是指从软件的产生直到报废的整个生命周期。从实际角度来看,要开发一个软件,应从需求出发,而需求又应从需求的来源出发,因此应考虑需求从哪里来,需要怎么去描述这个需求(此即问题的定义)。进一步分析为什么会产生这个需求,实现它有什么意义,要实现这个需求需要哪些技术,难点在哪里,有没有政策风险(此即可行性分析)。
然后将需求总结出来(此即总体描述),进而对需求进行拆分,把它写成用例、流程图等,以便后续的开发,也让开发人员可以从技术层面来了解这个需求(此即系统设计)。再然后是编码—调试—测试—试运行—验收,并且项目运行过程中需要维护,当你发现维护成本比较高,用户的需求已经没有办法在原系统上修改时,就是你放弃这个版本的时候,由此开始下一个软件的生命周期。
目前典型的软件生命周期模型有瀑布模型、原型模型等,可参见1.3.3节。